feat(frontend): align wUSDT Asset ID with SDK (1000)

This commit aligns the frontend wUSDT implementation with the SDK runtime
constants, ensuring consistency across the entire stack.

Changes:
- Update ASSET_IDS.WUSDT from 2 → 1000 (matches SDK constants)
- Add ASSET_CONFIGS with wUSDT configuration (6 decimals, min balance)
- Update all asset queries in AccountBalance.tsx to use ASSET_IDS.WUSDT
- Update pool queries for wHEZ/wUSDT and PEZ/wUSDT pools
- Update USDTBridge.tsx burn transaction to use ASSET_IDS.WUSDT
- Refactor usdt.ts to reference ASSET_CONFIGS instead of hardcoded values

Asset ID Allocation Strategy:
- 0-999: Reserved for protocol tokens (wHEZ, PEZ, etc.)
- 1000+: Bridged/wrapped external assets (wUSDT, etc.)

Technical Details:
- wUSDT uses 6 decimals (USDT standard), not 12 like native HEZ
- All frontend code now uses centralized ASSET_CONFIGS
- ESLint passes with 0 errors (8 pre-existing warnings unrelated to changes)

This is part of Phase 1 wUSDT infrastructure setup, working in parallel
with SDK benchmarking builds currently running in background.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-20 19:52:48 +03:00
parent 4e85e28bce
commit 06a7ec9424
4 changed files with 45 additions and 13 deletions
+3 -3
View File
@@ -4,15 +4,15 @@
// Handles wUSDT minting, burning, and reserve management
import type { ApiPromise } from '@polkadot/api';
import { ASSET_IDS } from './wallet';
import { ASSET_IDS, ASSET_CONFIGS } from './wallet';
import { getMultisigMembers, createMultisigTx } from './multisig';
// ========================================
// CONSTANTS
// ========================================
export const WUSDT_ASSET_ID = ASSET_IDS.WUSDT;
export const WUSDT_DECIMALS = 6; // USDT has 6 decimals
export const WUSDT_ASSET_ID = ASSET_CONFIGS.WUSDT.id;
export const WUSDT_DECIMALS = ASSET_CONFIGS.WUSDT.decimals;
// Withdrawal limits and timeouts
export const WITHDRAWAL_LIMITS = {
+32 -1
View File
@@ -31,16 +31,47 @@ export const CHAIN_CONFIG = {
// ========================================
// ⚠️ IMPORTANT: HEZ is the native token and does NOT have an Asset ID
// Only wrapped/asset tokens are listed here
//
// Asset ID Allocation:
// - 0-999: Reserved for protocol tokens (wHEZ, PEZ, etc.)
// - 1000+: Bridged/wrapped external assets (wUSDT, etc.)
export const ASSET_IDS = {
WHEZ: parseInt(import.meta.env.VITE_ASSET_WHEZ || '0'), // Wrapped HEZ
PEZ: parseInt(import.meta.env.VITE_ASSET_PEZ || '1'), // PEZ utility token
WUSDT: parseInt(import.meta.env.VITE_ASSET_WUSDT || '2'), // Wrapped USDT (multisig backed)
WUSDT: parseInt(import.meta.env.VITE_ASSET_WUSDT || '1000'), // Wrapped USDT (6 decimals, matches SDK)
USDT: parseInt(import.meta.env.VITE_ASSET_USDT || '3'),
BTC: parseInt(import.meta.env.VITE_ASSET_BTC || '4'),
ETH: parseInt(import.meta.env.VITE_ASSET_ETH || '5'),
DOT: parseInt(import.meta.env.VITE_ASSET_DOT || '6'),
} as const;
// ========================================
// ASSET CONFIGURATIONS
// ========================================
export const ASSET_CONFIGS = {
WHEZ: {
id: ASSET_IDS.WHEZ,
symbol: 'wHEZ',
name: 'Wrapped HEZ',
decimals: 12,
minBalance: 1_000_000_000, // 0.001 HEZ
},
PEZ: {
id: ASSET_IDS.PEZ,
symbol: 'PEZ',
name: 'PEZ Utility Token',
decimals: 12,
minBalance: 1_000_000_000, // 0.001 PEZ
},
WUSDT: {
id: ASSET_IDS.WUSDT,
symbol: 'wUSDT',
name: 'Wrapped USDT',
decimals: 6, // ⚠️ CRITICAL: wUSDT uses 6 decimals (USDT standard), not 12!
minBalance: 1_000, // 0.001 USDT
},
} as const;
// ========================================
// EXPLORER URLS
// ========================================