Files
proxmox/forge-verification-proxy
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00
..

Forge Verification Proxy

Purpose: Bridges Forge's Etherscan-style verify-contract to Blockscout (Chain 138).

Problem: Forge sends JSON body only; Blockscout's Etherscan API expects module and action in the query string. Direct calls fail with "Params 'module' and 'action' are required parameters".

Solution: This proxy accepts Forge's POST, adds ?module=contract&action=verifysourcecode, forwards to Blockscout, and falls back to Blockscout v2 API if needed.


Usage

Preferred: orchestrated script (starts proxy if needed):

source smom-dbis-138/.env 2>/dev/null
./scripts/verify/run-contract-verification-with-proxy.sh

Manual (proxy + verify):

# 1. Start the proxy (from project root)
BLOCKSCOUT_URL=http://192.168.11.140:4000 node forge-verification-proxy/server.js

# 2. Verify via proxy (script defaults to http://127.0.0.1:3080/)
./scripts/verify-contracts-blockscout.sh

# Or from another host:
BLOCKSCOUT_URL=http://192.168.11.140:4000 node forge-verification-proxy/server.js
# Then: FORGE_VERIFIER_URL="http://192.168.11.140:3080/" ./scripts/verify-contracts-blockscout.sh

Direct Forge:

forge verify-contract <ADDR> <PATH> \
  --chain-id 138 \
  --verifier blockscout \
  --verifier-url "http://<proxy-host>:3080/" \
  --rpc-url "http://192.168.11.211:8545"

Environment

Variable Default Description
PORT 3080 Proxy listen port
BLOCKSCOUT_URL http://192.168.11.140:4000 Blockscout API base URL (IP:port)