init383838
This commit is contained in:
@@ -78,3 +78,31 @@ export function getTrxTokens(): TrxToken[] {
|
||||
export function getSolTokens(): SolToken[] {
|
||||
return SOL_TOKENS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Universal lookup для send flow. Returns address+decimals или null если token не в registry.
|
||||
* Symbol comparison case-insensitive.
|
||||
*
|
||||
* Usage:
|
||||
* const info = getTokenInfo('BSC', 'USDC');
|
||||
* // → { address: '0x8AC76a51...', decimals: 18 }
|
||||
*
|
||||
* const info = getTokenInfo('SOL', 'USDT');
|
||||
* // → { address: 'Es9vMFrza...', decimals: 6 } (mint address)
|
||||
*/
|
||||
export function getTokenInfo(chain: ChainCode, symbol: string): { address: string; decimals: number } | null {
|
||||
const upper = String(symbol).toUpperCase();
|
||||
if (chain === 'ETH' || chain === 'BSC') {
|
||||
const t = getEvmTokens(chain).find((x) => x.symbol.toUpperCase() === upper);
|
||||
return t ? { address: t.contractAddress, decimals: t.decimals } : null;
|
||||
}
|
||||
if (chain === 'TRX') {
|
||||
const t = TRX_TOKENS.find((x) => x.symbol.toUpperCase() === upper);
|
||||
return t ? { address: t.contractAddress, decimals: t.decimals } : null;
|
||||
}
|
||||
if (chain === 'SOL') {
|
||||
const t = SOL_TOKENS.find((x) => x.symbol.toUpperCase() === upper);
|
||||
return t ? { address: t.mint, decimals: t.decimals } : null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user