Files
smom-dbis-138/docs/ccip-integration/DEPLOYMENT_GUIDE.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

2.7 KiB

CCIP Integration Deployment Guide

Complete Deployment Checklist

Phase 1: Prerequisites

  • Install Node.js 18+ and npm
  • Install Hardhat: npm install
  • Install watcher dependencies: cd watcher && npm install
  • Set up PostgreSQL database
  • Configure .env file with all required variables
  • Fund deployer wallet with ETH (Mainnet) and native token (Chain-138)
  • Obtain CCIP router addresses from Chainlink CCIP Directory

Phase 2: Deploy CCIPLogger (Ethereum Mainnet)

  1. Verify Configuration

    # Check .env has required variables
    grep -E "PRIVATE_KEY|ETHEREUM_MAINNET_RPC|CCIP_ETH_ROUTER|CHAIN138_SELECTOR" .env
    
  2. Deploy Contract

    npm run deploy:logger:mainnet
    
  3. Verify on Etherscan

    npx hardhat verify --network mainnet <CCIP_LOGGER_ADDRESS> <ROUTER> <SIGNER> <SELECTOR>
    
  4. Update .env

    • Contract address will be automatically added
    • Verify CCIP_LOGGER_ETH_ADDRESS is set

Phase 3: Deploy CCIPTxReporter (Chain-138)

  1. Verify Configuration

    # Ensure CCIPLogger address is set
    grep CCIP_LOGGER_ETH_ADDRESS .env
    
  2. Deploy Contract

    npm run deploy:reporter:chain138
    
  3. Update .env

    • Contract address will be automatically added
    • Verify CCIP_REPORTER_CHAIN138_ADDRESS is set
  4. Fund Contract

    # Send ETH to CCIPTxReporter for CCIP fees
    cast send <CCIP_REPORTER_ADDRESS> --value 1ether --private-key $PRIVATE_KEY --rpc-url $CHAIN138_RPC_URL
    

Phase 4: Set Up Watcher/Relayer

  1. Initialize Database

    # Database will be auto-initialized on first run
    
  2. Configure Watcher

    # Update watcher/.env with:
    # - Database connection
    # - RPC endpoints
    # - Contract addresses
    # - Private keys (use secure key management)
    
  3. Build and Start

    cd watcher
    npm run build
    npm start
    

    Or with Docker:

    cd watcher/docker
    docker-compose up -d
    

Phase 5: Verification and Testing

  1. Test Single Transaction

    # On Chain-138, send a test transaction
    # Watch logs for relay confirmation
    
  2. Monitor Events

    # On Ethereum Mainnet, watch for RemoteTxLogged events
    cast logs --from-block latest "RemoteTxLogged(uint64,bytes32,address,address,uint256,bytes)" --rpc-url $ETHEREUM_MAINNET_RPC
    
  3. Check Metrics

Environment Variables Reference

See docs/ccip-integration/README.md for complete environment variable reference.

Troubleshooting

See main README for troubleshooting guide.