问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用ethers.js获取以太坊余额:开发指南与常见问题解决

创作时间:
作者:
@小白创作中心

使用ethers.js获取以太坊余额:开发指南与常见问题解决

引用
CSDN
1.
https://blog.csdn.net/qq_39088514/article/details/140834846

本文将介绍如何使用ethers.js库获取Vitalik Buterin的以太坊余额,并分享在开发过程中遇到的一些常见问题和解决方法。

开发环境搭建

  1. 打开VSCode,创建一个新的文件夹,或者在本地创建好文件夹后选择打开。

  1. 在VSCode的TERMINAL中输入以下命令来安装ethers.js库:
npm install ethers --save

注意: 最新版的ethers.js库与文档中的方法可能不兼容,会导致运行失败。如果遇到ethers.formatEther is not a function错误,需要将代码改为:

console.log(`ETH Balance of vitalik: ${ethers.utils.formatEther(balance)} ETH`);

如果希望使用与文档一致的版本,可以安装5.6.9版本:

npm install ethers@5.6.9

由于是新建的目录,需要在package.json文件中添加"type": "module"字段。

代码实现

在项目目录中新建一个名为hello.js的JavaScript文件,输入以下代码:

import { ethers } from "ethers";
const provider = ethers.getDefaultProvider();
const main = async () => {
    const balance = await provider.getBalance(`vitalik.eth`);
    console.log(`ETH Balance of vitalik: ${ethers.utils.formatEther(balance)} ETH`);
}
main();

运行与调试

在TERMINAL中输入node hello.js运行代码。可能会遇到以下错误:

Error: ENS name not configured (operation="resolveName(\"vitalik.eth\")", code=UNSUPPORTED_OPERATION, version=providers/5.7.1)

这是因为默认的Provider不支持ENS(以太坊域名服务)解析。解决方法是在Alchemy或Infura中注册并获取API key,然后使用JsonRpcProvider。以下是使用Alchemy的示例代码:

import { ethers } from "ethers";
const provider = ethers.getDefaultProvider();
const main = async () => {
    const provider = new ethers.providers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/你的key");
    const balance = await provider.getBalance(`vitalik.eth`);
    console.log(`ETH Balance of vitalik: ${ethers.utils.formatEther(balance)} ETH`);
}
main();

运行成功后,将输出Vitalik Buterin的以太坊余额:

ETH Balance of vitalik: 356.103908103441132271 ETH

总结

通过本文的介绍,读者可以了解如何使用ethers.js库获取以太坊地址的余额,并掌握在开发过程中遇到的一些常见问题及其解决方案。这对于区块链开发初学者来说是一个很好的实践案例。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号