ehters.js:provider

ethers.jsV5.4文档

安装ethers

npm install ethers@5.4.0
// 引入
import { ethers } from 'ethers'

Providers

/** Provider类* Provider类是对以太坊网络连接的抽象,为标准以太坊节点功能提供简洁、一致的接口。
*/
const provider = new ethers.providers.Web3Provider(window.ethereum);
console.log(provider);

在这里插入图片描述

getNetwork(),查询provider连接到了哪条链,homestead代表ETH主网

let network = await provider.getNetwork();
console.log('network:',network);

在这里插入图片描述

getBalance(),查询主链ETH余额

let getBalance = await provider.getBalance("myAddress");
console.log('余额:',ethers.utils.formatEther(getBalance));

getGasPrice(),查询gasPrice最准预测
getFeeData(),返回一个更详细的maxFeePerGas/maxPriorityFeePerGas/gasPrice

let gasPrice = await provider.getGasPrice(); // 燃料价格 (单位: wei)
let gasPrice2 = ethers.utils.formatUnits(gasPrice, "gwei"); // 通常来说燃料的价格用 gwei 会更好理解
console.log('gasPrice:',gasPrice2);
let feeData = await provider.getFeeData();
console.log('maxFeePerGas',ethers.utils.formatUnits(feeData.maxFeePerGas, "gwei"));
console.log('maxPriorityFeePerGas',ethers.utils.formatUnits(feeData.maxPriorityFeePerGas, "gwei"));
console.log('gasPrice',ethers.utils.formatUnits(feeData.gasPrice, "gwei"));

在这里插入图片描述

交易查询
查询交易是否成功
transactionHash:拿的之前转账的哈希值过来查询测试,查询该交易是否成功。
getTransaction 和 getTransactionReceipt 返回交易的详细数据,如果交易未知,则返回null。
getTransaction() 可以理解为为该笔交易发送的参数。
getTransactionReceipt() 理解为该笔交易返回的结果,如果res.status == 1 说明交易成功了(通常需要使用轮询查询这笔交易状态)

provider.getTransaction("0x958e0340e49f80e67703245fd82b556491dcbbbf6f059cadf853f577d12d70fb").then(res=>{console.log('getTransaction_res',res);
}).catch(err=>{console.log('getTransaction_err',err);
})provider.getTransactionReceipt("0x958e0340e49f80e67703245fd82b556491dcbbbf6f059cadf853f577d12d70fb").then(res=>{console.log('getTransactionReceipt_res',res);
}).catch(err=>{console.log('getTransactionReceipt_err',err);
})

在这里插入图片描述

监听行为

/** 监听行为* EventEmitter API允许注册  各种事件  发生时的回调函数。* provider.on(eventName,listener)			为每一个参数为eventName的 事件添加监听器。* provider.once(eventName,listener)		为参数为eventName的 事件添加监听器,监听使用过后将会被移除。* provider.emit( eventName , ...args )		通知所有的eventName event监听器,并把参数传递给它们。这通常只在内部使用。* provider.off( eventName [ , listener ] )	移除一个参数为eventName的事件监听器,如果没有提供listener参数,则移除所有关于eventName的监听器。* provider.removeAllListeners( [ eventName ] )移除所有参数为eventName的事件监听器,如果没有提供eventName参数,则移除所有事件* provider.listenerCount( [ eventName ] )	返回所有参数为eventName事件的监听器数量。如果没有提供eventName参数,返回所有监听器的数量。* provider.listeners( eventName )			返回参数为eventName事件监听器的list集合。* * * eventName参数包括以下:* "block"		blockNumber		当一个区块被挖出时触发	 * "error"		error			只要有错误就触发	 * "pending"	pendingTransaction	当一个新交易进入内存池时触发;只有特定的providers提供此事件,从而在运行在自己的节点上获得可靠的数据	 * "willPoll"	pollId			在一个polling loop开始之前触发;(大多数开发者很少使用)	 * "poll"		pollId, 		blockNumber	在每个poll cycle中,`blockNumber`更新之后(如果改变了),以及与在poll loop中任何其他的事件(如果有)之前触发; (大多数开发者很少使用)	 * "didPoll"	pollId			在polling loop中的所有事件被触发后触发;(大多数开发者很少使用)	 * "debug"		provider 		dependent	每个Provider可以使用它来发出有用的调试信息,格式由开发者决定;(大多数开发者很少使用) (very rarely used by most developers)* * 
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572354.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rabbitmq集群问题排查

blowcode-test-redis04、blowcode-test-redis05、blowcode-test-redis06 这3个节点搭建的rabbitmq集群,04是主节点。 某次分别观察3个节点的管理页面,先都只能看到自己的节点是正常的绿色状态,猜测节点都各自为政了。 下图是05节点成功加入0…

【书生·浦语大模型实战营第二期】学习笔记1

1. Introduction 开源llm举例:LLaMA 、Qwen 、Mistral 和Deepseek 大型语言模型的发展包括预训练、监督微调(SFT)和基于人类反馈的强化学习(RLHF)等主要阶段 InternLM2的显著特点 采用分组查询注意力(GQA…

【3D目标检测】Det3d—SE-SSD模型训练(前篇):KITTI数据集训练

SE-SSD模型训练 1 基于Det3d搭建SE-SSD环境2 自定义数据准备2.1 自定义数据集标注2.2 训练数据生成2.3 数据集分割 3 训练KITTI数据集3.1 数据准备3.2 配置修改3.3 模型训练 1 基于Det3d搭建SE-SSD环境 Det3D环境搭建参考:【3D目标检测】环境搭建(OpenP…

任何程序员错过这些宝藏接单平台,都会难过好吗?

财富自由何时才能实现?首先,可以很负责地告诉你:安安心心地当一头牛马肯定是不能!兢兢业业十几年,归来仍是马喽。 说实在的,这两年经济下行,互联网红利又日渐褪去。前者既争又抢,后…

低功耗、低成本 NAS 的可能性

使用现状:多台工作电脑,家里人手一台,还在两个住处 有好几台工作电脑,不同电脑有不同的用途,最大的问题就是各个电脑上文件的同步问题,这里当然就需要局域网里的公共文件夹,在NAS的问题上查了网…

SQLServer CONCAT 函数的用法

CONCAT函数用于将多个字符串值连接在一起。以下是一个简单的示例,演示了如何使用CONCAT函数: -- 创建一个示例表 CREATE TABLE ExampleTable (FirstName NVARCHAR(50),LastName NVARCHAR(50) );-- 插入一些示例数据 INSERT INTO ExampleTable (FirstNam…

搜维尔科技【应急推演】虚拟仿真技术的发展为煤炭矿井的安全生产找到新的出口

煤炭矿井的安全生产一直是我国关注的重大事项,保证煤炭矿井的安全生产,减少人员伤亡等不可逆的损失成为重中之重。虚拟仿真技术的发展为煤炭矿井的安全生产找到了新的出口。依托虚拟仿真技术,对煤炭矿井进行实时的生产监测,对矿井…

c# RichTextbox添加行号

使用另一个RichTextBox放在要添加行号的左边 使用以下代码 //uiRichTextBox1为右侧文本框,uiRichTextBox2为左侧文本框int lineIndex 0;private void uiRichTextBox1_TextChanged(object sender, EventArgs e){if (lineIndex > uiRichTextBox1.Lines.Length){L…

如何清理释放群晖客户端缓存?

任正菲说:企业最大的浪费,是经验的浪费! 而一个一个的经验,又都来自企业的每一个工作者。 因此当我们在工作过程中遇到一些问题时,我们就应该下意识的把解决问题的经验沉淀下来,从而可以与大家进行分享。…

c语言知识点整理------基础c语言框架,数据类型,变量常量,注释

前言 本文不涉及讲解原理,用简洁明了的风格,去整理方便查阅的知识点。 (适合有编程基础,或者需要作为笔记的人群使用) 程序基本框架 结果会输出hello world。 程序的执行 c语言属于编译型语言。 代码执行分为五个…

OLED i2c屏幕花屏雪花屏的问题解决

当在香橙派上面执行官方的文件时,i2c屏幕会出现雪花 解决思路:找到清理函数进行清除 把这个函数运用到实际开发中 加入清屏函数前: 加入清屏函数后:

【搞不明白】redis和mysql、mybatisplus有啥关系

一个解决三天的bug,到现在也没有搞明白,如题,到底redis和mysql、mybatisplus能有啥关系。三个不相关的嘛 记录下问题: (框架用的Jeecgboot 3.6.0) – 学习使用 看下面的一段代码,是一个分页查询:注意引用的…