# Ethereum Mainnet Deployment Checklist

## Contracts to Deploy

### 1. CCIPLogger
- **Status**: ⏳ Pending
- **Location**: `contracts/ccip-integration/CCIPLogger.sol`
- **Deployment**: `npm run deploy:logger:mainnet`
- **Dependencies**: CCIP Router (Chainlink official: `0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D`)
- **Constructor Parameters**:
  - `router`: CCIP Router address
  - `authorizedSigner`: Optional signer address (can be zero)
  - `sourceChainSelector`: Chain-138 selector (`0x000000000000008a`)

### 2. CCIPWETH9Bridge
- **Status**: ⏳ Pending
- **Location**: `contracts/ccip/CCIPWETH9Bridge.sol`
- **Deployment**: `script/DeployCCIPWETH9Bridge.s.sol`
- **Dependencies**: 
  - CCIP Router (Chainlink official)
  - WETH9 (already exists: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`)
- **Constructor Parameters**:
  - `ccipRouter`: CCIP Router address
  - `weth9`: WETH9 address
  - `feeToken`: LINK token address (`0x514910771AF9Ca656af840dff83E8264EcF986CA`)

### 3. CCIPWETH10Bridge
- **Status**: ⏳ Pending
- **Location**: `contracts/ccip/CCIPWETH10Bridge.sol`
- **Deployment**: `script/DeployCCIPWETH10Bridge.s.sol`
- **Dependencies**: 
  - CCIP Router (Chainlink official)
  - WETH10 (already exists: `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f`)
- **Constructor Parameters**:
  - `ccipRouter`: CCIP Router address
  - `weth10`: WETH10 address
  - `feeToken`: LINK token address

## Deployment Order

1. **CCIPLogger** (first - no dependencies on new contracts)
2. **CCIPWETH9Bridge** (can deploy after CCIPLogger)
3. **CCIPWETH10Bridge** (can deploy after CCIPLogger)

## Pre-Deployment Checklist

- [ ] Run dry-run: `./scripts/deployment/dry-run-mainnet-deployment.sh`
- [ ] Verify wallet has sufficient ETH (check: `./scripts/deployment/check-mainnet-balances.sh`)
- [ ] Verify all environment variables are set
- [ ] Verify contracts compile successfully
- [ ] Verify RPC connection to Mainnet

## Post-Deployment Checklist

- [ ] Verify contracts on Etherscan
- [ ] Update `.env` with deployed addresses
- [ ] Configure bridge destinations
- [ ] Test cross-chain functionality
- [ ] Set up monitoring and alerts

## Cost Estimates

See `docs/GAS_FEE_CALCULATIONS.md` for current cost estimates.

## Commands

```bash
# List all contracts
./scripts/deployment/list-mainnet-contracts.sh

# Run dry-run
./scripts/deployment/dry-run-mainnet-deployment.sh

# Deploy all contracts
./scripts/deployment/deploy-all-mainnet.sh
```
