跑通的第一个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()
相关推荐
S***t7149 小时前
Web3.0在去中心化应用中的交易处理
web3·去中心化·区块链
白鹭凡9 小时前
Web3——区块链基础
web3·区块链
E***q5399 小时前
区块链跨链技术
区块链
9***P33411 小时前
区块链智能合约形式验证
区块链·智能合约
weiwei2284419 小时前
zcash pow equihash算法详解
区块链·哈希算法·zcash
2501_941810831 天前
区块链智能合约开发与多语言链上交互实战指南
区块链
青云交1 天前
Java 大视界 -- 基于 Java 的大数据分布式存储在数字媒体内容存储与版权保护中的应用
java·性能优化·区块链·分布式存储·版权保护·数字媒体·ai 识别
2501_941810832 天前
Web3去中心化应用在跨链资产流转体系中的架构设计与落地实践解析
区块链
东南门吹雪2 天前
PostgreSQL与MySQL的锁与隔离级别
mysql·postgresql·区块链
5***79002 天前
Rust在区块链智能合约中的安全实践
rust·区块链·智能合约