Wallets

在 HardHat 中預存錢包

  • June 2, 2021

我知道 Hardhat 會自動為每個預設錢包預存 ETH,但我對此有一些疑問。

  1. 當我更改網路時(從 Binance 說),這種預充是如何工作的,或者更確切地說,當我進行更改時,hardhat 用什麼貨幣預充我的錢包?
  2. 有沒有辦法用我選擇的貨幣(比如 BUSD)輕鬆地為錢包預充值?

謝謝!

  1. 它的工作原理完全相同。程式碼可能仍顯示為 ETH,但它指的是您正在與之互動的網路的相同基準貨幣。在 BSC 的情況下,這就是 BNB。
  2. 問題有點模糊。“貨幣”是什麼意思?這可能意味著加密貨幣領域的許多事情。假設您指的是 ERC-20 代幣,我將繼續我的回答,其等價物是 BSC 上的 BEP-20。

beforeEach你可以通過在最頂層的測試案例中編寫一個鉤子來為你的錢包預存一定數量的 BEP-20 代幣:

import fp from "evm-fp";
import { ethers } from "hardhat";
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/dist/src/signer-with-address";

// ...

describe("Tests", function() {
   beforeEach(async function() {
       const signers: SignerWithAddress[] = await ethers.getSigners();
       await busd.mint(signers[0].address, fp("100"));
       await busd.mint(signers[1].address, fp("100"));
       await busd.mint(signers[2].address, fp("100"));
       // ...
   }

   // Your tests continued ...
}

請注意,您還需要具有鑄幣功能的 ERC-20/BEP-20 合約。你可以使用我的GodModeErc20.sol

除了在執行測試之前執行此操作,您可能還想編寫一個Hardhat 任務

引用自:https://ethereum.stackexchange.com/questions/100004