# Operator Ready Checklist — Copy-Paste Commands **Last Updated:** 2026-03-02 **Purpose:** Single page with exact commands to complete every pending todo. Run from **repo root** on a host with **LAN** access (and `smom-dbis-138/.env` with `PRIVATE_KEY`, `NPM_PASSWORD` where noted). **From anywhere (no LAN):** `./scripts/run-completable-tasks-from-anywhere.sh` --- ## 1. High: Gnosis, Celo, Wemix CCIP bridges **Ref:** [CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md) **Prereqs:** Confirm [CCIP supports](https://docs.chain.link/ccip/supported-networks) 100, 42220, 1111. Per chain: RPC, CCIP Router, LINK, WETH9/WETH10, deployer with native gas (xDAI, CELO, WEMIX). ```bash cd smom-dbis-138 source .env # Per chain (set RPC_URL, CCIP_ROUTER_ADDRESS, LINK_TOKEN_ADDRESS, WETH9_ADDRESS, WETH10_ADDRESS, PRIVATE_KEY) forge script script/deploy/bridge/DeployWETHBridges.s.sol:DeployWETHBridges --rpc-url "$RPC_URL" --broadcast -vvvv ``` Then add destinations (Chain 138 ↔ each chain) and fund with LINK — use: ```bash DRY_RUN=1 ./scripts/deployment/complete-config-ready-chains.sh # print commands ./scripts/deployment/complete-config-ready-chains.sh # run (requires bridge addresses in .env) ``` **Full steps:** See runbook § Step 1–4. --- ## 2. Medium: LINK support on Mainnet relay **Ref:** [RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK](../07-ccip/RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK.md) **Options:** A = extend CCIPRelayBridge to accept LINK; B = deploy separate LINK receiver. After implement + deploy + fund: ```bash # In config/token-mapping.json set relaySupported: true for LINK # Update TOKEN_MAPPING_AND_MAINNET_ADDRESSES.md and CCIP_BRIDGE_MAINNET_CONNECTION.md # Restart relay service on r630-01: /opt/smom-dbis-138/services/relay ``` --- ## 3. LAN: Blockscout verification ```bash source smom-dbis-138/.env 2>/dev/null ./scripts/verify/run-contract-verification-with-proxy.sh ``` Single contract retry: `./scripts/verify/run-contract-verification-with-proxy.sh --only ContractName` --- ## 4. LAN: Fix E2E 502s ```bash ./scripts/maintenance/run-all-maintenance-via-proxmox-ssh.sh --e2e # Or lighter: ./scripts/maintenance/address-all-remaining-502s.sh --run-besu-fix --e2e ``` **Runbook:** [502_DEEP_DIVE_ROOT_CAUSES_AND_FIXES.md](502_DEEP_DIVE_ROOT_CAUSES_AND_FIXES.md) --- ## 5. LAN: Run all operator tasks (backup + verify ± deploy ± create-vms) ```bash ./scripts/run-all-operator-tasks-from-lan.sh --dry-run # print steps ./scripts/run-all-operator-tasks-from-lan.sh # backup + Blockscout verify ./scripts/run-all-operator-tasks-from-lan.sh --deploy # + contract deploy ./scripts/run-all-operator-tasks-from-lan.sh --create-vms # + create DBIS Core containers ./scripts/run-all-operator-tasks-from-lan.sh --deploy --create-vms ``` --- ## 5a. LAN: Token-aggregation DB and migrations (VMID 5000) If `/health` returns "database token_aggregation does not exist": ```bash ./scripts/apply-token-aggregation-fix.sh # create DB, run migrations, restart (via Proxmox) ./scripts/apply-token-aggregation-fix.sh --dry-run # print steps only ``` If VMID 5000 has no `postgres` user, run `createdb` and migrations on the host where PostgreSQL runs, or set token-aggregation `DATABASE_URL` to `explorer_db` and run `smom-dbis-138/services/token-aggregation/scripts/run-migrations.sh` there. --- ## 5b. LAN: Chain 138 next steps (Phase 2: preflight → mirror+pool → register c* as GRU → verify) **Ref:** [DEPLOYMENT_ORDER_OF_OPERATIONS](../03-deployment/DEPLOYMENT_ORDER_OF_OPERATIONS.md) Phase 2. Use when mirror/pool/GRU registration or verify are pending. ```bash ./scripts/deployment/run-all-next-steps-chain138.sh --dry-run # print steps only ./scripts/deployment/run-all-next-steps-chain138.sh # run all (preflight, deploy mirror+pool, register c*, verify) ./scripts/deployment/run-all-next-steps-chain138.sh --skip-mirror # pool + register + verify only (set TRANSACTION_MIRROR_ADDRESS in smom-dbis-138/.env first) ``` If TransactionMirror deploy fails with **CreateCollision:** set `TRANSACTION_MIRROR_ADDRESS=0xC7f2Cf4845C6db0e1a1e91ED41Bcd0FcC1b0E141` in `smom-dbis-138/.env` and re-run with `--skip-mirror`. See [TRANSACTION_MIRROR_CHAIN138_COLLISION_FIX](../03-deployment/TRANSACTION_MIRROR_CHAIN138_COLLISION_FIX.md). --- ## 6. Low: DODO PMM on Chain 138 **Ref:** [OPTIONAL_DEPLOYMENTS_START_HERE](../07-ccip/OPTIONAL_DEPLOYMENTS_START_HERE.md) §2B **Prereqs:** Set in `smom-dbis-138/.env`: `DODO_VENDING_MACHINE_ADDRESS`, `COMPLIANT_USDT_ADDRESS`, `COMPLIANT_USDC_ADDRESS`. ```bash ./scripts/run-optional-deployments.sh --execute --phases 7 # Or from smom-dbis-138: ./scripts/deployment/deploy-optional-future-all.sh (Phase 7 = DODO) ``` --- ## 7. Low: Mainnet trustless stack (Lockbox138 + Mainnet) **Ref:** [OPTIONAL_DEPLOYMENTS_START_HERE](../07-ccip/OPTIONAL_DEPLOYMENTS_START_HERE.md) §2C **Prereqs:** `ETHEREUM_MAINNET_RPC`, Mainnet ETH for deployer. ```bash cd smom-dbis-138 source .env forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \ --rpc-url "$ETHEREUM_MAINNET_RPC" --broadcast --via-ir --verify # Then: Lockbox138 on 138; configure Lockbox138↔InboxETH; fund liquidity. See runbook §C. ``` --- ## 8. Wave 0: sendCrossChain (real) and NPMplus backup **sendCrossChain (real):** Requires `PRIVATE_KEY` and LINK approved in `.env`. Bridge: `0x971cD9D156f193df8051E48043C476e53ECd4693`. ```bash bash scripts/bridge/run-send-cross-chain.sh 0.01 [recipient_address] # Omit --dry-run to execute. Example: bash scripts/bridge/run-send-cross-chain.sh 0.01 0x... ``` **NPMplus backup:** Requires `NPM_PASSWORD` in `.env` and host on LAN. ```bash bash scripts/verify/backup-npmplus.sh # Or combined Wave 0: bash scripts/run-wave0-from-lan.sh ``` **NPMplus RPC fix (405):** From LAN: `bash scripts/nginx-proxy-manager/update-npmplus-proxy-hosts-api.sh`. Verify: `bash scripts/verify/verify-end-to-end-routing.sh`. --- ## 9. Wemix token verification (High) Open [scan.wemix.com/tokens](https://scan.wemix.com/tokens); confirm WETH, USDT, USDC addresses. If different, update `config/token-mapping-multichain.json` and [WEMIX_TOKEN_VERIFICATION.md](../07-ccip/WEMIX_TOKEN_VERIFICATION.md). Then: ```bash ./scripts/validation/validate-config-files.sh ``` --- ## References - [COMPLETE_REQUIRED_OPTIONAL_RECOMMENDED_INDEX.md](COMPLETE_REQUIRED_OPTIONAL_RECOMMENDED_INDEX.md) — full plan (required, optional, recommended) - [TODOS_CONSOLIDATED.md](TODOS_CONSOLIDATED.md) — full task list - [NEXT_STEPS_AND_REMAINING_TODOS.md](NEXT_STEPS_AND_REMAINING_TODOS.md) — detail and completed items - [STEPS_FROM_PROXMOX_OR_LAN_WITH_SECRETS.md](STEPS_FROM_PROXMOX_OR_LAN_WITH_SECRETS.md) — full LAN steps