Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
9.5 KiB
9.5 KiB
Completion Master Plan — All Incomplete & Missing Items
Last Updated: 2026-02-16
Purpose: Single actionable checklist to complete all remaining deployments, config-ready items, routing gaps, and missing components. Ordered by dependency and priority.
Related: OPTIONAL_DEPLOYMENTS_START_HERE | CHAIN138_COMPLETE_ROUTING_TABLE | NEXT_STEPS_AND_REMAINING_TODOS
Phase 0 — Unblock Stuck Transaction (Prerequisite)
Status: ✅ Done. Block production resumed; stuck tx cleared. Nonce advanced from 13274/13275 to 13286. Phase 6 (Lockbox138) and Phase 8 (eMoney) completed.
| # | Action | Command / notes | Owner |
|---|---|---|---|
| 0.1 | Option A: Deploy with nonce skip | cd smom-dbis-138 && source .env && forge create contracts/bridge/trustless/Lockbox138.sol:Lockbox138 --rpc-url "$RPC_URL_138" --private-key "$PRIVATE_KEY" --nonce 13275 --gas-price 20000000000 --broadcast |
Operator |
| 0.2 | Option B: MetaMask 0-ETH self-transfer | Send 0 ETH from deployer to self at nonce 13274 with gas price > 1M gwei to replace, then retry deploy | Operator |
| 0.3 | Option C: Flush from RPC host | SSH to r630-01, run bash /path/to/flush-stuck-tx-rpc-and-validators.sh --full from a host that can reach 192.168.11.11, then deploy from LAN within 60s |
Operator |
| 0.4 | Option D: Fresh deployer wallet | Use new wallet (nonce 0) for Lockbox138 deploy | Operator |
Verify nonce: Use curl (cast nonce may not support pending):
source smom-dbis-138/.env; RPC="${RPC_URL_138}"; D="$DEPLOYER"
L=$(curl -s -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getTransactionCount\",\"params\":[\"$D\",\"latest\"],\"id\":1}" "$RPC" | jq -r '.result')
P=$(curl -s -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getTransactionCount\",\"params\":[\"$D\",\"pending\"],\"id\":1}" "$RPC" | jq -r '.result')
printf "Latest: %d | Pending: %d\n" $((L)) $((P))
Phase 1 — Deployments (Chain 138)
| # | Item | Status | Command / env | Ref |
|---|---|---|---|---|
| 1.1 | Lockbox138 (Phase 6) | ✅ Done | 0x9E51fAAE511024161b99838Af0dbA38Ff354F72c |
OPTIONAL_DEPLOYMENTS §2C |
| 1.2 | eMoney 138 (Phase 8) | ✅ Done | ComplianceRegistry, DebtRegistry, PolicyManager, TokenFactory138, BridgeVault138 | OPTIONAL_DEPLOYMENTS §2 |
| 1.3 | Trustless Mainnet | ⏳ RPC 403 | Set ETHEREUM_MAINNET_RPC to RPC that accepts your key (e.g. Infura/Alchemy project URL); run DeployTrustlessBridge with --rpc-url $ETHEREUM_MAINNET_RPC --broadcast --via-ir |
OPTIONAL_DEPLOYMENTS §2C |
Post-deploy: Add LOCKBOX_138=0x... (and INBOX_ETH for Mainnet) to .env; update config/smart-contracts-master.json.
Phase 2 — Config-Ready Chains (CCIP)
Complete Gnosis (100), Celo (42220), Wemix (1111) — deploy bridges, add destinations on 138, fund LINK.
| # | Chain | Steps | Ref |
|---|---|---|---|
| 2.1 | Gnosis | Deploy CCIPWETH9/WETH10 on Gnosis; add 138→100 and 100→138 destinations; fund LINK | CONFIG_READY_CHAINS_COMPLETION_RUNBOOK |
| 2.2 | Celo | Same for Celo (42220) | Same |
| 2.3 | Wemix | Same for Wemix (1111); verify token addresses on scan.wemix.com/tokens | Same, WEMIX_TOKEN_VERIFICATION |
| 2.4 | Run completion script | smom-dbis-138/scripts/deployment/complete-config-ready-chains.sh (requires bridge addresses, CHAIN138_SELECTOR) |
CONFIG_READY_CHAINS |
Phase 3 — DODO PMM & Liquidity Pools (Chain 138)
| # | Item | Status | Env required | Command |
|---|---|---|---|---|
| 3.1 | DODO PMM Integration | ❌ Not deployed | DODO_VENDING_MACHINE_ADDRESS, COMPLIANT_USDT_ADDRESS, COMPLIANT_USDC_ADDRESS, OFFICIAL_USDT_ADDRESS, OFFICIAL_USDC_ADDRESS, DODO_APPROVE_ADDRESS |
forge script script/dex/DeployDODOPMMIntegration.s.sol --rpc-url $RPC_URL_138 --broadcast --private-key $PRIVATE_KEY |
| 3.2 | Create pools | — | After 3.1 | createCUSDTUSDTPool, createCUSDCUSDCPool, createCUSDTCUSDCPool via DODO |
| 3.3 | Set env | — | CHAIN_138_DODO_POOL_MANAGER, CHAIN_138_DODO_VENDING_MACHINE |
.env |
| 3.4 | Update docs | — | LIQUIDITY_POOLS_MASTER_MAP, routing table | LIQUIDITY_POOL_CONTROLS_RUNBOOK |
Phase 4 — Reserve Keeper & Paymaster (Optional)
| # | Item | Status | Env | Notes |
|---|---|---|---|---|
| 4.1 | Reserve Keeper (Phase 4) | Skips when unset | ORACLE_PRICE_FEED or RESERVE_KEEPER |
Set to deploy; or set RESERVE_KEEPER to existing address to skip |
| 4.2 | Paymaster (Phase 9) | Informational | ENTRY_POINT, SMART_ACCOUNT_FACTORY, PAYMASTER |
Deploy from ERC-4337 / Smart Accounts kit, then set env |
Phase 5 — Routing Table Gaps (from CHAIN138_COMPLETE_ROUTING_TABLE)
| # | Gap | Action | Status |
|---|---|---|---|
| 5.1 | Trustless (Lockbox138) | Deploy (Phase 1.1) | ✅ Done |
| 5.2 | CCIP Gnosis/Celo/Wemix | Phase 2 | ⚠️ Config ready |
| 5.3 | DODO PMM on-chain swaps | Phase 3 | ❌ Not deployed |
| 5.4 | LINK 138→Mainnet relay | Extend CCIPRelayBridge or add LINK receiver; set relaySupported in token-mapping.json | RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK |
| 5.5 | Tether Chain 138 | No bridge mapping — document only or add Bridge Vault route if needed | — |
Phase 6 — Operator / LAN Tasks
| # | Task | Command / doc | Owner |
|---|---|---|---|
| 6.1 | Blockscout verification | source smom-dbis-138/.env 2>/dev/null; ./scripts/verify/run-contract-verification-with-proxy.sh |
Operator |
| 6.2 | Fix E2E 502s | ./scripts/maintenance/run-all-maintenance-via-proxmox-ssh.sh --e2e or address-all-remaining-502s.sh |
Operator |
| 6.3 | RPC 2101 approve & sync | ./scripts/verify/verify-rpc-2101-approve-and-sync.sh |
Operator |
| 6.4 | Run operator script | ./scripts/run-all-operator-tasks-from-lan.sh [--deploy] [--create-vms] |
Operator |
Phase 7 — External & Third-Party
| # | Task | Owner | Ref |
|---|---|---|---|
| 7.1 | Ledger | Await Tally response; sign agreement | ADD_CHAIN138_TO_LEDGER_LIVE |
| 7.2 | Trust Wallet | PR to trustwallet/wallet-core | ADD_CHAIN138_TO_TRUST_WALLET |
| 7.3 | Consensys | Outreach for Swaps/Bridge | CONSENSYS_OUTREACH_PACKAGE |
| 7.4 | CoinGecko/CMC | Submit Chain 138 + tokens | COINGECKO_SUBMISSION_GUIDE |
Phase 8 — Missing Items (from REMAINING_COMPONENTS)
| # | Item | Action |
|---|---|---|
| 8.1 | AddressMapper other chains | Cronos ✅; for others: DeployAddressMapperOtherChain.s.sol, set mapper in smart-contracts-master.json |
| 8.2 | Code placeholders | AlltraAdapter fee (setBridgeFee), smart accounts kit, quote service Fabric chainId, EnhancedSwapRouter |
| 8.3 | API keys | Add Coingecko, CMC keys to .env |
| 8.4 | cancel-pending-transactions.sh RPC | Script defaults to RPC_ALLTRA_1 (250) for Chain 138; ensure RPC_URL_138 is set in .env or fix fallback to 192.168.11.211 |
| 8.5 | cast nonce pending | cancel-pending-transactions.sh uses cast nonce --pending; some cast versions don't support it — may need curl-based nonce check (see Phase 0) |
Execution Order (Recommended)
- Phase 0 — Unblock stuck tx (choose one option)
- Phase 1 — Lockbox138, eMoney, Trustless Mainnet
- Phase 2 — Gnosis, Celo, Wemix CCIP
- Phase 3 — DODO PMM (requires DODO env)
- Phase 4 — Reserve Keeper, Paymaster (if needed)
- Phase 6 — Operator tasks (Blockscout, 502s, RPC)
- Phase 5 — Update routing table as each completes
- Phase 7 — External (async)
- Phase 8 — Code/config hygiene
Quick Commands Reference
# Check stuck tx
source smom-dbis-138/.env; RPC="$RPC_URL_138"; D="$DEPLOYER"
printf "Latest: %d | Pending: %d\n" $((0x$(curl -s -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getTransactionCount\",\"params\":[\"$D\",\"latest\"],\"id\":1}" "$RPC" | jq -r '.result'))) $((0x$(curl -s -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getTransactionCount\",\"params\":[\"$D\",\"pending\"],\"id\":1}" "$RPC" | jq -r '.result')))
# Deploy Lockbox138 with nonce skip
cd smom-dbis-138 && source .env && forge create contracts/bridge/trustless/Lockbox138.sol:Lockbox138 \
--rpc-url "$RPC_URL_138" --private-key "$PRIVATE_KEY" --nonce 13275 --gas-price 20000000000 --broadcast
# Run phases 6,8 after unblock
./scripts/run-optional-deployments.sh --execute --phases 6,8
# Flush mempool (from host with SSH to r630-01)
bash scripts/flush-stuck-tx-rpc-and-validators.sh --full