跑通的第一个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 使用 require 和 module.exports 来导入和导出模块。然而,ES6(也称为 ECMAScript 2015)引入了一种新的模块系统,使用 import 和 export 语句。

  2. 启用 ES6 模块 :在 package.json 中加入 "type": "module" 指示 Node.js 将该项目中的 .js 文件作为 ES6 模块来处理。这意味着您可以在项目中使用 import 和 export 语句,而不是 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()
相关推荐
Bczheng12 天前
四十六.创建一笔交易(9)--第三个区块 添加tx到钱包
区块链
2301_776045233 天前
理解Layer 1区块链协议
区块链
幻智星科技4 天前
零知识证明三大核心特性解析
区块链·零知识证明
2301_776045234 天前
山寨币与比特币之间的关系
大数据·人工智能·区块链
JF_Ma5 天前
1000个量化策略第29例:经典红利低波策略
区块链
AlanAshley5 天前
实时湖仓与区块链:数据架构的信任革命
架构·区块链
代码方舟6 天前
零信任架构实战:基于天远企业法人四要素高级版构建自动化电子印章授权与签约准入网关
人工智能·架构·自动化·区块链
AIFQuant6 天前
Python期货行情API接入:股指、黄金、原油多品种数据管道实战
开发语言·python·金融·区块链·量化开发
北冥you鱼6 天前
区块链供应链金融如何降低中小企业融资成本
网络·金融·区块链
2601_962885728 天前
2026 Python 股票数据接口选型指南(横评 + 决策树)
开发语言·python·区块链