#!/bin/bash

# Set PRIVATE_KEY in .env file
# Usage: ./scripts/set-private-key.sh

set -e

cd /home/intlc/projects/proxmox/smom-dbis-138

PRIVATE_KEY_VALUE="0x5373d11ee2cad4ed82b9208526a8c358839cbfe325919fb250f062a25153d1c8"

echo "Setting PRIVATE_KEY in .env file..."

# Check if .env exists
if [ -f .env ]; then
    # Check if PRIVATE_KEY already exists
    if grep -q "^PRIVATE_KEY=" .env; then
        # Update existing PRIVATE_KEY
        sed -i "s|^PRIVATE_KEY=.*|PRIVATE_KEY=$PRIVATE_KEY_VALUE|" .env
        echo "✅ Updated existing PRIVATE_KEY in .env"
    else
        # Add PRIVATE_KEY
        echo "PRIVATE_KEY=$PRIVATE_KEY_VALUE" >> .env
        echo "✅ Added PRIVATE_KEY to .env"
    fi
else
    # Create .env file
    cat > .env <<EOF
# Chain 138 RPC Configuration
RPC_URL_138=http://192.168.11.250:8545
RPC_URL=http://192.168.11.250:8545
PRIVATE_KEY=$PRIVATE_KEY_VALUE
EOF
    echo "✅ Created .env file with PRIVATE_KEY"
fi

# Set secure permissions
chmod 600 .env
echo "✅ Set secure permissions (600) on .env"

# Verify
echo ""
echo "Verifying PRIVATE_KEY..."
if grep -q "^PRIVATE_KEY=$PRIVATE_KEY_VALUE" .env; then
    echo "✅ PRIVATE_KEY is correctly set in .env"
    
    # Get deployer address
    export PRIVATE_KEY=$PRIVATE_KEY_VALUE
    DEPLOYER=$(cast wallet address "$PRIVATE_KEY" 2>/dev/null || echo "")
    
    if [ -z "$DEPLOYER" ]; then
        echo "⚠️  Warning: Could not derive deployer address (cast may not be available)"
    else
        echo "✅ PRIVATE_KEY is valid"
        echo "Deployer address: $DEPLOYER"
        
        # Check balance
        RPC_URL=${RPC_URL:-http://192.168.11.250:8545}
        BALANCE=$(cast balance "$DEPLOYER" --rpc-url "$RPC_URL" 2>/dev/null || echo "0")
        
        if [ "$BALANCE" != "0" ]; then
            BALANCE_ETH=$(echo "scale=4; $BALANCE / 1000000000000000000" | bc 2>/dev/null || echo "0")
            echo "Balance: $BALANCE_ETH ETH"
            
            if (( $(echo "$BALANCE_ETH < 0.1" | bc -l 2>/dev/null || echo 1) )); then
                echo "⚠️  Warning: Low balance. Recommended: 0.1+ ETH for deployments"
            else
                echo "✅ Sufficient balance for deployments"
            fi
        fi
    fi
else
    echo "❌ Error: PRIVATE_KEY was not set correctly"
    exit 1
fi

echo ""
echo "✅ PRIVATE_KEY configuration complete!"
echo ""
echo "Next step: Run deployment"
echo "  ./scripts/deploy-and-integrate-all.sh"

