#!/usr/bin/env python3
"""
Scan rapide des derniers 10k blocks pour trouver les positions récentes
"""

import os
from dotenv import load_dotenv
from web3 import Account
from position_tracker_rpc import PositionTrackerRPC
import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(levelname)s - %(message)s'
)

load_dotenv()

private_key = os.getenv('WALLET_PRIVATE_KEY')
account = Account.from_key(private_key)

print("=" * 80)
print("🔍 SCAN RAPIDE - DERNIERS 10K BLOCKS")
print("=" * 80)
print(f"\nWallet: {account.address}\n")

tracker = PositionTrackerRPC(account.address)

# Charger cache
tracker.load_from_file('positions_cache.json')

# Scanner seulement les derniers 10k blocks
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("https://bsc-dataseed.binance.org/"))
current_block = w3.eth.block_number
start_block = current_block - 10000

print(f"Block actuel: {current_block}")
print(f"Scan depuis: {start_block} (10000 blocks)\n")

# Scan avec chunks de 1000
tracker.scan_positions(from_block=start_block, to_block=current_block, chunk_size=1000)

# Sauvegarder
tracker.save_to_file('positions_cache.json')

# Afficher résumé
print(f"\n" + "=" * 80)
print("📊 RÉSUMÉ")
print("=" * 80)

open_positions = tracker.get_open_positions()
closed_positions = tracker.get_closed_positions()

print(f"\n💼 Positions ouvertes: {len(open_positions)}")
for pos in open_positions[:20]:
    print(f"   • {pos.trade_hash[:16]}...")
    print(f"     Opened: {pos.opened_at}")
    print(f"     TX: https://bscscan.com/tx/{pos.tx_hash}")
    if pos.margin > 0:
        print(f"     Margin: ${pos.margin:.2f}")

print(f"\n📝 Positions fermées: {len(closed_positions)}")
for pos in closed_positions[-10:]:
    print(f"   • {pos.trade_hash[:16]}...")
    print(f"     Opened: {pos.opened_at}, Closed: {pos.closed_at}")

print("\n" + "=" * 80)
