- 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.
5.5 KiB
5.5 KiB
Mainnet Deployment Status
Overview
This document tracks the status of smart contract deployments to Ethereum Mainnet.
Contracts Requiring Mainnet Deployment
Primary Contracts (Required)
-
CCIPWETH9Bridge
- Status: ❌ Not Deployed
- Dependencies: CCIP Router (using Chainlink's official router)
- WETH9: Already exists at
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 - Deployment Script:
script/DeployCCIPWETH9Bridge.s.sol
-
CCIPWETH10Bridge
- Status: ❌ Not Deployed
- Dependencies: CCIP Router (using Chainlink's official router)
- WETH10: Already exists at
0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f - Deployment Script:
script/DeployCCIPWETH10Bridge.s.sol
-
CCIPLogger ⭐ NEW
- Status: ❌ Not Deployed
- Purpose: Receives and logs Chain-138 transactions via CCIP
- Dependencies: CCIP Router (using Chainlink's official router)
- Deployment Script:
scripts/ccip-deployment/deploy-ccip-logger.js - Location:
contracts/ccip-integration/CCIPLogger.sol
Optional Contracts (If Needed)
-
CCIPRouter (Custom)
- Status: ⚠️ Not Required (using Chainlink's official router)
- Official Router:
0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D - Note: Only deploy if custom router is needed
-
CCIPSender
- Status: ⚠️ Optional (for oracle cross-chain sync)
- Dependencies: CCIP Router, Oracle Aggregator
- Deployment Script: Needs to be created
-
CCIPReceiver
- Status: ⚠️ Optional (for oracle cross-chain sync)
- Dependencies: CCIP Router, Oracle Aggregator
- Deployment Script: Needs to be created
-
OracleAggregator
- Status: ⚠️ Optional (if oracle needed on Mainnet)
- Deployment Script:
script/DeployOracle.s.sol
CCIP Integration Contracts
New Production-Grade CCIP System
CCIPLogger (Ethereum Mainnet)
- Receives Chain-138 transactions via CCIP
- Implements replay protection
- Supports batch verification
- Optional signature validation
CCIPTxReporter (Chain-138)
- Reports Chain-138 transactions to Ethereum
- Supports single and batch reporting
- Automatic fee estimation and refund
Watcher/Relayer Service (Off-chain)
- Monitors Chain-138 for transactions
- Batches and relays via CCIP
- Postgres outbox pattern for reliability
- Full monitoring and alerting
Deployment Configuration
CCIP Router
- Official Chainlink Router (Ethereum):
0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D - Chain-138 Router: Check CCIP Directory or deploy custom router
- LINK Token:
0x514910771AF9Ca656af840dff83E8264EcF986CA
WETH Addresses
- WETH9:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2(already deployed) - WETH10:
0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f(already deployed)
Chain Selectors (from CCIP Directory)
- Ethereum Mainnet: Update from CCIP Directory
- Chain-138: Update from CCIP Directory
Current Deployment Status
Wallet Status
- Address:
0x4A666F96fC8764181194447A7dFdb7d471b301C8 - ETH Balance: 0.002811732488743541 ETH
- Required: 0.025 ETH (minimum)
- Status: ❌ Insufficient funds
Deployment Blockers
- Insufficient ETH: Wallet needs at least 0.025 ETH for gas fees
- Gas Price: Using conservative 2.5 gwei maximum cap
- CCIP Router Addresses: Need to verify Chain-138 router address
Deployment Steps
Step 1: Fund Wallet
# Send at least 0.025 ETH to deployer wallet
# Address: 0x4A666F96fC8764181194447A7dFdb7d471b301C8
Step 2: Deploy CCIP Contracts
Option A: Deploy All CCIP Contracts
# Deploy CCIPLogger to Ethereum Mainnet
npm run deploy:logger:mainnet
# Deploy CCIPTxReporter to Chain-138
npm run deploy:reporter:chain138
Option B: Deploy WETH Bridges
./scripts/deployment/deploy-all-mainnet.sh
Step 3: Verify Contracts
# Verify CCIPLogger on Etherscan
npx hardhat verify --network mainnet <ADDRESS> <ROUTER> <SIGNER> <SELECTOR>
# Verify CCIPTxReporter (if explorer available)
npx hardhat verify --network chain138 <ADDRESS> <ROUTER> <SELECTOR> <RECEIVER>
Step 4: Set Up Watcher/Relayer
cd watcher
npm install
npm run build
npm start
Deployment Scripts
scripts/deployment/deploy-all-mainnet.sh- Deploy WETH bridgesscripts/ccip-deployment/deploy-ccip-logger.js- Deploy CCIPLoggerscripts/ccip-deployment/deploy-ccip-reporter.js- Deploy CCIPTxReporterscripts/ccip-deployment/deploy-all-ccip-mainnet.sh- Deploy all CCIP contractsscripts/deployment/check-mainnet-deployment-status.sh- Check deployment statusscripts/deployment/check-wallet-balances.sh- Check wallet funding
Next Steps
- ✅ Identify all contracts needing Mainnet deployment
- ✅ Create deployment scripts
- ✅ Create CCIP integration system
- ⏳ Fund wallet with sufficient ETH
- ⏳ Deploy CCIPLogger to Ethereum Mainnet
- ⏳ Deploy CCIPTxReporter to Chain-138
- ⏳ Deploy CCIPWETH9Bridge
- ⏳ Deploy CCIPWETH10Bridge
- ⏳ Verify contracts on Etherscan
- ⏳ Configure bridge destinations
- ⏳ Set up watcher/relayer service
- ⏳ Test cross-chain transfers
Notes
- WETH9 and WETH10 are already deployed on Mainnet at canonical addresses
- Using Chainlink's official CCIP Router (no custom router needed)
- Gas estimates use conservative 2.5 gwei maximum cap
- All deployment addresses will be saved to
.envfile - CCIP integration provides production-grade transaction logging from Chain-138 to Ethereum