Files
proxmox/docs/00-meta/COMPLETION_MASTER_PLAN.md
defiQUG bea1903ac9
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Sync all local changes: docs, config, scripts, submodule refs, verification evidence
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:46:06 -08:00

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)

  1. Phase 0 — Unblock stuck tx (choose one option)
  2. Phase 1 — Lockbox138, eMoney, Trustless Mainnet
  3. Phase 2 — Gnosis, Celo, Wemix CCIP
  4. Phase 3 — DODO PMM (requires DODO env)
  5. Phase 4 — Reserve Keeper, Paymaster (if needed)
  6. Phase 6 — Operator tasks (Blockscout, 502s, RPC)
  7. Phase 5 — Update routing table as each completes
  8. Phase 7 — External (async)
  9. 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

References