Files
smom-dbis-138/docs/deployment/NEW_CHAINS_ADDED.md
T
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

5.2 KiB
Raw Blame History

New Chains Added: Avalanche, Base, Arbitrum, Optimism

Date: 2025-12-11 Status: ✅ CONFIGURED


📋 New Chains Summary

Chain Chain ID Native Token Explorer Status
Avalanche 43114 AVAX Snowtrace ✅ Added
Base 8453 ETH Basescan ✅ Added
Arbitrum 42161 ETH Arbiscan ✅ Added
Optimism 10 ETH Optimistic Etherscan ✅ Added

✅ Configuration Updates

1. Foundry Configuration (foundry.toml)

RPC Endpoints Added:

  • avalanche = "${AVALANCHE_RPC_URL}"
  • base = "${BASE_RPC_URL}"
  • arbitrum = "${ARBITRUM_RPC_URL}"
  • optimism = "${OPTIMISM_RPC_URL}"

Explorer Configuration Added:

  • avalanche = { key = "${SNOWTRACE_API_KEY}", chain = "avalanche" }
  • base = { key = "${BASESCAN_API_KEY}", chain = "base" }
  • arbitrum = { key = "${ARBISCAN_API_KEY}", chain = "arbitrum" }
  • optimism = { key = "${OPTIMISTIC_ETHERSCAN_API_KEY}", chain = "optimism" }

Profiles Added:

  • [profile.avalanche] - Chain ID 43114
  • [profile.base] - Chain ID 8453
  • [profile.arbitrum] - Chain ID 42161
  • [profile.optimism] - Chain ID 10

2. Deployment Script (script/DeployAll.s.sol)

Chain Constants Added:

uint256 constant AVALANCHE = 43114;
uint256 constant BASE = 8453;
uint256 constant ARBITRUM = 42161;
uint256 constant OPTIMISM = 10;

CCIP Configuration Added:

  • CCIP_AVALANCHE_ROUTER
  • CCIP_AVALANCHE_LINK_TOKEN
  • AVALANCHE_SELECTOR
  • Similar for Base, Arbitrum, Optimism

WETH Configuration Added:

  • WETH9_AVALANCHE / WETH10_AVALANCHE (optional)
  • Similar for Base, Arbitrum, Optimism

3. Gas Price Script (scripts/deployment/get-multichain-gas-prices.sh)

Gas Price Functions Added:

  • get_avalanche_gas_price()
  • get_base_gas_price()
  • get_arbitrum_gas_price()
  • get_optimism_gas_price()

Cost Calculations Added:

  • All 4 new chains included in cost calculations
  • USD rates configured (AVAX: $35, others use ETH rate: $2500)

🔧 Environment Variables Required

Add to .env:

# RPC URLs
AVALANCHE_RPC_URL=https://avalanche-mainnet.infura.io/v3/YOUR_KEY
BASE_RPC_URL=https://mainnet.base.org
ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc
OPTIMISM_RPC_URL=https://mainnet.optimism.io

# Explorer API Keys
SNOWTRACE_API_KEY=your_snowtrace_api_key
BASESCAN_API_KEY=your_basescan_api_key
ARBISCAN_API_KEY=your_arbiscan_api_key
OPTIMISTIC_ETHERSCAN_API_KEY=your_optimistic_etherscan_api_key

# CCIP Configuration - Avalanche
CCIP_AVALANCHE_ROUTER=0xF694E193200268f9a4868e4Aa017A0118C9a8177
CCIP_AVALANCHE_LINK_TOKEN=0x5947BB275c521040051E823961ee81e07Ca0C08A
AVALANCHE_SELECTOR=6433500567565415381

# CCIP Configuration - Base
CCIP_BASE_ROUTER=0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D
CCIP_BASE_LINK_TOKEN=0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e396
BASE_SELECTOR=15971525489660198786

# CCIP Configuration - Arbitrum
CCIP_ARBITRUM_ROUTER=0x1619DE6B6B20eD217a58d00f37B9d47C7663feca
CCIP_ARBITRUM_LINK_TOKEN=0xf97f4df75117a78c1A5a0DBb814Af92458539FB4
ARBITRUM_SELECTOR=4949039107694359620

# CCIP Configuration - Optimism
CCIP_OPTIMISM_ROUTER=0x261c05167db67Be2E2dc4a347C4E6B000C677852
CCIP_OPTIMISM_LINK_TOKEN=0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6
OPTIMISM_SELECTOR=3734403246176062136

# Optional: WETH addresses (if using existing)
WETH9_AVALANCHE=0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB
WETH10_AVALANCHE=0x0
WETH9_BASE=0x4200000000000000000000000000000000000006
WETH10_BASE=0x0
WETH9_ARBITRUM=0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
WETH10_ARBITRUM=0x0
WETH9_OPTIMISM=0x4200000000000000000000000000000000000006
WETH10_OPTIMISM=0x0

📊 Contracts to Deploy

Each new chain requires 5 contracts:

  1. WETH9
  2. WETH10
  3. CCIPWETH9Bridge
  4. CCIPWETH10Bridge
  5. CCIPLogger

Total: 20 additional contracts (5 per chain × 4 chains)


🚀 Deployment Commands

Avalanche

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

Base

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

Arbitrum

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

Optimism

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

💰 Gas Cost Estimates

Per Chain (all 5 contracts):

  • Avalanche: ~8,760,000 gas units
  • Base: ~8,760,000 gas units
  • Arbitrum: ~8,760,000 gas units
  • Optimism: ~8,760,000 gas units

Note: Run ./scripts/deployment/get-multichain-gas-prices.sh for real-time estimates.


✅ Next Steps

  1. Configure .env with all required variables
  2. Fund wallets on each chain with native tokens
  3. Test gas price fetching: ./scripts/deployment/get-multichain-gas-prices.sh
  4. Deploy contracts to each chain

Total Chains Now Supported: 9 (Ethereum Mainnet, Cronos, BSC, Polygon, Gnosis, Avalanche, Base, Arbitrum, Optimism)