IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> web3py 解析智能合约write方法的执行结果(event事件日志解析、操作结果解析、log解析) -> 正文阅读

[区块链]web3py 解析智能合约write方法的执行结果(event事件日志解析、操作结果解析、log解析)

____tz_zs

如何使用 Web3.py 解码交易日志

ContractEvent 提供了与合约事件交互的方法。提供给合约事件子类的位置和关键字参数将用于通过签名查找合约事件。

processReceipt(tx_receipt, errors=WARN)

myContract = web3.eth.contract(address=contract_address, abi=contract_abi) # 创建智能合约对象
tx_hash = myContract.functions.myFunction().transact() # 调用智能合约的方法myFunction(可能是转账、交易、授权等操作),返回Transaction地址(例如:0xe6d5b437d103fba72cba256f36374216287ddfd7c540eb2e01a28ffdc1ef12e7)
receipt = web3.eth.getTransactionReceipt(tx_hash) # 获取Transaction地址执行结果
logs = myContract.events.myEvent().processReceipt(receipt) # myEvent 可能是转账Transfer、交易Swap、授权Approval等事件。

参数 errors 为可选参数,表示如果有错误,日志将根据传入的标志进行不同的处理:

  • WARN(默认) - 向控制台记录有错误日志的警告,并丢弃日志。返回任何可以处理的日志。
  • STRICT - 停止所有处理并引发遇到的错误。
  • IGNORE - 返回任何引发错误的原始日志,并添加“错误”字段,以及能够处理的任何其他日志。
  • DISCARD - 静默丢弃任何有错误的日志,并返回没有错误的已处理日志。

processLog()
类似于processReceipt,但一次只处理一个日志,而不是整个交易收据。

>>> tx_hash = contract.functions.myFunction(12345).transact({'to':contract_address})
>>> tx_receipt = w3.eth.get_transaction_receipt(tx_hash)
>>> log_to_process = tx_receipt['logs'][0]
>>> processed_log = contract.events.myEvent().processLog(log_to_process)

事件日志对象
事件日志对象是一个具有以下键的 Python 字典:

  • args: Dictionary - 来自事件的参数。
  • event: String - 事件名称。
  • logIndex:Number - 块中日志索引位置的整数。
  • transactionIndex:Number - 创建的交易索引位置日志的整数。
  • transactionHash: String, 32 Bytes - 创建此日志的事务的哈希值。
  • address: String, 32 Bytes - 此日志的来源地址。
  • blockHash: String, 32 Bytes - 此日志所在块的哈希值。当它挂起时为 null。
  • blockNumber:Number - 此日志所在的块号。当它挂起时为 null

参考:

How do I decode the transaction’s log with Web3.py?
Web3.py —— ContractEvents

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章           查看所有文章
加:2021-11-17 12:48:27  更:2021-11-17 12:49:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:27:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码