Would be nice to be able to debug transactions in remix using testrpc
@yann300 do you know if there is any specification of these two endpoints?
@yann300 we can use this to generate the relevant information from typical rpc calls
https://github.com/kumavis/eth-tx-summary
this could be added to testrpc to provide support for the methods or simply added to remix to work against any client
There is no real spec but we basically follow the geth implementation
https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction
note that https://github.com/ethereum/go-ethereum/wiki/Management-APIs#javascript-based-tracing is not yet implemented in the cpp client.
I'll post the doc of storageRangeAt when I'll find it.
@kumavis your tool copy the state of the targeted client to the JavaScript VM right and execute the tx, right?
@kumavis your tool copy the state of the targeted client to the JavaScript VM right and execute the tx, right?
The state is looked up lazily via rpc against the previous block and then "shadowed" if written to. Handles subcall OOG reverts correctly and all. Since we can't load medstate over RPC we have to run all txs in the block before the tx we actually want to replay - which can be quite slow due to the serial network lookups.
https://github.com/ethereum/go-ethereum/pull/14350 the doc on debug_storageRangeAt
FYI: debug_traceTransaction is mostly finished on a separate branch. Will take a look at debug_storageRangeAt. Thanks all.
@tcoulter good news!
What is the current status of debug_traceTransaction? Since it is listed in README.md I thought it was fully implemented, but the storage field seems to always be empty in my case (both with fullStorage=True and fullStorage=False).
It works normally with geth (i.e. the output is similar to https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction).
Is there any update for debug_traceTransaction.
I found it is listed in the README, but up to now, I still can not use it.
> web3.debug
undefined
@mrssource the debug_traceTransaction RPC method is (mostly) implemented. Here are some examples (via our test suite) showing how it should be used: https://github.com/trufflesuite/ganache-core/blob/develop/test/debug/debug.js
also it would awesome to implement debug_storageRangeAt
https://github.com/ethereum/go-ethereum/pull/14350
Any chance to see "Parity trances" implemented?
To me, it seems that debug_traceTransaction does not return all the storage contents, even though I have 'fullStorage' set to True and 'disableStorage' set to False. Moreso, it seems to only return storage elements that are accessed or about to be accessed by an opcode, but not other storage contents. Has anyone encountered a similar issue?
Most helpful comment
What is the current status of debug_traceTransaction? Since it is listed in README.md I thought it was fully implemented, but the storage field seems to always be empty in my case (both with fullStorage=True and fullStorage=False).
It works normally with geth (i.e. the output is similar to https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction).