使用 Ethersjs 获取 ETH 余额

sol*_*guy 4 reactjs ethereum ethers.js

我正在尝试让我的钱包地址的余额在我的前端呈现。这是我到目前为止所拥有的。


const [balance, setBalance] = useState("");

const handleWalletBalance = async () => {
      const { ethereum } = window;
      
      if(ethereum) {
        const balance = await ethereum.request({method: 'eth_getBalance'})
        const provider = new ethers.providers.Web3Provider(ethereum)
        await provider.getBalance(balance)
        setBalance(balance)
        console.log(balance)
     }
  }

Run Code Online (Sandbox Code Playgroud)

我收到的错误是MetaMask - RPC Error: missing value for required argument 0 .

我正在使用一种查询帐户的方法。我缺少什么?

jos*_*baq 8

您可以使用:

const getBalance = async (address) => {
    const provider = new ethers.providers.Web3Provider(window.ethereum);
    const balance = await provider.getBalance(address);
    const balanceInEth = ethers.utils.formatEther(balance);
    console.log(balanceInEth);
}
Run Code Online (Sandbox Code Playgroud)

您设置提供商,然后通过提供商请求余额(帐户必须登录),最后将 BigNumber 的结果格式化为 Eth。