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.