Files
trading_bot_v3/test-drift-funds.mjs
mindesbunister ff4e9737fb fix: timeframe handling and progress tracking improvements
- Fix timeframe parameter handling in enhanced-screenshot API route
- Support both 'timeframe' (singular) and 'timeframes' (array) parameters
- Add proper sessionId propagation for real-time progress tracking
- Enhance MACD analysis prompt with detailed crossover definitions
- Add progress tracker service with Server-Sent Events support
- Fix Next.js build errors in chart components (module variable conflicts)
- Change dev environment port from 9000:3000 to 9001:3000
- Improve AI analysis layout detection logic
- Add comprehensive progress tracking through all service layers
2025-07-17 10:41:18 +02:00

110 lines
3.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { Connection, PublicKey } from '@solana/web3.js';
async function testDriftAccount() {
try {
console.log('🔍 Testing Drift account access...');
const connection = new Connection('https://api.mainnet-beta.solana.com', 'confirmed');
const accountPDA = '7LonnWut5i3h36xyMA5jbwnGFbnzXUPY2dsPfNaSsrTk';
console.log('📡 Connecting to Solana...');
const accountInfo = await connection.getAccountInfo(new PublicKey(accountPDA));
if (!accountInfo) {
console.log('❌ Drift account not found');
return;
}
console.log('✅ Drift account found!');
console.log(`📊 Account data size: ${accountInfo.data.length} bytes`);
console.log(`💰 Account lamports: ${accountInfo.lamports}`);
console.log(`👤 Owner: ${accountInfo.owner.toBase58()}`);
// Try to parse balance data from multiple known offsets
const data = accountInfo.data;
console.log(`\n🔍 Scanning for USDC balance...`);
// Try multiple offsets where USDC balance might be stored
const offsets = [106, 114, 122, 130, 138, 146, 154];
for (const offset of offsets) {
try {
const balance = data.readBigInt64LE(offset);
const value = Number(balance) / 1_000_000; // USDC has 6 decimals
if (value > 0 && value < 1000000) { // Reasonable range
console.log(` Offset ${offset}: $${value.toFixed(6)}`);
}
} catch (e) {
// Skip invalid offsets
}
}
console.log(`\n🔍 Scanning for SOL position...`);
// Try multiple offsets for SOL position
const solOffsets = [432, 440, 448, 456, 464, 472];
for (const offset of solOffsets) {
try {
const position = data.readBigInt64LE(offset);
const amount = Number(position) / 1_000_000_000; // SOL has 9 decimals
if (Math.abs(amount) > 0.001 && Math.abs(amount) < 1000) { // Reasonable range
console.log(` Offset ${offset}: ${amount.toFixed(6)} SOL`);
}
} catch (e) {
// Skip invalid offsets
}
}
// Find the best USDC balance (likely the $23 you mentioned)
let bestUsdcValue = 0;
let bestSolAmount = 0;
for (const offset of offsets) {
try {
const balance = data.readBigInt64LE(offset);
const value = Number(balance) / 1_000_000; // USDC has 6 decimals
if (value > bestUsdcValue && value < 1000000) { // Take the highest reasonable value
bestUsdcValue = value;
}
} catch (e) {
// Skip invalid offsets
}
}
for (const offset of solOffsets) {
try {
const position = data.readBigInt64LE(offset);
const amount = Number(position) / 1_000_000_000; // SOL has 9 decimals
if (Math.abs(amount) > Math.abs(bestSolAmount) && Math.abs(amount) < 1000) {
bestSolAmount = amount;
}
} catch (e) {
// Skip invalid offsets
}
}
console.log(`\n💵 Best parsed balances:`);
console.log(` USDC: $${bestUsdcValue.toFixed(6)}`);
console.log(` SOL: ${bestSolAmount.toFixed(6)} SOL`);
if (bestUsdcValue > 20) {
console.log(`\n🎉 Found your $${bestUsdcValue.toFixed(2)} USDC!`);
}
if (bestUsdcValue > 1 || Math.abs(bestSolAmount) > 0.01) {
console.log('\n✅ Sufficient funds for leveraged trading!');
console.log('🎯 Ready to implement real Drift perpetual trading');
console.log(`📊 With $${bestUsdcValue.toFixed(2)} you can open positions up to $${(bestUsdcValue * 10).toFixed(2)} with 10x leverage`);
} else {
console.log('\n⚠ Limited funds detected');
}
} catch (error) {
console.error('❌ Test failed:', error.message);
}
}
testDriftAccount();