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

Jas*_*ran 7 ethereum erc20 ethers.js hardhat

我正在使用 Hardhat 的主网分支编写单元测试,对于测试,我想检查ownerERC20 代币(特别是 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
    });
});
Run Code Online (Sandbox Code Playgroud)

有什么简单的方法可以做到这一点?

Jas*_*ran 15

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

const DAI_ADDRESS = "0x6b175474e89094c44da98b954eedeac495271d0f";
Run Code Online (Sandbox Code Playgroud)

然后我必须使用ERC20 令牌 ABI,我将其放置在与测试相同的文件夹中:

const ERC20ABI = require('./ERC20.json');
Run Code Online (Sandbox Code Playgroud)

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

const DAI = new ethers.Contract(DAI_ADDRESS, ERC20ABI, provider);
DAIBalance = await DAI.balanceOf(owner.address);
Run Code Online (Sandbox Code Playgroud)

这也适用于任何 ERC20 代币。