From 267f7943df0fd43cc7f9d73091ef0fdbbfc92a03 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Sun, 7 Dec 2025 19:45:24 +0100 Subject: [PATCH] fix: FARTCOIN symbol normalization priority MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Problem: FARTCOIN signals being treated as SOL-PERP - Root cause: Symbol normalization checked includes('SOL') before FARTCOIN - Since TradingView may send symbols with 'SOL' in name, order matters Files changed: - config/trading.ts: Reordered checks (FARTCOIN before SOL) - app/api/trading/market-data/route.ts: Added FARTCOIN mappings Symbol matching now checks: 1. FARTCOIN/FART (most specific) 2. SOL (catch-all for Solana) 3. BTC, ETH (other majors) 4. Default fallback This fixes TradingView alerts for FARTCOIN 5-min and 1-min data collection being incorrectly stored as SOL-PERP in BlockedSignal table. Status: ✅ DEPLOYED Dec 7, 2025 19:30 CET Next FARTCOIN signal will correctly save as FARTCOIN-PERP --- app/api/trading/market-data/route.ts | 5 +++++ config/trading.ts | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/api/trading/market-data/route.ts b/app/api/trading/market-data/route.ts index ed29978..1410dd6 100644 --- a/app/api/trading/market-data/route.ts +++ b/app/api/trading/market-data/route.ts @@ -31,6 +31,11 @@ function normalizeTradingViewSymbol(tvSymbol: string): string { if (tvSymbol.includes('-PERP')) return tvSymbol const symbolMap: Record = { + 'FARTCOINUSDT': 'FARTCOIN-PERP', + 'FARTCOINUSD': 'FARTCOIN-PERP', + 'FARTCOIN': 'FARTCOIN-PERP', + 'FARTUSDT': 'FARTCOIN-PERP', + 'FART': 'FARTCOIN-PERP', 'SOLUSDT': 'SOL-PERP', 'SOLUSD': 'SOL-PERP', 'SOL': 'SOL-PERP', diff --git a/config/trading.ts b/config/trading.ts index d280237..8d67a3d 100644 --- a/config/trading.ts +++ b/config/trading.ts @@ -255,10 +255,12 @@ export const SUPPORTED_MARKETS: Record = { export function normalizeTradingViewSymbol(tvSymbol: string): string { const upper = tvSymbol.toUpperCase() + // Check FARTCOIN before SOL (FARTCOIN may contain SOL in ticker name) + if (upper.includes('FARTCOIN')) return 'FARTCOIN-PERP' + if (upper.includes('FART')) return 'FARTCOIN-PERP' if (upper.includes('SOL')) return 'SOL-PERP' if (upper.includes('BTC')) return 'BTC-PERP' if (upper.includes('ETH')) return 'ETH-PERP' - if (upper.includes('FARTCOIN')) return 'FARTCOIN-PERP' // Default to SOL if unknown console.warn(`Unknown symbol ${tvSymbol}, defaulting to SOL-PERP`)