首页 > 解决方案 > 如何从 Geth 中的 eth_call 或 debug_traceCall 获取事件日志?

问题描述

我很好奇这里是否有人可以阐明这个问题。我一直在使用 ganache-core 来试运行交易。不幸的是,它对我的​​使用来说太慢了。Geth 的 eth_call 比较快,但是它不返回我需要的事件日志。

我玩过 debug_Tracecall,但它似乎有点过头了,速度相对较慢(虽然比 Ganache 快),而且我似乎无法弄清楚如何从返回的值中提取事件日志,即使假设它们在那里。

有谁知道如何从 eth_call 获取事件日志,或者至少知道如何从 eth_Tracecall 的返回值中获取它们?

标签: ethereumgo-ethereum

解决方案


eth_call不会产生交易。另一方面,作为交易的结果,事件日志被发出并存储到区块链中

所以你要问的,根本不可能是设计上的。


但是假设被调用的合约函数被定义为发出事件,你可以执行一个事务(而不是调用),它会发出事件。

然后,您将能够使用数组下的eth_getTransactionReceiptlogs方法获取事件日志。


推荐阅读