Ethersacn的交易数据是什么样的(2)
分析 Raw Transanction
RLP(Recursive Length Prefix)是一种以太坊中用于序列化数据的编码方式。它被用于将各种数据结构转换为二进制格式,以便在以太坊中传输和存储。RLP 是一种递归的编码方式,允许对复杂的数据结构进行编码。所以分析交易数据就是对数据进行RLP解码
选取一个交易

获取的数据如下:
0x02f87283aa36a707843b9aca00847735940083030d40946e006ce71555b03de544f984a0ac28a72b528d52843b9aca0080c001a098abbcc6169baaa6491235d0cee189f6ca97b2f70ed5ec05b8c06780112d507da003320b01aadd5ab06e22fa52e03a70e53020e978e089a17368203ac0acbce3e5
代码解析
import rlp
from web3 import Web3## chainId
## nonce
## value
## maxFeePerGas
## gasLimit
## to
## maxPriorityFeePerGas
## v
## r
## sdata_list = []def decode(i):for j in i:if j is list:decode(j)else:if len(j) == 0:data_list.append('')else:data_list.append(j.hex())if __name__ == "__main__":raw = 'f87283aa36a707843b9aca00847735940083030d40946e006ce71555b03de544f984a0ac28a72b528d52843b9aca0080c001a098abbcc6169baaa6491235d0cee189f6ca97b2f70ed5ec05b8c06780112d507da003320b01aadd5ab06e22fa52e03a70e53020e978e089a17368203ac0acbce3e5' # 这里开头没有0x02,因为0x02是一个交易版本标识,并不参与RLP编码decode(rlp.decode(Web3.to_bytes(hexstr=raw)))print("chainId:".ljust(30), data_list[0])print("nonce:".ljust(30), data_list[1])print("value:".ljust(30), data_list[2])print("maxFeePerGas:".ljust(30), data_list[3])print("gasLimit:".ljust(30), data_list[4])print("to:".ljust(30), data_list[5])print("maxPriorityFeePerGas:".ljust(30), data_list[6])print("method1:", data_list[7])print("method2:", data_list[8])print("v:".ljust(30), data_list[9])print("r:".ljust(30), data_list[10])print("s:".ljust(30), data_list[11])
源码地址: Gitee
输出结果:
chainId: aa36a7
nonce: 07
value: 3b9aca00
maxFeePerGas: 77359400
gasLimit: 030d40
to: 6e006ce71555b03de544f984a0ac28a72b528d52
maxPriorityFeePerGas: 3b9aca00
method1:
method2:
v: 01
r: 98abbcc6169baaa6491235d0cee189f6ca97b2f70ed5ec05b8c06780112d507d
s: 03320b01aadd5ab06e22fa52e03a70e53020e978e089a17368203ac0acbce3e5
输出结果分析
| Item | value | Desc | |
|---|---|---|---|
| 👓 | ChainId | aa26a7 | 转成10进制的结果是:11151015,这个是Sepolia测试网的ChainId |
| 🦺 | nonce | 07 | 交易数量 |
| 👔 | value | 3b9aca00 | 转账金额,10进制是:1000000000(0.000000001 ETH) |
| 👕 | maxFeePerGas | 77359400 | 表示你愿意支付的每单位燃气的最高费率。以 Gwei 为单位,它决定了交易中每一单位燃气的费用 |
| 👜 | gasLimit | 030d40 | 表示你愿意为这笔交易分配的最大燃气量。燃气是以太坊中的计算资源单位,用于执行智能合约或发送以太 |
| 👟 | to | 6e006ce71555b03de544f984a0ac28a72b528d52 | 转入地址 |
| 🩰 | maxPriorityFeePerGas | 3b9aca00 | 用户愿意支付的额外费用,用于提高交易的优先级 |
| 💎 | v,r,s | 签名数据 |
关注我,一起走进Web3的世界
相关文章:
Ethersacn的交易数据是什么样的(2)
分析 Raw Transanction RLP(Recursive Length Prefix)是一种以太坊中用于序列化数据的编码方式。它被用于将各种数据结构转换为二进制格式,以便在以太坊中传输和存储。RLP 是一种递归的编码方式,允许对复杂的数据结构进行编码。所…...
学习Android的第二十二天
目录 Android ContextMenu 上下文菜单 ContextMenu 范例 参考文档 Android SubMenu 子菜单 范例 参考文档 Android PopupMenu 弹出菜单 范例 参考文档 Android ContextMenu 上下文菜单 在Android开发中,ContextMenu(上下文菜单)为…...
JavaScript——流程控制(程序结构)
JavaScript——流程控制(程序结构) 流程控制就是来控制我们的代码按照什么结构顺序来执行。更倾向于一种思想结构。 流程控制分为三大结构:顺序结构、分支结构、循环结构 1、顺序结构 代码从上往下依次执行,从A到B执行&#x…...
如何用ChatGPT+GEE+ENVI+Python进行高光谱,多光谱成像遥感数据处理?
原文链接:如何用ChatGPTGEEENVIPython进行高光谱,多光谱成像遥感数据处理? 第一:遥感科学 从摄影侦察到卫星图像 遥感的基本原理 遥感的典型应用 第二:ChatGPT ChatGPT可以做什么? ChatGPT演示使用 …...
AIGC工具( 7个 )
人工智能技术有好的一方面,又不好的地方,要区别对待,吸取精华,去其糟粕。目前市场上有很多AI大模型,可以支持聊天,写文稿,创作等,部分可以生成图片,以下是7个很不错的免费…...
学习Java的第一天
一、Java简介 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。 后来 Sun 公司被 Oracle (甲骨文)公司收购,Jav…...
【设计模式】工厂模式与抽象工厂模式
工厂方法 以图书馆管理系统为例,需要API提供查询不同专业分类的书目列表,一般实现, class LibraryManager { public:LibraryManager() {}//按专业分类查询BookList Query(Type type) {if(type TA) {return ...;} else if (type TB) {} el…...
使用plasmo框架开发浏览器插件,注入contents脚本和给页面添加UI组件
plasmo:GitHub - PlasmoHQ/plasmo: 🧩 The Browser Extension Framework plasmo是一个开发浏览器插件的框架,支持使用react和vue等技术,而且不用手动管理manifest.json文件,框架会根据你在框架中的使用,自…...
python并发 惰性处理大型数据集
惰性计算是一种编程策略,它使得程序在何时执行计算的决定推迟到需要结果时才进行。这种策略的好处在于,它允许程序处理大规模数据或者需要大量计算的任务时节省内存和计算资源。 举例来说,当我们调用 Python 中的 range() 函数时,…...
Docker将本地的镜像上传到私有仓库
使用register镜像创建私有仓库 [rootopenEuler-node1 ~]# docker run --restartalways -d -p 5000:5000 -v /opt/data/regostry:/var/lib/registry registry:2[rootopenEuler-node1 ~]# docker images REPOSITORY TAG IMAGE…...
[LeetBook]【学习日记】有效数字——状态机
题目 有效数字 有效数字(按顺序)可以分成以下几个部分: 若干空格一个小数或者整数(可选)一个’e’或’E’,后面跟着一个整数若干空格 小数(按顺序)可以分成以下几个部分:…...
学习目标2024
技术: 什么是 Nacos apifox 业务: 域统一...
引入js,刷新清除缓存
一、这种会让所有的css/js资源重新加载 <meta http-equiv"pragram" content"no-cache"> <meta http-equiv"cache-control" content"no-cache, no-store, must-revalidate">二、加时间戳 每次引入,后面版本号都…...
【VSCODE修改代码行间距】解决方案
在我们编码的过程中,由于显示字体和显示器的不同,会需要调整行间距,在vscode默认的选项中没有看到设定行间距的选项,不过,可以手动修改配置档达到目的。 1.打开设置 2.打开配置档,手动进行设定 3.在选项中添…...
lvs+keepalive
虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP) VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。 协议版本: VRRPv2(常用&…...
用spark读取及存储数据
文章目录 读取数据存储数据 读取数据 data spark.sql("""select * from temp.tables""") data.show(3)# 转成pandas方式 # df data.toPandas() # df.head(3)存储数据 table "temp.new_tables" data.write.format("hive"…...
蓝牙 | 软件: Qualcomm BT Audio 问题分析(4)----检查MIPS使用情况
大家好! 我是“声波电波还看今朝”成员的一位FAE Devin.wen,欢迎大家关注我们的账号。 今天给大家大概讲解“如何排查Qualcomm BT Audio”的疑难杂症(四):MIPS检查。 如果大家还没有注册我们大大通的账号,…...
【实战】K8S集群部署nacos并接入Springcloud项目容器化运维
文章目录 前言Nacos集群搭建Spring cloud配置nacos将Springcloud项目部署在k8s写在最后 前言 相信很多同学都开发过以微服务为架构的系统,开发微服务必不可少要使用注册中心,比如nacos\consul等等。当然在自动化运维流行的今天,我们也会将注…...
prometheus监控zookeeper方案
这里要求zookeeper版本必须达到3.6或以上,用的是官方自带的监控信息。 官方下载地址 https://zookeeper.apache.org/releases.html#download 然后在zookeeper的配置文件,比如zoo.cfg最后面加上这一段 metricsProvider.classNameorg.apache.zookeeper.…...
智能照明控制系统的优点有哪些
智能照明控制系统在会展中心中应用的功能和优点: 1实现照明控制智能化 在使用智能照明控制系统之后,能够将系统工作在全自动的状态下,系统能够预先设置好若干个基本切换状态,并且还能够根据预先设定的时间自动的在展馆各种工作状…...
解决Arm Compiler许可证平台不匹配错误(FLEXnet -89)
1. 问题现象与背景解析 最近在调试基于Arm架构的嵌入式系统时,遇到了一个棘手的许可证错误。当尝试使用Arm Compiler 6进行代码编译时,突然弹出了以下错误信息: Error: C3397E: Cannot obtain license for Arm_Compiler (feature compiler)…...
STM32F108C8T6小白入门特训营__1.4GPIO.C 代码分析
目录 1.只需要搞明白 cubemx 跟 代码对应关系就可以了 2.GPIO.C 代码加上注释 3.注意引脚的宏定义 1.只需要搞明白 cubemx 跟 代码对应关系就可以了 2.GPIO.C 代码加上注释 读懂注释部分代码即可 /* USER CODE BEGIN Header */ /*****************************************…...
避坑指南:Tina Linux下MIPI DSI与LVDS屏调试的那些‘坑’(以V853/D1s为例)
Tina Linux下MIPI DSI与LVDS屏调试实战避坑指南(V853/D1s开发板为例) 1. 高速差分接口调试的"死亡陷阱" 当V853开发板首次连接那块7英寸MIPI屏时,我遭遇了职业生涯最诡异的显示故障——屏幕上半部正常显示,下半部却呈现…...
从码农到技术总监:10年程序员的职业进化史
一、初入职场:在代码与bug中蹒跚学步2016年的夏天,我背着双肩包,攥着毕业证,走进了一家中型软件公司的大门,成为了一名Java开发程序员,也就是别人口中的“码农”。那时候,我的生活被代码和bug填…...
防火门禁用行为管控及消防实用管理细则
第一章 总则第一条 制定目的为严格规范防火门日常使用、巡查、维护、管控工作,杜绝违规封堵、常开、损坏、挪用等禁用行为,落实消防安全主体责任,保障疏散通道、安全出口畅通,防范火灾蔓延扩散,依据《建筑设计防火规范…...
iOS App Clips实战:从开发限制到场景化触发全解析
1. App Clips到底是什么?为什么开发者需要关注它? 想象一下这样的场景:你走进一家咖啡店想用手机点单,但发现必须下载一个200MB的App才能完成操作。这时候如果店员说"扫这个二维码就能直接点单",10秒后你已经…...
RAG知识库生命周期①【第七篇】:文档新增修改删除,生产级向量同步更新方案
生产级 RAG 避坑实战合集【第七篇】文章简介:前面六篇我们搞定了文档解析、去重、文本清洗、Chunk切块、结构化元数据。绝大多数项目卡在这一关:文档内容变了怎么办?制度修改、数据订正、条款作废、资料更新。Demo可以删库重灌,生…...
UE5新手必看:给你的自定义Pawn加上碰撞,别再让它“穿墙”了!
UE5碰撞系统实战:从零构建防穿墙Pawn的完整指南 当你在UE5中第一次创建自定义Pawn时,最令人沮丧的莫过于看着自己精心设计的角色像幽灵一样穿过墙壁和障碍物。这种"穿模"现象不仅破坏游戏体验,更会导致后续游戏逻辑的全面崩溃。本文…...
杰理之叠加正弦波(SIN)提示音音量大小不一样【篇】
SDK音量调节默认自带淡入淡出。...
启扬RK3568核心板如何赋能智能炒菜机:从嵌入式主控到AI烹饪
1. 项目概述:当嵌入式核心板遇上智能炒菜机在餐饮后厨这个看似传统,实则对效率、成本和一致性要求极高的领域,痛点一直非常明确。人工炒菜,老师傅的手艺固然可贵,但出餐速度受限于体力,菜品口味因厨师状态、…...
