# 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

# Reuse the historical CCIPTxReporter deployment (on Chain-138)
export CHAIN138_CCIP_REPORTER=0x...
```

### 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`
