Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
164 lines
9.5 KiB
Markdown
164 lines
9.5 KiB
Markdown
# 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](../07-ccip/OPTIONAL_DEPLOYMENTS_START_HERE.md) | [CHAIN138_COMPLETE_ROUTING_TABLE](../07-ccip/CHAIN138_COMPLETE_ROUTING_TABLE.md) | [NEXT_STEPS_AND_REMAINING_TODOS](NEXT_STEPS_AND_REMAINING_TODOS.md)
|
|
|
|
---
|
|
|
|
## 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):
|
|
```bash
|
|
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](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md) |
|
|
| 2.2 | **Celo** | Same for Celo (42220) | Same |
|
|
| 2.3 | **Wemix** | Same for Wemix (1111); verify token addresses on [scan.wemix.com/tokens](https://scan.wemix.com/tokens) | Same, [WEMIX_TOKEN_VERIFICATION](../07-ccip/WEMIX_TOKEN_VERIFICATION.md) |
|
|
| 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](../07-ccip/RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK.md) |
|
|
| 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 | REQUIRED_FIXES_UPDATES_GAPS |
|
|
| 8.3 | **API keys** | Add Coingecko, CMC keys to .env | reports/API_KEYS_REQUIRED.md |
|
|
| 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)
|
|
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
- [OPTIONAL_DEPLOYMENTS_START_HERE](../07-ccip/OPTIONAL_DEPLOYMENTS_START_HERE.md)
|
|
- [CHAIN138_COMPLETE_ROUTING_TABLE](../07-ccip/CHAIN138_COMPLETE_ROUTING_TABLE.md)
|
|
- [CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md)
|
|
- [NEXT_STEPS_AND_REMAINING_TODOS](NEXT_STEPS_AND_REMAINING_TODOS.md)
|
|
- [REMAINING_COMPONENTS_TASKS_AND_RECOMMENDATIONS](REMAINING_COMPONENTS_TASKS_AND_RECOMMENDATIONS.md)
|
|
- [STEPS_FROM_PROXMOX_OR_LAN_WITH_SECRETS](STEPS_FROM_PROXMOX_OR_LAN_WITH_SECRETS.md)
|