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.mzph.cn/news/774137.shtml

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

相关文章

2024年第16届大广赛新命题发布-爱华仕箱包

2024年3月27日,2024年第16届大广赛发布了新的命题,爱华仕箱包命题,自2017年起,爱华仕箱包已连续8年担任全国大学生广告艺术大赛命题单位。 爱华仕现已实现百货、超市、电商、礼品、投标、海外市场6大零售网络的全覆盖&#xff0c…

左值引用、右值引用及移动语义

个人主页:Lei宝啊 愿所有美好如期而遇 左值 概念 可以取到地址的值就是左值,并且一般情况下可以修改(const类型左值不可修改)。 左值举例: //左值 int a 0; const int b 1; int* p &a; 右值 概念 不能…

三相四线智能电表直接接入式接线图

大家好,今天我们要聊的是三相四线智能电表的直接接入式接线方式。别担心,我会用简单易懂的语言来解释这个看似复杂的主题。 首先,我们得知道什么是三相四线电表。在我们的生活中,电力供应通常分为单相和三相。三相电,就…

vue 下载图片/视频到浏览器

方法1:直接在当前页面打开图片或者视频 window.location.href url;//借用a标签实现同样效果 const link document.createElement(a) link.href url // 文件地址 link.click(); 方法2:新开一个窗口打开图片或视频 window.open(url); 方法3&#xf…

分页-PageHelper原理以及实时分页-键集分页

一.PageHelper原理 1.使用 PageHelper 是国内非常优秀的一款开源 mybatis 分页插件,它支持常用的主流数据库,例如 Oracle、Mysql、MariaDB、SQLite、Hsqldb 等。 PageHelper 的安装很简单,只需要在 pom.xml 中加入以下依赖即可&#xff1a…

网络类型及数据链路层协议

目录 一、网络的分类 二、数据链路层协议 1、MA网络以太网协议 2、P2P网络 3、HDLC ---高级数据链路控制协议 HDLC地址借用 三、PPP协议 1、PPP协议的优点 2、PPP数据帧封装结构 3、PPP会话的搭建 4、LCP建立——链路建立阶段 4.1协商阶段 4.2认证阶段 4.3 PAP---密…

深入聊聊企业数字化转型这个事儿

01 什么是数字化? 聊数字化,就不得不聊聊信息化、智能化。佛性的说:信息化是数字化的前世,智能化是数字化的来生!我习惯用一个结构化的图形来表示事物之间的关系,信息化、数字化、智能化的关系如下&#…

尤大大正式官宣推出VitePress 1.0

VitePress 在现代Web开发领域,构建快速、响应式的文档网站是开发者经常面临的任务之一。VitePress应运而生,它结合了Vue.js和Vite的强大功能,为开发者提供了一个简单易用的静态站点生成器。Vue.js作为一种流行的前端框架,以其简洁…

网络安全:Kali Linux 进行SQL注入与XSS漏洞利用

目录 一、实验 1.环境 2.Kali Linux 进行SQL注入 3.Kali Linux 进行XSS漏洞利用 二、问题 1.XSS分类 2.如何修改beef-xss的密码 3.beef-xss 服务如何管理 4.运行beef报错 5.beef 命令的颜色有哪些区别 6.owasp-top-10 有哪些变化 一、实验 1.环境 (1&a…

30---SDRAM电路设计

视频链接 SDRAM电路设计01_哔哩哔哩_bilibili SDRAM电路设计 1、SDRAM简介 SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器。 同步是指其时钟频率和CPU前端总线的系统时钟相同,并且内部命令的发送与数据的传输都以…

如何避免SQL注入攻击?

🐓序言 当涉及到数据库操作时,防止SQL注入攻击至关重要。SQL注入是一种常见的网络安全威胁,攻击者通过在用户输入中插入恶意的SQL代码,从而可以执行未经授权的数据库操作。 🐓避免方式 使用参数化查询 使用参数化查询…

【漏洞复现】用友U8 login2.RegisterServlet接口处存在SQL注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

MyBatis3源码深度解析(二十五)级联映射与关联查询(二)级联映射的实现原理

文章目录 前言10.2 MyBatis级联映射的实现原理10.2.1 ResultMap详解10.2.2 ResultMap解析过程10.2.3 级联映射的实现原理10.2.3.1 handleRowValuesForSimpleResultMap()10.2.3.2 handleRowValuesForNestedResultMap() 前言 上一节【MyBatis3源码深度解析(二十四)级联映射与关联…

为什么Solana在区块链生态系统中脱颖而出

当我们在不断发展的区块链技术世界中航行时,认识到平台不仅要跟上创新的步伐,还要突破可能的界限,这一点至关重要。#Solana 已成为领先的竞争者,这就是为什么这个高性能区块链的未来看起来很光明。 🌟 可扩展性和速度&…

单臂路由和三层交换机

目录 一.单臂路由 1.单臂路由的工作原理 2.单臂路由的配置 2.1画出拓扑图 2.2配置PC 2.3配置交换机 2.4配置路由器 2.5测试 二.三层交换机 1.三层交换机的概述 2.三层交换机的配置 2.1画出拓扑图 2.2配置PC 2.3配置二层交换机 2.4配置三层交换机 2.5测试 3.拓展 三.总结 一.…

Trello国内替代工具有哪些?分享5款

盘点5款类似Trello的本地部署项目管理工具:1.PingCode;2.Worktile;3.Teambition;4.redmine;5.TAIga.io。 Trello是一款杰出的协作与工作管理应用,专为追踪团队项目、凸显当前活动任务、分配责任人&#xff…

web全栈架构师第16期教程

教程介绍 互联网时代已进入后半场,行业环境发生了显著变化。互联网人,尤其是技术人员,如何在加速更迭的技术浪潮中持续充电,提升自身价值,是当下必须面对的挑战。课程涉及了现下前端实际开发时所需要的各块内容&#…

编程语言|C语言——C语言基本数据类型

前言 针对不同的数据,采取不同的存储方式和进行不同的处理。随着处理对象的复杂化,数据类型也要变得更丰富。数据类型的丰富程度直接反映了程序设计语言处理数据的能力。 C语言很重要的一个特点是它的数据类型十分丰富。因此,C语言程序数据处…

求解vue3警告

Invalid prop: type check failed for prop “activeType”. Expected TheTypedFn, got Number with value 0. 警告 复现问题 从demo.vue跳转到after-sale/index.vue页面 //demo.vue <div v-for"(obj, index) in list" :key"index" style"margi…

【Altium】ADTOP层器件如何变更到Bottom层及层颜

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 AD22 PCB TOP层器件变更到Bottom层及Bottom颜色的修改 2、 问题场景 在PCB布局评估设计时&#xff0c;考虑到器件布局摆放的合理性&#xff0c;有些器件需要布局放置在Bottom层&#xff0c;另外根据个人的设计风格习…