Files
smom-dbis-138/docs/DEPLOYMENT_CHECKLIST.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

6.2 KiB

Smart Contract Deployment Checklist

📋 Contracts to Deploy (19 total)

Deployment Status

  • Total Contracts: 19
  • Deployed: 0
  • Remaining: 19

Phase 1: Core Utilities (5 contracts - Parallel Deployment)

1. Multicall

  • Deploy script: script/DeployMulticall.s.sol
  • Dependencies: None
  • Address in .env: MULTICALL_ADDRESS=
  • Verify on explorer

2. CREATE2Factory

  • Deploy script: script/Deploy.s.sol (included) or create standalone
  • Dependencies: None
  • Address in .env: CREATE2FACTORY_ADDRESS=
  • Verify on explorer

3. WETH9

  • Deploy script: script/DeployWETH.s.sol or DeployWETHWithCREATE2.s.sol
  • Dependencies: None
  • Address in .env: WETH9_ADDRESS= (ChainID 138, not mainnet)
  • Verify on explorer

4. WETH10

  • Deploy script: script/DeployWETH10.s.sol or DeployWETH10WithCREATE2.s.sol
  • Dependencies: None
  • Address in .env: WETH10_ADDRESS= (ChainID 138, not mainnet)
  • Verify on explorer

5. Oracle Aggregator + Proxy

  • Deploy script: script/DeployOracle.s.sol
  • Dependencies: None
  • Addresses in .env: ORACLE_AGGREGATOR_ADDRESS=, ORACLE_PROXY_ADDRESS=
  • Verify on explorer

Phase 2: Governance (1-2 contracts)

6. MultiSig

  • Set MULTISIG_OWNERS in .env (comma-separated addresses)
  • Set MULTISIG_REQUIRED in .env (number of confirmations)
  • Deploy script: script/DeployMultiSig.s.sol
  • Dependencies: MULTISIG_OWNERS env var
  • Address in .env: MULTISIG_ADDRESS=
  • Verify on explorer

7. Voting (Optional - No script found)

  • Create deployment script if needed
  • Deploy if governance voting is required
  • Address in .env: VOTING_ADDRESS=
  • Verify on explorer

Phase 3: CCIP Infrastructure (1-6 contracts)

8. CCIP Router (If Custom)

  • Determine if using Chainlink CCIP or custom router
  • If custom: Deploy script: script/DeployCCIPRouter.s.sol
  • Set CCIP_FEE_TOKEN in .env
  • Dependencies: None (if custom)
  • Address in .env: CCIP_ROUTER=
  • Verify on explorer

9. CCIPWETH9Bridge

  • Requires: CCIP_ROUTER, WETH9_ADDRESS
  • Deploy script: script/DeployCCIPWETH9Bridge.s.sol
  • Dependencies: CCIP_ROUTER, WETH9_ADDRESS
  • Address in .env: CCIPWETH9BRIDGE_ADDRESS=
  • Verify on explorer
  • Test cross-chain functionality

10. CCIPWETH10Bridge

  • Requires: CCIP_ROUTER, WETH10_ADDRESS
  • Deploy script: script/DeployCCIPWETH10Bridge.s.sol
  • Dependencies: CCIP_ROUTER, WETH10_ADDRESS
  • Address in .env: CCIPWETH10BRIDGE_ADDRESS=
  • Verify on explorer
  • Test cross-chain functionality

11-13. CCIPSender, CCIPReceiver, CCIPMessageValidator (No scripts found)

  • Create deployment scripts if needed
  • Deploy if required for CCIP functionality
  • Addresses in .env: CCIPSENDER_ADDRESS=, CCIPRECEIVER_ADDRESS=, etc.
  • Verify on explorer

14. CCIPRouterOptimized (No script found)

  • Create deployment script if using optimized router
  • Deploy if required
  • Address in .env: CCIPROUTER_OPTIMIZED_ADDRESS=
  • Verify on explorer

15. OracleWithCCIP (No script found)

  • Create deployment script if CCIP oracle integration needed
  • Requires: Oracle + CCIP infrastructure
  • Address in .env: ORACLE_CCIP_ADDRESS=
  • Verify on explorer

Phase 4: Advanced Features (3 contracts)

16-17. TwoWayTokenBridge (L1/L2)

  • Deploy script: script/DeployTwoWayBridge.s.sol
  • Dependencies: CCIP infrastructure
  • Addresses in .env: BRIDGE_L1_ADDRESS=, BRIDGE_L2_ADDRESS=
  • Verify on explorer
  • Test bridge functionality

18. MirrorManager

  • Deploy script: script/DeployMirrorManager.s.sol
  • Dependencies: CCIP infrastructure
  • Address in .env: MIRRORMANAGER_ADDRESS=
  • Verify on explorer

19. MockLinkToken (Testing Only - Optional)

  • Deploy script: script/DeployMockLinkToken.s.sol
  • Dependencies: None
  • Address in .env: MOCK_LINK_TOKEN_ADDRESS=
  • Note: For testing only, remove before production

📝 Pre-Deployment Checklist

  • RPC endpoint is accessible and responding
  • Deployer account has sufficient balance (ETH for gas)
  • .env file has all required variables:
    • PRIVATE_KEY - Deployer private key
    • RPC_URL - Besu RPC endpoint (http://:8545 or direct)
    • MULTISIG_OWNERS - For MultiSig deployment (comma-separated)
    • MULTISIG_REQUIRED - For MultiSig deployment (number)
    • CCIP_ROUTER - Chainlink CCIP Router address (if using existing)
    • CCIP_FEE_TOKEN - Fee token address (if custom CCIP)
    • ORACLE_DESCRIPTION - Oracle description (default: "ETH/USD Price Feed")
    • ORACLE_HEARTBEAT - Oracle heartbeat in seconds (default: 60)
    • ORACLE_DEVIATION_THRESHOLD - Oracle deviation threshold (default: 50)

🚀 Deployment Commands

Quick Deploy (Parallel)

# Deploy all contracts in parallel
./scripts/deployment/deploy-contracts-parallel.sh

Manual Deploy (Step by step)

# Load environment
source .env

# Phase 1: Core (parallel)
forge script script/DeployMulticall.s.sol:DeployMulticall --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY
forge script script/DeployWETH.s.sol:DeployWETH --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY
forge script script/DeployWETH10.s.sol:DeployWETH10 --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY

# Phase 2: Oracle
forge script script/DeployOracle.s.sol:DeployOracle --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY

# Phase 3: MultiSig (if owners configured)
forge script script/DeployMultiSig.s.sol:DeployMultiSig --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY

# Phase 4: CCIP (after dependencies)
forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY
forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url $RPC_URL --broadcast --private-key $PRIVATE_KEY

Post-Deployment Verification

After each deployment:

  • Contract address recorded in .env
  • Contract verified on Blockscout explorer
  • Contract functions tested (if applicable)
  • Documentation updated with address