Files
smom-dbis-138/docs/deployment/CONTRACTS_TO_DEPLOY.md

189 lines
6.0 KiB
Markdown
Raw Normal View History

# Contracts to Deploy - Complete List
**Last Updated**: 2025-12-11
**Deployment Script**: `script/DeployAll.s.sol`
---
## 📋 Contracts by Chain
### Ethereum Mainnet (Chain ID: 1)
**Status**: Most contracts already deployed, only missing CCIPLogger
| Contract | Status | Gas Estimate | Notes |
|----------|--------|--------------|-------|
| **WETH9** | ✅ Already Deployed | N/A | Using existing: `WETH9_MAINNET` from `.env` |
| **WETH10** | ✅ Already Deployed | N/A | Using existing: `WETH10_MAINNET` from `.env` |
| **CCIPWETH9Bridge** | ✅ Already Deployed | N/A | Already deployed on Mainnet |
| **CCIPWETH10Bridge** | ✅ Already Deployed | N/A | Already deployed on Mainnet |
| **CCIPLogger** | ❌ **TO DEPLOY** | ~3,000,000 gas | **Only contract to deploy** |
**Total Gas for Mainnet**: ~3,000,000 units (CCIPLogger only)
---
### Cronos (Chain ID: 25)
**Status**: Full deployment required
| Contract | Status | Gas Estimate | Notes |
|----------|--------|--------------|-------|
| **WETH9** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **WETH10** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **CCIPWETH9Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH9 address |
| **CCIPWETH10Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH10 address |
| **CCIPLogger** | ❌ **TO DEPLOY** | ~2,920,000 gas | Requires CCIP router config |
**Total Gas for Cronos**: ~8,760,000 units (all 5 contracts)
---
### BSC - Binance Smart Chain (Chain ID: 56)
**Status**: Full deployment required
| Contract | Status | Gas Estimate | Notes |
|----------|--------|--------------|-------|
| **WETH9** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **WETH10** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **CCIPWETH9Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH9 address |
| **CCIPWETH10Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH10 address |
| **CCIPLogger** | ❌ **TO DEPLOY** | ~2,920,000 gas | Requires CCIP router config |
**Total Gas for BSC**: ~8,760,000 units (all 5 contracts)
---
### Polygon PoS (Chain ID: 137)
**Status**: Full deployment required
| Contract | Status | Gas Estimate | Notes |
|----------|--------|--------------|-------|
| **WETH9** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **WETH10** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **CCIPWETH9Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH9 address |
| **CCIPWETH10Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH10 address |
| **CCIPLogger** | ❌ **TO DEPLOY** | ~2,920,000 gas | Requires CCIP router config |
**Total Gas for Polygon**: ~8,760,000 units (all 5 contracts)
---
### Gnosis Chain (Chain ID: 100)
**Status**: Full deployment required
| Contract | Status | Gas Estimate | Notes |
|----------|--------|--------------|-------|
| **WETH9** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **WETH10** | ❌ **TO DEPLOY** | ~1,460,000 gas | Deploy new or use existing if configured |
| **CCIPWETH9Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH9 address |
| **CCIPWETH10Bridge** | ❌ **TO DEPLOY** | ~1,460,000 gas | Requires WETH10 address |
| **CCIPLogger** | ❌ **TO DEPLOY** | ~2,920,000 gas | Requires CCIP router config |
**Total Gas for Gnosis**: ~8,760,000 units (all 5 contracts)
---
## 📊 Deployment Summary
### Total Contracts to Deploy
| Chain | Contracts to Deploy | Total Gas Units |
|-------|---------------------|-----------------|
| **Ethereum Mainnet** | 1 (CCIPLogger only) | 3,000,000 |
| **Cronos** | 5 (all contracts) | 8,760,000 |
| **BSC** | 5 (all contracts) | 8,760,000 |
| **Polygon** | 5 (all contracts) | 8,760,000 |
| **Gnosis** | 5 (all contracts) | 8,760,000 |
| **TOTAL** | **21 contracts** | **38,040,000 gas** |
---
## 🔄 Deployment Order
### For Ethereum Mainnet:
1. **CCIPLogger** (only contract)
### For Other Chains (Cronos, BSC, Polygon, Gnosis):
1. **WETH9** (if not using existing)
2. **WETH10** (if not using existing)
3. **CCIPWETH9Bridge** (requires WETH9)
4. **CCIPWETH10Bridge** (requires WETH10)
5. **CCIPLogger** (requires CCIP router)
---
## 📝 Contract Dependencies
```
WETH9 ──┐
├──> CCIPWETH9Bridge
WETH10 ─┘
└──> CCIPWETH10Bridge
CCIP Router ──> CCIPLogger
LINK Token ──> CCIPWETH9Bridge, CCIPWETH10Bridge
```
---
## 🎯 Deployment Commands
### Ethereum Mainnet (CCIPLogger only)
```bash
forge script script/DeployCCIPLoggerOnly.s.sol:DeployCCIPLoggerOnly \
--rpc-url mainnet --chain-id 1 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
```
### Cronos (All contracts)
```bash
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url cronos --chain-id 25 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
```
### BSC (All contracts)
```bash
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url bsc --chain-id 56 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
```
### Polygon (All contracts)
```bash
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url polygon --chain-id 137 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
```
### Gnosis (All contracts)
```bash
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url gnosis --chain-id 100 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
```
---
## ⚠️ Important Notes
1. **CCIPLogger**: May require Hardhat/OpenZeppelin dependencies. If Foundry deployment fails, use:
```bash
npm run deploy:logger:mainnet
```
2. **WETH9/WETH10**: Script checks for existing addresses in `.env`. If configured, will use existing instead of deploying new.
3. **CCIP Configuration**: Each chain requires specific CCIP router and LINK token addresses in `.env`.
4. **Gas Estimates**: Based on typical contract sizes. Actual gas may vary.
---
**Next Steps**: Check wallet balances and proceed with deployment!