跑通的第一个ethers.js程序HelloVitalik.js

简介

ethers.js是一个本地库,可以让你调用接口,用官方写好的轮子来使用一些常用的函数!学习完这个库,你对node.js就有比较深入的了解了,如果你不做项目,就不涉及智能合约的编写,那么写点脚本学习一下ethers.js是很好的。

教程已经有比较完整系统的了:https://www.wtf.academy/ethers-101/HelloVitalik

我只是指出其中需要注意的地方,那就是node.js的语法问题。

报错:node .\HelloVitalik.js (node:19424) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.

加入 "type": "module"package.json 文件中,可以让 Node.js 理解并接受 ES6 模块的语法。具体来说,这是因为:

  1. 模块系统的不同 :Node.js 默认使用 CommonJS 模块系统,这是一个早期的模块标准,主要用在 Node.js 中。CommonJS 使用 requiremodule.exports 来导入和导出模块。然而,ES6(也称为 ECMAScript 2015)引入了一种新的模块系统,使用 importexport 语句。

  2. 启用 ES6 模块 :在 package.json 中加入 "type": "module" 指示 Node.js 将该项目中的 .js 文件作为 ES6 模块来处理。这意味着您可以在项目中使用 importexport 语句,而不是 CommonJS 的 require

  3. 兼容性和未来趋势:ES6 模块是 JavaScript 语言的官方标准,并且被现代浏览器和最新版本的 Node.js 支持。使用 ES6 模块可以提高代码的兼容性和可维护性。

总结来说,通过在 package.json 中设置 "type": "module",您的 Node.js 项目就能够使用现代的 JavaScript 模块语法,从而使代码更加现代化、简洁和符合标准。

具体步骤

1.安装**node.js**,自行查找教程,此处不再赘述。

2.安装**ethers.js**,分为安装最新版本和指定版本两种。

js 复制代码
//我选择安装最新版本
npm install --save ethers
//安装指定版本
npm install ethers@5.6.9

3.修改package.json为启用ES6模块,加上一行"type": "module"

复制代码
{
  "dependencies": {
    "ethers": "^6.10.0"
  },
  "type": "module"
}

4.现在再运行就不会出错了:node .\HelloVitalik.js

js 复制代码
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.formatEther(balance)} ETH`);
}
main()
相关推荐
DICOM医学影像7 小时前
7. go语言从零实现以太坊请求端 - 查询区块链账户余额 - 手写JSONRPC
golang·区块链·以太坊·web3.0·jsonrpc·从零实现以太坊
CryptoPP9 小时前
对接API获取马来西亚历史数据
linux·运维·服务器·金融·区块链
番茄灭世神12 小时前
密码学入门基础
网络安全·区块链·密码学·哈希算法
反向跟单策略12 小时前
期货反向跟单-贵金属牛市中的反向跟单密码
大数据·人工智能·学习·数据分析·区块链
MQLYES12 小时前
05-BTC-实现
区块链
咸鱼时日翻身15 小时前
区块链私有链实习心得
区块链
Light6017 小时前
智链护航,数档永存:基于领码SPARK平台构建下一代AI+区块链档案系统解决方案
人工智能·spark·区块链
DICOM医学影像1 天前
3. go语言从零实现以太坊客户端 - 查询合约中账户余额
golang·区块链·智能合约·solidity·以太坊·web3.0
WZgold1412 天前
黄金再创新高!2026 年金价走势预测
大数据·人工智能·经验分享·区块链
DICOM医学影像2 天前
4. go语言从零实现以太坊客户端 - 区块链转账
golang·区块链·以太坊·web3.0·geth