- Added comprehensive bounds checking to prevent buffer overruns in multicall parsing - Implemented graduated validation system (Strict/Moderate/Permissive) to reduce false positives - Added LRU caching system for address validation with 10-minute TTL - Enhanced ABI decoder with missing Universal Router and Arbitrum-specific DEX signatures - Fixed duplicate function declarations and import conflicts across multiple files - Added error recovery mechanisms with multiple fallback strategies - Updated tests to handle new validation behavior for suspicious addresses - Fixed parser test expectations for improved validation system - Applied gofmt formatting fixes to ensure code style compliance - Fixed mutex copying issues in monitoring package by introducing MetricsSnapshot - Resolved critical security vulnerabilities in heuristic address extraction - Progress: Updated TODO audit from 10% to 35% complete 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
27 lines
825 B
Bash
Executable File
27 lines
825 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [[ $# -ne 1 ]]; then
|
|
echo "Usage: $0 <tx_hash>" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "${ARBISCAN_API_KEY:-}" ]]; then
|
|
echo "Error: ARBISCAN_API_KEY environment variable is required." >&2
|
|
exit 1
|
|
fi
|
|
|
|
TX_HASH="$1"
|
|
|
|
# Prefer the newer V2 endpoint; fall back to V1 if it fails (for backwards compatibility)
|
|
response=$(curl -s "https://api.arbiscan.io/v2/api?module=proxy&action=eth_getTransactionByHash&txhash=${TX_HASH}&apikey=${ARBISCAN_API_KEY}")
|
|
status=$(echo "$response" | jq -r '.status' 2>/dev/null || echo "")
|
|
|
|
if [[ "$status" == "1" || "$status" == "0" && "$response" == *"result"* ]]; then
|
|
echo "$response"
|
|
exit 0
|
|
fi
|
|
|
|
# Fallback to legacy V1 endpoint
|
|
curl -s "https://api.arbiscan.io/api?module=proxy&action=eth_getTransactionByHash&txhash=${TX_HASH}&apikey=${ARBISCAN_API_KEY}"
|