# Cronos and Multi-Chain Full Deployment TODO

**Includes:** Required, optional, all token factories, and additional recommendations.  
**Cronos deployment status:** WETH9, WETH10, CCIPWETH9Bridge, CCIPWETH10Bridge are deployed and on-chain confirmed. Explorer source publication is still pending/manual.

**Recently deployed to Cronos:**
- Multicall, Oracle (Aggregator+Proxy), WETH, CREATE2Factory — via `Deploy.s.sol` and `DeployOracle.s.sol`
- Design doc: `CRONOS_TRUSTLESS_BRIDGE_DESIGN.md`

---

## 1. Cronos (Chain 25) — Remaining

### 1.1 Required
- [ ] **CCIPLogger** — Foundry: `forge script script/DeployCCIPLogger.s.sol:DeployCCIPLogger --rpc-url https://evm.cronos.org --broadcast`  
  - Contract: `contracts/ccip-integration/CCIPLogger.sol`  
  - Depends: CCIP Router (Chainlink). Needs ~0.65 CRO for gas.

### 1.2 Optional / Recommended
- [x] **Oracle Aggregator + Proxy** — Deployed to Cronos ✅  
  - Addresses in broadcast/DeployOracle.s.sol/25/

### 1.3 Trustless Bridge (Cronos-specific)
- [ ] **Design Cronos trustless bridge** — Current trustless bridge targets Chain 138 ↔ Mainnet; Cronos needs Cronos DEX addresses (VVS, CronaSwap, etc.)
- [ ] **Cronos liquidity pools** — Use existing DEXes or deploy custom pools

---

## 2. Core Infrastructure (Chain 138 / Multi-Chain)

- [ ] **Multicall** — `script/DeployMulticall.s.sol`
- [ ] **CREATE2Factory** — `script/Deploy.s.sol`
- [ ] **Oracle Aggregator + Proxy** — `script/DeployOracle.s.sol`
- [ ] **MultiSig** — `script/DeployMultiSig.s.sol` (requires MULTISIG_OWNERS)
- [ ] **Voting** (optional) — No script; create if needed

---

## 3. CCIP / Messaging

### 3.1 Required
- [ ] **CCIPLogger** — Mainnet, Cronos, BSC, Polygon, Gnosis (per chain)
- [ ] **CCIP Router** — Use Chainlink official; no custom deploy

### 3.2 Optional
- [ ] **CCIPSender** — No script; create if oracle cross-chain sync needed
- [ ] **CCIPReceiver** — No script; create if oracle cross-chain sync needed
- [ ] **CCIPMessageValidator** — No script; create if needed
- [ ] **CCIPRouterOptimized** — No script; deploy only if using custom optimized router
- [ ] **OracleWithCCIP** — No script; create if CCIP oracle integration needed

---

## 4. Token Factories & Token Systems

### 4.1 ISO-4217W Token Factory
- [ ] **ComplianceGuard** — `script/deploy/iso4217w/DeployISO4217WSystem.s.sol` (included)
- [ ] **ReserveOracle** — Same script
- [ ] **MintController** — Same script
- [ ] **BurnController** — Same script
- [ ] **TokenRegistry** — Same script
- [ ] **TokenFactory** (ISO4217W) — Same script
- [ ] **W Tokens** — USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW, XAUC, XAUT via TokenFactory

### 4.2 eMoney TokenFactory138
- [ ] **TokenFactory138** — `script/emoney/DeployChain138.s.sol` or `script/emoney/Deploy.s.sol`
- [ ] **PolicyManager** — Same script
- [ ] **DebtRegistry** — Same script
- [ ] **ComplianceRegistry** — Same script

### 4.3 Compliant Fiat Tokens (CREATE2)
- [ ] **DeployCompliantFiatTokens** — cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT  
  - Script: `script/deploy/DeployCompliantFiatTokens.s.sol`  
  - Requires: CREATE2_FACTORY_ADDRESS

### 4.4 VaultFactory
- [ ] **VaultFactory** — `script/vault/DeployVaultSystem.s.sol` or `script/deploy/vault/DeployVaultSystem.s.sol`

---

## 5. Trustless Bridge (Chain 138 ↔ Mainnet)

- [ ] **ReserveSystem** (Chain 138) — `script/reserve/DeployReserveSystem.s.sol`
- [ ] **Lockbox138** — `script/bridge/trustless/DeployTrustlessBridge.s.sol`
- [ ] **BondManager**
- [ ] **ChallengeManager**
- [ ] **LiquidityPoolETH**
- [ ] **InboxETH**
- [ ] **SwapRouter** (Mainnet DEXes: Uniswap V3, Curve, 1inch)
- [ ] **BridgeSwapCoordinator**
- [ ] **EnhancedSwapRouter** (optional) — `script/bridge/trustless/DeployEnhancedSwapRouter.s.sol`
- [ ] **Integration contracts** — `script/bridge/trustless/DeployIntegrationContracts.s.sol`

---

## 6. Vault System

- [ ] **Ledger**
- [ ] **Regulated Entity Registry**
- [ ] **XAU Oracle**
- [ ] **Rate Accrual**
- [ ] **Liquidation Module**
- [ ] **Collateral Adapter**
- [ ] **eMoney Join Adapter**
- [ ] **VaultFactory**
- [ ] **Initialize Vault System**

---

## 7. Reserve System

- [ ] **ReserveSystem** — `script/reserve/DeployReserveSystem.s.sol`  
  - Requires: TOKEN_FACTORY
- [ ] **StablecoinReserveVault** — `script/reserve/DeployStablecoinReserveVault.s.sol`
- [ ] **Reserve Keeper** — `script/reserve/DeployKeeper.s.sol`

---

## 8. Bridge Integrations & Other Chains

- [ ] **Bridge Integrations** — `script/bridge/DeployBridgeIntegrations.s.sol`  
  - Requires: TOKEN_FACTORY, VERIFIER_ADDRESS
- [ ] **WETH Bridges** — Chain 138, Cronos, BSC, Polygon, Gnosis (Cronos done)
- [ ] **Deploy All Adapters** — Polygon, Arbitrum, Optimism, Base, Avalanche, BSC, Ethereum, Etherlink, XDC, Alltra, XRPL, Stellar, Tezos, Firefly, Cacti, Fabric
- [ ] **TwoWayTokenBridge** (L1/L2) — `script/DeployTwoWayBridge.s.sol`
- [ ] **MirrorManager** — `script/DeployMirrorManager.s.sol`
- [ ] **TransactionMirror** — `script/DeployTransactionMirror.s.sol`

---

## 9. Additional / Optional

- [ ] **Smart Accounts Kit** — `script/smart-accounts/DeploySmartAccountsKit.s.sol`
- [ ] **Account Wallet Registry Extended** — `script/smart-accounts/DeployAccountWalletRegistryExtended.s.sol`
- [ ] **Private Pool Registry & Pools** — `script/dex/DeployPrivatePoolRegistryAndPools.s.sol`
- [ ] **DODO PMM Integration** — `script/dex/DeployDODOPMMIntegration.s.sol`
- [ ] **Generic State Channel Manager** — `script/DeployGenericStateChannelManager.s.sol`
- [ ] **Payment Channel Manager** — `script/DeployPaymentChannelManager.s.sol`
- [ ] **Fee Collector** — `script/DeployFeeCollector.s.sol`
- [ ] **Compliance Registry** — `script/DeployComplianceRegistry.s.sol`
- [ ] **Token Registry** — `script/DeployTokenRegistry.s.sol`
- [ ] **Address Mapper** — `script/DeployAddressMapper.s.sol`
- [ ] **Link to Canonical Address** — `script/DeployLinkToCanonicalAddress.s.sol`
- [ ] **Deterministic Core** — Universal Asset Registry, CCIP Bridge, Mirror, Adapter  
  - Script: `script/deploy/DeployDeterministicCore.s.sol`
- [ ] **Bridge Vault** — `script/deploy/DeployBridgeVaultDeterministic.s.sol`
- [ ] **Etherlink Relay Receiver** — `script/deploy/bridge/DeployEtherlinkRelayReceiver.s.sol`

---

## 10. Testing & Verification

- [ ] **Run full test suite** — `forge test`
- [ ] **Test suite for Vault system**
- [ ] **Test suite for ISO-4217W system**
- [ ] **Test suite for TokenFactory**
- [ ] **Bridge integration tests**
- [ ] **Contract verification** — Blockscout/Etherscan per chain
  - Cronos: source publication still pending manual UI acceptance for the four contract set.

---

## 11. Security & Audit

- [ ] **Security audit**
- [ ] **Access control audit**
- [ ] **Reentrancy protection verification**
- [ ] **Upgrade safety review**

---

## 12. Off-Chain Services

- [ ] **Oracle services** for non-EVM chains (XRPL, Stellar, Algorand, etc.)
- [ ] **Cacti connector**
- [ ] **Fabric event listener**
- [ ] **Indy verifier agent**
- [ ] **State anchoring service**
- [ ] **Transaction mirroring service**

---

## Summary by Chain

| Chain | Core | CCIP | Token Factories | Trustless Bridge | Vault | Reserve |
|-------|------|------|-----------------|------------------|-------|---------|
| **Cronos** | CCIPLogger, Oracle (opt) | CCIPLogger | Per product | Design needed | Per product | Per product |
| **Chain 138** | Multicall, Oracle, MultiSig | CCIPLogger | All systems | Full stack | Full stack | Full stack |
| **Mainnet** | Use existing | CCIPLogger | Per product | Inbox, SwapRouter, LPs | Per product | Per product |
| **BSC/Polygon/Gnosis** | Per chain | CCIPLogger + bridges | Per product | — | — | — |

---

## Pre-Deployment

- [ ] Fund deployer wallets (CRO for Cronos, ETH for Mainnet, etc.)
- [ ] Set `.env` with PRIVATE_KEY, RPC URLs, API keys
- [ ] Set MULTISIG_OWNERS, MULTISIG_REQUIRED
- [ ] Obtain CREATE2_FACTORY if using deterministic deploys
- [ ] Verify CCIP Router addresses per chain
