1. Add GetAllPremiumIndex() to fetch all futures data in one call,
used by GetTopPrices instead of per-symbol sequential calls.
2. Add ADMIN_CHAT_ID env check to /refresh command to restrict
access to authorized users only.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace unreliable WebSocket connections with on-demand REST API calls
for spot and futures prices. Add cached trading pair list (refreshed
hourly) for symbol validation, and /refresh command for manual updates.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Alpha tokens now show a simplified format with price and 24h change
instead of the regular token format with empty futures/funding data.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Alpha token prices are now looked up directly from Alpha data instead
of being cached into spotPrice. Remove unused ensureAlphaCacheLoaded
and shouldRefreshAlphaCache functions.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add sync.RWMutex to protect future and spot price maps accessed by
WebSocket handlers (writers) and Telegram bot handlers (readers).
Also adds Alpha token support with caching.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>