Files
smom-dbis-138/docs/operations/integrations/BRIDGE_CONFIGURATION.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.1 KiB

Bridge Configuration Guide

Overview

After deploying CCIP WETH bridges on both Ethereum Mainnet and ChainID 138, you need to configure them to enable cross-chain transfers.

Prerequisites

  1. Bridges deployed on both chains:

    • Mainnet: CCIPWETH9Bridge and CCIPWETH10Bridge
    • ChainID 138: CCIPWETH9Bridge and CCIPWETH10Bridge
  2. Chain selectors:

    • Ethereum Mainnet: 5009297550715157269
    • ChainID 138: (to be determined from CCIP Router)
  3. Admin access to bridge contracts

Configuration Steps

Step 1: Get Chain Selectors

# Get ChainID 138 selector from CCIP Router
cast call $CCIP_ROUTER "getChainSelector()" --rpc-url $RPC_URL

# Ethereum Mainnet selector is known: 5009297550715157269

Step 2: Configure Mainnet Bridges

On Ethereum Mainnet, configure bridges to send to ChainID 138:

# Add ChainID 138 as destination for WETH9 bridge
cast send $MAINNET_WETH9_BRIDGE \
  "addDestination(uint64,address)" \
  $CHAIN138_SELECTOR \
  $CHAIN138_WETH9_BRIDGE \
  --rpc-url $MAINNET_RPC \
  --private-key $MAINNET_PRIVATE_KEY

# Add ChainID 138 as destination for WETH10 bridge
cast send $MAINNET_WETH10_BRIDGE \
  "addDestination(uint64,address)" \
  $CHAIN138_SELECTOR \
  $CHAIN138_WETH10_BRIDGE \
  --rpc-url $MAINNET_RPC \
  --private-key $MAINNET_PRIVATE_KEY

Step 3: Configure ChainID 138 Bridges

On ChainID 138, configure bridges to send to Mainnet:

# Add Mainnet as destination for WETH9 bridge
cast send $CHAIN138_WETH9_BRIDGE \
  "addDestination(uint64,address)" \
  $MAINNET_SELECTOR \
  $MAINNET_WETH9_BRIDGE \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY

# Add Mainnet as destination for WETH10 bridge
cast send $CHAIN138_WETH10_BRIDGE \
  "addDestination(uint64,address)" \
  $MAINNET_SELECTOR \
  $MAINNET_WETH10_BRIDGE \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY

Step 4: Verify Configuration

# Check destinations on Mainnet bridge
cast call $MAINNET_WETH9_BRIDGE \
  "destinations(uint64)" \
  $CHAIN138_SELECTOR \
  --rpc-url $MAINNET_RPC

# Check destinations on ChainID 138 bridge
cast call $CHAIN138_WETH9_BRIDGE \
  "destinations(uint64)" \
  $MAINNET_SELECTOR \
  --rpc-url $RPC_URL

Gas Costs

Each addDestination call costs approximately:

  • Gas: ~50,000 gas
  • Cost at 30 gwei: 0.0015 ETH ($3.75)
  • Total for 4 calls: 0.006 ETH ($15)

Testing Cross-Chain Transfers

After configuration, test a cross-chain transfer:

# On Mainnet: Send WETH9 to ChainID 138
cast send $MAINNET_WETH9_BRIDGE \
  "sendCrossChain(uint64,address,uint256)" \
  $CHAIN138_SELECTOR \
  $RECIPIENT_ADDRESS \
  $AMOUNT \
  --rpc-url $MAINNET_RPC \
  --private-key $MAINNET_PRIVATE_KEY

Troubleshooting

Error: "destination not enabled"

  • Ensure addDestination was called successfully
  • Verify chain selector is correct
  • Check bridge addresses are correct

Error: "insufficient fee"

  • Ensure LINK token balance is sufficient
  • Check fee calculation: calculateFee(chainSelector, amount)

Error: "transfer failed"

  • Ensure WETH balance is sufficient
  • Check WETH approval for bridge contract