- 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.
6.0 KiB
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:
- CCIPLogger (only contract)
For Other Chains (Cronos, BSC, Polygon, Gnosis):
- WETH9 (if not using existing)
- WETH10 (if not using existing)
- CCIPWETH9Bridge (requires WETH9)
- CCIPWETH10Bridge (requires WETH10)
- CCIPLogger (requires CCIP router)
📝 Contract Dependencies
WETH9 ──┐
├──> CCIPWETH9Bridge
WETH10 ─┘
└──> CCIPWETH10Bridge
CCIP Router ──> CCIPLogger
LINK Token ──> CCIPWETH9Bridge, CCIPWETH10Bridge
🎯 Deployment Commands
Ethereum Mainnet (CCIPLogger only)
forge script script/DeployCCIPLoggerOnly.s.sol:DeployCCIPLoggerOnly \
--rpc-url mainnet --chain-id 1 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
Cronos (All contracts)
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url cronos --chain-id 25 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
BSC (All contracts)
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url bsc --chain-id 56 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
Polygon (All contracts)
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url polygon --chain-id 137 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
Gnosis (All contracts)
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url gnosis --chain-id 100 \
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
⚠️ Important Notes
-
CCIPLogger: May require Hardhat/OpenZeppelin dependencies. If Foundry deployment fails, use:
npm run deploy:logger:mainnet -
WETH9/WETH10: Script checks for existing addresses in
.env. If configured, will use existing instead of deploying new. -
CCIP Configuration: Each chain requires specific CCIP router and LINK token addresses in
.env. -
Gas Estimates: Based on typical contract sizes. Actual gas may vary.
Next Steps: Check wallet balances and proceed with deployment!