使用 Ethers.js 检查 Hardhat 中 ERC20 代币的余额

Check balance of ERC20 token in Hardhat using Ethers.js

我正在使用 Hardhat 的主网分支编写单元测试,为了进行测试,我想检查 owner 账户的 ERC20 代币初始余额,尤其是 DAI。到目前为止,这是我的测试:

const { ethers } = require("hardhat");

describe("Simple Test", function () {
    it("Check balance of DAI", async function () {
        const provider = ethers.provider;
        const [owner] = await ethers.getSigners();

        // Want to get initial DAI balance here so it can be compared later
    });
});

执行此操作的简单方法是什么?

找到我要找的东西。我做的第一件事是将 DAI 合约地址保存在顶部:

const DAI_ADDRESS = "0x6b175474e89094c44da98b954eedeac495271d0f";

然后我不得不使用 ERC20 token ABI,我把它放在与我的测试相同的文件夹中:

const ERC20ABI = require('./ERC20.json');

然后为了获取 owner 账户的 DAI 余额,我刚刚从 DAI 合约中调用 balanceOf()

const DAI = new ethers.Contract(DAI_ADDRESS, ERC20ABI, provider);
DAIBalance = await DAI.balanceOf(owner.address);

这也适用于任何 ERC20 令牌。