Files
mev-beta/scripts/monitor-and-setup.sh

192 lines
7.6 KiB
Bash
Executable File

#!/bin/bash
# Monitor Bot Wallet and Auto-Setup Once Funded
# Continuously checks wallet balance and automatically proceeds with setup
set -e
BOT_WALLET="0x40091653f652a259747D86d7Cbe3e2848082a051"
ARBITRUM_RPC="https://arb-mainnet.g.alchemy.com/v2/d6VAHgzkOI3NgLGem6uBMiADT1E9rROB"
MIN_BALANCE="0.001"
CHECK_INTERVAL=10 # seconds between checks
echo "═══════════════════════════════════════════════════════════"
echo "🤖 MEV Bot Auto-Setup Monitor"
echo "═══════════════════════════════════════════════════════════"
echo ""
echo "Monitoring wallet: $BOT_WALLET"
echo "Network: Arbitrum One"
echo "Minimum required: $MIN_BALANCE ETH"
echo "Check interval: ${CHECK_INTERVAL}s"
echo ""
echo "📋 To fund the wallet, use one of these methods:"
echo ""
echo " **Method 1: MetaMask**"
echo " • Open MetaMask on Arbitrum One network"
echo " • Send 0.001 ETH to: $BOT_WALLET"
echo ""
echo " **Method 2: Cast (Command Line)**"
echo " • Run: ./scripts/fund-bot-wallet.sh"
echo " • Follow prompts to use your funded wallet"
echo ""
echo " **Method 3: Bridge**"
echo " • Visit: https://bridge.arbitrum.io/"
echo " • Bridge ETH from Ethereum to Arbitrum"
echo " • Send to: $BOT_WALLET"
echo ""
echo "═══════════════════════════════════════════════════════════"
echo ""
echo "⏳ Monitoring for funds... (Press Ctrl+C to stop)"
echo ""
# Counter for checks
CHECK_COUNT=0
while true; do
CHECK_COUNT=$((CHECK_COUNT + 1))
# Get balance
BALANCE_WEI=$(cast balance "$BOT_WALLET" --rpc-url "$ARBITRUM_RPC" 2>/dev/null || echo "0")
BALANCE_ETH=$(cast --to-unit "$BALANCE_WEI" ether 2>/dev/null || echo "0")
# Display status
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$TIMESTAMP] Check #$CHECK_COUNT: Balance = $BALANCE_ETH ETH"
# Check if funded
if (( $(echo "$BALANCE_ETH >= $MIN_BALANCE" | bc -l) )); then
echo ""
echo "═══════════════════════════════════════════════════════════"
echo "🎉 FUNDING DETECTED!"
echo "═══════════════════════════════════════════════════════════"
echo ""
echo "✅ Wallet Balance: $BALANCE_ETH ETH"
echo ""
echo "🔗 View on Arbiscan:"
echo " https://arbiscan.io/address/$BOT_WALLET"
echo ""
# Calculate capacity
TRADES=$(echo "$BALANCE_ETH / 0.0005" | bc)
VALUE=$(echo "$BALANCE_ETH * 2000" | bc)
echo "📊 Wallet Capacity:"
echo " • Balance: $BALANCE_ETH ETH"
echo " • Value: ~\$$VALUE USD (at \$2000/ETH)"
echo " • Estimated trades: ~$TRADES transactions"
echo ""
echo "═══════════════════════════════════════════════════════════"
echo "🚀 Proceeding with Automated Setup"
echo "═══════════════════════════════════════════════════════════"
echo ""
# Step 1: Setup Keystore
echo "📝 Step 1/3: Configuring encrypted keystore..."
echo ""
if ./scripts/setup-keystore.sh; then
echo ""
echo "✅ Keystore configured successfully!"
else
echo ""
echo "❌ Keystore setup failed. Please run manually:"
echo " ./scripts/setup-keystore.sh"
exit 1
fi
echo ""
echo "─────────────────────────────────────────────────────────"
echo ""
# Step 2: Enable Execution Mode
echo "📝 Step 2/3: Enabling execution mode..."
echo ""
if ./scripts/enable-execution-mode.sh; then
echo ""
echo "✅ Execution mode enabled!"
else
echo ""
echo "❌ Execution mode setup failed. Please run manually:"
echo " ./scripts/enable-execution-mode.sh"
exit 1
fi
echo ""
echo "─────────────────────────────────────────────────────────"
echo ""
# Step 3: Restart Bot
echo "📝 Step 3/3: Restarting bot in execution mode..."
echo ""
# Kill existing bot
if pgrep -f mev-beta > /dev/null; then
echo "🛑 Stopping existing bot..."
pkill -f mev-beta
sleep 2
fi
# Start bot with production config
echo "🚀 Starting bot with execution enabled..."
cd /home/administrator/projects/mev-beta
GO_ENV=production nohup ./bin/mev-beta start > logs/mev_bot_production.log 2>&1 &
BOT_PID=$!
echo "✅ Bot started with PID: $BOT_PID"
# Wait a moment and verify it's running
sleep 3
if ps -p $BOT_PID > /dev/null; then
echo "✅ Bot is running successfully!"
else
echo "⚠️ Bot may have crashed on startup. Check logs:"
echo " tail -50 logs/mev_bot_production.log"
fi
echo ""
echo "═══════════════════════════════════════════════════════════"
echo "🎉 SETUP COMPLETE - BOT IS LIVE!"
echo "═══════════════════════════════════════════════════════════"
echo ""
echo "✅ Wallet: $BOT_WALLET"
echo "✅ Balance: $BALANCE_ETH ETH"
echo "✅ Keystore: keystore/production/executor_wallet.json"
echo "✅ Execution: ENABLED"
echo "✅ Bot Status: RUNNING (PID $BOT_PID)"
echo ""
echo "📊 Monitor Execution:"
echo " • Live logs:"
echo " tail -f logs/mev_bot.log | grep 'EXECUTION\\|Profit'"
echo ""
echo " • Watch opportunities:"
echo " tail -f logs/mev_bot.log | grep 'Opportunity detected'"
echo ""
echo " • Check wallet balance:"
echo " ./scripts/check-wallet-balance.sh"
echo ""
echo " • View on Arbiscan:"
echo " https://arbiscan.io/address/$BOT_WALLET"
echo ""
echo " • Metrics dashboard:"
echo " http://localhost:9090/metrics"
echo ""
echo "🛑 Emergency Stop:"
echo " pkill -f mev-beta"
echo ""
echo "═══════════════════════════════════════════════════════════"
echo ""
# Tail logs to show activity
echo "📺 Showing live logs (Press Ctrl+C to stop)..."
echo ""
tail -f logs/mev_bot.log
exit 0
fi
# Wait before next check
sleep $CHECK_INTERVAL
done