From 1e5f792854b98bb080bda557471eeada1d2d2092 Mon Sep 17 00:00:00 2001 From: rassadin11 Date: Thu, 14 May 2026 20:40:10 +0300 Subject: [PATCH] 14.05.2026 rip --- src/shared/assets/bnb.svg | 7 +++++++ src/widgets/send-modal/model/sendTypes.ts | 8 +++++++- src/widgets/send-modal/ui/SendModal.tsx | 10 +++++++++- src/widgets/token-table/model/tokens.ts | 4 ++-- src/widgets/token-table/model/useTokenRows.ts | 6 +++--- src/widgets/token-table/ui/TokenTable.tsx | 17 +++-------------- 6 files changed, 31 insertions(+), 21 deletions(-) create mode 100644 src/shared/assets/bnb.svg diff --git a/src/shared/assets/bnb.svg b/src/shared/assets/bnb.svg new file mode 100644 index 0000000..17ffd91 --- /dev/null +++ b/src/shared/assets/bnb.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/widgets/send-modal/model/sendTypes.ts b/src/widgets/send-modal/model/sendTypes.ts index cdb0e17..6f38de1 100644 --- a/src/widgets/send-modal/model/sendTypes.ts +++ b/src/widgets/send-modal/model/sendTypes.ts @@ -37,6 +37,8 @@ export interface ChainConfig { unit: string /** Accent color used for the chain dot in dropdowns */ color: string + /** Decimal places for the native coin (used to convert human input → base units) */ + nativeDecimals: number } export const CHAIN_CONFIG: Record = { @@ -48,6 +50,7 @@ export const CHAIN_CONFIG: Record = { addressPlaceholder: '0x…', unit: 'wei', color: '#627EEA', + nativeDecimals: 18, }, BSC: { label: 'BNB Chain', @@ -57,6 +60,7 @@ export const CHAIN_CONFIG: Record = { addressPlaceholder: '0x…', unit: 'wei', color: '#F3BA2F', + nativeDecimals: 18, }, BTC: { label: 'Bitcoin', @@ -66,6 +70,7 @@ export const CHAIN_CONFIG: Record = { addressPlaceholder: 'bc1q…', unit: 'satoshi', color: '#F7931A', + nativeDecimals: 8, }, TRX: { label: 'Tron', @@ -75,6 +80,7 @@ export const CHAIN_CONFIG: Record = { addressPlaceholder: 'T…', unit: 'sun', color: '#FF060A', + nativeDecimals: 6, }, SOL: { label: 'Solana', @@ -84,6 +90,7 @@ export const CHAIN_CONFIG: Record = { addressPlaceholder: 'Fg3R…', unit: 'lamport', color: '#9945FF', + nativeDecimals: 9, }, } @@ -96,7 +103,6 @@ export const TICKER_TO_CHAIN: Record = { SOL: 'SOL', TRX: 'TRX', BNB: 'BSC', - ARB: 'ETH', } // ─── API request / response types ─────────────────────────────────────────── diff --git a/src/widgets/send-modal/ui/SendModal.tsx b/src/widgets/send-modal/ui/SendModal.tsx index b019e8d..f5f0468 100644 --- a/src/widgets/send-modal/ui/SendModal.tsx +++ b/src/widgets/send-modal/ui/SendModal.tsx @@ -88,11 +88,19 @@ export function SendModal({ open, onClose, network, tokens = [], initialToken = if (openDropdown) { setOpenDropdown(null) } else { onClose() } } + function toBaseUnits(value: string, decimals: number): string { + const [intPart, fracPart = ''] = value.split('.') + const frac = fracPart.slice(0, decimals).padEnd(decimals, '0') + return (BigInt(intPart || '0') * (10n ** BigInt(decimals)) + BigInt(frac || '0')).toString() + } + function handleSubmit() { + const isNative = selectedToken === '' + const convertedAmount = isNative ? toBaseUnits(amount, cfg.nativeDecimals) : amount mutation.mutate({ chain: network, to: address, - amount, + amount: convertedAmount, ...(selectedToken ? { token: selectedToken } : {}), ...(cfg.hasFeeTier ? { feeTier: speed } : {}), }) diff --git a/src/widgets/token-table/model/tokens.ts b/src/widgets/token-table/model/tokens.ts index c67e637..99e771d 100644 --- a/src/widgets/token-table/model/tokens.ts +++ b/src/widgets/token-table/model/tokens.ts @@ -2,7 +2,7 @@ import btc from '@shared/assets/btc.svg' import eth from '@shared/assets/eth.svg' import sol from '@shared/assets/sol.svg' import trx from '@shared/assets/trx.svg' -import arb from '@shared/assets/arb.svg' +import bnb from '@shared/assets/bnb.svg' export interface Token { ticker: string @@ -21,5 +21,5 @@ export const TOKENS: readonly Token[] = [ { ticker: 'ETH', name: 'Ethereum', logo: eth, color: '#627EEA', price: '$2,053.97', change: -0.12, bal: '0.07636', usd: '$156.51', fav: false }, { ticker: 'SOL', name: 'Solana', logo: sol, color: '#9945FF', price: '$163.84', change: -1.57, bal: '0.07636', usd: '$156.51', fav: false }, { ticker: 'TRX', name: 'Tron', logo: trx, color: '#FF060A', price: '$0.1197', change: 1.33, bal: '0.07636', usd: '$156.51', fav: false }, - { ticker: 'ARB', name: 'Arbitrum', logo: arb, color: '#4A6DFF', price: '$0.9214', change: 2.56, bal: '0.07636', usd: '$156.51', fav: false }, + { ticker: 'BNB', name: 'BNB Chain', logo: bnb, color: '#F3BA2F', price: '$0.00', change: 0, bal: '0.00000', usd: '$0.00', fav: false }, ] as const diff --git a/src/widgets/token-table/model/useTokenRows.ts b/src/widgets/token-table/model/useTokenRows.ts index 536829e..d22180c 100644 --- a/src/widgets/token-table/model/useTokenRows.ts +++ b/src/widgets/token-table/model/useTokenRows.ts @@ -3,10 +3,10 @@ import { CHAINS } from '@features/wallet' import { TOKENS } from './tokens' import type { WalletBalanceData } from '@features/wallet' -const PRICE_SYMBOLS = ['BTC', 'ETH', 'SOL', 'TRX', 'ARB'] +const PRICE_SYMBOLS = ['BTC', 'ETH', 'SOL', 'TRX', 'BNB'] type ChainSource = - | { chain: 'BTC' | 'ETH' | 'SOL' | 'TRX'; type: 'native' } + | { chain: 'BTC' | 'ETH' | 'SOL' | 'TRX' | 'BSC'; type: 'native' } | { chain: 'ETH'; type: 'token'; symbol: string } const CHAIN_MAP: Record = { @@ -14,7 +14,7 @@ const CHAIN_MAP: Record = { ETH: { chain: 'ETH', type: 'native' }, SOL: { chain: 'SOL', type: 'native' }, TRX: { chain: 'TRX', type: 'native' }, - ARB: { chain: 'ETH', type: 'token', symbol: 'ARB' }, + BNB: { chain: 'BSC', type: 'native' }, } function formatUsd(value: number): string { diff --git a/src/widgets/token-table/ui/TokenTable.tsx b/src/widgets/token-table/ui/TokenTable.tsx index 5507461..4f3dbee 100644 --- a/src/widgets/token-table/ui/TokenTable.tsx +++ b/src/widgets/token-table/ui/TokenTable.tsx @@ -59,7 +59,6 @@ export function TokenTable() { ☆ Токены Цена - Изменение Баланс @@ -80,7 +79,7 @@ export function TokenTable() {
- {t.logo && {t.ticker}} + {t.logo && {t.ticker}}
{t.ticker} @@ -91,11 +90,6 @@ export function TokenTable() { {t.price} - - = 0 ? styles.up : styles.dn}`}> - {t.change >= 0 ? '↑' : '↓'} {t.change >= 0 ? '+' : ''}{t.change}% - -
{t.bal} @@ -141,7 +135,7 @@ export function TokenTable() {
{t.logo - ? {t.ticker} + ? {t.ticker} : t.ticker[0]}
@@ -154,12 +148,7 @@ export function TokenTable() {
{t.price} -
- {t.usd} - = 0 ? styles.up : styles.dn}`}> - {t.change >= 0 ? '↑' : '↓'} {Math.abs(t.change)}% - -
+ {t.usd}