ethereum - 待处理的以太坊交易的日志在确认后消失了
问题描述
当我使用“eth_getLogs”查询待处理事务的日志时,日志信息显示如下,但是在确认 tx 后,日志在 etherescan 上不可用。此 tx 使用了委托调用。任何人都可以就日志消失的原因提出建议吗?
当 tx 处于挂起状态时,通过查询 ""eth_getLogs"" 来记录信息:
topics: [
'0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
'0x0000000000000000000000006463bd6026a2e7bfab5851b62969a92f7cca0eb6',
'0x000000000000000000000000860bd2dba9cd475a61e6d1b45e16c365f6d78f66'
],
data: '0x00000000000000000000000000000000000000000000058677bb9e53cb507ddd',
blockNumber: '0xb117d6',
transactionHash: '0x9b51d7093c4507fa96af3fd4418c508700cb9f69f3cea9d7f5a192afa30cd1bf',
transactionIndex: '0x41',
blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
logIndex: '0x4f',
removed: false
}
确认后在etherscan上进行交易:https ://etherscan.io/tx/0x9b51d7093c4507fa96af3fd4418c508700cb9f69f3cea9d7f5a192afa30cd1bf
解决方案
由于交易执行的结果,包括生成的事件,取决于执行时合约和账户的状态,那么,显然,显示的日志对应于如果交易包含在块 0xb117d6 中的状态,但是在块 0xb117d8 的上下文中实际执行时,状态块/帐户已经不同,从而导致了不同的结果。
此外,未决交易执行的预测是基于您的特定节点的数据,在存在分叉的情况下,这些数据可能与主链的数据不同。
推荐阅读
- sql-server - 我可以将 SQL Server 链接服务器连接到 Azure 数据工厂吗?
- python - 带 rpi 的 Adafruit Ultimate GPS Breakout v3 - 未找到修复程序
- javascript - 在打字稿中解析 .docx 文档
- php - 检查域是否有记录 CNAME 并指向我的服务器
- c# - .NET 5、ASP .NET Core 5 应用程序 ajax 发布请求 cookie 为空
- postgresql - Talend Erreur : talend 下的数据导入问题(postgres 到 postgres)
- javascript - 在 HTML 输入中显示 JavaScript 变量的值
- google-sheets - 如何在 Xpath 中使用 NOT 用于 IMPORTXML 函数?
- dictionary - 在 Python 中从响应行中删除字符
- excel - 如何使用表单中的可下载链接在 Excel 中添加完整图像