- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
137 lines
3.7 KiB
Markdown
137 lines
3.7 KiB
Markdown
# 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`
|