Bicrypto 5.1.7

25 June 2025

MAJOR IMPROVEMENTSCRITICAL FIXESSECURITY ENHANCEMENTS

Version 5.1.7

Release Date: June 25, 2025
Tags: MAJOR IMPROVEMENTS, CRITICAL FIXES, SECURITY ENHANCEMENTS

Changed

Advanced Market Data Architecture

  • Unified Market Data Handling: Added unified market data handling for spot markets with parallel data fetching for ticker, OHLCV, trades, and orderbook
  • Futures Market Integration: Added the same coordinated data streaming for all futures market data types
  • Ecosystem Market Support: Added the same synchronized multi-stream data delivery for ecosystem markets
  • Subscription Lifecycle Management: Added proper subscription lifecycle management with automatic cleanup and resource management
  • Data Fetching Optimization: Improved data fetching intervals and error handling for more reliable real-time market data

Real-time Market Data Features

  • Market Data Synchronization: Enhanced market data synchronization across all trading interfaces
  • Advanced Market Data Feature: Active market now receives high-frequency ticker updates from market data WebSocket while other markets use standard ticker updates for optimal performance
  • Automatic Subscription Switching: Market data WebSocket automatically switches subscriptions when changing active markets
  • Simplified Integration: Implemented simplified market data WebSocket integration using same approach as trading header for consistent fast ticker updates on active markets

Data Processing Improvements

  • Ticker Priority System: Improved ticker data processing with eco tickers having higher priority over spot tickers
  • WebSocket State Management: Enhanced WebSocket state management during component re-renders and hot reloads
  • Ticker Key Format Consistency: Improved ticker key format consistency across WebSocket connections

File and Path Security

  • Path Validation: Implemented comprehensive path sanitization with separate validation for system paths vs user input paths
  • File Upload Security: Added strict whitelisting of allowed file extensions and MIME types for all upload endpoints
  • Directory Security: Enhanced directory validation to prevent access outside designated upload areas
  • Security Headers: Added comprehensive security headers for dynamically served files including CSP and XSS protection

Fixed

Security & File System Enhancements

  • Static File Serving: Fixed static file serving to properly serve from frontend public directory in both development and production environments
  • Path Security: Enhanced existing static file serving with comprehensive path sanitization to prevent directory traversal attacks
  • File Type Security: Implemented whitelisting of allowed MIME types and file extensions for all upload and static file operations
  • File Size Limits: Enforced 10MB maximum file size limit with proper validation for all upload endpoints
  • Directory Security: Enhanced validation to ensure uploaded files remain within designated upload directories
  • Security Headers: Added comprehensive security headers for static file serving including CSP and XSS protection
  • Input Sanitization: Implemented multi-layer validation for all user-provided paths and file data

KYC Level Service Integration

  • Service Validation: Fixed KYC level creation/update failing with a foreign key constraint error when an invalid verification service is selected
  • Error Messaging: Added comprehensive validation for KYC verification services with proper error messaging
  • Service Cleanup: Enhanced frontend to properly handle empty or invalid verification services before sending to backend
  • Gemini Service: Corrected the Gemini entry in the verification services view
  • Service Seeder: Updated KYC services seeder to include Gemini

WebSocket Market Data System Overhaul

  • Unified Market Data Architecture: Fixed WebSocket endpoints to send all requested data types (trades, orderbook, OHLCV) simultaneously instead of only one type
  • Stream Key Generation: Fixed WebSocket stream key generation to match frontend expectations by removing limit values from trades and OHLCV keys
  • Payload Structure: Fixed WebSocket payload structure to match frontend subscription format with consistent field order
  • Order Book Panel System: Fixed a subscription timing issue where subscriptions were not being sent for orderbook and trades data
  • Subscription Management: Enhanced unified market data subscription to properly handle multiple data types added after initial subscription
  • Critical Stream Key Mismatch: Fixed critical stream key mismatch between frontend and backend for orderbook subscriptions
  • Race Condition Fix: Fixed race condition in WebSocket subscription management that caused errors
  • Build Errors: Fixed build errors in the market data code that prevented the backend from compiling

OrderBook & Market Data Visualization

  • OrderBook Depth Visualization: Fixed orderbook depth bar visualization to use individual order amounts instead of cumulative volume for proper depth representation
  • OrderBook Loading State: Fixed orderbook panel stuck in loading state by removing strict symbol validation for orderbook and ticker data
  • Data Processing: Enhanced orderbook data processing to add missing symbol and timestamp properties when not present
  • Markets Panel Live Updates: Fixed markets panel in trade page not updating prices in real-time when receiving ticker WebSocket messages
  • Ticker Data Lookup: Enhanced ticker data matching to support multiple key formats for better data consistency

Chart System Improvements

  • Chart Loading Order: Fixed chart loading before settings initialization, preventing double-loading where default chart loads first then switches to TradingView based on user settings
  • Settings-Dependent Loading: Chart switcher now waits for settings to be fetched before loading any chart component
  • Performance Optimization: Optimized chart loading sequence to prevent unnecessary re-renders and improve user experience

Trading Interface Enhancements

  • Trading Header Cleanup: Removed unnecessary 2h high display from trading header to reduce visual clutter and simplified desktop additional info section to show only 24h volume
  • Live Markets Duplicates: Fixed live markets widget on home page showing duplicate coins by grouping markets by base currency and selecting highest volume pair

Performance & User Experience

  • Wallet Stats Performance: Implemented 1-hour caching for failed price fetches to prevent repeated API calls for currencies that can't be priced, reducing endpoint response time from 815ms to under 200ms
  • Price Fetch Optimization: Added intelligent failure caching that skips price fetching for currencies that recently failed, significantly improving wallet statistics loading performance
  • WebSocket Connection Logs: Removed unnecessary debug logging from WebSocket connections to clean up the browser console

UI/UX Improvements

  • Withdrawal Page Validation: Fixed translation strings and improved error messaging for wallet selection with proper currency display outside translation functions
  • Withdrawal User Experience: Enhanced warning messages to show specific information about unavailable wallets and currencies with better user guidance
  • Notification Settings Modal: Fixed settings cog in notification header to properly open modal instead of navigation