viem-erc20
Version:
Viem extensions for erc20 tokens
27 lines (23 loc) • 685 B
text/typescript
import { type Address, type Client, erc20Abi, isAddress } from "viem";
import { readContract } from "viem/actions";
export const getErc20TokenAllowance = async function (
client: Client,
parameters: { address: Address; owner: Address; spender: Address },
) {
const { address, owner, spender } = parameters ?? {};
if (!isAddress(address)) {
throw new Error("Invalid address");
}
if (!isAddress(owner)) {
throw new Error("Invalid owner address");
}
if (!isAddress(spender)) {
throw new Error("Invalid spender address");
}
return readContract(client, {
abi: erc20Abi,
address,
args: [owner, spender],
functionName: "allowance",
});
};