chore: add bash-based swap analysis script
This commit is contained in:
64
analyze_swaps.sh
Executable file
64
analyze_swaps.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
SWAPS_FILE="detected_swaps.jsonl"
|
||||
|
||||
echo "=================================================="
|
||||
echo " MEV Bot V2 - Swap Detection Analysis"
|
||||
echo "=================================================="
|
||||
echo ""
|
||||
|
||||
# Total count
|
||||
TOTAL=$(wc -l < "$SWAPS_FILE")
|
||||
echo "📊 Total Swaps Detected: $TOTAL"
|
||||
echo ""
|
||||
|
||||
# Unique pools
|
||||
echo "🏊 Unique Pools:"
|
||||
jq -r '.pool' "$SWAPS_FILE" | sort -u | wc -l
|
||||
echo ""
|
||||
|
||||
# Top 10 pools by swap count
|
||||
echo "🔝 Top 10 Most Active Pools:"
|
||||
jq -r '.pool' "$SWAPS_FILE" | sort | uniq -c | sort -rn | head -10 | while read count pool; do
|
||||
echo " $pool: $count swaps"
|
||||
done
|
||||
echo ""
|
||||
|
||||
# Unique transaction senders
|
||||
echo "👥 Unique Transaction Senders:"
|
||||
jq -r '.from' "$SWAPS_FILE" | sort -u | wc -l
|
||||
echo ""
|
||||
|
||||
# Top 5 most active senders
|
||||
echo "🎯 Top 5 Most Active Senders:"
|
||||
jq -r '.from' "$SWAPS_FILE" | sort | uniq -c | sort -rn | head -5 | while read count sender; do
|
||||
echo " $sender: $count txs"
|
||||
done
|
||||
echo ""
|
||||
|
||||
# Transaction value distribution
|
||||
echo "💰 Transaction Value Distribution:"
|
||||
echo " Zero value txs:"
|
||||
jq -r 'select(.value == "0x0" or .value == "0x00") | .tx' "$SWAPS_FILE" | wc -l
|
||||
echo " Non-zero value txs:"
|
||||
jq -r 'select(.value != "0x0" and .value != "0x00" and .value != null) | .tx' "$SWAPS_FILE" | wc -l
|
||||
echo ""
|
||||
|
||||
# Block range
|
||||
echo "📦 Block Range:"
|
||||
MIN_BLOCK=$(jq -r '.block' "$SWAPS_FILE" | sort -n | head -1)
|
||||
MAX_BLOCK=$(jq -r '.block' "$SWAPS_FILE" | sort -n | tail -1)
|
||||
BLOCK_RANGE=$((MAX_BLOCK - MIN_BLOCK))
|
||||
echo " First block: $MIN_BLOCK"
|
||||
echo " Last block: $MAX_BLOCK"
|
||||
echo " Range: $BLOCK_RANGE blocks"
|
||||
echo ""
|
||||
|
||||
# Sample swap details
|
||||
echo "🔍 Sample Swap Details (first 3):"
|
||||
head -3 "$SWAPS_FILE" | jq -c '{tx: .tx[0:12], pool: .pool[0:12], from: .from[0:12], value: .value, input_len: (.input | length)}'
|
||||
echo ""
|
||||
|
||||
echo "=================================================="
|
||||
echo " Analysis Complete"
|
||||
echo "=================================================="
|
||||
Reference in New Issue
Block a user