#!/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!"

