UNPKG

interchain-token-sdk

Version:

SDK for deploying and managing interchain tokens across multiple chains using Axelar network

62 lines (61 loc) 1.73 kB
import { ERC20_ABI } from '../constants/constants.js'; // For UI validation - returns token details export async function isValidERC20Token(tokenAddress, publicClient) { try { const [{ result: name }, { result: symbol }, { result: decimals }] = (await publicClient.multicall({ contracts: [ { address: tokenAddress, abi: ERC20_ABI, functionName: 'name', }, { address: tokenAddress, abi: ERC20_ABI, functionName: 'symbol', }, { address: tokenAddress, abi: ERC20_ABI, functionName: 'decimals', }, ], })); return { name, symbol, decimals, }; } catch (error) { return null; } } // Internal use only - returns boolean export async function isERC20Token(tokenAddress, publicClient) { try { await publicClient.multicall({ contracts: [ { address: tokenAddress, abi: ERC20_ABI, functionName: 'name', }, { address: tokenAddress, abi: ERC20_ABI, functionName: 'symbol', }, { address: tokenAddress, abi: ERC20_ABI, functionName: 'decimals', }, ], }); return true; } catch (error) { return false; } }