#!/bin/bash set -e # Load test for CCIP message throughput # Tests CCIP message sending capacity SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" RPC_URL="${RPC_URL:-http://localhost:8545}" CCIP_SENDER_ADDRESS="${CCIP_SENDER_ADDRESS:-}" DEST_CHAIN="${DEST_CHAIN:-5009297550715157269}" MESSAGES="${MESSAGES:-100}" CONCURRENT="${CONCURRENT:-10}" if [ -z "$CCIP_SENDER_ADDRESS" ]; then echo "Error: CCIP_SENDER_ADDRESS not set" exit 1 fi echo "CCIP Load Test" echo "RPC URL: $RPC_URL" echo "Sender: $CCIP_SENDER_ADDRESS" echo "Destination Chain: $DEST_CHAIN" echo "Messages: $MESSAGES" echo "Concurrent: $CONCURRENT" # Use cast or web3 to send messages for i in $(seq 1 $MESSAGES); do ( cast send "$CCIP_SENDER_ADDRESS" \ "sendOracleUpdate(uint64,uint256,uint256,uint256)" \ "$DEST_CHAIN" \ "$((25000000000 + i))" \ "$i" \ "$(date +%s)" \ --rpc-url "$RPC_URL" \ --private-key "$PRIVATE_KEY" || true ) & if [ $((i % CONCURRENT)) -eq 0 ]; then wait fi done wait echo "Load test complete!"