当前位置: 首页 > news >正文

Ethersacn的交易数据是什么样的(2)

分析 Raw Transanction

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

选取一个交易

get origin data

获取的数据如下:

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

输出结果分析

ItemvalueDesc
👓ChainIdaa26a7转成10进制的结果是:11151015,这个是Sepolia测试网的ChainId
🦺nonce07交易数量
👔value3b9aca00转账金额,10进制是:1000000000(0.000000001 ETH)
👕maxFeePerGas77359400表示你愿意支付的每单位燃气的最高费率。以 Gwei 为单位,它决定了交易中每一单位燃气的费用
👜gasLimit030d40表示你愿意为这笔交易分配的最大燃气量。燃气是以太坊中的计算资源单位,用于执行智能合约或发送以太
👟to6e006ce71555b03de544f984a0ac28a72b528d52转入地址
🩰maxPriorityFeePerGas3b9aca00用户愿意支付的额外费用,用于提高交易的优先级
💎v,r,s签名数据

关注我,一起走进Web3的世界

http://www.lryc.cn/news/312863.html

相关文章:

  • 学习Android的第二十二天
  • JavaScript——流程控制(程序结构)
  • 如何用ChatGPT+GEE+ENVI+Python进行高光谱,多光谱成像遥感数据处理?
  • AIGC工具( 7个 )
  • 学习Java的第一天
  • 【设计模式】工厂模式与抽象工厂模式
  • 使用plasmo框架开发浏览器插件,注入contents脚本和给页面添加UI组件
  • python并发 惰性处理大型数据集
  • Docker将本地的镜像上传到私有仓库
  • [LeetBook]【学习日记】有效数字——状态机
  • 学习目标2024
  • 引入js,刷新清除缓存
  • 【VSCODE修改代码行间距】解决方案
  • lvs+keepalive
  • 用spark读取及存储数据
  • 蓝牙 | 软件: Qualcomm BT Audio 问题分析(4)----检查MIPS使用情况
  • 【实战】K8S集群部署nacos并接入Springcloud项目容器化运维
  • prometheus监控zookeeper方案
  • 智能照明控制系统的优点有哪些
  • Cent OS 安装 vmware tools
  • 写一个关于RN的分秒毫秒组件(组件状态由同一个父组件控制)
  • javascript中字符串处理,常用的方法汇总
  • STM32CubeMX学习笔记14 ---SPI总线
  • Gson(List<Object>转String 、String转List<Object>)
  • uniapp路由跳转的方式
  • 使用Python模拟绘制自由落体运动过程中的抛物线
  • 批量爬取网站图片脚本
  • scrapy 爬虫:多线程爬取去微博热搜排行榜数据信息,进入详情页面拿取第一条微博信息,保存到本地text文件、保存到excel
  • 网络、UDP编程
  • VSCode安装与使用