ERC-20 Token Info
Read token metadata (name, symbol, decimals, total supply) and holder balances using client.publicClient.readContract() with the built-in ERC20_ABI.
Change TOKEN to any ERC-20 address on testnet. The default is WCFX (Wrapped CFX on testnet), a contract that always has liquidity.
How it works
ERC20_ABIis exported from@cfxdevkit/coreand covers all standard ERC-20 methods (name, symbol, decimals, totalSupply, balanceOf, allowance, transfer, approve, transferFrom).client.publicClient.readContract({ address, abi, functionName, args })is viem’spublicClient.readContract— accessible via thepublicClientproperty onEspaceClient.Promise.all([...])runs all four metadata reads in a single burst for efficiency.- Wrap calls in
Promise.all([...])to batch multiple reads in one round-trip — essential for reading all metadata at once.
// Production import
import { EspaceClient, ERC20_ABI, formatUnits } from '@cfxdevkit/core'
const client = new EspaceClient({ chainId: 71, rpcUrl: 'https://evmtestnet.confluxrpc.com' })
const [name, symbol, decimals] = await Promise.all([
client.publicClient.readContract({ address: TOKEN, abi: ERC20_ABI, functionName: 'name' }),
client.publicClient.readContract({ address: TOKEN, abi: ERC20_ABI, functionName: 'symbol' }),
client.publicClient.readContract({ address: TOKEN, abi: ERC20_ABI, functionName: 'decimals' }),
])Last updated on