Files
smom-dbis-138/docs/deployment/DEPLOYMENT_EXECUTION_PLAN.md
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- 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.
2025-12-12 14:57:48 -08:00

3.9 KiB

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
  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

./scripts/deployment/deploy-all-ready-chains.sh

Option 2: Manual Deployment (One Chain at a Time)

1. Ethereum Mainnet (CCIPLogger only)

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)

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)

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)

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)

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)

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)

forge script script/DeployAll.s.sol:DeployAll \
  --rpc-url optimism --chain-id 10 \
  --private-key $PRIVATE_KEY --broadcast --verify -vvvv

📋 Pre-Deployment Checklist

  • All RPC URLs configured
  • All CCIP configurations added
  • Private key set in .env
  • 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:

    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!