- Update submodule references for explorer-monorepo and smom-dbis-138 to latest commits. - Modify CI workflow to include shellcheck installation and enforce error severity for script checks. - Update contract addresses in configuration and documentation to reflect the new canonical addresses for CCIPWETH9Bridge and CCIP Router. - Revise integration test documentation to align with updated contract addresses and deployment statuses. Made-with: Cursor
7.9 KiB
Contracts to Deploy — Master List
Last Updated: 2026-02-12
Status: Reference
Repos: smom-dbis-138 (Foundry), alltra-lifi-settlement (Foundry)
This document lists all contracts that have deployment scripts, grouped by repo and purpose. Use it for compile, test, and deploy runs.
Chain 138: Use --with-gas-price 1000000000 for all forge script / forge create (chain minimum). CONTRACT_DEPLOYMENT_RUNBOOK. Env per script and gaps: DEPLOYMENT_GAPS_COMPLETED.
1. smom-dbis-138 (Chain 138 & multichain)
Location: smom-dbis-138/
Build: forge build
Test: forge test
1.1 Chain 138 — Immediate (CCIP WETH9 Bridge) ✅ Deployed
| Contract | Script | Status |
|---|---|---|
| CCIPWETH9Bridge | script/DeployCCIPWETH9Bridge.s.sol |
✅ 0xcacfd227A040002e49e2e01626363071324f820a |
| WETH9 (optional) | — | Pre-deployed in genesis |
Deploy (if needed): GAS_PRICE=1000000000 ./scripts/deploy-and-configure-weth9-bridge-chain138.sh
1.2 Phased core (01 → 02)
| Contract | Script | Depends / Env |
|---|---|---|
| UniversalAssetRegistry | script/deploy/01_DeployCore.s.sol |
PRIVATE_KEY |
| GovernanceController | script/deploy/01_DeployCore.s.sol |
PRIVATE_KEY, registry address |
| UniversalCCIPBridge | script/deploy/02_DeployBridges.s.sol |
PRIVATE_KEY, UNIVERSAL_ASSET_REGISTRY, CCIP_ROUTER |
| BridgeOrchestrator | script/deploy/02_DeployBridges.s.sol |
PRIVATE_KEY, registry, bridge |
Order: Run 01_DeployCore.s.sol first, set UNIVERSAL_ASSET_REGISTRY and GOVERNANCE_CONTROLLER, then run 02_DeployBridges.s.sol.
1.3 Deterministic (CREATE2) core
| Contract | Script | Env |
|---|---|---|
| CREATE2Factory | script/deploy/DeployDeterministicCore.s.sol |
PRIVATE_KEY |
| UniversalAssetRegistry (CREATE2) | same | PRIVATE_KEY, ADMIN (optional) |
| UniversalCCIPBridge (impl + proxy) | same | PRIVATE_KEY, CCIP_ROUTER (optional; set later) |
| MirrorRegistry (CREATE2) | same | — |
| AlltraAdapter (CREATE2) | same | — |
1.4 Multichain (DeployAll)
Script: script/DeployAll.s.sol
Chains: Mainnet (1), Cronos (25), BSC (56), Polygon (137), Gnosis (100), Avalanche (43114), Base (8453), Arbitrum (42161), Optimism (10). Chain 138 is not in DeployAll — use DeployCCIPWETH9Bridge.s.sol + shell script above.
| Contract | When |
|---|---|
| WETH9 | If not set in env for chain |
| WETH10 | If not set in env for chain |
| CCIPWETH9Bridge | All non-mainnet chains |
| CCIPWETH10Bridge | All non-mainnet chains |
| CCIPLogger | Optional; not implemented in Foundry script. Decision: Omit from deploy list unless CCIP monitoring is required; deploy via Hardhat per TASK12_CCIP_LOGGER_STATUS.md if needed. |
Chain-specific env vars: e.g. CCIP_ETH_ROUTER, CCIP_ETH_LINK_TOKEN, ETH_MAINNET_SELECTOR for mainnet; WETH9_POLYGON, WETH10_POLYGON, etc.
1.5 Other deploy scripts (by feature)
- Bridge:
script/deploy/bridge/DeployWETHBridges.s.sol,DeployEtherlinkRelayReceiver.s.sol;script/bridge/trustless/DeployTrustlessBridge.s.sol,DeployCompleteSystem.s.sol, etc. - Vault:
script/deploy/vault/DeployVaultSystem.s.sol,script/vault/DeployVaultSystem.s.sol - Reserve:
script/reserve/DeployReserveSystem.s.sol,DeployStablecoinReserveVault.s.sol,DeployKeeper.s.sol - Tokens:
script/DeployCompliantUSDC.s.sol,DeployCompliantUSDT.s.sol,script/deploy/DeployCompliantFiatTokens.s.sol;script/DeployTokenRegistry.s.sol;script/iso4217w/DeployWTokenSystem.s.sol;scripts/tokenization/DeployTokenizedEUR.s.sol,DeployTokenRegistry.s.sol - CCIP:
script/DeployCCIPReceiver.s.sol,script/DeployCCIPSender.s.sol,script/DeployCCIPRelay.s.sol,script/DeployTwoWayBridge.s.sol - Governance / multisig:
script/DeployVoting.s.sol,script/DeployMultiSig.s.sol,script/DeployFeeCollector.s.sol,script/DeployComplianceRegistry.s.sol - eMoney:
script/emoney/Deploy.s.sol,script/emoney/DeployChain138.s.sol - Smart accounts:
script/smart-accounts/DeploySmartAccountsKit.s.sol,DeployAccountWalletRegistryExtended.s.sol - Channels / mirror:
script/DeployPaymentChannelManager.s.sol,script/DeployGenericStateChannelManager.s.sol(Mainnet and/or Chain-138). AddressMapper and MirrorManager deployed on Chain 138 (2026-02-12) at0x439Fcb2d2ab2f890DCcAE50461Fa7d978F9Ffe1Aand0x6eD905A30c552a6e003061A38FD52A5A427beE56. TransactionMirror: deploy script can hit Forge constructor-args decode bug; useforge createwith encoded constructor and--with-gas-price 1000000000when needed. See smom-dbis-138docs/channels/anddocs/deployment/PAYMENT_CHANNELS_DEPLOYMENT.md. - Migration:
script/deploy/05_MigrateExistingAssets.s.sol(requiresUNIVERSAL_ASSET_REGISTRY,TOKENLIST_GOVERNANCE_SYNC)
2. alltra-lifi-settlement
Location: alltra-lifi-settlement/
Build: forge build
Test: forge test (Solidity); npm test / Jest for TS tests
2.1 Settlement (Chain 138) ✅ Deployed
| Contract | Script | Status |
|---|---|---|
| MerchantSettlementRegistry | scripts/deploy/deploy-merchant-settlement-registry.s.sol |
✅ 0x16D9A2cB94A0b92721D93db4A6Cd8023D3338800 |
| WithdrawalEscrow | scripts/deploy/deploy-withdrawal-escrow.s.sol |
✅ 0xe77cb26eA300e2f5304b461b0EC94c8AD6A7E46D |
Order: Deploy MerchantSettlementRegistry first; WithdrawalEscrow depends on CompliantUSDC (from smom-dbis-138).
3. Quick reference — compile & test
# smom-dbis-138
cd smom-dbis-138 && forge build && forge test
# alltra-lifi-settlement
cd alltra-lifi-settlement && forge build && forge test
4. Quick reference — deploy (Chain 138)
# CCIP WETH9 Bridge (recommended; fixes router mismatch)
export PRIVATE_KEY=0x...
./scripts/deploy-and-configure-weth9-bridge-chain138.sh
# Optional: RPC_URL_138 (Chain 138 Core), MAINNET_WETH9_BRIDGE_ADDRESS
# After: export CCIPWETH9_BRIDGE_CHAIN138=<printed_address>
# Core + Bridges (phased)
cd smom-dbis-138
forge script script/deploy/01_DeployCore.s.sol --rpc-url $RPC_URL_138 --broadcast --private-key $PRIVATE_KEY
# Set UNIVERSAL_ASSET_REGISTRY, GOVERNANCE_CONTROLLER
forge script script/deploy/02_DeployBridges.s.sol --rpc-url $RPC_URL_138 --broadcast --private-key $PRIVATE_KEY
# Requires: UNIVERSAL_ASSET_REGISTRY, CCIP_ROUTER
5. Build & test status (2026-01-31)
| Repo | Build | Tests | Notes |
|---|---|---|---|
| alltra-lifi-settlement | OK | 8/8 passed | Added remappings and solc = "0.8.20" in foundry.toml; installed openzeppelin-contracts and forge-std via forge install. Fixed etherscan key field. |
| smom-dbis-138 | Long-running (435 files) | — | forge build can take several minutes. forge script script/DeployCCIPWETH9Bridge.s.sol compiles on the fly when deploying. |
| Deploy (Chain 138 bridge) | — | — | Requires PRIVATE_KEY. Run ./scripts/deploy-and-configure-weth9-bridge-chain138.sh (use --dry-run to simulate without keys). |
6. References
- NEXT_STEPS_MASTER.md — Immediate: CCIP WETH9 Bridge
- CONTRACT_DEPLOYMENT_RUNBOOK.md — Deploy and verify workflow (Forge Verification Proxy)
- scripts/README.md — Bridge deploy script, dry-run
- 07-ccip/CCIP_DEPLOYMENT_SPEC.md — CCIP fleet
- COMPREHENSIVE_STATUS_BRIDGE_READY.md — Router fix
- smom-dbis-138 PAYMENT_CHANNELS_DEPLOYMENT.md — Payment and state channel managers (Mainnet / Chain-138)