首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从恢复的事务中提取日志?

从恢复的事务中提取日志?
EN

Ethereum用户
提问于 2022-02-23 08:11:12
回答 2查看 1.1K关注 0票数 1

在Ganache中可以从恢复的事务中提取日志吗?

当然,公共区块链不会为恢复的事务保留日志。

但是,我想知道,在ganache (本地块链)中是否有一种方法可以找出如果事务没有恢复日志(即直到恢复点之前发生的日志)日志会是什么?

我正在使用ganache叉,并在本地模拟一些事务,并且希望提取这样的数据,甚至对于恢复的事务也是如此。

EN

回答 2

Ethereum用户

发布于 2022-02-23 08:38:31

是的,您可以通过调试失败的事务来实现它。

ganache-cli中获取所需的事务哈希。

在新的终端窗口中,运行npx truffle debug <YOUR_TXN_HASH>

然后,您可以使用o转到下一行,直到恢复点事务。

以下是命令的详细列表:https://trufflesuite.com/docs/truffle/getting-started/using-the-truffle-debugger.html

票数 3
EN

Ethereum用户

发布于 2022-06-22 23:50:59

另一种方法是将ganache-cli与详细标志一起使用:

代码语言:javascript
运行
复制
--verbose

这将记录请求和响应。

现在,在发送请求之后,您将在日志中输入响应。后者将包含以下信息:

代码语言:javascript
运行
复制
{
  "id": 17,
  "jsonrpc": "2.0",
  "result": "...",
  "error": {
    "message": "VM Exception while processing transaction: revert",
    "code": -32000,
    "data": {
      "...": {
        "error": "revert",
        "program_counter": 2145,
        "return": "0x8baa579f"
      },
      "stack": "o: VM Exception while processing transaction: revert\n    at Function.o.fromResults (/app/ganache-core.docker.cli.js:4:297036)\n    at w.processBlock (/app/ganache-core.docker.cli.js:42:106258)\n    at processTicksAndRejections (internal/process/task_queues.js:93:5)",
      "name": "o"
    }
  }
}

return将包含还原错误。

在这种情况下,它是0x8baa579f。要知道是哪个error,您需要知道哪个编码的函数/错误签名与上面的匹配。

您可以使用这个在线编码器。首先,把你的ABI放在那里。然后,将编码输出与0x8baa579f进行比较。

有关编码工作方式的更多细节,请签出此文章

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/122365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档