#!/usr/bin/env bash
# Check all deployed contracts status
# Usage: ./check-all-contracts-status.sh

RPC_URL="${RPC_URL:-http://192.168.11.250:8545}"

declare -A CONTRACTS=(
    ["Oracle Proxy"]="0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6"
    ["Oracle Aggregator"]="0x99b3511a2d315a497c8112c1fdd8d508d4b1e506"
    ["CCIP Router"]="0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e"
    ["CCIP Sender"]="0x105F8A15b819948a89153505762444Ee9f324684"
    ["CCIPWETH9Bridge"]="0x89dd12025bfCD38A168455A44B400e913ED33BE2"
    ["CCIPWETH10Bridge"]="0xe0E93247376aa097dB308B92e6Ba36bA015535D0"
    ["Price Feed Keeper"]="0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04"
)

echo "========================================="
echo "Contract Deployment Status Check"
echo "RPC: $RPC_URL"
echo "========================================="
echo ""

for name in "${!CONTRACTS[@]}"; do
    addr="${CONTRACTS[$name]}"
    echo -n "Checking $name ($addr)... "
    
    BYTECODE=$(cast code "$addr" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
    
    if [ -z "$BYTECODE" ] || [ "$BYTECODE" = "0x" ]; then
        echo "❌ No bytecode"
    else
        BYTECODE_LENGTH=$((${#BYTECODE} - 2))
        echo "✅ Deployed ($((BYTECODE_LENGTH / 2)) bytes)"
    fi
done

echo ""
echo "========================================="
