Files
explorer-monorepo/scripts/generate-ccip-status-report.sh

153 lines
5.4 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# Generate CCIP Status Report
# Task 141: Create CCIP Status Report Script
# Usage: ./generate-ccip-status-report.sh [output_file]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "$PROJECT_ROOT/scripts/lib/address-inventory.sh"
source "$PROJECT_ROOT/scripts/lib/ccip-destinations.sh"
load_explorer_runtime_env
# Configuration
RPC_URL="${RPC_URL_138:-http://192.168.11.250:8545}"
OUTPUT_FILE="${1:-docs/CCIP_STATUS_REPORT_$(date +%Y%m%d_%H%M%S).md}"
# Create report
{
echo "# CCIP Status Report"
echo ""
echo "**Date**: $(date)"
echo "**Network**: ChainID 138"
echo "**RPC URL**: $RPC_URL"
echo ""
echo "---"
echo ""
echo "## Executive Summary"
echo ""
# Router status
echo "### CCIP Router"
ROUTER="$(resolve_address_value CCIP_ROUTER_ADDRESS CCIP_ROUTER_ADDRESS 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e)"
ROUTER_BYTECODE=$(cast code "$ROUTER" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$ROUTER_BYTECODE" ] && [ "$ROUTER_BYTECODE" != "0x" ]; then
echo "- **Status**: ✅ Deployed"
echo "- **Address**: $ROUTER"
else
echo "- **Status**: ❌ Not Found"
fi
echo ""
# Sender status
echo "### CCIP Sender"
SENDER="0x105F8A15b819948a89153505762444Ee9f324684"
SENDER_BYTECODE=$(cast code "$SENDER" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$SENDER_BYTECODE" ] && [ "$SENDER_BYTECODE" != "0x" ]; then
echo "- **Status**: ✅ Deployed"
echo "- **Address**: $SENDER"
else
echo "- **Status**: ❌ Not Found"
fi
echo ""
# Bridge status
echo "### Bridge Contracts"
WETH9_BRIDGE="$(resolve_address_value CCIPWETH9_BRIDGE CCIPWETH9_BRIDGE 0x971cD9D156f193df8051E48043C476e53ECd4693)"
WETH10_BRIDGE="$(resolve_address_value CCIPWETH10_BRIDGE CCIPWETH10_BRIDGE 0xe0E93247376aa097dB308B92e6Ba36bA015535D0)"
WETH9_BRIDGE_BYTECODE=$(cast code "$WETH9_BRIDGE" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
WETH10_BRIDGE_BYTECODE=$(cast code "$WETH10_BRIDGE" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$WETH9_BRIDGE_BYTECODE" ] && [ "$WETH9_BRIDGE_BYTECODE" != "0x" ]; then
echo "- **WETH9 Bridge**: ✅ Deployed ($WETH9_BRIDGE)"
else
echo "- **WETH9 Bridge**: ❌ Not Found"
fi
if [ -n "$WETH10_BRIDGE_BYTECODE" ] && [ "$WETH10_BRIDGE_BYTECODE" != "0x" ]; then
echo "- **WETH10 Bridge**: ✅ Deployed ($WETH10_BRIDGE)"
else
echo "- **WETH10 Bridge**: ❌ Not Found"
fi
echo ""
# Destination configuration
echo "### Bridge Destination Configuration"
TOTAL_DESTINATIONS=$(ccip_destination_count)
WETH9_CONFIGURED=0
WETH10_CONFIGURED=0
while IFS=$'\t' read -r _chain_name SELECTOR _weth9 _weth10 _rpc_url; do
DEST_WETH9=$(cast call "$WETH9_BRIDGE" "destinations(uint64)" "$SELECTOR" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
DEST_WETH9_CLEAN=$(echo "$DEST_WETH9" | grep -oE "^0x[0-9a-fA-F]{40}$" | head -1 || echo "")
if [ -n "$DEST_WETH9_CLEAN" ] && ! echo "$DEST_WETH9_CLEAN" | grep -qE "^0x0+$"; then
((WETH9_CONFIGURED++)) || true
fi
DEST_WETH10=$(cast call "$WETH10_BRIDGE" "destinations(uint64)" "$SELECTOR" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
DEST_WETH10_CLEAN=$(echo "$DEST_WETH10" | grep -oE "^0x[0-9a-fA-F]{40}$" | head -1 || echo "")
if [ -n "$DEST_WETH10_CLEAN" ] && ! echo "$DEST_WETH10_CLEAN" | grep -qE "^0x0+$"; then
((WETH10_CONFIGURED++)) || true
fi
done < <(ccip_destination_rows)
echo "- **WETH9 Bridge**: $WETH9_CONFIGURED/$TOTAL_DESTINATIONS destinations configured"
echo "- **WETH10 Bridge**: $WETH10_CONFIGURED/$TOTAL_DESTINATIONS destinations configured"
echo ""
# Token status
echo "### Token Contracts"
WETH9="0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
WETH10="0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f"
WETH9_BYTECODE=$(cast code "$WETH9" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
WETH10_BYTECODE=$(cast code "$WETH10" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$WETH9_BYTECODE" ] && [ "$WETH9_BYTECODE" != "0x" ]; then
echo "- **WETH9**: ✅ Deployed ($WETH9)"
else
echo "- **WETH9**: ❌ Not Found"
fi
if [ -n "$WETH10_BYTECODE" ] && [ "$WETH10_BYTECODE" != "0x" ]; then
echo "- **WETH10**: ✅ Deployed ($WETH10)"
else
echo "- **WETH10**: ❌ Not Found"
fi
echo ""
echo "---"
echo ""
echo "## Detailed Status"
echo ""
echo "### System Health"
echo ""
echo "Run comprehensive verification:"
echo "\`\`\`bash"
echo "./scripts/verify-complete-ccip-setup.sh"
echo "\`\`\`"
echo ""
echo "### Next Steps"
echo ""
if [ $WETH9_CONFIGURED -lt $TOTAL_DESTINATIONS ] || [ $WETH10_CONFIGURED -lt $TOTAL_DESTINATIONS ]; then
echo "1. Configure missing bridge destinations"
echo "2. Verify configuration"
echo "3. Test bridge operations"
else
echo "1. Test bridge operations"
echo "2. Monitor system health"
echo "3. Review configuration"
fi
echo ""
echo "---"
echo ""
echo "**Report Generated**: $(date)"
} > "$OUTPUT_FILE"
echo "Status report generated: $OUTPUT_FILE"