Files
smom-dbis-138/docs/ccip-integration/DEPLOYMENT_GUIDE.md
defiQUG 2b52cc6e32 refactor(archive): move historical contracts and adapters to archive directory
- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`.
- Updated documentation to reflect the historical status of archived components.
- Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations.
- Enhanced Makefile and package.json scripts for improved contract testing and building processes.
- Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory.
- Updated implementation reports to indicate archived status for various components.
2026-04-12 18:21:05 -07:00

2.8 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

    export CHAIN138_CCIP_REPORTER=0x...
    
  3. Update .env

    • Persist CHAIN138_CCIP_REPORTER
    • Restore archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol only if a fresh redeploy is required
  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.