Read contract
We will use an instance of an already deployed Watermelon ERC-20 token from our previous article.
note
If you want to test the ERC-20 transfers in the Write Contract section below – please go through the ERC-20 tutorial, and deploy your own Watermelon contract to mint tokens to your account and use them there.
For the quickstart you can just read through the code here:
Our goal is simple, call the balanceOf
function on the ERC-20 contract to get our Watermelon balance:
We do this by specifying the contract information:
import { erc20Abi } from 'viem';
const erc20Address = '0xF257a66Ddf715049E32aEe591Dc5Ef107B9d9340';
const contractConfig = {
abi: erc20Abi,
address: erc20Address,
};
note
After that, we just need to add useReadContract Wagmi hook to call a balanceOf
function:
export function ERC20Balance() {
...
const {
data: balance,
error,
isPending,
} = useReadContract({
...contractConfig,
functionName: 'balanceOf',
args: [address],
});
if (isPending) return <div>Loading...</div>;
if (error)
return (
<div>Error: {(error as BaseError).shortMessage || error.message}</div>
);
return (
<div className="container">
Your 🍉Watermelon🍉 Balance: {balance?.toString()}WTM
</div>
);
}