🚀 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:
70
test-api-improved.js
Normal file
70
test-api-improved.js
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Test the improved Drift API connection
|
||||
*/
|
||||
|
||||
const http = require('http');
|
||||
|
||||
function testAPI() {
|
||||
console.log('🚀 Testing improved Drift API connection...');
|
||||
|
||||
const postData = JSON.stringify({});
|
||||
|
||||
const options = {
|
||||
hostname: 'localhost',
|
||||
port: 3000,
|
||||
path: '/api/drift/login',
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Content-Length': Buffer.byteLength(postData)
|
||||
},
|
||||
timeout: 30000 // 30 second timeout
|
||||
};
|
||||
|
||||
const req = http.request(options, (res) => {
|
||||
console.log(`📡 Status: ${res.statusCode}`);
|
||||
console.log(`📋 Headers:`, res.headers);
|
||||
|
||||
let data = '';
|
||||
res.on('data', (chunk) => {
|
||||
data += chunk;
|
||||
});
|
||||
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const result = JSON.parse(data);
|
||||
console.log('✅ API Response:');
|
||||
console.log(JSON.stringify(result, null, 2));
|
||||
|
||||
if (result.isLoggedIn) {
|
||||
console.log('🎉 SUCCESS: Drift connection is working!');
|
||||
} else {
|
||||
console.log('⚠️ Not logged in, but API is responding. Error:', result.error);
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('📄 Raw response:', data);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
req.on('error', (e) => {
|
||||
console.error('❌ Request error:', e.message);
|
||||
});
|
||||
|
||||
req.on('timeout', () => {
|
||||
console.error('⏰ Request timed out after 30 seconds');
|
||||
req.destroy();
|
||||
});
|
||||
|
||||
req.write(postData);
|
||||
req.end();
|
||||
}
|
||||
|
||||
// Wait a bit more for container to be ready
|
||||
setTimeout(() => {
|
||||
testAPI();
|
||||
}, 5000);
|
||||
|
||||
console.log('⏳ Waiting 5 seconds for container to be ready...');
|
||||
Reference in New Issue
Block a user