🚀 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:
66
test-updated-login.js
Normal file
66
test-updated-login.js
Normal file
@@ -0,0 +1,66 @@
|
||||
const { TradingViewAutomation } = require('./lib/tradingview-automation.ts');
|
||||
|
||||
async function testUpdatedLogin() {
|
||||
console.log('🚀 Testing updated login logic...');
|
||||
|
||||
const automation = new TradingViewAutomation();
|
||||
|
||||
try {
|
||||
console.log('⏳ Initializing automation...');
|
||||
await automation.initialize();
|
||||
|
||||
console.log('🔐 Testing login...');
|
||||
const loginResult = await automation.login();
|
||||
|
||||
if (loginResult) {
|
||||
console.log('✅ Login successful!');
|
||||
|
||||
// Test if we can get user-specific content
|
||||
console.log('🔍 Checking authentication status...');
|
||||
const isAuthenticated = await automation.checkLoginStatus();
|
||||
console.log('🔐 Authentication status:', isAuthenticated);
|
||||
|
||||
// Take a screenshot to see what page we're on
|
||||
await automation.takeDebugScreenshot('after_login_test');
|
||||
|
||||
// Check current URL
|
||||
const currentUrl = await automation.page.url();
|
||||
console.log('📍 Current URL:', currentUrl);
|
||||
|
||||
// Try to navigate to a page that requires authentication
|
||||
console.log('📊 Testing navigation to TradingView chart...');
|
||||
await automation.page.goto('https://www.tradingview.com/chart/', { waitUntil: 'domcontentloaded' });
|
||||
await automation.page.waitForTimeout(5000);
|
||||
|
||||
// Take another screenshot
|
||||
await automation.takeDebugScreenshot('chart_page_after_login');
|
||||
|
||||
// Check if we see user-specific elements
|
||||
const userElements = await automation.page.evaluate(() => {
|
||||
const userMenu = document.querySelector('.tv-header__user-menu-button, [data-name="header-user-menu"]');
|
||||
const guestIndicators = document.querySelectorAll('[class*="anonymous"], [class*="guest"]');
|
||||
|
||||
return {
|
||||
hasUserMenu: !!userMenu,
|
||||
userMenuText: userMenu?.textContent || '',
|
||||
guestCount: guestIndicators.length,
|
||||
pageTitle: document.title,
|
||||
bodyText: document.body.textContent?.slice(0, 500) || ''
|
||||
};
|
||||
});
|
||||
|
||||
console.log('👤 User elements check:', userElements);
|
||||
|
||||
} else {
|
||||
console.log('❌ Login failed');
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('💥 Error during login test:', error);
|
||||
} finally {
|
||||
console.log('🧹 Cleaning up...');
|
||||
await automation.cleanup();
|
||||
}
|
||||
}
|
||||
|
||||
testUpdatedLogin().catch(console.error);
|
||||
Reference in New Issue
Block a user