✅ Key fixes: - Bypass problematic SDK subscription that caused 410 Gone errors - Use direct account verification without subscription - Add fallback modes for better reliability - Switch to Helius RPC endpoint for better rate limits - Implement proper error handling and retry logic 🔧 Technical changes: - Enhanced drift-trading.ts with no-subscription approach - Added Drift API endpoints (/api/drift/login, /balance, /positions) - Created DriftAccountStatus and DriftTradingPanel components - Updated Dashboard.tsx to show Drift account status - Added comprehensive test scripts for debugging 📊 Results: - Connection Status: Connected ✅ - Account verification: Working ✅ - Balance retrieval: Working ✅ (21.94 total collateral) - Private key authentication: Working ✅ - User account: 3dG7wayp7b9NBMo92D2qL2sy1curSC4TTmskFpaGDrtA 🌐 RPC improvements: - Using Helius RPC for better reliability - Added fallback RPC options in .env - Eliminated rate limiting issues
56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Test Drift connection via API
|
|
*/
|
|
|
|
const fetch = require('node-fetch')
|
|
|
|
async function testDriftAPI() {
|
|
console.log('🌊 Testing Drift API endpoints...')
|
|
|
|
try {
|
|
// Test login endpoint
|
|
console.log('🔐 Testing login endpoint...')
|
|
const response = await fetch('http://localhost:3000/api/drift/login', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
})
|
|
|
|
if (!response.ok) {
|
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`)
|
|
}
|
|
|
|
const result = await response.json()
|
|
console.log('Login result:', JSON.stringify(result, null, 2))
|
|
|
|
if (result.isLoggedIn) {
|
|
console.log('✅ Login successful! Testing balance...')
|
|
|
|
// Test balance endpoint
|
|
const balanceResponse = await fetch('http://localhost:3000/api/drift/balance')
|
|
if (balanceResponse.ok) {
|
|
const balance = await balanceResponse.json()
|
|
console.log('💰 Balance:', JSON.stringify(balance, null, 2))
|
|
}
|
|
|
|
// Test positions endpoint
|
|
const positionsResponse = await fetch('http://localhost:3000/api/drift/positions')
|
|
if (positionsResponse.ok) {
|
|
const positions = await positionsResponse.json()
|
|
console.log('📊 Positions:', positions.length)
|
|
}
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error('❌ API test failed:', error.message)
|
|
}
|
|
}
|
|
|
|
console.log('Please start the development server first with: npm run dev')
|
|
console.log('Then run this test script')
|
|
|
|
testDriftAPI().catch(console.error)
|