#!/usr/bin/env python3
"""
Test rapide du position tracker sur les derniers blocks
"""

import os
import logging
from dotenv import load_dotenv
from web3 import Account
from position_tracker import PositionTracker

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

load_dotenv()

# Récupérer l'adresse du wallet
private_key = os.getenv('WALLET_PRIVATE_KEY')
account = Account.from_key(private_key)

print("=" * 80)
print("🔍 TEST POSITION TRACKER - DERNIERS BLOCKS")
print("=" * 80)
print(f"\nWallet: {account.address}")

tracker = PositionTracker(account.address)

# Charger l'état précédent si existe
tracker.load_from_file('positions_cache.json')

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

start_block = max(tracker.last_scanned_block + 1, current_block - 500)

print(f"\n🔍 Test scan: blocks {start_block} à {current_block} (500 blocks max)")
print(f"   Block actuel BSC: {current_block}\n")

# Scanner
positions_found = tracker.scan_transactions(from_block=start_block)

# 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[:10]:  # Max 10
    print(f"   • {pos.trade_hash[:16]}... @ {pos.opened_at}")
    print(f"     Margin: ${pos.margin:.2f}, Leverage: {pos.leverage}x")

print(f"\n📝 Positions fermées: {len(closed_positions)}")
for pos in closed_positions[-5:]:  # Dernières 5
    print(f"   • {pos.trade_hash[:16]}... @ {pos.opened_at}")

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