- 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.
2.7 KiB
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
.envfile 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)
-
Verify Configuration
# Check .env has required variables grep -E "PRIVATE_KEY|ETHEREUM_MAINNET_RPC|CCIP_ETH_ROUTER|CHAIN138_SELECTOR" .env -
Deploy Contract
npm run deploy:logger:mainnet -
Verify on Etherscan
npx hardhat verify --network mainnet <CCIP_LOGGER_ADDRESS> <ROUTER> <SIGNER> <SELECTOR> -
Update .env
- Contract address will be automatically added
- Verify
CCIP_LOGGER_ETH_ADDRESSis set
Phase 3: Deploy CCIPTxReporter (Chain-138)
-
Verify Configuration
# Ensure CCIPLogger address is set grep CCIP_LOGGER_ETH_ADDRESS .env -
Deploy Contract
npm run deploy:reporter:chain138 -
Update .env
- Contract address will be automatically added
- Verify
CCIP_REPORTER_CHAIN138_ADDRESSis set
-
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
-
Initialize Database
# Database will be auto-initialized on first run -
Configure Watcher
# Update watcher/.env with: # - Database connection # - RPC endpoints # - Contract addresses # - Private keys (use secure key management) -
Build and Start
cd watcher npm run build npm startOr with Docker:
cd watcher/docker docker-compose up -d
Phase 5: Verification and Testing
-
Test Single Transaction
# On Chain-138, send a test transaction # Watch logs for relay confirmation -
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 -
Check Metrics
- Prometheus: http://localhost:9090
- Database: Query
outboxtable - Logs: Check watcher logs
Environment Variables Reference
See docs/ccip-integration/README.md for complete environment variable reference.
Troubleshooting
See main README for troubleshooting guide.