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
## s

data_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的世界

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

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

相关文章

word如何实现不同章节显示不同页眉

一、问题描述 写论文时遇到如下情形,第二章页眉跟第一章一样,如下图 二、解决方法 在第二章前一页空白处,选择依次布局→分隔符→下一页,如下图 双击第二章页眉,进入页眉编辑状态,点击链接到前一节按钮&a…

SOC设计:关于时钟门控的细节

有如下几个信号 输入信号 1、同步后的rstnsync_clk 2、时钟:clk 3、test_mode 4、软件控制信号:clk_sub_en 输出信号 1、clk_sub 功能:软件配置的使能信号clk_sub_en经过时钟clk 2拍同步处理后产生clk 域下的enable信号,然…

2024年腾讯云服务器99元一年,最新价格整理

腾讯云服务器99元一年是真的吗?真的,只是又降价了,现在只要61元一年,配置为2核2G3M轻量应用服务器,40GB SSD盘,腾讯云百科txybk.com分享腾讯云官方活动购买链接 https://curl.qcloud.com/oRMoSucP 活动打开…

Python编程实验六:面向对象应用

目录 一、实验目的与要求 二、实验内容 三、主要程序清单和程序运行结果 第1题 第2题 四、实验结果分析与体会 一、实验目的与要求 (1)通过本次实验,学生应掌握类的定义与对象的创建、类的继承与方法的覆盖; (2…

鸿道Intewell-Win_V2.1.3_kyland软件版本发布说明

一、软件发布版本信息 版本号:V2.1.3_kyland 版本发布类型:trail试用版本 二、版本特点 适配 E211-1370(J6412,8GB,256GB SSD)设备 三、运行环境推荐 Intewell developer可以运行在windows7及windows10 64位 四、支…

程序员书单推荐:从入门到精通的必读之作

在程序员的职业生涯中,阅读技术书籍是不断学习和提升自我的重要途径。本文将为你推荐一系列从入门到精通的程序员书单,帮助你系统地掌握编程知识、提高技能水平,并在职业生涯中取得更大的进步。 一、入门篇 《Head First C语言》&#xff1…

掌握流量主变现秘诀!视频号”今日话题”赛道,详解保姆式教学一体化实操玩法,助你轻松驾驭!

其实,这个领域的制作相当简单。 只需按照下面我提供的教程操作,基本上十分钟内就能完成一个视频。 掌握流量主变现秘诀!视频号”今日话题”赛道,详解保姆式教学一体化实操玩法,助你轻松驾驭! 就收益而言,…

何为时间复杂度和空间复杂度

时间复杂度和空间复杂度是用来评估算法性能的两个重要指标。 1. **时间复杂度**: - 时间复杂度描述了算法执行所需的时间量随输入数据规模的增加而增加的趋势。通常用大O符号(O)表示,表示算法的渐近上界。例如,O(n…

STM32(8)NVIC编程

中断源由部分片上外设产生 在misc.h中找,杂项 配置NVIC GPIO和AFIO不能产生中断源,但能通过EXTI,由EXTI产生中断源 NVIC不需要开启时钟,因为NVIC模块位于内核内部,芯片一上电就能工作。 中断响应函数 中断向量表在启…

rtthread stm32h743的使用(七)dac设备使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验,核心板如图: 1.我们还是先建立工程 2.生成工程后打开mx进行配置,时钟配置如前所讲,不在赘述 3.更改mx文件…

观其大略之HybridCLR学习笔记

问题背景 1 现有热更方案的开发效率、性能没有到达极限,还有提升的空间 2 ios多平台政策导致热更新受限问题,ios禁止jit。根据我查找的资料,ios的代码段启动的时候就确定了,不能增加新的代码段。IOS封了内存(或者堆&…

你不得不知道的Python AI库

Python是人工智能(AI)和机器学习(ML)领域中使用最广泛的编程语言之一,拥有丰富的库支持各种AI和ML任务。本文介绍一些经典的Python AI库。 1. NumPy 简介:NumPy(Numerical Python)…

开源工业软件:SCADA系统开源

PyScada是一个开源的scada系统 源代码地址 http://www.gitpp.com/huangtomy/pyscada-cn SCADA系统是Supervisory Control And Data Acquisition的缩写,即数据采集与监视控制系统。它是以计算机为基础的DCS与电力自动化监控系统,应用领域非常广&#x…

LeetCode.2917. 找出数组中的 K-or 值

题目 2917. 找出数组中的 K-or 值 分析 这道题其实是要我们求第i位二进制为1的元素个数至少为k,把符合条件的2^i全部加到一起。 因此,我们的思路就是枚举数组的每一位,并且进行以下两个步骤: 统计所有元素第i位1的个数cnt。…

哪个职业是科学育婴的好帮手?3月7日蚂蚁新村今日答案:育婴师

蚂蚁新村是一个虚拟社区。在这个虚拟社区中,用户可以参与各种活动,比如生产能量豆、做慈善捐赠等。同时,蚂蚁新村也提供了一些知识问答环节,用户在参与的过程中可以增进知识。这些问答内容往往涉及广泛的主题,如文化、…

Docker本地部署Redis容器结合内网穿透实现无公网ip远程连接

文章目录 前言1. 安装Docker步骤2. 使用docker拉取redis镜像3. 启动redis容器4. 本地连接测试4.1 安装redis图形化界面工具4.2 使用RDM连接测试 5. 公网远程访问本地redis5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 前言 本文主要介绍如何在Ub…

Vue项目实战--空间论坛(1)

环境准备 安装好node.js,Vue后 添加插件 router---路由,多页面的应用 vuex---在多个组件之间维护同一个数据 添加依赖 bootstrap---美工 popperjs/core vue项目介绍 views-----对应vue文件,页面 router-----路由,页面,c…

【深度学习笔记】优化算法——随机梯度下降

随机梯度下降 在前面的章节中,我们一直在训练过程中使用随机梯度下降,但没有解释它为什么起作用。为了澄清这一点,我们刚在 :numref:sec_gd中描述了梯度下降的基本原则。本节继续更详细地说明随机梯度下降(stochastic gradient d…

耐腐蚀特氟龙塑料材质PFA烧杯超纯试剂反应杯

PFA烧杯在实验过程中可作为储酸容器或涉及强酸强碱类实验的反应容器,用于盛放样品、试剂,也可搭配电热板加热、蒸煮、赶酸用。 外壁均有凸起刻度,直筒设计,带翻边,便于夹持和移动,边沿有嘴,便于…

PythonStudio 控件使用常用方式(九)TOpenDialog

PythonStudio是一个极强的开发Python的IDE工具,它使用的是Delphi的控件,常用的内容是与Delphi一致的。但是相关文档并一定完整。现在我试试能否逐步把它的控件常用用法写一点点,也作为PythonStudio的参考。 TOpenDialog是打开文件的对话框 …