#!/bin/bash
# Crypto Wallet Monitor Script
# Runs every hour to check wallet status

WALLET="0x0bA3cb704A41832ebEceAB78B7243b5a5b111F98"
STATS_FILE="/home/node/.openclaw/workspace/crypto-wallet/MONITOR-STATS.md"
CHECK_FILE="/home/node/.openclaw/workspace/crypto-wallet/last_check.txt"
LOG_FILE="/home/node/.openclaw/workspace/crypto-wallet/monitor.log"

log() {
    echo "[$(date -u +"%Y-%m-%d %H:%M:%S UTC")] $1" | tee -a "$LOG_FILE"
}

check_wallet() {
    log "Checking wallet balance..."
    
    # Try BlockCypher API
    RESULT=$(curl -s --max-time 15 "https://api.blockcypher.com/v1/eth/main/addrs/$WALLET?limit=1" 2>/dev/null)
    
    if [ -z "$RESULT" ]; then
        log "ERROR: Could not fetch wallet data"
        return 1
    fi
    
    BALANCE=$(echo "$RESULT" | grep -o '"final_balance":[0-9]*' | cut -d':' -f2)
    TXS=$(echo "$RESULT" | grep -o '"final_n_tx":[0-9]*' | cut -d':' -f2)
    
    # Convert balance from wei to ETH (18 decimals)
    if [ -n "$BALANCE" ]; then
        ETH_BALANCE=$(echo "scale=8; $BALANCE / 1000000000000000000" | bc 2>/dev/null || echo "0")
    else
        ETH_BALANCE="0"
    fi
    
    echo "$ETH_BALANCE" > "$CHECK_FILE"
    log "Wallet balance: $ETH_BALANCE ETH, Txs: $TXS"
    echo "$RESULT"
}

check_eth_price() {
    log "Checking ETH price..."
    PRICE=$(curl -s "https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd&include_24hr_change=true" 2>/dev/null)
    echo "$PRICE"
}

# Main loop
log "=== CRYPTO MONITOR STARTED ==="
check_wallet
check_eth_price
log "=== CHECK COMPLETE ==="
