#!/usr/bin/env bash set -euo pipefail # Load IP configuration SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true # Test all deployed contracts functionality # Usage: ./test-all-contracts.sh RPC_URL="${RPC_URL:-http://${RPC_ALLTRA_1:-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 Functionality Test" echo "RPC: $RPC_URL" echo "=========================================" echo "" PASSED=0 FAILED=0 for name in "${!CONTRACTS[@]}"; do addr="${CONTRACTS[$name]}" echo "Testing $name ($addr)..." BYTECODE=$(cast code "$addr" --rpc-url "$RPC_URL" 2>/dev/null || echo "") if [ -z "$BYTECODE" ] || [ "$BYTECODE" = "0x" ]; then echo " ❌ No bytecode" FAILED=$((FAILED + 1)) else echo " ✅ Has bytecode" PASSED=$((PASSED + 1)) fi echo "" done echo "=========================================" echo "Summary: $PASSED passed, $FAILED failed" echo "========================================="