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

news/2024/7/7 14:32:50 标签: 区块链, web3

分析 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的世界


http://www.niftyadmin.cn/n/5406927.html

相关文章

C++的可见性

可见性定义 1、可见性是一个属于面向对象编程的概念,它指的是类的某些成员或方法实际上有多可见2、可见性是指谁能看到它们,谁能调用它们,谁能使用它们 3、可见性是对程序实际运行方式完全没有影响的东西,对程序性能或类似的东西…

Pycharm通过SFTP远程连接Spark

参考:https://daniel.blog.csdn.net/article/details/107415130 1.添加SFTP连接 选择 Tools > Deploment > Configuration。 2. 在Deployment界面中,设置Connection、Mapping的配置。 Connection 配置: Mapping配置: 2.…

ChatGPT数据分析应用——漏斗分析

ChatGPT数据分析应用——漏斗分析 ​ 漏斗分析在数据分析中也比较常用,主要是用于发现各个转化流程中哪个环节有问题。接下来我们让ChatGPT解释这个方法的概念并提供相应的案例。发送如下内容给ChatGPT。 ​ ChatGPT收到上述内容后,返回如下结果。 漏斗…

7z SDK二次开发(示例:解压)

7z SDK二次开发(解压) 1.SDK说明 下载7z SDK:https://www.7-zip.org/sdk.html,得到lzmaxxx.7z的SDK包。 2.目录说明 . ├─Asm # 汇编加速组件 ├─bin # lzma.exe 可执行应用 ├─C …

qt QPainter画灯泡

把画家(坐标原点) 移动 到如图 然后画家旋转180度最重要的是切点坐标 根据圆心坐标,原点坐标,计算切点坐标1.用QPainterPath绘制出一个圆 2.用它减去三角形路径 3.用画刷刷出上半部分,下半部分代码太乱,没…

pdf编辑软件哪个好用?5款PDF编辑器分享

pdf编辑软件哪个好用?PDF编辑软件在现代办公和学术研究中发挥着举足轻重的作用,它们不仅具备基础的编辑和修改功能,还能够支持多种注释工具,帮助我们高效地管理和整理PDF文件。无论是需要调整文档布局、添加文本或图像&#xff0c…

2.1基本算法之枚举7647:余数相同问题

已知三个正整数 a&#xff0c;b&#xff0c;c。 现有一个大于1的整数x&#xff0c;将其作为除数分别除a&#xff0c;b&#xff0c;c&#xff0c;得到的余数相同。 请问满足上述条件的x的最小值是多少&#xff1f; 数据保证x有解 #include<bits/stdc.h>//万能头 using…

Newsmy储能电源与您相约九州汽车生态博览

2024年3月7日—10日&#xff0c;第24届 深圳国际智慧出行、汽车改装及汽车服务业态博览会&#xff08;以下简称“九州汽车生态博览会”&#xff09;将在深圳国际会展中心&#xff08;宝安&#xff09;举办&#xff0c;Newsmy纽曼集团将在3号馆32523展位&#xff0c;携全系产品与…