51 lines
1.2 KiB
Bash
51 lines
1.2 KiB
Bash
|
|
#!/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!"
|
||
|
|
|