🚀 Fix Drift Protocol integration - Connection now working
✅ 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
This commit is contained in:
55
test-api-drift.js
Normal file
55
test-api-drift.js
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/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)
|
||||
Reference in New Issue
Block a user