# Complete Mainnet Deployment Requirements ## All Contracts Requiring Ethereum Mainnet Deployment ### 1. CCIP Integration Contracts (NEW - Production-Grade) #### CCIPLogger - **Status**: ❌ Not Deployed - **Purpose**: Receives and logs Chain-138 transactions via Chainlink CCIP - **Location**: `contracts/ccip-integration/CCIPLogger.sol` - **Deployment**: `npm run deploy:logger:mainnet` - **Dependencies**: CCIP Router (using Chainlink's official: `0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D`) - **Features**: - Replay protection (batch ID tracking) - Optional signature verification - Source chain validation - Event emission for indexing ### 2. WETH Bridge Contracts #### CCIPWETH9Bridge - **Status**: ❌ Not Deployed - **Purpose**: Cross-chain WETH9 bridge - **Location**: `contracts/ccip/CCIPWETH9Bridge.sol` - **Deployment**: `./scripts/deployment/deploy-all-mainnet.sh` - **Dependencies**: CCIP Router, WETH9 (already exists at `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`) #### CCIPWETH10Bridge - **Status**: ❌ Not Deployed - **Purpose**: Cross-chain WETH10 bridge - **Location**: `contracts/ccip/CCIPWETH10Bridge.sol` - **Deployment**: `./scripts/deployment/deploy-all-mainnet.sh` - **Dependencies**: CCIP Router, WETH10 (already exists at `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f`) ### 3. Optional Contracts (If Needed) #### CCIPRouter (Custom) - **Status**: ⚠️ Not Required - **Note**: Using Chainlink's official router, only deploy if custom router needed #### CCIPSender - **Status**: ⚠️ Optional - **Purpose**: Oracle cross-chain synchronization - **Dependencies**: CCIP Router, Oracle Aggregator #### CCIPReceiver - **Status**: ⚠️ Optional - **Purpose**: Oracle cross-chain synchronization - **Dependencies**: CCIP Router, Oracle Aggregator #### OracleAggregator - **Status**: ⚠️ Optional - **Purpose**: If oracle needed on Mainnet - **Location**: `contracts/oracle/Aggregator.sol` ## Deployment Order ### Recommended Sequence 1. **CCIPLogger** (Ethereum Mainnet) - First contract to deploy - No dependencies on other new contracts - Required for CCIPTxReporter configuration 2. **CCIPTxReporter** (Chain-138) - Deploy after CCIPLogger - Needs CCIPLogger address as destination 3. **CCIPWETH9Bridge** (Ethereum Mainnet) - Can deploy in parallel with CCIPWETH10Bridge - Uses existing WETH9 4. **CCIPWETH10Bridge** (Ethereum Mainnet) - Can deploy in parallel with CCIPWETH9Bridge - Uses existing WETH10 ## Deployment Commands ### CCIP Integration ```bash # Deploy CCIPLogger npm run deploy:logger:mainnet # Deploy CCIPTxReporter (on Chain-138) npm run deploy:reporter:chain138 ``` ### WETH Bridges ```bash # Deploy both bridges ./scripts/deployment/deploy-all-mainnet.sh ``` ## Configuration Requirements ### Required Environment Variables ```env # Ethereum Mainnet PRIVATE_KEY=0x... ETHEREUM_MAINNET_RPC=https://... ETHERSCAN_API_KEY=... CCIP_ETH_ROUTER=0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D ETH_MAINNET_SELECTOR=0x500147 # Chain-138 CHAIN138_RPC_URL=https://... CCIP_CHAIN138_ROUTER=0x... CHAIN138_SELECTOR=0x000000000000008a # Optional AUTHORIZED_SIGNER=0x... ``` ## Cost Estimates (at 2.5 gwei) - CCIPLogger: ~0.001 ETH - CCIPTxReporter: ~0.001 ETH (on Chain-138) - CCIPWETH9Bridge: ~0.0006575 ETH - CCIPWETH10Bridge: ~0.0006575 ETH - **Total**: ~0.003315 ETH (~$8.29) ## Post-Deployment 1. Verify all contracts on Etherscan 2. Configure bridge destinations 3. Set up watcher/relayer service 4. Test cross-chain transfers 5. Monitor and alert ## Documentation - **CCIP Integration**: `docs/ccip-integration/README.md` - **Deployment Guide**: `docs/ccip-integration/DEPLOYMENT_GUIDE.md` - **Quick Start**: `docs/ccip-integration/QUICK_START.md` - **Status**: `docs/MAINNET_DEPLOYMENT_STATUS.md`