- 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.
150 lines
3.9 KiB
Markdown
150 lines
3.9 KiB
Markdown
# Deployment Execution Plan
|
|
|
|
**Date**: 2025-12-11
|
|
**Status**: Ready for Execution
|
|
|
|
---
|
|
|
|
## 🎯 Deployment Overview
|
|
|
|
**Total**: 7 chains, 31 contracts
|
|
|
|
| Chain | Contracts | Script | Status |
|
|
|-------|-----------|--------|--------|
|
|
| **Ethereum Mainnet** | 1 (CCIPLogger) | `DeployCCIPLoggerOnly.s.sol` | ✅ Ready |
|
|
| **BSC** | 5 (all) | `DeployAll.s.sol` | ✅ Ready |
|
|
| **Polygon** | 5 (all) | `DeployAll.s.sol` | ✅ Ready |
|
|
| **Avalanche** | 5 (all) | `DeployAll.s.sol` | ✅ Ready |
|
|
| **Base** | 5 (all) | `DeployAll.s.sol` | ✅ Ready |
|
|
| **Arbitrum** | 5 (all) | `DeployAll.s.sol` | ✅ Ready |
|
|
| **Optimism** | 5 (all) | `DeployAll.s.sol` | ✅ Ready |
|
|
|
|
---
|
|
|
|
## ⚠️ Important Notes
|
|
|
|
### CCIPLogger Deployment
|
|
|
|
**Note**: The `CCIPLogger` contract deployment in Foundry scripts is currently a placeholder. The script will:
|
|
1. Log a warning about using Hardhat script
|
|
2. Return `address(0)` as placeholder
|
|
|
|
**Options**:
|
|
1. **Use Hardhat script** (if available): `npm run deploy:logger:mainnet`
|
|
2. **Implement CCIPLogger in Foundry** (if contract exists)
|
|
3. **Deploy other contracts first**, then handle CCIPLogger separately
|
|
|
|
### Recommended Approach
|
|
|
|
1. **Deploy to chains that don't need CCIPLogger first** (if any)
|
|
2. **Deploy all contracts except CCIPLogger** to all chains
|
|
3. **Handle CCIPLogger separately** using appropriate deployment method
|
|
|
|
---
|
|
|
|
## 🚀 Deployment Commands
|
|
|
|
### Option 1: Automated Script
|
|
|
|
```bash
|
|
./scripts/deployment/deploy-all-ready-chains.sh
|
|
```
|
|
|
|
### Option 2: Manual Deployment (One Chain at a Time)
|
|
|
|
#### 1. 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
|
|
```
|
|
|
|
#### 2. BSC (All 5 contracts)
|
|
```bash
|
|
forge script script/DeployAll.s.sol:DeployAll \
|
|
--rpc-url bsc --chain-id 56 \
|
|
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 3. Polygon (All 5 contracts)
|
|
```bash
|
|
forge script script/DeployAll.s.sol:DeployAll \
|
|
--rpc-url polygon --chain-id 137 \
|
|
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 4. Avalanche (All 5 contracts)
|
|
```bash
|
|
forge script script/DeployAll.s.sol:DeployAll \
|
|
--rpc-url avalanche --chain-id 43114 \
|
|
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 5. Base (All 5 contracts)
|
|
```bash
|
|
forge script script/DeployAll.s.sol:DeployAll \
|
|
--rpc-url base --chain-id 8453 \
|
|
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 6. Arbitrum (All 5 contracts)
|
|
```bash
|
|
forge script script/DeployAll.s.sol:DeployAll \
|
|
--rpc-url arbitrum --chain-id 42161 \
|
|
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 7. Optimism (All 5 contracts)
|
|
```bash
|
|
forge script script/DeployAll.s.sol:DeployAll \
|
|
--rpc-url optimism --chain-id 10 \
|
|
--private-key $PRIVATE_KEY --broadcast --verify -vvvv
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Pre-Deployment Checklist
|
|
|
|
- [x] All RPC URLs configured
|
|
- [x] All CCIP configurations added
|
|
- [x] Private key set in `.env`
|
|
- [x] Wallet balances sufficient
|
|
- [ ] Explorer API keys added (optional)
|
|
- [ ] CCIPLogger deployment method determined
|
|
- [ ] Test deployment on one chain first (recommended)
|
|
|
|
---
|
|
|
|
## 🔍 Post-Deployment
|
|
|
|
After deployment, for each chain:
|
|
|
|
1. **Save deployed addresses** to `.env`:
|
|
```bash
|
|
WETH9_BSC=<deployed_address>
|
|
WETH10_BSC=<deployed_address>
|
|
CCIPWETH9BRIDGE_BSC=<deployed_address>
|
|
CCIPWETH10BRIDGE_BSC=<deployed_address>
|
|
CCIPLOGGER_BSC=<deployed_address>
|
|
```
|
|
|
|
2. **Verify contracts** on explorer (if not auto-verified)
|
|
|
|
3. **Test contracts** with simple interactions
|
|
|
|
4. **Update documentation** with deployed addresses
|
|
|
|
---
|
|
|
|
## ⚠️ Warnings
|
|
|
|
1. **Real Mainnet Deployments**: These are real transactions on mainnet chains
|
|
2. **Gas Costs**: Ensure sufficient balance for all deployments
|
|
3. **CCIPLogger**: May need separate deployment method
|
|
4. **Verification**: API keys needed for automatic verification
|
|
|
|
---
|
|
|
|
**Ready to proceed when you confirm!**
|
|
|