2026-02-12 15:46:57 -08:00
# 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.
2026-02-21 15:46:06 -08:00
**Chain 138:** Use `--with-gas-price 1000000000` for all `forge script` / `forge create` (chain minimum). [CONTRACT_DEPLOYMENT_RUNBOOK ](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md ). Env per script and gaps: [DEPLOYMENT_GAPS_COMPLETED ](../03-deployment/DEPLOYMENT_GAPS_COMPLETED.md ).
2026-02-12 15:46:57 -08:00
---
## 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 |
|----------|--------|--------|
2026-03-24 22:50:52 -07:00
| **CCIPWETH9Bridge ** | `script/DeployCCIPWETH9Bridge.s.sol` | ✅ `0xcacfd227A040002e49e2e01626363071324f820a` |
2026-02-12 15:46:57 -08:00
| **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 |
2026-02-21 15:46:06 -08:00
| **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 ](../../smom-dbis-138/docs/deployment/TASK12_CCIP_LOGGER_STATUS.md ) if needed. |
2026-02-12 15:46:57 -08:00
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) at `0x439Fcb2d2ab2f890DCcAE50461Fa7d978F9Ffe1A` and `0x6eD905A30c552a6e003061A38FD52A5A427beE56` . **TransactionMirror: ** deploy script can hit Forge constructor-args decode bug; use `forge create` with encoded constructor and `--with-gas-price 1000000000` when needed. See smom-dbis-138 `docs/channels/` and `docs/deployment/PAYMENT_CHANNELS_DEPLOYMENT.md` .
- **Migration:** `script/deploy/05_MigrateExistingAssets.s.sol` (requires `UNIVERSAL_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
```bash
# 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)
```bash
# CCIP WETH9 Bridge (recommended; fixes router mismatch)
export PRIVATE_KEY=0x...
./scripts/deploy-and-configure-weth9-bridge-chain138.sh
2026-02-21 15:46:06 -08:00
# Optional: RPC_URL_138 (Chain 138 Core), MAINNET_WETH9_BRIDGE_ADDRESS
2026-02-12 15:46:57 -08:00
# After: export CCIPWETH9_BRIDGE_CHAIN138=<printed_address>
# Core + Bridges (phased)
cd smom-dbis-138
2026-02-21 15:46:06 -08:00
forge script script/deploy/01_DeployCore.s.sol --rpc-url $RPC_URL_138 --broadcast --private-key $PRIVATE_KEY
2026-02-12 15:46:57 -08:00
# Set UNIVERSAL_ASSET_REGISTRY, GOVERNANCE_CONTROLLER
2026-02-21 15:46:06 -08:00
forge script script/deploy/02_DeployBridges.s.sol --rpc-url $RPC_URL_138 --broadcast --private-key $PRIVATE_KEY
2026-02-12 15:46:57 -08:00
# 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 ](../00-meta/NEXT_STEPS_MASTER.md ) — Immediate: CCIP WETH9 Bridge
- [CONTRACT_DEPLOYMENT_RUNBOOK.md ](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md ) — Deploy and verify workflow (Forge Verification Proxy)
- [scripts/README.md ](../../scripts/README.md ) — Bridge deploy script, dry-run
- [07-ccip/CCIP_DEPLOYMENT_SPEC.md ](../07-ccip/CCIP_DEPLOYMENT_SPEC.md ) — CCIP fleet
- [COMPREHENSIVE_STATUS_BRIDGE_READY.md ](../../COMPREHENSIVE_STATUS_BRIDGE_READY.md ) — Router fix
- smom-dbis-138 [PAYMENT_CHANNELS_DEPLOYMENT.md ](../../smom-dbis-138/docs/deployment/PAYMENT_CHANNELS_DEPLOYMENT.md ) — Payment and state channel managers (Mainnet / Chain-138)