14.05.2026 rip
This commit is contained in:
@@ -4,6 +4,7 @@ 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 type { WalletBalanceData } from '@features/wallet'
|
||||
|
||||
export interface Token {
|
||||
symbol: string
|
||||
@@ -27,6 +28,76 @@ const TOKENS: Record<string, Token> = {
|
||||
|
||||
export const TOKENS_LIST: Token[] = Object.values(TOKENS)
|
||||
|
||||
export const TOKEN_META: Record<string, { letter: string; color: string; logo?: string }> = {
|
||||
// Native / major
|
||||
BTC: { letter: '₿', logo: btc, color: '#F7931A' },
|
||||
ETH: { letter: 'E', logo: eth, color: '#627EEA' },
|
||||
BNB: { letter: 'B', color: '#F3BA2F' },
|
||||
SOL: { letter: 'S', logo: sol, color: '#9945FF' },
|
||||
TRX: { letter: 'T', logo: trx, color: '#FF060A' },
|
||||
ARB: { letter: 'A', logo: arb, color: '#4A6DFF' },
|
||||
// Stablecoins
|
||||
USDC: { letter: '$', color: '#2775CA' },
|
||||
USDT: { letter: '$', color: '#26A17B' },
|
||||
DAI: { letter: 'D', color: '#F5AC37' },
|
||||
BUSD: { letter: 'B', color: '#F0B90B' },
|
||||
// ETH tokens
|
||||
WBTC: { letter: 'W', color: '#F7931A' },
|
||||
LINK: { letter: 'L', color: '#2A5ADA' },
|
||||
UNI: { letter: 'U', color: '#FF007A' },
|
||||
// BSC tokens
|
||||
WBNB: { letter: 'W', color: '#F3BA2F' },
|
||||
DOGE: { letter: 'D', color: '#C2A633' },
|
||||
// SOL tokens
|
||||
JUP: { letter: 'J', color: '#C7A52D' },
|
||||
WIF: { letter: 'W', color: '#9333EA' },
|
||||
BONK: { letter: 'B', color: '#FF8C00' },
|
||||
RAY: { letter: 'R', color: '#5AC4BE' },
|
||||
ORCA: { letter: 'O', color: '#1B8EF2' },
|
||||
PYTH: { letter: 'P', color: '#8B5CF6' },
|
||||
JTO: { letter: 'J', color: '#06B6D4' },
|
||||
W: { letter: 'W', color: '#6B7280' },
|
||||
PUMP: { letter: 'P', color: '#00D4AA' },
|
||||
POPCAT: { letter: 'P', color: '#FF6B6B' },
|
||||
TRUMP: { letter: 'T', color: '#E63946' },
|
||||
PENGU: { letter: 'P', color: '#60A5FA' },
|
||||
}
|
||||
|
||||
const CHAIN_NATIVE: Record<string, string> = {
|
||||
ETH: 'ETH', BSC: 'BNB', BTC: 'BTC', TRX: 'TRX', SOL: 'SOL',
|
||||
}
|
||||
|
||||
export function buildTokensFromBalance(data: WalletBalanceData): Token[] {
|
||||
const result: Token[] = []
|
||||
|
||||
const nativeSym = CHAIN_NATIVE[data.chain] ?? data.chain
|
||||
const nativeMeta = TOKEN_META[nativeSym]
|
||||
result.push({
|
||||
symbol: nativeSym,
|
||||
letter: nativeMeta?.letter ?? nativeSym[0],
|
||||
color: nativeMeta?.color ?? '#888',
|
||||
logo: nativeMeta?.logo,
|
||||
network: data.chain,
|
||||
balance: parseFloat(data.native.formatted),
|
||||
usdRate: data.native.usdPrice,
|
||||
})
|
||||
|
||||
for (const [sym, info] of Object.entries(data.tokens)) {
|
||||
const meta = TOKEN_META[sym]
|
||||
result.push({
|
||||
symbol: sym,
|
||||
letter: meta?.letter ?? sym[0],
|
||||
color: meta?.color ?? '#888',
|
||||
logo: meta?.logo,
|
||||
network: data.chain,
|
||||
balance: parseFloat(info.formatted),
|
||||
usdRate: info.usdPrice,
|
||||
})
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
const RATE = 82.2578
|
||||
|
||||
export function useSwapForm() {
|
||||
|
||||
Reference in New Issue
Block a user