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)
 * 
 * 
*/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【QT入门】 Qt代码创建布局之水平布局、竖直布局详解

往期回顾: 【QT入门】 Qt实现自定义信号-CSDN博客 【QT入门】 Qt自定义信号后跨线程发送信号-CSDN博客 【QT入门】 Qt内存管理机制详解-CSDN博客 【QT入门】 Qt代码创建布局之水平布局、竖直布局详解 先看两个问题: 1、ui设计器设计界面很方便&#xf…

Soft Robotics:两栖环境下螃蟹仿生机器人的行走控制

传统水陆两栖机器人依靠轮胎或履带与表面的接触及摩擦产生推进力,这种对于表面接触的依赖性限制了现有水陆两栖机器人在低重力环境下(如水中)的机动性。利用生物自身的推进机制,人为激发生物运动行为,由活体生物与微机…

第4章:掌握标准提示,输出更精准

标准提示 标准提示,是引导ChatGPT输出的一个简单方法,它提供了一个具体的任务让模型完成。 如果你要生成一篇新闻摘要。你只要发送指示词:“汇总这篇新闻”。 提示公式:生成[任务] 生成新闻文章的摘要: 任务&#x…

算法打卡day29|贪心算法篇03|Leetcode 1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

算法题 Leetcode 1005.K次取反后最大化的数组和 题目链接:1005.K次取反后最大化的数组和 大佬视频讲解:K次取反后最大化的数组和视频讲解 个人思路 思路清晰,因为是取反当然是取越小的负数越好,那么先按绝对值排序。如果是负数就取反&#…

python和c语言的区别是什么

Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言。本萌新也刚开始接触Python,发现Python与其他语言确实有…

完全二叉树的层序遍历[天梯赛]

文章目录 题目描述思路 题目描述 输入样例 8 91 71 2 34 10 15 55 18 输出样例 18 34 55 71 2 10 15 91思路 完全二叉树最后一层可以不满,但上面的每一层的节点数都是满的 后序遍历的顺序为"左右根",我们可以用数组模拟完全二叉树,…

Docker进阶:Docker Swarm —弹性伸缩调整服务的副本数量

Docker进阶:Docker Swarm —弹性伸缩调整服务的副本数量 1、 创建一个Nginx服务(Manager节点)2、查看服务状态(Manager节点)3、测试访问(Worker节点)4、查看服务日志(Manager节点&am…

攻防世界逆向刷题

阅读须知: 探索者安全团队技术文章仅供参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作,由于传播、利用本公众号所提供的技术和信息而造成的任何直接或者间接的后果及损失,均由使用者 本人负责,作者不为此承担任何责任,如…

STM32学习笔记(7_2)- ADC模数转换器代码

无人问津也好,技不如人也罢,都应静下心来,去做该做的事。 最近在学STM32,所以也开贴记录一下主要内容,省的过目即忘。视频教程为江科大(改名江协科技),网站jiangxiekeji.com 本期开…

PHP全自动采集在线高清壁纸网站源码

源码简介 集合360壁纸,百度壁纸,必应壁纸,简单方便。非常高清,支持全屏支持2K. 每天自动采集,自动更新,非常不错。 搭建环境 php5.6 Nginx 安装教程 上传源码压缩包到网站目录并解压即可 首页截图 源码下载 P…

深度学习基础入门:从数学到实现

I. 引言 A. 深度学习的背景 深度学习是机器学习的一个重要分支,是一种基于神经网络的算法,被广泛应用于计算机视觉、自然语言处理、语音识别等领域。与传统机器学习算法相比,深度学习具有更高的容错性、复杂性和精度,需要庞大的…

【Redis】Redis 介绍Redis 为什么这么快?Redis数据结构Redis 和Memcache区别 ?为何Redis单线程效率也高?

目录 Redis 介绍 Redis 为什么这么快? Redis数据结构 Redis 和Memcache区别 ? 为何Redis单线程效率也高? Redis 介绍 Redis 是一个开源(BSD 许可)、基于内存、支持多种数据结构的存储系统,可以作为数据…

大白话扩散模型(无公式版)

背景 传统的图像生成模型有GAN,VAE等,但是存在模式坍缩,即生成图片缺乏多样性,这是因为模型本身结构导致的。而扩散模型拥有训练稳定,保持图像多样性等特点,逐渐成为现在AIGC领域的主流。 扩散模型 正如…

python第三次作业

1、求一个十进制的数值的二进制的0、1的个数 def count_0_1_in_binary(decimal_num):binary_str bin(decimal_num)[2:]count_0 binary_str.count(0)count_1 binary_str.count(1)return count_0, count_1decimal_number int(input("十进制数:")) zero…

linux 外部GPIO Watchdog驱动适配

前言 文章描述, 利用外部gpio看门狗芯片驱动芯片的复位功能。 芯片:RK3568 平台: Linux ubuntu.lan 4.19.232 #27 SMP Sat Sep 23 13:43:49 CST 2023 aarch64 aarch64 aarch64 GNU/Linux 硬件接线图示 看门狗芯片采用GPIO喂狗,W…

PTA L2-037 包装机

一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品&#x…

unity 横版过关单向通行实现(PlatformEffector2D)

目录 前言一、什么是 PlatformEffector2D?二、使用步骤1.创建模型2.创建jump脚本3.PlatformEffector2D组件 三、效果总结 前言 在 2D 游戏中,处理角色与平台之间的交互是一个常见但复杂的任务。为了简化这一过程,Unity 提供了 PlatformEffec…

五分钟,零基础也能入门 Python 图像文字识别

一. 前言 最近在研究 Python 的一些功能 , 也尝试了一些有趣实现, 这一篇就从实践的角度来研究一下 Python 如何实现图片识别。 众所周知 , Python 的库真的老多了,其中在图像识别上比较突出的就是 OpenCV. 那么基于这个库我们…

有效三角形的个数【双指针】

1.优化版暴力求解 如果能构成三⻆形,需要满⾜任意两边之和要⼤于第三边。实际上只需让较⼩的两条边之和⼤于第三边即可。将原数组排序,从⼩到⼤枚举三元组,这样三层 for 循环枚举出的三元组只需判断较⼩的两条边之和是否⼤于第三边。 class…

新一代酒店智能客控方案亮相上海酒店展:力合微PLC技术推动酒店智能化升级

3月26日,2024上海国际酒店及商业空间博览会(以下简称:上海酒店展)于上海新国际博览中心开幕。作为行业领先的物联网通信芯片企业,22年专注于PLC(电线通信)技术及芯片,(股…