Co-authored-by: Cursor <cursoragent@cursor.com>
7.4 KiB
Operator optional checklist
Purpose: Single list of all remaining operator and optional tasks with exact commands and references. Use when you want to complete Blockscout verification, deploy the trustless bridge, or run any "when needed" deployment.
Related: CONTRACT_NEXT_STEPS_LIST | CONTRACT_NEXT_STEPS_AND_RECOMMENDATIONS_COMPLETE | OPERATOR_ACTIONS
1. Blockscout source verification (optional)
When: After deployments or when contracts show "Unverified" on the explorer.
Option A — Proxy (from host that can reach Blockscout, e.g. LAN/VPN):
source smom-dbis-138/.env 2>/dev/null
./scripts/verify/run-contract-verification-with-proxy.sh
- RPC and Blockscout must be reachable (set
RPC_URL_138for Core; explorer.d-bis.org for Blockscout). - If submission returns "Invalid JSON", use Option B or C.
Option B — Direct Forge (same host, explorer reachable):
cd smom-dbis-138
export RPC="${RPC_URL_138:-https://rpc-core.d-bis.org}" # Chain 138 Core
export VERIFIER="https://explorer.d-bis.org/api"
# Example: CCIPSender
forge verify-contract 0x105F8A15b819948a89153505762444Ee9f324684 \
contracts/ccip/CCIPSender.sol:CCIPSender \
--chain-id 138 --rpc-url "$RPC" --verifier blockscout --verifier-url "$VERIFIER" --flatten
- Other contracts and full manual commands: BLOCKSCOUT_VERIFICATION_GUIDE and script
scripts/verify-contracts-blockscout.sh(addresses/paths).
Option C — Manual UI:
Open https://explorer.d-bis.org/address/
2. Trustless bridge (optional, when needed)
When: You need the trustless bridge stack on Chain 138 and mainnet.
Steps:
- Deploy from
script/bridge/trustless/(see scripts and order in repo). - Set production env: replace placeholders in
config/production/.env.production.exampleand useconfig/production/.env.production. - Reference: CONTRACT_DEPLOYMENT_RUNBOOK, CONTRACTS_TO_DEPLOY.
3. Mainnet / multichain deployments (optional)
When: Deploying to Ethereum mainnet or other chains.
Steps:
- Use
DeployAll.s.solor chain-specific scripts insmom-dbis-138/script/with correct RPC and env. - Document addresses per chain in CONTRACT_ADDRESSES_REFERENCE or SMART_CONTRACTS_INVENTORY_ALL_CHAINS.
3b. Relay and token mapping (138↔Mainnet)
When: Running the relay (138→Mainnet), adding a new token, or enabling LINK on the mainnet bridge.
Reference:
- Token mapping source of truth: config/token-mapping.json. When adding a token, add an entry and optionally update CHAIN138_TOKEN_ADDRESSES.
- Full table and recommendations: TOKEN_MAPPING_AND_MAINNET_ADDRESSES.
- Fund mainnet CCIPRelayBridge (WETH9) for payouts: CCIP_BRIDGE_MAINNET_CONNECTION. Optional LINK support: RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK.
4. CREATE2 / deterministic core (optional, when needed)
When: Deterministic addresses are required.
Command / reference:
smom-dbis-138/script/deploy/DeployDeterministicCore.s.sol — run with Foundry from smom-dbis-138; see CONTRACTS_TO_DEPLOY.
5. Vault / reserve / Keeper (optional, when needed)
When: Vault or reserve flow is needed.
Reference:
smom-dbis-138/script/deploy/vault/, smom-dbis-138/script/reserve/ — see CONTRACTS_TO_DEPLOY.
6. Dodo / swap integration (optional, when needed)
When: DEX integration is needed.
Reference:
smom-dbis-138/script/deploy/dex/, smom-dbis-138/script/bridge/trustless/DeployEnhancedSwapRouter.s.sol — see CONTRACTS_TO_DEPLOY. Set Dodo-related addresses in smom-dbis-138/.env per .env.example.
7. eMoney / smart accounts (optional, when needed)
When: eMoney or account abstraction is needed.
Reference:
smom-dbis-138/script/emoney/, smom-dbis-138/script/smart-accounts/ — see CONTRACTS_TO_DEPLOY.
8. PaymentChannelManager / GenericStateChannelManager / Mirror (optional, when needed)
When: Channel or mirror features are needed on Mainnet or Chain 138.
Chain 138 (2026-02-12): AddressMapper 0xe48E3f248698610e18Db865457fcd935Bb3da856, MirrorManager 0x6eD905A30c552a6e003061A38FD52A5A427beE56 — deployed. TransactionMirror: if forge script script/DeployTransactionMirror.s.sol hits constructor-args decode error, deploy via forge create contracts/mirror/TransactionMirror.sol:TransactionMirror --constructor-args <ADMIN> --rpc-url $RPC_URL_138 --private-key $PRIVATE_KEY --gas-price 1000000000.
Steps:
- Chain 138: Always use
--with-gas-price 1000000000for anyforge scriptorforge create. - Deploy channel managers via
smom-dbis-138/script/DeployPaymentChannelManager.s.solandDeployGenericStateChannelManager.s.sol. - Reference: PAYMENT_CHANNELS_DEPLOYMENT and
smom-dbis-138/docs/channels/.
Summary
| # | Task | When | Command / reference |
|---|---|---|---|
| 1 | Blockscout verification | After deploy or when unverified | Proxy script or direct forge or manual UI (above) |
| 2 | Trustless bridge | When using trustless stack | script/bridge/trustless/ + config/production |
| 3 | Mainnet/multichain | When deploying to other chains | DeployAll or chain scripts; document addresses |
| 4 | CREATE2 core | When deterministic addresses needed | DeployDeterministicCore.s.sol |
| 5 | Vault / reserve / Keeper | When vault/reserve needed | script/deploy/vault/, script/reserve/ |
| 6 | Dodo / swap | When DEX needed | script/deploy/dex/, DeployEnhancedSwapRouter |
| 7 | eMoney / smart accounts | When needed | script/emoney/, script/smart-accounts/ |
| 8 | Payment/state channels / mirror | When channel/mirror needed | AddressMapper, MirrorManager deployed 2026-02-12; TransactionMirror via forge create if script fails; DeployPaymentChannelManager, DeployGenericStateChannelManager; use --with-gas-price 1000000000 on Chain 138 |
Completion status (automated run)
| Task | Result |
|---|---|
| Blockscout verification | Direct --verifier-url https://explorer.d-bis.org/api fails (Blockscout requires module/action in query; use proxy from LAN or manual UI). |
| PaymentChannelManager | Script simulated OK (no --broadcast). To deploy: add --broadcast --private-key $PRIVATE_KEY. |
| GenericStateChannelManager | Script simulated OK (no --broadcast). To deploy: add --broadcast --private-key $PRIVATE_KEY. |
| DeployDeterministicCore | Fixed 2026-02-11: Refactored to struct + _deployAll; registry deployed via proxy. Compiles and simulates. |
| Trustless bridge | No script/bridge/trustless/ in repo; referenced in docs only. |
| Vault / reserve / eMoney | Scripts exist; run when needed (simulate first with forge script ... --rpc-url $RPC then --broadcast to deploy). |
Last updated: 2026-02-12