2

I'm trying to index internal eth transactions transactions of the Ethereum blockchain and as it is not present in the logs, the way is to replay the transaction with debug_tracetransaction so I can rebuild the transaction and see the internal eth transfers.

I only want to index new transactions so I should be able to do it without a full archive node, as debug_tracetransaction is available for the latest 128 blocks.

As it says in the documentation I have a field structLogs with all the steps of the transaction.

I do have the stack field but not the memory one.

I'm running a node with geth 1.10.17-stable-25c9b49f with snap synced with the following command :

geth --http --http.addr 0.0.0.0 --http.api eth,web3,debug,txpool,net,admin,debug --ws --ws.api eth,web3,debug,txpool,net,admin,debug  --ws.origins localhost --syncmode snap --datadir /mnt/md1 --gcmode archive

I'm requesting the node to give me the debugged transaction with following command

curl --data '{"method":"debug_traceTransaction","params":["0xd3ba2428f24ce620da5d6c2401f5f1c17cf88d31a0bd8731f2a64fd6debbb487", {"disableStack": false, "disableMemory": false, "disableStorage": false}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

This is an example of the step i'm getting :

{"pc":876,"op":"JUMPI","gas":38785,"gasCost":10,"depth":1,"stack":["0x38ed1739","0x100","0x772","0x772","0x7b2","0x120","0x60","0x60","0x7b2","0x120","0x40","0x0","0x37c"]}

The documentation : https://geth.ethereum.org/docs/rpc/ns-debug#debug_tracetransaction

If someone has any idea of what I should do to get the memory field without running an archive node from the beginning.

1 Answer 1

1

In your RPC request, you are specifying disableMemory: false. However, according to these docs https://geth.ethereum.org/docs/rpc/ns-debug#debug_tracetransaction, the option key is enableMemory and not disableMemory.

To have memory included in the output for debug_traceTransaction, try using enableMemory: true.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.