#!/usr/bin/env bash # Test Oracle contract functionality # Usage: ./test-oracle-contract.sh RPC_URL="${RPC_URL:-http://192.168.11.250:8545}" ORACLE_PROXY="0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6" echo "Testing Oracle Proxy Contract" echo "Address: $ORACLE_PROXY" echo "RPC: $RPC_URL" echo "" echo "1. Checking contract bytecode..." BYTECODE=$(cast code "$ORACLE_PROXY" --rpc-url "$RPC_URL" 2>/dev/null || echo "") if [ -z "$BYTECODE" ] || [ "$BYTECODE" = "0x" ]; then echo "❌ Contract has no bytecode" exit 1 else echo "✅ Contract has bytecode" fi echo "" echo "2. Testing latestRoundData() function..." RESULT=$(cast call "$ORACLE_PROXY" \ "latestRoundData()(uint80,int256,uint256,uint256,uint80)" \ --rpc-url "$RPC_URL" 2>/dev/null || echo "ERROR") if [ "$RESULT" != "ERROR" ] && [ -n "$RESULT" ]; then echo "✅ Function call successful" echo " Result: $RESULT" else echo "⚠️ Function call failed or returned error" fi echo "" echo "3. Checking recent events..." BLOCK=$(cast block-number --rpc-url "$RPC_URL" 2>/dev/null || echo "0") echo "Current block: $BLOCK" echo "" echo "Test complete"