#!/bin/bash set -e # Load test for oracle update frequency # Tests oracle under high frequency updates SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" RPC_URL="${RPC_URL:-http://localhost:8545}" AGGREGATOR_ADDRESS="${AGGREGATOR_ADDRESS:-}" UPDATES="${UPDATES:-1000}" RATE="${RATE:-10}" # Updates per second if [ -z "$AGGREGATOR_ADDRESS" ]; then echo "Error: AGGREGATOR_ADDRESS not set" exit 1 fi echo "Oracle Load Test" echo "RPC URL: $RPC_URL" echo "Aggregator: $AGGREGATOR_ADDRESS" echo "Updates: $UPDATES" echo "Rate: $RATE updates/sec" DELAY=$((1000 / RATE)) # Milliseconds for i in $(seq 1 $UPDATES); do PRICE=$((25000000000 + (i * 1000000))) # Increment price cast send "$AGGREGATOR_ADDRESS" \ "updateAnswer(uint256)" \ "$PRICE" \ --rpc-url "$RPC_URL" \ --private-key "$PRIVATE_KEY" || true if [ $i -lt $UPDATES ]; then sleep "0.$DELAY" fi done echo "Load test complete!"