网站开发工程师岗位说明书,怎么在wordpress添加幻灯片,互联网站产品开发的流程,黑龙省建设厅网站首页ethers官方文档#xff1a;Documentation 
1、ethers简介#xff1a; 
ethers.js是一个完整而紧凑的开源库#xff0c;用于与以太坊区块链及其生态系统进行交互。如果你要写Dapp的前端#xff0c;你就需要用到ethers.js。 
与更早出现的web3.js相比#xff0c;它有以下优点…ethers官方文档Documentation 
1、ethers简介 
ethers.js是一个完整而紧凑的开源库用于与以太坊区块链及其生态系统进行交互。如果你要写Dapp的前端你就需要用到ethers.js。 
与更早出现的web3.js相比它有以下优点 
代码更加紧凑ethers.js大小为116.5 kB而web3.js为590.6 kB。更加安全Web3.js认为用户会在本地部署以太坊节点私钥和网络连接状态由这个节点管理实际并不是这样ethers.js中Provider提供器类管理网络连接状态Wallet钱包类管理密钥安全且灵活。原生支持ENS。 2、开发工具 
我选择使用本地vscode进行开发。 
3、安装和使用ethers 
需要安装Node.js然后利用包管理工具npm安装ethers库 
npm install --save ethers
//我选择安装指定版本
npm install ethers5.6.9 示例代码 
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() 
逐行分析这个程序 
1. 导入ethers 
import { ethers } from ethers; 
2. 连接以太坊 在ethers中Provider类是一个为以太坊网络连接提供抽象的类它提供对区块链及其状态的只读访问。我们声明一个provider用于连接以太坊网络。ethers内置了一些公用rpc方便用户连接以太坊 
const provider  ethers.getDefaultProvider();注意:ethers内置的rpc访问速度有限制仅测试用生产环境还是要申请个人rpc。 
3. 声明async函数 
由于和区块链交互不是实时的我们需要用到js的async/await语法糖。每次和链交互的调用需要用到await再把这些这些用async函数包裹起来最后再调用这个函数。 
const main  async ()  {//...
}
main() 4. 获取v神地址的ETH余额 
我们可以利用Provider类的getBalance()函数来查询某个地址的ETH余额。由于ethers原生支持ENS域名我们不需要知道具体地址用ENS域名vitalik.eth就可以查询到以太坊创始人豚林-vitalik的余额。 
const balance  await provider.getBalance(vitalik.eth); 5. 转换单位后在console中输出 
我们从链上获取的以太坊余额以wei为单位而1 ETH  10^18 wei。我们打印在console之前需要进行单位转换。ethers提供了功能函数formatEther我们可以利用它将wei转换为ETH。 console.log(ETH Balance of vitalik: ${ethers.utils.formatEther(balance)} ETH); 6、在vscode控制台输出 
node 01_HelloVitalik/HelloVitalik.js 
这样就能在控制台中看到v神的ETH余额了1951 ETH。 
踩坑记录 
运行后报错 
Error: Cannot find module D:\voting\ethers-learn\ethers-learn\hello.js      at Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)     at Module._load (node:internal/modules/cjs/loader:885:27)at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)at node:internal/main/run_main_module:23:47 {code: MODULE_NOT_FOUND,requireStack: []
}Node.js v18.13.0 
把import { ethers } from ethers替换为 
const ethers  require(ethers);