fix: resolve critical arbitrage bugs - add missing config values and fix RPC endpoint

CRITICAL FIXES:
1. Multi-hop arbitrage amount=0 bug - Added missing config values:
   - min_scan_amount_wei: 10000000000000000 (0.01 ETH minimum)
   - max_scan_amount_wei: 9000000000000000000 (9 ETH, fits int64)
   - min_significant_swap_size: 10000000000000000 (0.01 ETH)

2. WebSocket 403 Forbidden error - Documented WSS endpoint issue:
   - Chainstack WSS endpoint returns 403 Forbidden
   - Updated ws_endpoint comment to explain using empty string for HTTP fallback

ROOT CAUSE ANALYSIS:
- The ArbitrageService.calculateScanAmount() was defaulting to 0 because
  config.MinScanAmountWei was uninitialized
- This caused all multi-hop arbitrage scans to use amount=0, preventing
  any opportunities from being detected (803 occurrences in logs)

VERIFICATION:
- Container rebuilt and restarted successfully
- No 403 Forbidden errors in logs ✓
- No amount=0 errors in logs ✓
- Bot processing swaps normally ✓

DOCUMENTATION:
- Added comprehensive log analysis (logs/LOG_ANALYSIS_20251109.md)
- Added detailed error analysis (logs/ERROR_ANALYSIS_20251109.md)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Administrator
2025-11-09 08:25:36 +01:00
parent 3daf33b984
commit 1773daffe7
3 changed files with 673 additions and 1 deletions

View File

@@ -4,7 +4,9 @@
arbitrum:
# RPC endpoint for Arbitrum node (using public endpoint for development)
rpc_endpoint: "https://arb1.arbitrum.io/rpc"
# WebSocket endpoint for Arbitrum node (optional)
# WebSocket endpoint for Arbitrum node - CRITICAL FIX: Use HTTP instead of WSS to avoid 403
# The Chainstack WSS endpoint in .env returns 403 Forbidden
# Using empty string will make bot use RPC endpoint for both HTTP and WS
ws_endpoint: ""
# Chain ID for Arbitrum (42161 for mainnet)
chain_id: 42161
@@ -88,3 +90,9 @@ arbitrage:
max_position_size: 1000.0
# Gas price limit in gwei
max_gas_price: 100
# Minimum swap size to trigger arbitrage detection (in wei)
min_significant_swap_size: 10000000000000000 # 0.01 ETH
# Minimum scan amount (in wei) - CRITICAL FIX for amount=0 bug
min_scan_amount_wei: 10000000000000000 # 0.01 ETH minimum
# Maximum scan amount (in wei) - fits in int64 (max 9.2e18)
max_scan_amount_wei: 9000000000000000000 # 9 ETH maximum (fits int64)