- Fixed binary name from mev-bot to mev-beta (line 82) - Added automatic PROVIDER_CONFIG_PATH export (defaults to config/providers_runtime.yaml) - Created .env.production template with all required variables - Added provider config path display in startup messages This ensures the bot uses the correct binary and provider configuration when started with scripts/run.sh 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
87 lines
3.0 KiB
Bash
Executable File
87 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# run.sh - Run the MEV bot
|
|
|
|
echo "Running MEV bot..."
|
|
|
|
# Build the application first
|
|
./scripts/build.sh
|
|
|
|
if [ $? -eq 0 ]; then
|
|
# Normalize GO_ENV when passed as .env.* style
|
|
if [[ -n "$GO_ENV" && "$GO_ENV" == .env.* ]]; then
|
|
GO_ENV="${GO_ENV#.env.}"
|
|
export GO_ENV
|
|
fi
|
|
|
|
# Load environment variables from .env.production if it exists
|
|
if [ -f ".env.production" ]; then
|
|
echo "🔧 Loading production environment variables from .env.production..."
|
|
set -a # Automatically export all variables
|
|
source .env.production
|
|
set +a # Stop automatically exporting
|
|
else
|
|
echo "❌ .env.production file not found! Creating one with defaults..."
|
|
echo "Please configure .env.production for production deployment"
|
|
exit 1
|
|
fi
|
|
|
|
# Validate required environment variables
|
|
if [ -z "$MEV_BOT_ENCRYPTION_KEY" ]; then
|
|
echo "❌ MEV_BOT_ENCRYPTION_KEY not found in .env.production"
|
|
echo "Please set this variable for secure operations"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$CONTRACT_ARBITRAGE_EXECUTOR" ]; then
|
|
echo "❌ CONTRACT_ARBITRAGE_EXECUTOR not found in .env.production"
|
|
echo "Please set the deployed arbitrage executor contract address"
|
|
exit 1
|
|
fi
|
|
|
|
# Set required environment variables with production values
|
|
export ARBITRUM_RPC_ENDPOINT="${ARBITRUM_RPC_ENDPOINT:-wss://arbitrum-mainnet.core.chainstack.com/53c30e7a941160679fdcc396c894fc57}"
|
|
export ARBITRUM_WS_ENDPOINT="${ARBITRUM_WS_ENDPOINT:-$ARBITRUM_RPC_ENDPOINT}"
|
|
export METRICS_ENABLED="${METRICS_ENABLED:-true}"
|
|
export METRICS_PORT="${METRICS_PORT:-9090}"
|
|
|
|
export MEV_BOT_KEYSTORE_PATH="${MEV_BOT_KEYSTORE_PATH:-keystore/production}"
|
|
export MEV_BOT_AUDIT_LOG="${MEV_BOT_AUDIT_LOG:-logs/production_audit.log}"
|
|
export MEV_BOT_BACKUP_PATH="${MEV_BOT_BACKUP_PATH:-backups/production}"
|
|
|
|
mkdir -p "$MEV_BOT_KEYSTORE_PATH"
|
|
mkdir -p "$MEV_BOT_BACKUP_PATH"
|
|
mkdir -p "$(dirname "$MEV_BOT_AUDIT_LOG")"
|
|
|
|
echo "Keystore path: $MEV_BOT_KEYSTORE_PATH"
|
|
env | grep MEV_BOT_KEYSTORE_PATH
|
|
|
|
echo ""
|
|
echo "🚀 PRODUCTION MEV BOT STARTUP"
|
|
echo "================================"
|
|
echo "📡 Network Configuration:"
|
|
echo " RPC: $ARBITRUM_RPC_ENDPOINT"
|
|
echo " WS: $ARBITRUM_WS_ENDPOINT"
|
|
echo " Metrics Port: $METRICS_PORT"
|
|
echo ""
|
|
echo "📝 Deployed Contracts:"
|
|
echo " ArbitrageExecutor: $CONTRACT_ARBITRAGE_EXECUTOR"
|
|
echo " FlashSwapper: $CONTRACT_FLASH_SWAPPER"
|
|
echo " DataFetcher: $CONTRACT_DATA_FETCHER"
|
|
echo ""
|
|
echo "🔐 Security:"
|
|
echo " Encryption Key: ${MEV_BOT_ENCRYPTION_KEY:0:8}...***"
|
|
echo ""
|
|
|
|
# Set provider config path if not already set
|
|
export PROVIDER_CONFIG_PATH="${PROVIDER_CONFIG_PATH:-$PWD/config/providers_runtime.yaml}"
|
|
echo "📋 Provider Config: $PROVIDER_CONFIG_PATH"
|
|
echo ""
|
|
|
|
# Run the application
|
|
./bin/mev-beta start
|
|
else
|
|
echo "Failed to build the application!"
|
|
exit 1
|
|
fi
|