我需要所有的合同内部交易。要做到这一点,我需要使用Ethereum仪器。
我的问题是:我应该怎么做才能得到交易的细节?现在,我正在寻找代码,但如果有人能给我指出正确的代码部分,我们将不胜感激。
发布于 2016-05-31 09:56:54
为此,您需要定义一个VM日志收集器,它实现了StructLogCollector。此函数在VM的每一步都被调用,并提供内存、堆栈和修改后的存储部分的副本,以及程序计数器、当前操作码、gas和其他数据的副本。当发生导致事务失败的错误时,也会调用它。
要提取您想要的数据,您需要注意几个方面:“CREATE”、“CALL”、“CALLCODE”和“DELEGATECALL”操作码,它们调用新的合同或帐户并可能传递值,而“自杀”则返回调用方的值。您还需要注意导致调用返回的任何内容,以及前面提到的错误。
在跟踪时,您需要维护一个表示当前事务调用堆栈的堆栈,每个堆栈帧都包含到目前为止进行的值传输的列表。非错误返回弹出堆栈帧,将其所有的值传输到下面的帧中.一个错误返回弹出帧,丢弃所有传输。当您弹出最后的帧时,它上的传输集是作为事务的一部分完成的传输集。
所有这些的实现都可以看作是我的以太查询代码的一部分。
https://ethereum.stackexchange.com/questions/4446
复制相似问题