interchain-token-sdk
Version:
SDK for deploying and managing interchain tokens across multiple chains using Axelar network
62 lines (61 loc) • 1.73 kB
JavaScript
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;
}
}