123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #!/usr/bin/env python3
- """
- Test script to verify Hyperliquid balance fetching with CCXT
- """
- 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_balance():
- """Test balance fetching functionality."""
- print("🧪 Testing Hyperliquid Balance Fetching")
- print("=" * 50)
-
- try:
- # Validate configuration first
- print("🔍 Validating 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(f"🔑 Private Key: {Config.HYPERLIQUID_PRIVATE_KEY[:10]}..." if Config.HYPERLIQUID_PRIVATE_KEY else "❌ No private key")
- 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 balance fetching
- print("💰 Fetching account balance...")
- balance = client.get_balance()
-
- if balance:
- print("✅ Balance fetch successful!")
- print("📊 Balance data:")
-
- # Pretty print the balance
- if isinstance(balance, dict):
- for key, value in balance.items():
- if isinstance(value, dict):
- print(f" {key}:")
- for sub_key, sub_value in value.items():
- print(f" {sub_key}: {sub_value}")
- else:
- print(f" {key}: {value}")
- else:
- print(f" Raw balance: {balance}")
-
- return True
- else:
- print("❌ Balance fetch failed! Trying alternative method...")
- print()
-
- # Try alternative method
- print("🔄 Testing alternative balance fetching approaches...")
- balance_alt = client.get_balance_alternative()
-
- if balance_alt:
- print("✅ Alternative balance fetch successful!")
- print("📊 Balance data:")
-
- # Pretty print the balance
- if isinstance(balance_alt, dict):
- for key, value in balance_alt.items():
- if isinstance(value, dict):
- print(f" {key}:")
- for sub_key, sub_value in value.items():
- print(f" {sub_key}: {sub_value}")
- else:
- print(f" {key}: {value}")
- else:
- print(f" Raw balance: {balance_alt}")
-
- return True
- else:
- print("❌ Alternative balance fetch also failed!")
- return False
-
- except Exception as e:
- print(f"💥 Test failed with error: {e}")
- import traceback
- print("📜 Full traceback:")
- traceback.print_exc()
- return False
- if __name__ == "__main__":
- success = test_balance()
-
- if success:
- print("\n🎉 Balance test PASSED!")
- sys.exit(0)
- else:
- print("\n💥 Balance test FAILED!")
- sys.exit(1)
|