Balances

Hardhat,ether.js - 在本地獲取簽名者的餘額顯示沒有乙太

  • July 11, 2021

我正在嘗試在本地測試中獲取簽名者的餘額。我沒有更改安全帽配置中帳戶的預設值 eth。然而,當我查詢餘額時,我發現賬戶沒有任何餘額。

這是我的程式碼:

       [owner, alice, bob, chuck, ...others] = await ethers.getSigners();
       
       provider = ethers.getDefaultProvider();

       balance = await provider.getBalance(owner.address);
       console.log(balance.toString()); // 0

我錯過了什麼?

問題是getDefaultProvider連接到主網返回的提供程序,而我試圖在本地進行測試。我最終通過呼叫getNetwork提供商的電話得出了這個結論,看到正在使用的網路實際上是主網路。

為了解決這個問題,我查閱了 hardhat 文件,hardhat 在 ethers 對像中提供了一個自定義提供程序,可以使用ethers.provider.

所以修復正在使用:

   provider = ethers.provider;

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