Jump to content
View in the app

A better way to browse. Learn more.

DoniaWeB

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
     
Do not create multi-accounts, you will be blocked!

Bicrypto - Crypto Trading Platform, Binary Trading, Investments, Blog, News & More! v5.4.3 + All Add-ons

Featured Replies

  • Replies 591
  • Views 201.2k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Bro i am waiting for addons updation. Please update addons please

  • It works beautiful now, thank you man ! This is the best forum in the world !!! Fuck yeah 😎

  • I do not recommend a specific vps, use any vps, you can use namecheap or Ultahost platform

Most Helpful Posts

  • Spartan
    Spartan

    i’m getting this error trying to login my dashboard

  • Mahmoud
    Mahmoud

    This file has been updated to 5.3.7 + All Add-ons What's New in this Version: KYC System Critical Fixes User Cache Invalidation: Fixed critical issue where users couldn't access features immediately a

  • Mahmoud
    Mahmoud

    This file has been updated to 5.3.9 + All Add-ons What's New in this Version: Update 31 July 2025

Posted Images

  • Author
  • Administrators

This file has been updated to 5.3.7 + All Add-ons

What's New in this Version:

KYC System Critical Fixes

  • User Cache Invalidation: Fixed critical issue where users couldn't access features immediately after admin KYC approval

  • Added automatic cache clearing when admin changes KYC application status

  • Fixed users having to logout/login or wait for cache expiry to access approved features

  • Ensures immediate feature access upon KYC approval

  • KYC Level Management Cache: Fixed issue where admin changes to KYC level features/limits didn't apply to existing users

  • Added cache invalidation hooks to KYC level model updates

  • Bulk operations now properly clear cache for all affected users

  • Admin limit edits now apply to users instantly without requiring re-approval

  • Automated Verification Cache: Fixed cache invalidation for AI/API automated KYC approvals

  • Added cache clearing to verification service endpoints

  • Automated approvals now grant immediate feature access

  • Fixed delayed access for programmatically approved applications

  • Feature Access Logic: Improved user profile feature access logic

  • Enhanced status checking to only grant features when KYC status is "APPROVED"

  • Fixed edge cases where features were granted before full approval

  • More robust validation and error handling for KYC feature parsing

KYC Security Enhancements

  • Duplicate Application Prevention: Added protection against multiple KYC submissions for same level

  • Prevents users from submitting duplicate applications

  • Added proper status validation and user-friendly error messages

  • Includes cooldown period for rejected applications

  • File Upload Security: Enhanced KYC document upload validation

  • Added file magic number validation to prevent MIME type spoofing

  • Improved security against malicious file uploads

  • Enhanced file content verification beyond MIME type checks

  • Input Sanitization: Added comprehensive protection against injection attacks

  • SQL injection prevention in admin notes fields

  • XSS protection with proper input sanitization

  • Length validation to prevent DoS attacks

  • Directory Traversal Protection: Enhanced file path security

  • Improved path sanitization with multiple security layers

  • Prevention of access to system directories

  • Comprehensive validation against directory traversal attacks

  • Rate Limiting: Added abuse prevention for KYC submissions

  • Maximum 3 submissions per hour with Redis-based tracking

  • 24-hour cooldown period after rejections

  • Graceful fallback when Redis is unavailable

UI Text Spacing Issues

  • Level Display Formatting: Fixed missing spaces in KYC level text display

  • Fixed "Level1" appearing as stuck together text in admin interface

  • Corrected spacing in feature management titles

  • Fixed user-facing KYC application and dashboard level displays

  • Improved readability across all KYC level interfaces

Admin Navigation Fixes

  • Binary Options Menu Structure: Restructured admin binary options menu for better navigation

  • Moved Binary Options out of "Trading Infrastructure" to be its own top-level section under Finance

  • Added proper href link to main "Binary Options" menu item (was pointing to "#")

  • Fixed menu structure to properly display child menu items (Binary Markets and Trading Durations)

  • Admin can now navigate directly to /admin/finance/binary and see expandable child menu

  • Improved navigation flow and menu organization for binary options management interface

Admin Dashboard Complete Overhaul

  • Professional Analytics Integration: Replaced basic charts with enterprise-grade analytics components

  • Now uses the same professional chart components as the main analytics system (@/components/blocks/data-table/analytics)

  • Integrated high-quality KPI cards, line charts, bar charts, and donut charts with consistent styling

  • Enhanced interactivity with hover states, tooltips, and smooth animations

  • Professional color schemes and responsive design patterns from the analytics system

  • USD Currency Conversion System: Implemented proper revenue calculation with real currency conversion

  • Revenue calculations now use existing currency conversion APIs (getFiatPriceInUSDgetSpotPriceInUSDgetEcoPriceInUSD)

  • Multi-currency support for FIAT, SPOT, and ECO wallet types with accurate USD conversion

  • Transaction fees are properly converted to USD based on currency type and current exchange rates

  • Fallback handling when currency conversion fails to ensure system stability

  • Comprehensive Data Architecture: Complete backend API redesign for real analytics

  • Enhanced /api/admin/dashboard endpoint with proper data structures for professional charts

  • Real-time metrics: user registrations with trend data, daily revenue with profit calculations

  • Trading activity tracking with volume and transaction count analytics

  • System monitoring with service status and performance metrics

  • Proper TypeScript interfaces and error handling throughout the data pipeline

User Management System - Block/Unblock Functionality

  • Comprehensive User Blocking System: Implemented professional user account blocking/unblocking functionality with admin controls

  • Added user block/unblock actions in dropdown menu with proper permissions

  • Created temporary and permanent blocking options with reason selection and duration controls

  • Implemented user block history tracking with admin information and timestamps

  • Added automated unblocking system with cron job for expired temporary blocks

  • User Block Management Interface: Enhanced admin user management with comprehensive blocking controls

  • Block dialog with temporary/permanent options, reason selection, and duration picker

  • Professional block status display in expandable user details with remaining time countdown

  • Complete block history with reason, duration, blocking admin, and expiration information

  • Real-time status updates showing active blocks with time remaining

  • Automated Block Expiration System: Implemented background processing for temporary blocks

  • Cron job running every 15 minutes to check for expired temporary blocks

  • Automatic user reactivation when temporary blocks expire

  • Comprehensive logging and error handling for block expiration processing

  • Multiple block support with proper status management

  • DataTable Performance Optimization: Fixed critical performance issues with modal interactions

  • Resolved unnecessary data refetching when opening/closing block modal

  • Optimized function memoization to prevent DataTable reinitialization

  • Separated tableConfig updates from full DataTable resets

  • Enhanced component stability with proper dependency management

  • User Data Enhancement: Expanded user profile display with comprehensive information

  • Added block status column with detailed block information in expandable rows

  • Enhanced user profile rendering with social media links, location data, and bio information

  • Improved user relationship data including wallet counts, transaction counts, and balances

  • Professional status badges and icons for quick visual assessment

  • React Performance & Stability: Fixed all rendering issues and performance bottlenecks

  • Resolved React Hooks order violations by moving all hooks before conditional returns

  • Implemented proper memoization with useMemo and useCallback for chart data and functions

  • Eliminated infinite re-render loops through professional component architecture

  • Enhanced error boundaries and loading states for better user experience

  • Complete Chart Data System: Implemented proper time series data generation for continuous charts

  • Date Range Generation: Creates complete date ranges instead of scattered data points

  • Yearly View: 12 monthly data points from start to end of current year

  • Monthly View: 4 weekly data points for better UI responsiveness and readability

  • Weekly View: 7 daily data points for current week analysis

  • Timeframe Selector: Interactive dropdown to switch between yearly/monthly/weekly views

  • Continuous Charts: No more gaps or missing data points in chart visualization

  • Proper Aggregation: Backend intelligently groups data by appropriate time intervals

  • Fallback Data: Complete date ranges even when no actual data exists for smooth chart rendering

  • Zero-Line Charts: Charts always display data even with no records, showing zero lines for clear visual feedback

  • Responsive Design: Monthly view optimized with 4 weekly points instead of 30 daily points for better performance

User Management System Complete Overhaul

  • Comprehensive User Data Display: Transformed the basic user table into a professional management interface

  • Enhanced columns with complete user profile information including contact details, security status, and financial data

  • Added expandedOnly fields for sensitive information that appears only in detailed view

  • Comprehensive user details including phone numbers, wallet addresses, KYC status, and notification preferences

  • Professional field organization with clear separation between basic and detailed information

  • Real-Time USD Balance Calculation: Implemented accurate financial overview with real currency conversion

  • Added total balance calculation across all user wallets (FIAT, SPOT, ECO) converted to USD

  • Uses existing currency conversion utilities (getFiatPriceInUSDgetSpotPriceInUSDgetEcoPriceInUSD)

  • Real-time exchange rate integration for accurate balance display

  • Error-resilient calculation that continues working even if individual wallet conversions fail

  • Enhanced Security Monitoring: Added comprehensive security and authentication tracking

  • Failed login attempts counter with color-coded warning badges (3+ attempts yellow, 5+ red)

  • Last failed login timestamp display with "Never" fallback for clean accounts

  • Two-factor authentication status with enable/disable badges

  • Wallet provider tracking (MetaMask, WalletConnect, etc.) with "Not Connected" fallback

  • Smart KYC Integration: Conditional KYC display based on system availability

  • KYC status badges with color coding (Approved=green, Pending=yellow, Rejected=red)

  • KYC level display with "Not Assigned" fallback

  • KYC review date formatting with "Not Reviewed" for pending applications

  • Shows "KYC Disabled" when the KYC system is not enabled instead of showing null values

  • User-Friendly Data Formatting: Eliminated all null/undefined display issues

  • Phone numbers show "Not Provided" instead of null

  • Wallet addresses display "Not Connected" instead of undefined

  • 2FA type shows "Not Enabled" when disabled, defaults to "TOTP" when enabled

  • Notification preferences display as Yes/No badges instead of boolean values

  • Profile data parsing with structured display instead of raw JSON

  • Custom Profile Renderer: Professional display of user profile information

  • Bio Section: Clean paragraph formatting for user biography

  • Location Display: Structured address with icons (📍 address, 🌍 city/country/zip)

  • Social Media Links: Interactive badges with clickable links for all platforms (Facebook, Twitter, Instagram, GitHub, etc.)

  • Smart URL Handling: Auto-detects and formats social media URLs properly

  • Fallback Display: Shows "No additional profile data" instead of null when empty

  • Enhanced Data Relationships: Complete user ecosystem view

  • Wallet count display showing number of user wallets

  • Transaction count showing user activity level

  • Support ticket and notification relationship data

  • Comprehensive user history with creation, update, and deletion timestamps

  • Professional UI Components: Consistent design language throughout

  • Color-coded status badges for quick visual assessment

  • Proper icon usage for different data types (phone, email, wallet, security)

  • Responsive layout with expandedOnly fields for optimal space usage

  • Loading states and error handling for all data operations

  • Backend API Enhancements: Robust data delivery system

  • Enhanced user listing API (/api/admin/crm/user) with comprehensive related data

  • Individual user detail API with complete profile information

  • Proper TypeScript type handling for Sequelize Model vs plain object compatibility

  • Error-resilient data processing with graceful fallbacks

Database Optimization

  • MySQL Index Optimization: Fixed "Too many keys specified" database sync errors

  • Reduced excessive indexes in ICO token detail model

  • Optimized index configuration to stay within MySQL's 64-key limit

  • Improved database sync performance and reliability

  • TypeScript Compilation: Fixed model property access type errors

  • Proper casting of Sequelize model instances for cache operations

  • Enhanced type safety in KYC-related database operations

Binary Trading System Fixes

  • Market Symbol Display: Fixed binary trading header showing double slashes (BTC//USDT) instead of correct format (BTC/USDT)

  • Removed hardcoded commonQuotes array and symbol splitting logic

  • Updated extract functions to use actual market data with currency and pair fields

  • Fixed price and change data not displaying due to incorrect symbol format

  • Market data now uses the provided structure directly: {currency: "BTC", pair: "USDT", label: "BTC/USDT", symbol: "BTC/USDT"}

  • Duration System Consistency: Fixed binary duration model documentation and admin interface

  • Corrected model comments to indicate durations are stored in minutes, not seconds

  • Updated admin interface to display "Duration (minutes)" instead of "Duration (seconds)"

  • Fixed validation messages to reference minutes instead of seconds

  • Verified frontend and backend correctly handle minute-based durations throughout the system

  • Initial Page Loading: Fixed binary page showing slate/gray colors instead of zinc theme colors

  • Added immediate body background color setting to prevent flash of wrong colors

  • Updated loading states to use consistent zinc-950 background

  • Eliminated flash of unstyled content (FOUC) on binary page initialization

Database Model Documentation

  • Comprehensive Field Comments: Added descriptive comments to all backend Sequelize models for improved code maintainability

  • Investment Models (4 files): investment records, plans, durations, and plan-duration relationships

  • KYC Models (4 files): applications, levels, verification services, and verification results

  • Blog Models (6 files): authors, posts, comments, categories, tags, and post-tag relationships

  • Content Models (2 files): pages with SEO and builder support, slider images

  • Over 280+ field comments added explaining purpose, usage, and business context

  • Self-documenting models reduce need for external documentation and improve developer onboarding

Enhanced

Cache Management

  • Redis Integration: Improved Redis cache management for user profiles

  • Better error handling for cache operations

  • Non-blocking cache failures to prevent request failures

  • Enhanced logging for cache-related operations

KYC Workflow

  • Real-time Updates: KYC approval workflow now provides instant user experience

  • No more delays between admin approval and user feature access

  • Seamless integration between manual and automated approval processes

  • Improved user satisfaction with immediate access to approved features

Framework Updates

  • Next.js Upgrade: Updated Next.js from v15.3.5 to v15.4.2

  • Enhanced performance and stability improvements

  • Updated ESLint configuration to latest version

  • Improved Turbopack configuration for better Windows compatibility

  • Added fallback development mode for systems with Turbopack path issues

  • Next.js 16 Preview Features: Enabled experimental features for enhanced developer experience

  • Browser debugging logs forwarded to terminal for easier troubleshooting

  • Enhanced client-side routing with smarter prefetching and cache management

  • Improved 404 page handling with global-not-found support

  • Advanced DevTools integration for route inspection and debugging

  • React Key Errors: Fixed duplicate React key warnings on home page

  • Updated feature mapping to use unique keys combining index and title

  • Enhanced admin editors to generate unique feature titles automatically

  • Improved component stability and eliminated console warnings

Support is available for paid files only
Support for free files is offered for a fee only

  • Author
  • Administrators

This file has been updated to 5.4.1 + All Add-ons

What's New in this Version:

## Enhanced
### **Security Improvements**
- **Provider Information Abstraction**: Completely removed exchange provider names from user-facing error messages
  - **Generic Error Messages**: Replaced provider-specific errors (e.g., "Insufficient balance on binance exchange") with professional, generic messages
  - **Internal Details Hidden**: Eliminated technical references to "exchange account refill" and backend architecture details
  - **Consistent Messaging**: Standardized all withdrawal error messages across different exchange providers
  - **Professional Appearance**: Error messages now appear as native platform responses rather than third-party provider errors

### **Admin Panel Enhancements**
- **Flexible Wallet Management**: Improved wallet editing functionality with enhanced validation system
  - **Partial Updates**: Support for editing individual wallet fields without requiring all fields
  - **Streamlined UX**: Removed restrictive validation that prevented simple balance adjustments
  - **Better Error Handling**: Clear, actionable error messages for admin operations

### **Payment System Modernization**
- **PayPal SDK Migration**: Upgraded to latest PayPal server-side SDK for enhanced security and stability
  - **Modern API Integration**: Migrated from deprecated `@paypal/checkout-server-sdk` to `@paypal/paypal-server-sdk`
  - **Enhanced Return Flow**: Implemented dedicated PayPal return page with comprehensive status handling
  - **Improved Error Handling**: Better error messages and user feedback during payment processing
  - **Fixed Return URLs**: Corrected PayPal return and cancel URLs to match frontend routing structure

## Fixed
### **Validation Issues**
- **Wallet Edit Schema**: Fixed schema validation error preventing wallet balance updates in admin panel
  - **Optional Fields**: Made all wallet update fields optional to support partial updates
  - **Flexible Validation**: Updated validation logic to filter undefined values appropriately

### **Error Message Security**
- **Withdrawal Errors**: Secured all spot withdrawal error messages to prevent information leakage
  - **Provider Abstraction**: Removed "binance", "kucoin", "xt" references from user-visible errors
  - **Generic Responses**: Implemented user-friendly error messages that don't reveal backend infrastructure

### **Security Vulnerabilities**
- **Dependency Updates**: Patched security vulnerabilities in backend dependencies
  - **IP Package**: Updated `ip` package to address security advisories
  - **XLSX Package**: Updated `xlsx` package to latest secure version
  - **PayPal SDK**: Replaced deprecated PayPal SDK with actively maintained version

## Technical Improvements
### **API Security**
- **Error Handling**: Enhanced error handling across withdrawal endpoints to maintain provider abstraction
- **Schema Flexibility**: Improved validation schemas to support better admin user experience
- **Data Protection**: Strengthened protection of internal system details from end users

### **Build System Enhancements**
- **Webpack Configuration**: Improved build system to handle modern ES modules and complex dependencies
  - **Node.js Fallbacks**: Added fallback configuration for Node.js-specific modules (fs, path, crypto, stream, buffer) in browser builds
  - **Module Resolution**: Enhanced module resolution for third-party packages with complex dependency structures
  - **Build Warnings**: Implemented selective warning suppression for known safe module resolution patterns
  - **ES Module Support**: Improved handling of packages using modern ES module exports and lit components

### **Dependency Management**
- **Workspace Configuration**: Optimized pnpm workspace setup for better dependency resolution
  - **Centralized Overrides**: Consolidated all `pnpm.overrides` and `peerDependencyRules` to root package.json
  - **Version Consistency**: Enforced consistent dependency versions across frontend and backend workspaces
  - **Peer Dependency Resolution**: Improved handling of peer dependency conflicts for React 19 and TypeScript 5.9
  - **Security Updates**: Updated vulnerable packages including `ip`, `xlsx`, and deprecated PayPal SDK

## Compatibility Notes
### **No Breaking Changes**
- **API Compatibility**: All existing API endpoints maintain the same response structure
- **Error Codes**: HTTP status codes remain unchanged, only error message content has been improved
- **Admin Functions**: Enhanced admin functionality without breaking existing workflows
- **PayPal Integration**: SDK migration maintains full backward compatibility with existing payment flows
- **Build System**: Webpack improvements are transparent to end users and maintain all existing functionality

## Security Notes
### **Information Disclosure Prevention**
- **Provider Anonymity**: Complete abstraction of backend exchange providers from user interfaces
- **Professional Messaging**: All error messages now reflect your platform branding rather than third-party services
- **Infrastructure Protection**: Internal system architecture details are fully protected from user exposure

---
**Upgrade Recommendation**: HIGHLY RECOMMENDED for all production environments, especially those handling financial transactions

Support is available for paid files only
Support for free files is offered for a fee only

  • Author
  • Administrators

This file has been updated to 5.4.2 + All Add-ons

What's New in this Version:

## New Features

### CSV Import/Export for User Management
- **Added** bulk user import functionality via CSV file upload
- **Added** user export to CSV for data backup and migration
- **Implemented** comprehensive CSV validation and error reporting
- **Added** downloadable CSV template with example data
- **Support** for all user fields including profile and social data

### Exchange Market Fee Management
- **Added** ability to edit taker and maker fees for spot markets
- **Added** editable fields for market trending and hot flags
- **Added** precision configuration for price and amount decimals
- **Enhanced** exchange market management interface similar to ecosystem markets

## Feature Details

### User CSV Import Features
- **Validation** for required fields (email, firstName, lastName)
- **Duplicate detection** prevents creating users with existing emails
- **Configurable default password** for imported users without passwords
- **Optional welcome email** sending to newly imported users
- **Detailed error reporting** with row numbers and specific error messages
- **Support for profile data** including bio, location, and social media links
- **Flexible boolean parsing** accepts true/false, yes/no, 1/0 formats
- **Batch processing** with transaction support for data integrity

### User CSV Export Features
- **Export filters** by user status (ACTIVE, INACTIVE, BANNED, SUSPENDED)
- **Optional password export** (encrypted) for migration purposes
- **Complete data export** including all profile and social fields
- **Auto-generated filename** with current date
- **CSV format** compatible with import template

### Exchange Market Enhancements
- **Editable fee structure**:
  - Taker fee percentage
  - Maker fee percentage
- **Market configuration**:
  - Currency and pair editing
  - Trending and hot market flags
  - Price and amount precision settings
- **API improvements**:
  - Fixed permission scope from ecosystem to exchange
  - Updated operation IDs and tags for proper categorization

## Technical Details

### Files Added
- `backend/src/api/admin/crm/user/import.post.ts` - CSV import endpoint
- `backend/src/api/admin/crm/user/export-csv.get.ts` - CSV export endpoint
- `frontend/public/templates/users_import_template.csv` - Sample CSV template

### Files Modified
- `frontend/app/[locale]/(dashboard)/admin/crm/user/page.tsx` - Added import/export UI
- `frontend/app/[locale]/(dashboard)/admin/finance/exchange/[id]/market/columns.tsx` - Enhanced market fee editing
- `backend/src/api/admin/finance/exchange/market/[id]/index.put.ts` - Fixed permissions and expanded update fields
- `backend/src/api/admin/finance/exchange/market/utils.ts` - Added currency/pair to update schema

### Dependencies Added
- `csv-parse` - For parsing CSV files during import
- `csv-stringify` - For generating CSV files during export

## CSV Import Format

### Required Fields
- `email` - User's email address (must be unique)
- `firstName` - User's first name
- `lastName` - User's last name

### Optional Fields
- `password` - User password (uses default if not provided)
- `phone` - Phone number
- `status` - ACTIVE, INACTIVE, BANNED, or SUSPENDED
- `emailVerified` - Email verification status
- `twoFactor` - Two-factor authentication enabled
- `roleId` - User role identifier
- `avatar` - Avatar URL

### Profile Fields
- `bio` - User biography
- `address` - Street address
- `city` - City name
- `country` - Country name
- `zip` - Postal code

### Social Media Fields
- `facebook` - Facebook profile URL
- `twitter` - Twitter profile URL
- `instagram` - Instagram profile URL
- `github` - GitHub profile URL
- `dribbble` - Dribbble profile URL
- `gitlab` - GitLab profile URL

## Impact
- **Administrators** can now bulk import users from external systems
- **Data migration** simplified with CSV export/import functionality
- **Exchange operators** have full control over market fee structures
- **Improved efficiency** for managing large user bases
- **Better alignment** between exchange and ecosystem market management

## Permissions
New permissions added for granular control:
- `import.user` - Required to import users from CSV
- `export.user` - Required to export users to CSV

These permissions are separate from the standard `create.user` and `view.user` permissions, allowing administrators to control who can perform bulk operations.

## Security Considerations
- Passwords are hashed using bcrypt before storage
- CSV imports validate all data before database insertion
- Import/Export require specific admin permissions (`import.user` and `export.user`)
- Import and Export buttons are only visible to users with appropriate permissions
- File upload size limits prevent abuse
- Detailed audit trail for bulk operations

## Known Limitations
- CSV files must be UTF-8 encoded
- Maximum file size depends on server configuration
- Welcome emails require email service configuration
- Large imports may take several seconds to process

## Migration Guide
For users upgrading from previous versions:
1. Run database migrations if any schema changes
2. Run the permissions seeder to add new permissions: `npm run seed:permissions`
3. Update frontend and backend dependencies with `pnpm install`
4. Restart both frontend and backend services
5. Assign `import.user` and `export.user` permissions to appropriate roles
6. Test import functionality with the provided template

Support is available for paid files only
Support for free files is offered for a fee only

8 hours ago, Mahmoud said:

This file has been updated to 5.4.2 + All Add-ons

What's New in this Version:

## New Features

### CSV Import/Export for User Management- **Added** bulk user import functionality via CSV file upload
- **Added** user export to CSV for data backup and migration
- **Implemented** comprehensive CSV validation and error reporting
- **Added** downloadable CSV template with example data
- **Support** for all user fields including profile and social data

### Exchange Market Fee Management- **Added** ability to edit taker and maker fees for spot markets
- **Added** editable fields for market trending and hot flags
- **Added** precision configuration for price and amount decimals
- **Enhanced** exchange market management interface similar to ecosystem markets

## Feature Details

### User CSV Import Features- **Validation** for required fields (email, firstName, lastName)
- **Duplicate detection** prevents creating users with existing emails
- **Configurable default password** for imported users without passwords
- **Optional welcome email** sending to newly imported users
- **Detailed error reporting** with row numbers and specific error messages
- **Support for profile data** including bio, location, and social media links
- **Flexible boolean parsing** accepts true/false, yes/no, 1/0 formats
- **Batch processing** with transaction support for data integrity

### User CSV Export Features- **Export filters** by user status (ACTIVE, INACTIVE, BANNED, SUSPENDED)
- **Optional password export** (encrypted) for migration purposes
- **Complete data export** including all profile and social fields
- **Auto-generated filename** with current date
- **CSV format** compatible with import template

### Exchange Market Enhancements- **Editable fee structure**:
  - Taker fee percentage
  - Maker fee percentage
- **Market configuration**:
  - Currency and pair editing
  - Trending and hot market flags
  - Price and amount precision settings
- **API improvements**:
  - Fixed permission scope from ecosystem to exchange
  - Updated operation IDs and tags for proper categorization

## Technical Details

### Files Added- `backend/src/api/admin/crm/user/import.post.ts` - CSV import endpoint
- `backend/src/api/admin/crm/user/export-csv.get.ts` - CSV export endpoint
- `frontend/public/templates/users_import_template.csv` - Sample CSV template

### Files Modified- `frontend/app/[locale]/(dashboard)/admin/crm/user/page.tsx` - Added import/export UI
- `frontend/app/[locale]/(dashboard)/admin/finance/exchange/[id]/market/columns.tsx` - Enhanced market fee editing
- `backend/src/api/admin/finance/exchange/market/[id]/index.put.ts` - Fixed permissions and expanded update fields
- `backend/src/api/admin/finance/exchange/market/utils.ts` - Added currency/pair to update schema

### Dependencies Added- `csv-parse` - For parsing CSV files during import
- `csv-stringify` - For generating CSV files during export

## CSV Import Format

### Required Fields- `email` - User's email address (must be unique)
- `firstName` - User's first name
- `lastName` - User's last name

### Optional Fields- `password` - User password (uses default if not provided)
- `phone` - Phone number
- `status` - ACTIVE, INACTIVE, BANNED, or SUSPENDED
- `emailVerified` - Email verification status
- `twoFactor` - Two-factor authentication enabled
- `roleId` - User role identifier
- `avatar` - Avatar URL

### Profile Fields- `bio` - User biography
- `address` - Street address
- `city` - City name
- `country` - Country name
- `zip` - Postal code

### Social Media Fields- `facebook` - Facebook profile URL
- `twitter` - Twitter profile URL
- `instagram` - Instagram profile URL
- `github` - GitHub profile URL
- `dribbble` - Dribbble profile URL
- `gitlab` - GitLab profile URL

## Impact- **Administrators** can now bulk import users from external systems
- **Data migration** simplified with CSV export/import functionality
- **Exchange operators** have full control over market fee structures
- **Improved efficiency** for managing large user bases
- **Better alignment** between exchange and ecosystem market management

## Permissions
New permissions added for granular control:
- `import.user` - Required to import users from CSV
- `export.user` - Required to export users to CSV

These permissions are separate from the standard `create.user` and `view.user` permissions, allowing administrators to control who can perform bulk operations.

## Security Considerations- Passwords are hashed using bcrypt before storage
- CSV imports validate all data before database insertion
- Import/Export require specific admin permissions (`import.user` and `export.user`)
- Import and Export buttons are only visible to users with appropriate permissions
- File upload size limits prevent abuse
- Detailed audit trail for bulk operations

## Known Limitations- CSV files must be UTF-8 encoded
- Maximum file size depends on server configuration
- Welcome emails require email service configuration
- Large imports may take several seconds to process

## Migration Guide
For users upgrading from previous versions:
1. Run database migrations if any schema changes
2. Run the permissions seeder to add new permissions: `npm run seed:permissions`3. Update frontend and backend dependencies with `pnpm install`4. Restart both frontend and backend services
5. Assign `import.user` and `export.user` permissions to appropriate roles
6. Test import functionality with the provided template

How to upgrade

  • Author
  • Administrators

This file has been updated to 5.4.3 + All Add-ons

What's New in this Version:

## Performance Optimizations

### Binary Trading Page Memory and CPU Optimization
- **Optimized** order update interval to only run when active orders exist
- **Maintained** real-time 1-second updates for profit/loss and timers for best UX
- **Implemented** debouncing for completed orders processing to prevent excessive re-renders
- **Fixed** requestAnimationFrame cleanup to prevent memory leaks
- **Optimized** WebSocket data updates to reduce unnecessary re-renders
- **Reduced** CPU usage by 30-40% during idle states (no active orders)
- **Improved** memory management with proper cleanup of intervals and observers
- **Added** conditional updates that skip processing when no orders are active

## Accessibility Improvements

### Dialog Accessibility Fixes
- **Fixed** missing DialogDescription warnings in binary trading page
- **Added** proper aria-describedby attributes to all Dialog components
- **Added** DialogDescription components to market selector dialogs
- **Added** screen reader accessible descriptions for all modal dialogs
- **Improved** accessibility compliance for WCAG standards

## Bug Fixes

### Investment Dashboard Array Error Fix
- **Fixed** "TypeError: r.find is not a function" error on investment dashboard
- **Added** defensive checks to ensure investments and plans are always arrays
- **Fixed** API response handling to properly extract array data
- **Added** fallback to empty array when data structure is unexpected
- **Prevented** runtime errors when API returns non-array responses

### Wallet Type Translation Issues
- **Fixed** untranslated wallet type names showing as "SPOT_WALLETS", "DERIVATIVES_WALLETS", etc.
- **Added** proper translations for all wallet types (Spot, Fiat, Eco, Futures, etc.)
- **Updated** wallet detail page to use translation keys instead of raw type names

### Exchange Currency Withdrawal Errors
- **Fixed** unhelpful "Exchange currency not found" error message
- **Improved** error message to specify which currency is not available for withdrawal
- **Enhanced** wallet not found error to specify the currency and wallet type
- **Added** guidance for users to contact support when currency is not available on exchange

### Binary Trading Chart Issues
- **Fixed** chart displaying as square instead of proper aspect ratio
- **Fixed** height inheritance issues with nested containers
- **Added** explicit height styling and absolute positioning
- **Resolved** CSS height conflicts in chart container hierarchy

### Binary Trading Active Order Lines
- **Fixed** active trade lines showing at wrong price position
- **Fixed** inverted Y-axis calculation for order price levels
- **Fixed** trade lines not disappearing when orders expire
- **Fixed** timestamp conversion issues (milliseconds vs seconds mismatch)
- **Fixed** order status not updating from PENDING to ACTIVE properly
- **Added** automatic cleanup of expired orders without results
- **Improved** position marker rendering with proper bounds checking
- **Enhanced** expiry filtering to hide completed orders after animation

### Binary Trading Active Positions Panel
- **Fixed** timer staying at 00:00 when positions expire
- **Fixed** expired orders not being filtered out from active positions
- **Fixed** timestamp conversion for createdAt and expiryTime fields
- **Added** automatic removal of expired orders from active positions view
- **Improved** time left calculation to handle expired orders gracefully

### Binary Trading Completed Positions Panel
- **Fixed** completed positions panel not showing when orders complete
- **Fixed** expired orders not being moved from active to completed orders array
- **Added** proper filtering to remove completed orders from active orders list
- **Ensured** completed orders are properly tracked and displayed
- **Fixed** state management to correctly update both active and completed orders

### Active Positions Panel Chart Display
- **Fixed** profit/loss mini charts showing as squares instead of line charts
- **Implemented** proper SVG line chart with smooth curves
- **Added** gradient fill area under the profit/loss line
- **Added** zero reference line with dashed styling
- **Added** current value indicator dot at the end of the line
- **Improved** chart responsiveness with proper viewBox scaling

### TradingView Chart Integration for Binary Trading
- **Added** TradingView chart support to binary trading page
- **Implemented** ChartSwitcher component to toggle between Native and TradingView charts
- **Integrated** with existing system settings for chart type selection
- **Maintained** all binary trading features (expiry markers, order lines, positions)
- **Enabled** seamless switching via Admin > System > Settings > Features > Trading
- **Preserved** existing AdvancedChart as default option

### Chart Loading Optimization
- **Fixed** unnecessary chart loading before settings are fetched
- **Prevented** default chart from loading when TradingView is configured
- **Added** proper loading state while waiting for settings
- **Eliminated** visual flickering caused by chart switching
- **Improved** initial page load performance by avoiding redundant component mounting
- **Optimized** resource usage by only loading the selected chart type

### Binary Trading Completed Orders Panel UI Improvements
- **Added** resizable functionality - drag the resize handle to adjust panel height
- **Implemented** persistent height preference using localStorage
- **Added** visual resize handle with hover effects
- **Enabled** height adjustment from 200px to 800px
- **Added** smooth visual feedback during resize operation
- **Dynamic** table content height adjusts based on panel size
- **Fixed** resize drag being interrupted by chart interactions
- **Added** invisible overlay during resize to capture all mouse events
- **Fixed** panel pushing content up instead of overlapping
- **Improved** z-index layering to ensure panel appears above other content
- **Increased** default panel height from 300px to 500px to show more orders
- **Compacted** filter buttons with smaller padding and grouped design
- **Reduced** text sizes throughout for more efficient space usage
- **Simplified** status badges to single letters (W/L) to save space
- **Replaced** side text with arrow symbols (↑/↓) for compactness
- **Reduced** row padding from py-3 to py-2 for tighter spacing
- **Improved** filter button group with border wrapping
- **Optimized** export button to be less prominent
- **Enhanced** overall density to display 8-10 orders instead of 1-2

### Binary Trading Completed Orders Loading
- **Fixed** completed orders not being fetched on binary page load
- **Fixed** order fetching happening before symbol was set during initialization
- **Moved** order fetching to trigger when symbol is set via setCurrentSymbol
- **Added** automatic order fetching when switching symbols
- **Fixed** fetchCompletedOrders to use correct API endpoint with type=CLOSED parameter
- **Fixed** fetchActiveOrders to use correct API endpoint with type=OPEN parameter
- **Fixed** auto-selected symbols to use setCurrentSymbol method to trigger order fetching
- **Added** console logging for debugging order fetch operations
- **Ensured** both active and completed orders are fetched after authentication check

### Advanced Chart - Mobile Pinch-to-Zoom
- **Fixed** inverted zoom direction on mobile devices (pinch out now correctly zooms in)
- **Fixed** CSS interference preventing pinch gestures on mobile
- **Added** preventDefault to touch events to avoid browser's default zoom behavior
- **Improved** zoom sensitivity with adjustable factor for smoother experience
- **Added** hardware acceleration classes for better performance during pinch

### Advanced Chart - Drag Sensitivity
- **Fixed** overly sensitive drag behavior on PC
- **Adjusted** PC mouse drag sensitivity to 30% of raw movement for smoother control
- **Adjusted** mobile touch drag sensitivity to 20% for balanced response
- **Fixed** multiple conflicting event handlers causing erratic behavior

### CSV User Import
- **Fixed** "No CSV file uploaded" error when uploading CSV files
- **Fixed** file upload to use base64 encoding (consistent with image uploads)
- **Fixed** backend multipart/form-data handling
- **Improved** file input UI with custom styled button
- **Added** proper hover effects for upload button
- **Fixed** file display showing selected file name and size

### User Import/Export Buttons
- **Fixed** import/export buttons disappearing on page refresh
- **Fixed** Redis cache causing permissions to be lost
- **Fixed** dependency array in React component to ensure proper re-rendering
- **Disabled** user profile caching temporarily to ensure permissions are always fresh

### CSV Import Data Processing
- **Fixed** NULL values for firstName and lastName fields
- **Added** case-insensitive column mapping for CSV headers
- **Added** BOM (Byte Order Mark) removal for UTF-8 files
- **Improved** empty string to NULL conversion
- **Enhanced** error messages with detailed validation information

## Technical Details

### Files Modified

#### Frontend
- `frontend/app/[locale]/finance/wallet/[type]/[currency]/client.tsx`
  - Fixed wallet type display to use translation keys (line 347)
  
- `frontend/messages/en.json`
  - Added wallet type translations (lines 6309-6319)
  - wallet_type_spot, wallet_type_fiat, wallet_type_eco, etc.
- `frontend/components/blocks/advanced-chart/canvas/events/setup-events.tsx`
  - Fixed pinch-to-zoom calculation (line 420)
  - Added preventDefault to touch start (line 286)
  - Adjusted drag sensitivity values
  
- `frontend/components/blocks/advanced-chart/canvas/events/mouse-events.tsx`
  - Added PC drag sensitivity factor (line 144)
  
- `frontend/components/blocks/advanced-chart/canvas/events/touch-events.tsx`
  - Adjusted mobile touch sensitivity (line 195)
  
- `frontend/styles/chart.css`
  - Changed touch-action from `pan-x pan-y` to `none` for mobile
  - Added touch-pinching class for hardware acceleration
  
- `frontend/app/[locale]/(dashboard)/admin/crm/user/page.tsx`
  - Fixed dependency array for proper re-rendering
  - Changed file upload from FormData to base64
  - Improved file input UI with custom button
  
- `frontend/lib/api.ts`
  - Added FormData detection and proper handling
  - Fixed Content-Type header for multipart data
  
- `frontend/lib/fetchers/user.ts`
  - Disabled Redis caching for user profile to preserve permissions

- `frontend/app/[locale]/binary/components/chart/chart-container.tsx`
  - Fixed chart container to use absolute positioning (line 262)
  - Added explicit height styling for proper aspect ratio
  
- `frontend/components/blocks/advanced-chart/index.tsx`
  - Added explicit height styling with min-height constraint (line 197)
  
- `frontend/components/blocks/advanced-chart/canvas/render/position-marker.ts`
  - Fixed Y-axis calculation for order price levels (lines 280-285)
  - Fixed expiry filtering to hide expired orders (lines 256-271)
  - Added proper bounds checking for order positions
  
- `frontend/components/blocks/advanced-chart/canvas/renderer.tsx`
  - Updated order adapter to filter expired orders at source
  - Fixed timestamp handling for order expiry times
  - Added proper result mapping for completed orders

- `frontend/app/[locale]/binary/components/positions/active-positions.tsx`
  - Replaced bar chart display with SVG line chart (lines 470-534)
  - Added proper path generation for smooth profit/loss curves
  - Implemented gradient fills and zero line reference
  - Added current value indicator with dynamic coloring
  - Fixed expired order filtering (lines 63-74)
  - Fixed timestamp conversions for position markers (lines 69-77)
  - Fixed timer display for expired orders (lines 315-349)

- `frontend/app/[locale]/binary/components/chart/chart-container.tsx`
  - Replaced direct AdvancedChart import with ChartSwitcher component
  - Added support for both Native and TradingView charts
  - Maintained all existing chart props and functionality

- `frontend/store/trade/use-binary-store.ts`
  - Fixed updateOrders to filter out completed orders from active array (line 943-955)
  - Added proper order status management for expired orders
  - Ensured completed orders are moved to completedOrders array
  - Fixed order fetching to occur after symbol is set (lines 317-338)
  - Removed premature order fetching during initialization (lines 1036-1046)
  - Fixed fetchCompletedOrders to use type=CLOSED parameter (line 780)
  - Fixed fetchActiveOrders to use type=OPEN parameter (line 830)
  - Fixed fetchBinaryMarkets to use setCurrentSymbol for auto-selection (line 739)

- `frontend/components/blocks/chart-switcher/index.tsx`
  - Fixed loading logic to wait for settings before rendering any chart (lines 44-53)
  - Added proper loading states for both settings and TradingView script (lines 61-69)
  - Prevented unnecessary component mounting and unmounting
  - Added graceful fallback to native chart on TradingView load failure

#### Backend
- `backend/src/api/finance/withdraw/spot/index.post.ts`
  - Improved exchange currency error message (line 138)
  - Enhanced wallet not found error message (line 230)
- `backend/src/api/admin/crm/user/import.post.ts`
  - Added robust CSV parsing with BOM removal
  - Implemented case-insensitive column mapping
  - Enhanced file data handling for various formats
  - Improved validation with detailed error messages
  - Changed from multipart to JSON/base64 handling
  
- `backend/src/handler/Request.ts`
  - Added multipart/form-data skip for validation
  - Added skipBodyValidation flag support

## Improvements

### Chart Performance
- **Pinch-to-zoom** now works correctly on all mobile devices
- **Drag sensitivity** properly calibrated for both PC and mobile
- **Smooth performance** with hardware acceleration enabled
- **Natural gestures** with correct zoom direction

### User Import Experience
- **Better UI feedback** with styled upload button
- **Clear file selection** showing name and size
- **Reliable import** with proper file handling
- **Comprehensive validation** with helpful error messages

### Data Integrity
- **Correct field mapping** regardless of CSV header case
- **Proper NULL handling** for optional fields
- **BOM handling** for various CSV encodings
- **Consistent permissions** without cache corruption

## Impact
- **Mobile users** can now properly use pinch-to-zoom on charts
- **PC users** experience smoother, less sensitive chart dragging
- **Administrators** can reliably import users from CSV files
- **Import/Export buttons** consistently appear for authorized users
- **Data quality** improved with proper firstName/lastName handling
- **Binary traders** can now choose between Native and TradingView charts
- **Better visualization** with proper line charts in active positions panel
- **Improved UX** with automatic cleanup of expired orders

## Known Issues Resolved
- Chart zoom working in opposite direction on mobile
- Chart dragging too fast and laggy on PC
- CSV upload always showing "No CSV file uploaded"
- Import buttons disappearing on page refresh
- User names showing as NULL after CSV import
- Binary chart showing as square shape
- Active trade lines appearing at wrong positions
- Trade lines not disappearing when orders expire
- Active positions profit/loss showing as squares instead of line chart
- Position timer staying at 00:00 after expiry
- Timestamp conversion issues between milliseconds and seconds
- Completed positions panel not showing when orders complete

## Migration Notes
- Clear Redis cache after update to ensure fresh permission data
- No database migrations required
- Frontend will automatically use new file upload method

### Investment Dashboard Data Validation
- **Fixed** potential crashes from invalid date values in formatDate function
- **Added** null/undefined checks for amount formatting to prevent NaN display
- **Added** validation for invalid Date objects to show "Invalid Date" instead of crashing
- **Fixed** missing currency parameter in investment formatting - now uses plan.currency
- **Enhanced** formatCurrency function with proper null/undefined/NaN validation
- **Added** defensive checks for plan.durations array before mapping
- **Improved** error handling to gracefully handle missing or invalid data

## P2P Trading Improvements

### P2P Payment Methods Fix
- **Fixed** payment method creation and selection in P2P offers
- **Enhanced** payment method API to properly filter user's custom methods alongside system methods
- **Fixed** payment method validation to check both system and user-owned custom methods
- **Added** proper logging for debugging payment method creation and validation issues
- **Improved** error messages to specify which payment method IDs are invalid
- **Fixed** payment method association with offers using proper many-to-many relationship
- **Enhanced** custom payment method creation with proper popularity ranking
- **Fixed** payment method retrieval to show both system and user's custom methods
- **Added** userId field to payment method response for proper identification

## Technical Details - P2P Payment Methods

### Files Modified

#### Backend
- `backend/src/api/(ext)/p2p/offer/index.post.ts`
  - Added detailed logging for payment method validation
  - Enhanced validation to check for both system and user-owned payment methods
  - Improved error messages with specific invalid IDs

- `backend/src/api/(ext)/p2p/payment-method/index.get.ts`
  - Modified to return both system and user's custom payment methods
  - Added proper filtering based on user authentication
  - Improved sorting to show system methods first

- `backend/src/api/(ext)/p2p/payment-method/index.post.ts`
  - Added popularity rank for custom methods
  - Enhanced logging for troubleshooting
  - Added userId to response payload

## Authentication Fix

### Password Hashing Algorithm Mismatch
- **Fixed** CSV user import using bcrypt instead of Argon2 for password hashing
- **Fixed** "pchstr must contain a $ as first char" error when imported users try to login
- **Updated** import endpoint to use consistent Argon2 hashing across the system
- **Created** migration scripts to detect and fix existing bcrypt hashes in database
- **Added** check script to identify users with incorrect password hashes

## Technical Details - Password Hashing

### Files Modified

#### Backend
- `backend/src/api/admin/crm/user/import.post.ts`
  - Replaced bcrypt with Argon2 (hashPassword utility)
  - Ensures consistent password hashing across the system

#### Scripts Added
- `backend/scripts/check-password-hashes.js`
  - Detects different password hash types in database
  - Identifies users affected by the bcrypt issue

- `backend/scripts/migrate-bcrypt-passwords.js`
  - Migrates bcrypt hashes to Argon2
  - Generates temporary passwords for affected users
  - Creates list of users needing password resets

Support is available for paid files only
Support for free files is offered for a fee only

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Latest Updated Files

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.