Files
proxmox/docs/06-besu/BRIDGE_DEPLOYMENT_REVIEW_COMPLETE.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

14 KiB

Bridge Deployment Review - Complete Analysis

Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation


Date: 2026-01-18
Status: 📋 COMPREHENSIVE REVIEW COMPLETE
Purpose: Verify all bridges needing deployment, check deployment status, and ensure all features are present


🔍 Executive Summary

Deployment Status

Bridge Contract Documented Address Actual Status Code Size Features Complete
CCIPWETH9Bridge 0x89dd12025bfCD38A168455A44B400e913ED33BE2 NOT DEPLOYED 2 bytes YES
CCIPWETH10Bridge 0xe0E93247376aa097dB308B92e6Ba36bA015535D0 NOT DEPLOYED 2 bytes YES
CCIP Router 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e NOT DEPLOYED 2 bytes N/A

Key Findings

  1. Documentation Discrepancy: Documentation claims bridges are deployed, but on-chain verification shows they are NOT deployed
  2. Feature Completeness: Contract code has ALL required features implemented
  3. Deployment Required: Both WETH9 and WETH10 bridges need to be deployed
  4. Configuration Required: After deployment, destinations must be configured

📋 Bridge Contracts Analysis

1. CCIPWETH9Bridge

Contract File: smom-dbis-138/contracts/ccip/CCIPWETH9Bridge.sol
Documented Address: 0x89dd12025bfCD38A168455A44B400e913ED33BE2
Actual Status: NOT DEPLOYED (2 bytes code = empty contract)

Required Features Checklist

Feature Status Implementation
Cross-Chain Transfer COMPLETE sendCrossChain() - Lines 88-152
Receive Messages COMPLETE ccipReceive() - Lines 158-191
Destination Management COMPLETE addDestination(), removeDestination(), updateDestination() - Lines 228-276
Fee Calculation COMPLETE calculateFee() - Lines 199-223
Replay Protection COMPLETE processedTransfers mapping + nonces - Lines 37-38
Admin Functions COMPLETE changeAdmin(), updateFeeToken() - Lines 281-292
View Functions COMPLETE getDestinationChains(), getUserNonce() - Lines 297-306
Events COMPLETE All events defined - Lines 40-58
Access Control COMPLETE onlyAdmin, onlyRouter modifiers - Lines 60-68
Token Handling COMPLETE WETH9 token transfer, LINK fee payment - Lines 100, 135-136

Feature Details

sendCrossChain() (Lines 88-152):

  • Validates amount and recipient
  • Checks destination is enabled
  • Transfers WETH9 from user
  • Increments nonce for replay protection
  • Encodes transfer data (recipient, amount, sender, nonce)
  • Prepares CCIP message with token amounts
  • Calculates and pays LINK fees
  • Sends via CCIP router
  • Emits CrossChainTransferInitiated event

ccipReceive() (Lines 158-191):

  • Only callable by CCIP router (onlyRouter modifier)
  • Replay protection via processedTransfers mapping
  • Validates token amounts and token type
  • Decodes transfer data
  • Transfers WETH9 to recipient
  • Emits CrossChainTransferCompleted event

Destination Management (Lines 228-276):

  • addDestination(): Add new destination chain with receiver bridge address
  • removeDestination(): Disable destination and remove from array
  • updateDestination(): Update receiver bridge address for existing destination
  • All functions emit appropriate events

Fee Calculation (Lines 199-223):

  • View function to calculate CCIP fees before sending
  • Uses same message structure as actual send
  • Returns fee amount in LINK tokens

Replay Protection:

  • processedTransfers mapping tracks processed message IDs
  • nonces mapping tracks user nonces per address
  • Prevents duplicate message processing

Admin Functions:

  • changeAdmin(): Transfer admin role
  • updateFeeToken(): Change LINK token address if needed

Constructor Parameters

constructor(address _ccipRouter, address _weth9, address _feeToken)

Required Values:

  • _ccipRouter: CCIP Router address (verify: 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e or 0x99b3511a2d315a497c8112c1fdd8d508d4b1e506)
  • _weth9: WETH9 token address (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)
  • _feeToken: LINK token address (0x514910771AF9Ca656af840dff83E8264EcF986CA)

2. CCIPWETH10Bridge

Contract File: smom-dbis-138/contracts/ccip/CCIPWETH10Bridge.sol
Documented Address: 0xe0E93247376aa097dB308B92e6Ba36bA015535D0
Actual Status: NOT DEPLOYED (2 bytes code = empty contract)

Required Features Checklist

Feature Status Implementation
Cross-Chain Transfer COMPLETE sendCrossChain() - Lines 88-152
Receive Messages COMPLETE ccipReceive() - Lines 158-191
Destination Management COMPLETE addDestination(), removeDestination(), updateDestination() - Lines 228-276
Fee Calculation COMPLETE calculateFee() - Lines 199-223
Replay Protection COMPLETE processedTransfers mapping + nonces - Lines 37-38
Admin Functions COMPLETE changeAdmin(), updateFeeToken() - Lines 281-292
View Functions COMPLETE getDestinationChains(), getUserNonce() - Lines 297-306
Events COMPLETE All events defined - Lines 40-58
Access Control COMPLETE onlyAdmin, onlyRouter modifiers - Lines 60-68
Token Handling COMPLETE WETH10 token transfer, LINK fee payment - Lines 100, 135-136

Note: CCIPWETH10Bridge has identical feature set to CCIPWETH9Bridge, only difference is WETH10 token instead of WETH9.

Constructor Parameters

constructor(address _ccipRouter, address _weth10, address _feeToken)

Required Values:

  • _ccipRouter: CCIP Router address (verify: 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e or 0x99b3511a2d315a497c8112c1fdd8d508d4b1e506)
  • _weth10: WETH10 token address (0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f)
  • _feeToken: LINK token address (0x514910771AF9Ca656af840dff83E8264EcF986CA)

🔍 Documentation Review

Documentation Sources Reviewed

  1. explorer-monorepo/docs/CCIP_CURRENT_STATUS.md

    • Claims: WETH9 Bridge deployed at 0x89dd12025bfCD38A168455A44B400e913ED33BE2
    • Claims: WETH10 Bridge deployed at 0xe0E93247376aa097dB308B92e6Ba36bA015535D0
    • Claims: CCIP Router deployed at 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
    • Status: OUTDATED - Contracts not actually deployed
  2. smom-dbis-138/docs/deployment/PHASE3_DEPLOYMENT_STATUS.md

    • Claims: Mainnet bridges deployed and verified
    • Claims: ChainID 138 bridges need verification
    • Status: ⚠️ PARTIALLY ACCURATE - Mainnet verified, ChainID 138 NOT deployed
  3. docs/06-besu/T1_2_PHASE3_EXECUTION_PLAN.md

    • Provides deployment instructions
    • Lists required addresses
    • Status: ACCURATE - Good deployment guide

Documentation Discrepancies

Document Claim Actual Status Action Required
CCIP_CURRENT_STATUS.md Bridges deployed Not deployed Update documentation
PHASE3_DEPLOYMENT_STATUS.md Needs verification Not deployed Update status
T1_2_PHASE3_EXECUTION_PLAN.md Ready for execution Accurate No action needed

Feature Completeness Verification

Required Features for CCIP Bridge Contracts

Core Functionality

  • sendCrossChain(): Send tokens to another chain
  • ccipReceive(): Receive tokens from another chain
  • calculateFee(): Calculate CCIP fees

Destination Management

  • addDestination(): Add new destination chain
  • removeDestination(): Remove destination chain
  • updateDestination(): Update receiver bridge address
  • getDestinationChains(): List all configured destinations

Security Features

  • Replay Protection: Message ID tracking
  • Nonce Management: User nonce tracking
  • Access Control: Admin and router modifiers
  • Input Validation: Zero address checks, amount validation

Admin Functions

  • changeAdmin(): Transfer admin role
  • updateFeeToken(): Change LINK token address

Events

  • CrossChainTransferInitiated: Emitted on send
  • CrossChainTransferCompleted: Emitted on receive
  • DestinationAdded: Emitted on destination add
  • DestinationRemoved: Emitted on destination remove
  • DestinationUpdated: Emitted on destination update

View Functions

  • getDestinationChains(): Get all destination chain selectors
  • getUserNonce(): Get user's current nonce
  • destinations(): Get destination details by selector

Feature Comparison: Code vs Requirements

Feature Category Required Implemented Status
Cross-Chain Transfer COMPLETE
Message Reception COMPLETE
Destination Management COMPLETE
Fee Calculation COMPLETE
Replay Protection COMPLETE
Access Control COMPLETE
Admin Functions COMPLETE
Events COMPLETE
View Functions COMPLETE

Result: ALL REQUIRED FEATURES IMPLEMENTED


📊 Deployment Requirements

Prerequisites

  1. CCIP Router: Must be deployed and verified

    • Documented: 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
    • Status: NOT DEPLOYED (needs verification)
    • Alternative: 0x99b3511a2d315a497c8112c1fdd8d508d4b1e506 (from Phase 3.1)
  2. LINK Token: Must be deployed

    • Expected: 0x514910771AF9Ca656af840dff83E8264EcF986CA (canonical address)
    • Status: NOT DEPLOYED (needs CREATE2 deployment)
  3. WETH9 Token: Must be deployed

    • Address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
    • Status: PREDEPLOYED (genesis predeployment)
  4. WETH10 Token: Must be deployed

    • Address: 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f
    • Status: PREDEPLOYED (genesis predeployment)

Deployment Order

  1. Deploy LINK Token (if not at canonical address)

    • Use CREATE2 to deploy to 0x514910771AF9Ca656af840dff83E8264EcF986CA
    • Or verify existing deployment
  2. Verify CCIP Router

    • Check if router exists at documented address
    • Verify router is functional
  3. Deploy CCIPWETH9Bridge

    • Constructor: (router, weth9, link)
    • Save deployed address
  4. Deploy CCIPWETH10Bridge

    • Constructor: (router, weth10, link)
    • Save deployed address
  5. Configure Destinations

    • Add Mainnet destination to both bridges
    • Chain selector: 5009297550715157269
    • Mainnet WETH9 Bridge: 0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6
    • Mainnet WETH10 Bridge: 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e

🎯 Action Items

Immediate Actions Required

  1. Verify CCIP Router Status

    • Check if router exists at 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
    • If not, check alternative: 0x99b3511a2d315a497c8112c1fdd8d508d4b1e506
    • Verify router functionality
  2. Deploy LINK Token

    • Deploy to canonical address using CREATE2
    • Or verify existing deployment
  3. Deploy CCIPWETH9Bridge

    • Use deployment script: script/DeployCCIPWETH9Bridge.s.sol
    • Verify deployment
    • Save address
  4. Deploy CCIPWETH10Bridge

    • Use deployment script: script/DeployCCIPWETH10Bridge.s.sol
    • Verify deployment
    • Save address
  5. Configure Destinations

    • Add Mainnet to WETH9 Bridge
    • Add Mainnet to WETH10 Bridge
    • Verify configuration
  6. Update Documentation

    • Update CCIP_CURRENT_STATUS.md with actual addresses
    • Update PHASE3_DEPLOYMENT_STATUS.md with deployment status
    • Update .env files with new addresses

Documentation Updates Required

  1. explorer-monorepo/docs/CCIP_CURRENT_STATUS.md

    • Update bridge addresses after deployment
    • Update destination configuration status
  2. smom-dbis-138/docs/deployment/PHASE3_DEPLOYMENT_STATUS.md

    • Update ChainID 138 deployment status
    • Add actual deployed addresses
  3. Environment Files

    • Update .env with new bridge addresses
    • Update configuration scripts

📝 Summary

Deployment Status

  • CCIPWETH9Bridge: NOT DEPLOYED - Needs deployment
  • CCIPWETH10Bridge: NOT DEPLOYED - Needs deployment
  • CCIP Router: NOT VERIFIED - Needs verification
  • LINK Token: NOT DEPLOYED - Needs CREATE2 deployment

Feature Completeness

  • CCIPWETH9Bridge: 100% COMPLETE - All required features implemented
  • CCIPWETH10Bridge: 100% COMPLETE - All required features implemented

Documentation Status

  • Feature Documentation: ACCURATE - Contract features well documented
  • Deployment Documentation: OUTDATED - Claims deployment but contracts not deployed
  • Execution Plans: ACCURATE - Good deployment guides available

Next Steps

  1. Resolve transaction deployment issues (from previous session)
  2. Deploy CCIPWETH9Bridge
  3. Deploy CCIPWETH10Bridge
  4. Configure destinations
  5. Update all documentation

Last Updated: 2026-01-18
Review Status: COMPLETE
Action Required: Deploy bridges and update documentation