Files
smom-dbis-138/docs/deployment/DEPLOYED_CONTRACTS_OVERVIEW.md
defiQUG a780eff7c5 docs(deployment): update CCIPWETH10Bridge address across documentation and scripts
- Changed CCIPWETH10Bridge address from `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` to `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` in various deployment documents and scripts.
- Ensured consistency in bridge configuration and verification steps for ChainID 138 and Mainnet.

Made-with: Cursor
2026-03-24 22:49:50 -07:00

23 KiB
Raw Blame History

Deployed Smart Contracts — Cross-Network Overview

Last updated: 2026-02-20
Source: smom-dbis-138/.env and deployment runbooks.

Script conventions: Deployment scripts use tags (CLI args) for one-off values instead of .env placeholders, support interactive prompts when run without args, and are callable from other scripts (e.g. run-all-four-gaps.sh g4 --eth 1). See scripts/lib/deployment/README.md.

Env vars for Chain 138 and Mainnet: .env includes mainnet aliases (BOND_MANAGER, CHALLENGE_MANAGER, LIQUIDITY_POOL, INBOX_ETH, SWAP_ROUTER, BRIDGE_SWAP_COORDINATOR) for scripts that expect unsuffixed names (e.g. InitializeBridgeSystem.s.sol, FundMainnetLP.s.sol). Chain 138 explicit names: CHAIN_138_CCIP_ROUTER, CHAIN_138_DODO_PMM_INTEGRATION, CHAIN_138_DODO_VENDING_MACHINE; optional CHAIN138_SELECTOR (from CCIP Router getChainSelector() on 138). See .env.example for all contract vars.

This document maps all deployed contracts by network, what each enables, requirements, and live-test status.


1. Network map (high level)

flowchart TB
  subgraph CHAIN138["Chain 138 (primary)"]
    UAR[Universal Asset Registry]
    GC[Governance Controller]
    UCB[Universal CCIP Bridge]
    BO[Bridge Orchestrator]
    CCIP9_138[CCIPWETH9 Bridge]
    CCIP10_138[CCIPWETH10 Bridge]
    ROUTER_138[CCIP Router]
    LOGGER_R[CCIPTxReporter]
    PMM[DODO PMM Integration]
    CORE[Compliance, Token Factory, Vault, Oracle, etc.]
  end

  subgraph MAINNET["Ethereum Mainnet"]
    CCIP9_ETH[CCIPWETH9 Bridge]
    CCIP10_ETH[CCIPWETH10 Bridge]
    CCL[CCIPLogger]
    TRUST[BondManager, LP, Inbox, SwapRouter]
  end

  subgraph L2_OTHER["BSC, Polygon, Base, Optimism, Arbitrum, Avalanche, Cronos, Gnosis"]
    CCIP9_OTH[CCIP WETH9/10 Bridges]
  end

  CHAIN138 -->|CCIP| MAINNET
  CHAIN138 -->|CCIP| L2_OTHER
  MAINNET -->|CCIP| CHAIN138
  L2_OTHER -->|CCIP| CHAIN138
  L2_OTHER -->|CCIP| MAINNET

2. Deployed contracts by network

2.1 Chain 138 (canonical)

Category Contract Address Purpose
Phased core Universal Asset Registry 0x0cb05600f58b310CD4734D2450A13D8d165a7658 Asset registration
Governance Controller 0x29494F1C0011f87620501e3e5256bF4bf3308cD6 Governance
Universal CCIP Bridge 0x10DBF6B0f2C9074855930284930FAdf697E1B92F CCIP bridge logic
Bridge Orchestrator 0x2f8FcFff8c3C6c5d807bADAd45358456543675B4 Bridge coordination
CCIP CCIPWETH9 Bridge 0xcacfd227A040002e49e2e01626363071324f820a WETH9 cross-chain
CCIPWETH10 Bridge 0xe0E93247376aa097dB308B92e6Ba36bA015535D0 WETH10 cross-chain
CCIP Router 0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817 CCIP router (on 138)
CCIPTxReporter 0x3F88b662F04d9B1413BA8d65bFC229e830D7d077 Report txs to mainnet logger
PMM Mock DVM Factory 0xB16c3D48A111714B1795E58341FeFDd643Ab01ab Create mock pools
DODOPMMIntegration 0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D cUSDT/cUSDC pools
Core eMoney Compliance Registry, Token Factory, Bridge Vault, Debt Registry, Policy Manager, Token Impl (see .env) Core system
Channels Payment Channel Manager, Address Mapper, Mirror Manager (see .env) State channels
Oracle Oracle Aggregator, Oracle Proxy (see .env) Price feeds
Vault / Reserve Vault Factory, Reserve System, Reserve Token Integration (see .env) Reserves
Settlement Merchant Settlement Registry, Withdrawal Escrow (see .env) alltra-lifi
CREATE2 Universal Asset Registry (det.), Universal CCIP Bridge (det.), Mirror Registry, Alltra Adapter (see .env) Deterministic deploys
Lockbox Lockbox 138 0xC3a91d466fDAaBA8C8AF3af76c7036e4A113B669 Trustless bridge receiver

2.2 Ethereum Mainnet

Category Contract Address Purpose
CCIP CCIPWETH9 Bridge 0xc9901ce2Ddb6490FAA183645147a87496d8b20B6 WETH9 cross-chain
CCIPWETH10 Bridge 0x04E1e22B0D41e99f4275bd40A50480219bc9A223 WETH10 cross-chain
CCIP Logger 0x4F95297C23d9f4A1032B1c6a2E553225CB175BEe Receive 138 tx reports
Trustless bridge Bond Manager 0x11197e5eEEbf53d1E6a96a4e05efe2ef90c5b24b Bonds
Challenge Manager 0x3714B1A312e0916C7dCdc4EdF480Fc0339E59A59 Disputes
Liquidity Pool 0x603e078eb5Cca4F5c817A2F76D073f924D7272d3 LP
Inbox 0xe1a51Bc037a79AB36767561B147eb41780124934 Inbox
Swap Router 0xC2FA05F12a75Ac84ea778AF9D6935cA807275E55 Swaps
Bridge Swap Coordinator 0xF51581eee46f5A7Ef2A035C5B3Ac4a89bF6FbaAa Coordination
Canonical WETH9 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 Pre-existing
WETH10 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f Pre-existing

2.3 Other L2 / EVM (CCIP WETH bridges only)

Each row is one network; all have WETH9, WETH10, CCIPWETH9Bridge, CCIPWETH10Bridge deployed (addresses in .env).

Network Chain ID CCIP WETH9 CCIP WETH10 LINK in .env RPC env (example) Explorer (example)
BSC 56 BSC_RPC_URL / INFURA https://bscscan.com
Polygon 137 POLYGON_RPC_URL / INFURA https://polygonscan.com
Base 8453 BASE_MAINNET_RPC https://basescan.org
Optimism 10 OPTIMISM_MAINNET_RPC https://optimistic.etherscan.io
Arbitrum 42161 ARBITRUM_MAINNET_RPC https://arbiscan.io
Avalanche 43114 AVALANCHE_RPC_URL https://snowtrace.io
Cronos 25 CRONOS_RPC_URL https://cronoscan.com
Gnosis 100 GNOSIS_RPC_URL https://gnosisscan.io

2.4 Chain 138 contract stack (dependency flow)

How core bridge and CCIP components relate:

flowchart TB
  UAR[Universal Asset Registry]
  GC[Governance Controller]
  UCB[Universal CCIP Bridge]
  BO[Bridge Orchestrator]
  R138[CCIP Router 138]
  B9[CCIPWETH9 Bridge]
  B10[CCIPWETH10 Bridge]
  REP[CCIPTxReporter]
  LOG[CCIP Logger mainnet]

  UAR --> UCB
  GC --> UCB
  UCB --> BO
  BO --> B9
  BO --> B10
  R138 --> B9
  R138 --> B10
  REP -.->|reports txs| LOG

2.5 Trustless bridge data flow (138 ↔ Ethereum)

User path from Chain 138 lockbox to mainnet:

sequenceDiagram
  participant U as User
  participant L as Lockbox 138
  participant I as Inbox (mainnet)
  participant LP as Liquidity Pool
  participant R as Swap Router
  participant B as Bond Manager

  U->>L: Deposit / lock
  L->>I: Cross-chain message (relay)
  I->>LP: Withdraw / claim
  LP->>R: Swap (optional)
  R->>U: Outbound asset
  B->>B: Bonds / challenges (disputes)

2.6 Deployment footprint by network (contract types)

Which contract categories exist on each network:

Contract type 138 ETH BSC Polygon Base Opt Arb Avax Cronos Gnosis
UAR / UCB / BO
CCIP WETH9/10 bridges
CCIP Logger
CCIPTxReporter
Trustless (Bond, LP, Inbox, Router)
Lockbox
PMM (DODO / mock DVM)
Core eMoney (Compliance, Vault, Oracle, etc.)
ISO4217W

2.7 Missing deployments for faster liquidity

The footprint above shows PMM, Trustless (LP/Inbox), and Lockbox only on 138 and/or Ethereum. Deploying the following would enable faster or deeper liquidity:

Missing deployment Enables Where missing Script / runbook Notes
PMM / DODO integration on L2s Local swap liquidity on BSC, Polygon, Base, etc.; users swap on L2 without bridging to 138 first BSC, Polygon, Base, Optimism, Arbitrum, Avalanche, Cronos, Gnosis DeployDODOPMMIntegration.s.sol per chain; use official DODO DVM on each (DODO lists these chains). Set chain-specific DODO_VENDING_MACHINE_ADDRESS, OFFICIAL_USDT_*, OFFICIAL_USDC_* in .env. Requires compliant or bridge-wrapped token addresses on each L2; DODO is already deployed on these chains by DODO team.
Trustless Inbox + LP on L2s Direct 138 ↔ L2 trustless flow (lock on 138 or L2, claim on the other) instead of only 138 ↔ Mainnet BSC, Polygon, Base, Optimism, Arbitrum, Avalanche, Cronos, Gnosis DeployTrustlessBridge.s.sol — currently mainnet-only for Inbox/LP/Bond. Would need chain-specific script or params (WETH address, chain id). Design today: Lockbox 138 ↔ Inbox/LP Mainnet. Extending to L2 = deploy Inbox + BondManager + LP (+ SwapRouter) on each L2 and optionally Lockbox on L2.
Lockbox on L2s Users lock on BSC/Polygon/etc. and claim on 138 (or vice versa) BSC, Polygon, Base, Optimism, Arbitrum, Avalanche, Cronos, Gnosis Same as above; Lockbox is chain-specific (e.g. Lockbox138). Would need LockboxBSC, LockboxPolygon, etc. or a parameterized Lockbox. Paired with Inbox on 138 or mainnet depending on direction.
Fund mainnet Liquidity Pool Trustless claims on mainnet can be paid out; no new contracts Ethereum (LP already deployed) Operator adds ETH/WETH to LiquidityPoolETH (see .env LIQUIDITY_POOL_*). ALL_MAINNETS_DEPLOYMENT_RUNBOOK.md §5.2 and Requirements §4.
flowchart LR
  subgraph NOW["Current liquidity path"]
    A[User on L2] -->|CCIP only after LINK| B[138 or Mainnet]
    C[User on 138] -->|Trustless| D[Mainnet LP]
  end

  subgraph AFTER["After missing deployments"]
    A2[User on L2] -->|PMM on L2| E[Swap on L2]
    A2 -->|Lockbox + Inbox on L2| F[Claim on 138]
    C2[User on 138] -->|Inbox on L2| G[Claim on L2]
    D2[Mainnet LP] -->|Funded| H[Payouts work]
  end

Summary: The largest gaps for faster liquidity are (1) PMM/DODO integration on each L2 (use official DODO; add DODOPMMIntegration + pools per chain), (2) Trustless Inbox + LP (+ optional Lockbox) on L2s for direct 138 ↔ L2 trustless flows, and (3) Funding the existing mainnet LP so current trustless claims can be paid.

Tasks list (4 gaps)

# Task Status Script / action
G1 Deploy PMM / DODO integration on L2s (BSC, Polygon, Base, Optimism, Arbitrum, Avalanche, Cronos, Gnosis) Script ready scripts/deployment/deploy-pmm-all-l2s.sh; set per-chain *_RPC, *_DODO_VENDING_MACHINE_ADDRESS, *_OFFICIAL_USDT_ADDRESS, *_OFFICIAL_USDC_ADDRESS in .env and run
G2 Deploy Trustless Inbox + LP (+ Bond) on L2s for direct 138 ↔ L2 flows Script ready DeployTrustlessBridge.s.sol supports L2 when TRUSTLESS_WETH_ADDRESS set; scripts/deployment/deploy-trustless-l2s.sh runs per chain
G3 Deploy Lockbox on L2s (lock on L2, claim on 138 or vice versa) Script ready Same as G2; use --lockbox tag
G4 Fund mainnet Liquidity Pool (ETH/WETH) so trustless claims can be paid out Script ready scripts/deployment/fund-mainnet-lp.sh --eth <amt> --weth <amt> or run script for interactive prompt; .env only for LIQUIDITY_POOL_ETH_MAINNET, RPC, key

3. Capability matrix — what can be done now

Capability Networks involved Requirements Can do now? Notes
RPC / read Chain 138 Chain 138 RPC_URL_138, .env Yes verify-chain138-full-deployment.sh passes
CCIP wrap & bridge WETH (138 ↔ Mainnet) 138, Ethereum Bridges + CCIP Router + LINK on both chains ⚠️ After LINK Deployer needs LINK; fund-ccip-bridges-with-link.sh
CCIP wrap & bridge WETH (138 ↔ BSC, Polygon, etc.) 138, L2s Same + per-chain LINK ⚠️ After LINK 20 LINK per chain (10 per bridge)
Report Chain 138 txs to mainnet 138 → Ethereum CCIPTxReporter (138), CCIPLogger (mainnet), CCIP config Contracts live Flow ready; relay/watcher may need run
Create cUSDT/cUSDC pools (PMM) Chain 138 DODO_VENDING_MACHINE_ADDRESS, DODOPMMIntegration Yes Mock DVM deployed; createCUSDTUSDTPool etc.
Trustless bridge (lockbox ↔ mainnet) 138, Ethereum Lockbox_138, BondManager, LP, Inbox, SwapRouter Contracts live Needs liquidity and config for full flow
Tokenize / compliance (mint, vault) Chain 138 Compliance Registry, Token Factory, Bridge Vault Yes Core eMoney stack deployed
Oracle price feeds Chain 138 Oracle Aggregator, Oracle Proxy Yes Configured on 138
State channels / mirror Chain 138 Payment Channel Manager, Address Mapper, Mirror Manager Yes Deployed
Settlement (alltra-lifi) Chain 138 Settlement Registry, Withdrawal Escrow Yes Deployed
ISO4217W (Cronos) Cronos ISO4217W_* contracts Deployed Cronos-only
CCIPLogger on other L2s BSC, Polygon, etc. deploy-ccip-logger-all-chains.sh Optional Only mainnet logger deployed so far
PMM / DODO pools on L2s BSC, Polygon, Base, etc. DODOPMMIntegration + official DODO DVM per chain; token addresses on L2 Not deployed Would allow local swap liquidity on each L2; see §2.7
Trustless 138 ↔ L2 (Lockbox + Inbox on L2) 138 + any L2 Deploy Inbox/LP/Bond (and optional Lockbox) on L2; extend DeployTrustlessBridge or add chain-specific script Not deployed Direct lock/claim 138 ↔ L2; see §2.7
Mainnet LP funded Ethereum Add ETH/WETH to LiquidityPoolETH ⚠️ Operator action Enables payouts for existing trustless claims; no new contracts

4. Requirements summary (by capability)

Requirement Where Status / action
LINK on each chain All CCIP bridge chains Deployer must hold LINK; run fund-ccip-bridges-with-link.sh (10 LINK per bridge, 20 per chain with 2 bridges)
Native gas (ETH/BNB/MATIC etc.) Each chain Deployer needs gas for relay and user txs
DODO_VENDING_MACHINE_ADDRESS Chain 138 Set (mock DVM). For real DODO, deploy official DVM or use adapter (see DVM_DEPLOYMENT_CHECK.md)
RPC for Chain 138 .env RPC_URL_138 / CHAIN138_RPC_URL set
CCIP chain selectors .env CHAIN138_SELECTOR, ETH_MAINNET_SELECTOR, per-chain selectors set
Trustless bridge liquidity Ethereum mainnet LP contract deployed; add liquidity for production use

5. Live / tested status

What How tested Result
Chain 138 deployment verify-chain138-full-deployment.sh 14 checks pass, 2 warnings (optional: besu namespace, genesis)
Prerequisites ensure-prerequisites.sh Pass (PMM set, LINK script available)
PMM deployment run-pmm-and-pools.sh DODOPMMIntegration deployed; pools can be created
LINK funding fund-ccip-bridges-with-link.sh (real run) Failed (no LINK balance); DRY_RUN shows commands
Cross-chain CCIP transfer No automated e2e in repo ⚠️ Not run; possible once bridges funded with LINK
CCIPLogger receive No automated test in repo ⚠️ Not run; CCIPTxReporter → CCIPLogger flow ready on-chain
Trustless bridge (lockbox) Script/doc verification ⚠️ Contracts verified on-chain; full path not live-tested
Ethereum mainnet contracts Etherscan / prior docs Deployed and some verified (see MAINNET_VERIFICATION_COMPLETE etc.)
BSC, Polygon, Base, etc. .env + DeployAll / docs Addresses in .env; verification status per chain in deployment docs

flowchart LR
  subgraph NOW["✅ Possible now"]
    A[RPC & read 138]
    B[PMM create pools]
    C[Tokenize / compliance]
    D[Oracle feeds]
    E[Channels / mirror]
    F[Settlement]
    G[Tx report to logger]
  end

  subgraph AFTER_LINK["⚠️ After funding LINK"]
    H[CCIP WETH 138 ↔ Mainnet]
    I[CCIP WETH 138 ↔ L2s]
  end

  subgraph OPERATOR["🔧 Operator / config"]
    J[Add trustless LP]
    K[Run relay/watcher]
  end

  NOW --> AFTER_LINK
  AFTER_LINK --> J

7. Layer diagram (stack by capability)

flowchart TB
  subgraph L1["L1 — Chain 138 core"]
    C1[Compliance / Token Factory / Vault]
    C2[Oracle / Channels / Settlement]
    C3[PMM / Mock DVM]
  end

  subgraph L2["L2 — CCIP (all 10 networks)"]
    C4[WETH9/10 bridges]
    C5[Router / Reporter / Logger]
  end

  subgraph L3["L3 — Trustless (138 + mainnet)"]
    C6[Lockbox 138]
    C7[Bond / LP / Inbox / Swap mainnet]
  end

  L1 --> L2
  L2 --> L3

8. Quick reference — scripts and docs

Script Purpose
scripts/deployment/ensure-prerequisites.sh Check .env, keys, RPC, PMM, LINK note
scripts/deployment/verify-chain138-full-deployment.sh Full Chain 138 verification (RPC, contracts, .env)
scripts/deployment/check-balances-gas-and-deploy.sh Balance check; optional --deploy for 138
scripts/deployment/fund-ccip-bridges-with-link.sh Send LINK to all CCIP bridges (need LINK per chain)
scripts/deployment/run-pmm-and-pools.sh Deploy PMM integration and optional pools
scripts/deployment/deploy-official-dvm-chain138.sh Deploy official DODO DVM (blocked by Truffle/solc mix)
scripts/deployment/deploy-pmm-all-l2s.sh (G1) Deploy DODOPMMIntegration on each L2 (BSC, Polygon, Base, etc.); set per-chain .env
scripts/deployment/deploy-trustless-l2s.sh (G2/G3) Deploy Trustless stack (Bond, LP, Inbox, optional Lockbox) on each L2
scripts/deployment/fund-mainnet-lp.sh (G4) Fund mainnet LiquidityPoolETH; use --eth <amt> / --weth <amt> or interactive prompt (no .env amounts)
scripts/deployment/verify-trustless-deployments.sh Verify all Trustless contracts (BondManager, LP, Inbox, Lockbox) on Mainnet, 138, BSC, Polygon, Base, Optimism, Cronos, Arbitrum, Avalanche, Gnosis via cast code
Doc Content
docs/deployment/DVM_DEPLOYMENT_CHECK.md DVM options (mock vs official)
docs/deployment/WARNINGS_AND_OPTIONAL_TASKS.md Warnings and optional tasks
docs/deployment/NEXT_STEPS_COMPLETION.md Whats done vs operator tasks
docs/11-references/CONTRACT_ADDRESSES_REFERENCE.md Contract address reference


9. Network-to-network CCIP map

Which chains have CCIP WETH bridges and can talk to each other (once LINK is funded):

flowchart LR
  subgraph C138["Chain 138"]
    N138[CCIP Bridges]
  end
  subgraph ETH["Ethereum"]
    N1[CCIP Bridges]
  end
  subgraph L2["BSC, Polygon, Base, Optimism, Arbitrum, Avalanche, Cronos, Gnosis"]
    NL2[CCIP Bridges]
  end

  N138 <-->|CCIP WETH9/10| N1
  N138 <-->|CCIP WETH9/10| NL2
  N1 <-->|CCIP WETH9/10| NL2

All 10 networks have WETH9 + WETH10 + CCIPWETH9Bridge + CCIPWETH10Bridge in .env; CCIP can connect any pair once routers are configured and bridges funded with LINK.


10. One-page summary table (all networks)

Network Chain ID Core/CCIP PMM Trustless Explorer RPC env LINK funded Script verified E2E tested
Chain 138 138 Full Mock DVM Lockbox explorer.d-bis.org RPC_URL_138, CHAIN_138_RPC_URL verify-chain138 ⚠️ No e2e
Ethereum 1 CCIP + Logger + Trustless etherscan.io ETHEREUM_MAINNET_RPC, DESTINATION_RPC_URL ⚠️ Doc only
BSC 56 WETH9/10 + CCIP bscscan.com BSC_RPC_URL
Polygon 137 WETH9/10 + CCIP polygonscan.com POLYGON_RPC_URL
Base 8453 WETH9/10 + CCIP basescan.org BASE_MAINNET_RPC
Optimism 10 WETH9/10 + CCIP optimistic.etherscan.io OPTIMISM_MAINNET_RPC
Arbitrum 42161 WETH9/10 + CCIP arbiscan.io ARBITRUM_MAINNET_RPC
Avalanche 43114 WETH9/10 + CCIP snowtrace.io AVALANCHE_RPC_URL
Cronos 25 WETH9/10 + CCIP + ISO4217W cronoscan.com CRONOS_RPC_URL
Gnosis 100 WETH9/10 + CCIP gnosisscan.io GNOSIS_RPC_URL
  • LINK funded: Update to when fund-ccip-bridges-with-link.sh has been run successfully on that chain.
  • Script verified: verify-chain138-full-deployment.sh (Chain 138 only). Other chains: addresses in .env from deploy runbooks.
  • E2E tested: No automated e2e in repo for cross-chain CCIP or full trustless flow; operator can test manually after LINK funding.

11. CCIP chain selector env vars (for relay/config)

Network Chain ID CCIP selector env (example)
Chain 138 138 CHAIN138_SELECTOR
Ethereum 1 ETH_MAINNET_SELECTOR
BSC 56 BSC_SELECTOR (or per-runbook name)
Polygon 137 POLYGON_SELECTOR
Base 8453 BASE_SELECTOR
Optimism 10 OPTIMISM_SELECTOR
Arbitrum 42161 ARBITRUM_SELECTOR
Avalanche 43114 AVALANCHE_SELECTOR
Cronos 25 CRONOS_SELECTOR
Gnosis 100 GNOSIS_SELECTOR

Exact names may vary in .env; see smom-dbis-138/.env.example and deployment runbooks.


Summary: Contracts are deployed across Chain 138, Ethereum mainnet, and eight other EVM chains (BSC, Polygon, Base, Optimism, Arbitrum, Avalanche, Cronos, Gnosis). Everything that does not require LINK (RPC, PMM, tokenization, oracle, channels, settlement, tx reporting) can be used or tested now. CCIP WETH bridging is ready once LINK is funded on each chain; cross-chain CCIP and full trustless flows are not yet live-tested in this repo.


12. Optional next steps (operator)

Step Action Notes
CHAIN138_SELECTOR Set in .env (default 138). To use a custom value from your CCIP Router: run scripts/configuration/find-chain-selector.sh or cast call <CCIP_ROUTER> "getChainSelector()(uint64)" --rpc-url $RPC_URL_138 when RPC is reachable. Required for configure-*-bridges.sh, verify-chain138-full-deployment.sh.
Arbitrum / Avalanche / Gnosis Trustless Addresses are in .env (ARBITRUM_*, AVALANCHE_*, GNOSIS_*). verify-trustless-deployments.sh uses them when set. No action unless you need to override.
G4 Fund mainnet LP Use script tags (no .env placeholders): ./scripts/deployment/fund-mainnet-lp.sh --eth 1.5 --weth 0.5, or run interactively: ./scripts/deployment/fund-mainnet-lp.sh or ./scripts/deployment/run-all-four-gaps.sh g4. Modular and callable; operator runs with key and gas.