- 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>
182 lines
7.9 KiB
Plaintext
182 lines
7.9 KiB
Plaintext
# Production Environment Configuration for MEV Bot
|
|
# WARNING: This file contains sensitive information - NEVER commit to version control!
|
|
|
|
# =============================================================================
|
|
# MULTI-RPC ENDPOINT CONFIGURATION FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# Reading endpoints (WSS preferred for real-time data monitoring)
|
|
# Format: Comma-separated list of WebSocket endpoints optimized for event monitoring
|
|
# The system will automatically prioritize by order (first = highest priority)
|
|
ARBITRUM_READING_ENDPOINTS="wss://arbitrum-mainnet.core.chainstack.com/YOUR_API_KEY_1,wss://arb-mainnet.g.alchemy.com/v2/YOUR_API_KEY_2,wss://arbitrum-mainnet.infura.io/ws/v3/YOUR_PROJECT_ID"
|
|
|
|
# Execution endpoints (HTTP/HTTPS preferred for transaction reliability)
|
|
# Format: Comma-separated list of RPC endpoints optimized for transaction submission
|
|
# The system will automatically handle failover and load balancing
|
|
ARBITRUM_EXECUTION_ENDPOINTS="https://arbitrum-mainnet.core.chainstack.com/YOUR_API_KEY_1,https://arb-mainnet.g.alchemy.com/v2/YOUR_API_KEY_2,https://arbitrum-mainnet.infura.io/v3/YOUR_PROJECT_ID"
|
|
|
|
# =============================================================================
|
|
# LEGACY CONFIGURATION (backward compatibility)
|
|
# =============================================================================
|
|
|
|
# Legacy single RPC endpoint (used if multi-endpoint config is not available)
|
|
ARBITRUM_RPC_ENDPOINT=wss://arbitrum-mainnet.core.chainstack.com/YOUR_API_KEY_HERE
|
|
|
|
# Legacy single WebSocket endpoint
|
|
ARBITRUM_WS_ENDPOINT=wss://arbitrum-mainnet.core.chainstack.com/YOUR_API_KEY_HERE
|
|
|
|
# Fallback RPC endpoints (used if reading/execution endpoints not specified)
|
|
ARBITRUM_FALLBACK_ENDPOINTS=https://arb1.arbitrum.io/rpc,https://arbitrum.llamarpc.com,https://arbitrum-one.publicnode.com,https://arbitrum-one.public.blastapi.io
|
|
|
|
# =============================================================================
|
|
# RATE LIMITING CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# Global rate limiting settings (applied across all endpoints)
|
|
RPC_REQUESTS_PER_SECOND=200
|
|
RPC_MAX_CONCURRENT=20
|
|
|
|
# Per-endpoint rate limiting is automatically configured:
|
|
# - WebSocket endpoints: 300 RPS, 25 concurrent connections, 60s timeout
|
|
# - HTTP endpoints: 200 RPS, 20 concurrent connections, 30s timeout
|
|
# - Health checks: 30s interval for WSS, 60s for HTTP
|
|
|
|
# =============================================================================
|
|
# BOT CONFIGURATION FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# Performance settings (higher than staging for production)
|
|
BOT_MAX_WORKERS=10
|
|
BOT_CHANNEL_BUFFER_SIZE=2000
|
|
|
|
# =============================================================================
|
|
# ETHEREUM ACCOUNT CONFIGURATION FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# CRITICAL: Your production trading account private key (64 hex characters without 0x)
|
|
# Generate a new key specifically for production trading and fund it appropriately
|
|
# NEVER USE YOUR MAIN WALLET - USE A DEDICATED TRADING ACCOUNT
|
|
ETHEREUM_PRIVATE_KEY=your_64_character_production_private_key_here
|
|
|
|
# Account address (derived from private key)
|
|
ETHEREUM_ACCOUNT_ADDRESS=0xYOUR_PRODUCTION_ACCOUNT_ADDRESS_HERE
|
|
|
|
# Gas price multiplier for competitive transactions (higher than staging for faster execution)
|
|
ETHEREUM_GAS_PRICE_MULTIPLIER=2.0
|
|
|
|
# =============================================================================
|
|
# REAL DEPLOYED CONTRACT ADDRESSES ON ARBITRUM MAINNET FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# PRODUCTION READY - ArbitrageExecutor contract (VERIFIED)
|
|
CONTRACT_ARBITRAGE_EXECUTOR=0xEC2A16d5F8Ac850D08C4C7F67EFD50051E7cFC0b
|
|
|
|
# PRODUCTION READY - UniswapV3FlashSwapper contract (VERIFIED)
|
|
CONTRACT_FLASH_SWAPPER=0x5801EE5C2f6069E0F11CcE7c0f27C2ef88e79a95
|
|
|
|
# Additional deployed contracts for production
|
|
CONTRACT_UNISWAP_V2_FLASH_SWAPPER=0xc0b8c3e9a976ec67d182d7cb0283fb4496692593
|
|
CONTRACT_DATA_FETCHER=0x3c2c9c86f081b9dac1f0bf97981cfbe96436b89d
|
|
|
|
# =============================================================================
|
|
# SECURITY CONFIGURATION FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# Encryption key for secure storage (generate with: openssl rand -base64 32)
|
|
# KEEP THIS SECRET AND BACK IT UP SECURELY
|
|
MEV_BOT_ENCRYPTION_KEY="YOUR_32_CHARACTER_ENCRYPTION_KEY_HERE"
|
|
|
|
# =============================================================================
|
|
# DATABASE CONFIGURATION FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# PostgreSQL configuration for production
|
|
POSTGRES_DB=mevbot_production
|
|
POSTGRES_USER=mevbot_production
|
|
POSTGRES_PASSWORD=your_secure_production_database_password
|
|
|
|
# =============================================================================
|
|
# MONITORING CONFIGURATION FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# Metrics and logging for production
|
|
METRICS_ENABLED=true
|
|
METRICS_PORT=9090
|
|
HEALTH_PORT=8080
|
|
LOG_LEVEL=info
|
|
LOG_FORMAT=json
|
|
|
|
# Grafana credentials for production
|
|
GRAFANA_USER=admin
|
|
GRAFANA_PASSWORD=your_secure_production_grafana_password
|
|
|
|
# Prometheus port for production
|
|
PROMETHEUS_PORT=9091
|
|
GRAFANA_PORT=3000
|
|
|
|
# =============================================================================
|
|
# PRODUCTION SETTINGS
|
|
# =============================================================================
|
|
|
|
# Environment
|
|
GO_ENV=production
|
|
DEBUG=false
|
|
|
|
# Resource limits and timeouts for production
|
|
MAX_MEMORY=2G
|
|
MAX_CPU=4000m
|
|
|
|
# =============================================================================
|
|
# EXAMPLE PREMIUM RPC PROVIDERS FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# Chainstack (Recommended for production)
|
|
# ARBITRUM_RPC_ENDPOINT=wss://arbitrum-mainnet.core.chainstack.com/YOUR_API_KEY
|
|
|
|
# Alchemy (Enterprise tier recommended for production)
|
|
# ARBITRUM_RPC_ENDPOINT=wss://arb-mainnet.g.alchemy.com/v2/YOUR_API_KEY
|
|
|
|
# Infura (Premium tier recommended for production)
|
|
# ARBITRUM_RPC_ENDPOINT=wss://arbitrum-mainnet.infura.io/ws/v3/YOUR_PROJECT_ID
|
|
|
|
# QuickNode (Business tier recommended for production)
|
|
# ARBITRUM_RPC_ENDPOINT=wss://YOUR_ENDPOINT.arbitrum-mainnet.quiknode.pro/YOUR_TOKEN/
|
|
|
|
# =============================================================================
|
|
# SECURITY BEST PRACTICES FOR PRODUCTION
|
|
# =============================================================================
|
|
|
|
# 1. Use a dedicated server/VPS for production deployment
|
|
# 2. Enable firewall and limit access to necessary ports only
|
|
# 3. Use premium RPC providers for better reliability and speed
|
|
# 4. Monitor all transactions and profits closely
|
|
# 5. Start with small position sizes to test everything works
|
|
# 6. Set up alerts for unusual activity or losses
|
|
# 7. Keep private keys encrypted and backed up securely
|
|
# 8. Use separate accounts for testing and production
|
|
# 9. Regularly update and patch the system
|
|
# 10. Monitor gas prices and adjust strategies accordingly
|
|
|
|
# =============================================================================
|
|
# PRODUCTION DEPLOYMENT CHECKLIST
|
|
# =============================================================================
|
|
|
|
# ☐ Set up dedicated server/VPS
|
|
# ☐ Configure firewall and security groups
|
|
# ☐ Install Docker and docker-compose
|
|
# ☐ Generate production private key and fund account
|
|
# ☐ Deploy smart contracts to Arbitrum mainnet
|
|
# ☐ Configure premium RPC provider
|
|
# ☐ Set up monitoring and alerting
|
|
# ☐ Test deployment with dry-run mode
|
|
# ☐ Start with small position sizes
|
|
# ☐ Monitor closely during first week
|
|
# ☐ Set up automated backups
|
|
# ☐ Configure log rotation
|
|
# ☐ Set up system monitoring (CPU, memory, disk)
|
|
# ☐ Set up profit tracking and reporting
|
|
# ☐ Set up emergency stop procedures
|
|
|
|
ARBISCAN_API_KEY=H8PEIY79385F4UKYU7MRV5IAT1BI1WYIVY
|
|
|