✅ 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
67 lines
2.3 KiB
JavaScript
67 lines
2.3 KiB
JavaScript
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);
|