gogo2/test_mexc_new_keys.py
2025-05-28 11:17:41 +03:00

117 lines
3.8 KiB
Python

#!/usr/bin/env python3
"""
Test script for MEXC API with new credentials
"""
import os
import sys
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
def test_api_credentials():
"""Test MEXC API credentials step by step"""
print("="*60)
print("MEXC API CREDENTIALS TEST")
print("="*60)
# Check environment variables
api_key = os.getenv('MEXC_API_KEY')
api_secret = os.getenv('MEXC_SECRET_KEY')
print(f"1. Environment Variables:")
print(f" API Key: {api_key[:5]}...{api_key[-5:] if api_key else 'None'}")
print(f" API Secret: {api_secret[:5]}...{api_secret[-5:] if api_secret else 'None'}")
print(f" API Key Length: {len(api_key) if api_key else 0}")
print(f" API Secret Length: {len(api_secret) if api_secret else 0}")
if not api_key or not api_secret:
print("❌ API credentials not found in environment")
return False
# Test public API first
print(f"\n2. Testing Public API (no authentication):")
try:
from NN.exchanges.mexc_interface import MEXCInterface
api = MEXCInterface('dummy', 'dummy', test_mode=False)
ticker = api.get_ticker('ETHUSDT')
if ticker:
print(f" ✅ Public API works: ETH/USDT = ${ticker.get('last', 'N/A')}")
else:
print(f" ❌ Public API failed")
return False
except Exception as e:
print(f" ❌ Public API error: {e}")
return False
# Test private API with actual credentials
print(f"\n3. Testing Private API (with authentication):")
try:
api_auth = MEXCInterface(api_key, api_secret, test_mode=False)
# Try to get account info
account_info = api_auth.get_account_info()
if account_info:
print(f" ✅ Private API works: Account info retrieved")
print(f" 📊 Account Type: {account_info.get('accountType', 'N/A')}")
# Try to get USDT balance
usdt_balance = api_auth.get_balance('USDT')
print(f" 💰 USDT Balance: {usdt_balance}")
return True
else:
print(f" ❌ Private API failed: Could not get account info")
return False
except Exception as e:
print(f" ❌ Private API error: {e}")
return False
def test_api_permissions():
"""Test specific API permissions"""
print(f"\n4. Testing API Permissions:")
api_key = os.getenv('MEXC_API_KEY')
api_secret = os.getenv('MEXC_SECRET_KEY')
try:
from NN.exchanges.mexc_interface import MEXCInterface
api = MEXCInterface(api_key, api_secret, test_mode=False)
# Test spot trading permissions
print(" Testing spot trading permissions...")
# Try to get open orders (requires spot trading permission)
try:
orders = api.get_open_orders('ETHUSDT')
print(" ✅ Spot trading permission: OK")
except Exception as e:
print(f" ❌ Spot trading permission: {e}")
return False
return True
except Exception as e:
print(f" ❌ Permission test error: {e}")
return False
def main():
"""Main test function"""
success = test_api_credentials()
if success:
test_api_permissions()
print(f"\n✅ MEXC API SETUP COMPLETE")
print("The trading system should now work with live MEXC spot trading")
else:
print(f"\n❌ MEXC API SETUP FAILED")
print("Possible issues:")
print("1. API key or secret incorrect")
print("2. API key not activated yet")
print("3. Insufficient permissions (need spot trading)")
print("4. IP address not whitelisted")
print("5. Account verification incomplete")
if __name__ == "__main__":
main()