import { Address, erc20Abi, PublicActions } from 'viem'; export async function getTokenName(client: PublicActions, address: Address) { return await client.readContract({ address, abi: erc20Abi, functionName: 'name', }); } export async function getTokenDetails(client: PublicActions, token: Address) { const [name, symbol, decimals] = await client.multicall({ contracts: [ { address: token, abi: erc20Abi, functionName: 'name', }, { address: token, abi: erc20Abi, functionName: 'symbol', }, { address: token, abi: erc20Abi, functionName: 'decimals', }, ], }); if ( name.status !== 'success' || symbol.status !== 'success' || decimals.status !== 'success' ) { throw new Error('Failed to fetch token details'); } return { name: name.result, symbol: symbol.result, decimals: decimals.result, }; }