Files
pwap/shared
pezkuwichain 1c6ff3d578 fix(web): correct asset IDs/decimals + chain routing, string-BigInt amounts, presale signer
Fund-logic hardening (audit remediation):
- TransferModal: source asset id/decimals from the canonical MINTABLE_ASSETS
  (wUSDT=1000, wDOT=1001, wETH=1002, wBTC=1003) instead of the wrong hardcoded
  ids (BTC=3 was the deprecated "Old USDT", ETH=4, DOT=5). Route every non-native
  asset through the Asset Hub api; only native HEZ uses the relay balances pallet.
  Removes the latent wrong-asset / wrong-chain transfer.
- Replace BigInt(parseFloat(x)*10**dec) with string-based parseTokenInput in
  TransferModal + 3 DEX init modals; BigInt(float) threw RangeError on common
  fractional amounts (e.g. 100.3 HEZ), breaking sends and pool/bridge init.
- Presale.contribute now resolves a signer via getSigner and passes { signer }
  to signAndSend (was signer-less -> broken for all users).
- presale.ts contribute/refund/claimVested now reject on dropped/invalid/usurped/
  retracted tx states instead of hanging the UI forever.
2026-07-24 22:55:54 -07:00
..

Shared Code

This directory contains code shared between web, mobile, and SDK UI applications.

Structure

  • types/ - TypeScript type definitions and interfaces

    • blockchain.ts - Blockchain-related types (WalletAccount, Transaction, etc.)
    • tokens.ts - Token and DEX types (TokenInfo, PoolInfo, SwapQuote, etc.)
  • constants/ - Shared constants and configuration values

    • KNOWN_TOKENS - Token definitions (HEZ, PEZ, USDT)
    • KURDISTAN_COLORS - Color palette (Kesk, Sor, Zer, Spî, Reş)
    • SUPPORTED_LANGUAGES - Available languages (EN, TR, KMR, CKB, AR, FA)
    • TOKEN_DISPLAY_SYMBOLS - Display vs blockchain symbol mapping
  • blockchain/ - Blockchain-related utilities

    • polkadot.ts - Polkadot/Substrate utilities and endpoints
    • DEFAULT_ENDPOINT - Current blockchain endpoint (beta testnet)
  • i18n/ - Internationalization

    • locales/ - Translation files for 6 languages
    • LANGUAGES - Language configurations with RTL support
    • translations - All locale data
  • utils/ - Utility functions and helpers

    • formatting.ts - Address and number formatting
    • validation.ts - Input validation utilities

Usage

Import shared code in your projects:

// Token types and constants
import { TokenInfo, KNOWN_TOKENS } from '../../../shared/types/tokens';
import { KURDISTAN_COLORS, TOKEN_DISPLAY_SYMBOLS } from '../../../shared/constants';

// Blockchain utilities
import { DEFAULT_ENDPOINT, BLOCKCHAIN_ENDPOINTS } from '../../../shared/blockchain/polkadot';

// i18n
import { translations, LANGUAGES, isRTL } from '../../../shared/i18n';

// Formatting utilities
import { formatAddress, formatTokenAmount } from '../../../shared/utils/formatting';

Guidelines

  • Keep code framework-agnostic when possible
  • Add comprehensive JSDoc comments
  • Write unit tests for utilities
  • Avoid platform-specific dependencies
  • Use relative imports: ../../../shared/... from web/mobile/SDK UI