ethereum - 如何从 Geth 中的 eth_call 或 debug_traceCall 获取事件日志?
问题描述
我很好奇这里是否有人可以阐明这个问题。我一直在使用 ganache-core 来试运行交易。不幸的是,它对我的使用来说太慢了。Geth 的 eth_call 比较快,但是它不返回我需要的事件日志。
我玩过 debug_Tracecall,但它似乎有点过头了,速度相对较慢(虽然比 Ganache 快),而且我似乎无法弄清楚如何从返回的值中提取事件日志,即使假设它们在那里。
有谁知道如何从 eth_call 获取事件日志,或者至少知道如何从 eth_Tracecall 的返回值中获取它们?
解决方案
eth_call不会产生交易。另一方面,作为交易的结果,事件日志被发出并存储到区块链中。
所以你要问的,根本不可能是设计上的。
但是假设被调用的合约函数被定义为发出事件,你可以执行一个事务(而不是调用),它会发出事件。
然后,您将能够使用数组下的eth_getTransactionReceiptlogs
方法获取事件日志。
推荐阅读
- python - 如何将标头附加到由python数据框创建的csv文件中的数据
- python - 如何将倾斜的指纹图像旋转到垂直直立位置
- c# - EventCallback 似乎正在更改剃须刀页面上的参数值
- python - 如何使用python3将docx转换为pdf?
- java - 如何导航到新打开的选项卡?
- c# - 为什么 Unity C# Coroutine 在单击不相关的按钮时执行
- floating-point - math.h sin() 浮点结果与优化定点结果的比较方式
- php - 如何在 XML 中使用 PHP 的大括号 {}?
- r - 从 R 运行互联网速度测试的 Base R(或 CRAN)功能?
- python - 使用 rpy2 改进在 python 函数中调用 R 函数的运行时