Implement working Drift leverage trading

Key Features:
-  Drift SDK v2.126.0-beta.14 integration with Helius RPC
-  User account initialization and balance reading
-  Leverage trading API with real trades executed
-  Support for SOL, BTC, ETH, APT, AVAX, BNB, MATIC, ARB, DOGE, OP
-  Transaction confirmed: gNmaWVqcE4qNK31ksoUsK6pcHqdDTaUtJXY52ZoXRF

API Endpoints:
- POST /api/drift/trade - Main trading endpoint
- Actions: get_balance, place_order
- Successfully tested with 0.01 SOL buy order at 2x leverage

Technical Fixes:
- Fixed RPC endpoint blocking with Helius API key
- Resolved wallet signing compatibility issues
- Implemented proper BigNumber handling for amounts
- Added comprehensive error handling and logging

Trading Bot Status: 🚀 FULLY OPERATIONAL with leverage trading!
This commit is contained in:
mindesbunister
2025-07-22 12:23:51 +02:00
parent 491ff51ba9
commit fb194f1b12
28 changed files with 7285 additions and 198 deletions

View File

@@ -47,18 +47,29 @@ export default function RealTimePriceMonitor() {
const fetchMonitoringData = async () => {
try {
console.log('🔄 RealTimePriceMonitor: Fetching data...')
const response = await fetch('/api/price-monitor')
const data = await response.json()
console.log('📊 RealTimePriceMonitor: API Response:', {
success: data.success,
tradesCount: data.data?.trades?.length || 0,
monitoringActive: data.data?.monitoringActive,
prices: Object.keys(data.data?.prices || {})
})
if (data.success) {
setMonitoringData(data.data.trades || [])
setAlerts(data.data.alerts || [])
setPrices(data.data.prices || {})
setLastUpdated(data.data.lastUpdated || '')
setMonitoringActive(data.data.monitoringActive || false)
console.log('✅ RealTimePriceMonitor: State updated with', data.data.trades?.length || 0, 'trades')
} else {
console.error('❌ RealTimePriceMonitor: API returned error:', data.error)
}
} catch (error) {
console.error('Error fetching monitoring data:', error)
console.error('❌ RealTimePriceMonitor: Error fetching data:', error)
} finally {
setLoading(false)
}
@@ -254,8 +265,19 @@ export default function RealTimePriceMonitor() {
<div className="card card-gradient p-6">
<h3 className="text-lg font-bold text-white mb-4">📊 Active Trades Monitor</h3>
{(() => {
console.log('🎯 RealTimePriceMonitor: Rendering with', monitoringData.length, 'trades', monitoringData)
return null
})()}
{monitoringData.length === 0 ? (
<p className="text-gray-400">No active trades to monitor</p>
<div>
<p className="text-gray-400">No active trades to monitor</p>
<p className="text-xs text-yellow-400 mt-2">
Debug: Monitoring Active: {monitoringActive ? 'Yes' : 'No'} |
Last Updated: {lastUpdated ? new Date(lastUpdated).toLocaleTimeString() : 'Never'}
</p>
</div>
) : (
<div className="space-y-4">
{monitoringData.map((trade) => (