#!/usr/bin/env python3 """ Test script for new perps trading commands """ import sys import os from pathlib import Path # Add the project root and src directory to the path project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) sys.path.insert(0, str(project_root / 'src')) from hyperliquid_client import HyperliquidClient from config import Config def test_perps_commands(): """Test the perps trading functionality.""" print("๐Ÿงช Testing Perps Trading Commands") print("=" * 50) try: # Test configuration if not Config.validate(): print("โŒ Configuration validation failed!") return False print(f"โœ… Configuration valid") print(f"๐ŸŒ Network: {'Testnet' if Config.HYPERLIQUID_TESTNET else 'Mainnet'}") print() # Initialize client print("๐Ÿ”ง Initializing Hyperliquid client...") client = HyperliquidClient(use_testnet=Config.HYPERLIQUID_TESTNET) if not client.sync_client: print("โŒ Failed to initialize client!") return False print("โœ… Client initialized successfully") print() # Test token symbol conversion tokens_to_test = ['BTC', 'ETH', 'SOL'] for token in tokens_to_test: print(f"๐Ÿ“Š Testing {token}...") # Convert to full symbol symbol = f"{token}/USDC:USDC" print(f" Symbol: {token} โ†’ {symbol}") # Test market data fetching market_data = client.get_market_data(symbol) if market_data: price = float(market_data['ticker'].get('last', 0)) print(f" โœ… Current price: ${price:,.2f}") # Test calculation usdc_amount = 100 token_amount = usdc_amount / price print(f" ๐Ÿ“ˆ Long ${usdc_amount} USDC = {token_amount:.6f} {token}") print(f" ๐Ÿ“‰ Short ${usdc_amount} USDC = {token_amount:.6f} {token}") else: print(f" โŒ Could not fetch price for {token}") print() return True except Exception as e: print(f"๐Ÿ’ฅ Test failed with error: {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": success = test_perps_commands() if success: print("๐ŸŽ‰ Perps commands test PASSED!") print("\n๐Ÿ“ฑ Ready to test on Telegram:") print(" /long BTC 100") print(" /short ETH 50") sys.exit(0) else: print("๐Ÿ’ฅ Perps commands test FAILED!") sys.exit(1)