Files
smom-dbis-138/scripts/ccip-deployment/deploy-all-ccip-mainnet.sh
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

87 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Deploy all CCIP contracts to Ethereum Mainnet
# This script deploys CCIPLogger which receives Chain-138 transactions
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
# Load environment variables
if [ -f "$PROJECT_ROOT/.env" ]; then
source "$PROJECT_ROOT/.env"
else
log_error "Error: .env file not found"
exit 1
fi
log_info "=== Deploying CCIP Contracts to Ethereum Mainnet ==="
# Check prerequisites
if [ -z "$PRIVATE_KEY" ]; then
log_error "Error: PRIVATE_KEY not set in .env"
exit 1
fi
if [ -z "$ETHEREUM_MAINNET_RPC" ]; then
log_warn "Warning: ETHEREUM_MAINNET_RPC not set, using default"
fi
# Configuration
CCIP_ETH_ROUTER="${CCIP_ETH_ROUTER:-0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D}"
AUTHORIZED_SIGNER="${AUTHORIZED_SIGNER:-}"
CHAIN138_SELECTOR="${CHAIN138_SELECTOR:-0x000000000000008a}"
echo "Configuration:"
echo " CCIP Router (Ethereum): $CCIP_ETH_ROUTER"
echo " Authorized Signer: ${AUTHORIZED_SIGNER:-Not set (optional)}"
echo " Chain-138 Selector: $CHAIN138_SELECTOR"
# Deploy CCIPLogger
log_warn "Deploying CCIPLogger..."
export CCIP_ETH_ROUTER
export AUTHORIZED_SIGNER
export CHAIN138_SELECTOR
npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet
CCIP_LOGGER_ADDRESS=$(grep "CCIPLogger deployed to:" <<< "$(npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet 2>&1)" | awk '{print $NF}')
if [ -z "$CCIP_LOGGER_ADDRESS" ]; then
log_error "Error: Failed to extract CCIPLogger address"
exit 1
fi
log_success "✅ CCIPLogger deployed: $CCIP_LOGGER_ADDRESS"
# Update .env
log_warn "Updating .env file..."
if grep -q "CCIP_LOGGER_ETH_ADDRESS=" "$PROJECT_ROOT/.env"; then
sed -i "s|CCIP_LOGGER_ETH_ADDRESS=.*|CCIP_LOGGER_ETH_ADDRESS=$CCIP_LOGGER_ADDRESS|" "$PROJECT_ROOT/.env"
else
echo "CCIP_LOGGER_ETH_ADDRESS=$CCIP_LOGGER_ADDRESS" >> "$PROJECT_ROOT/.env"
fi
if ! grep -q "CCIP_ETH_ROUTER=" "$PROJECT_ROOT/.env"; then
echo "CCIP_ETH_ROUTER=$CCIP_ETH_ROUTER" >> "$PROJECT_ROOT/.env"
fi
if ! grep -q "CHAIN138_SELECTOR=" "$PROJECT_ROOT/.env"; then
echo "CHAIN138_SELECTOR=$CHAIN138_SELECTOR" >> "$PROJECT_ROOT/.env"
fi
log_success "✅ .env file updated"
log_info "=== Deployment Summary ==="
echo "Deployed Contracts:"
echo " CCIPLogger: $CCIP_LOGGER_ADDRESS"
echo "Next Steps:"
echo " 1. Verify contract on Etherscan"
echo " 2. Set CHAIN138_CCIP_REPORTER for the historical Chain-138 sender if that flow is still active"
echo " Archived source: archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol"
echo " 3. Configure watcher/relayer service"
echo " 4. Start monitoring"