* eth/tracers: add revertReason to callTracer
* update callframe gen json
* add revertal to calltrace test
Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
The call tracer and prestate tracer store data JSON-encoded in memory. In order to support alternative encodings (specifically RLP), it's better to keep data a native format during tracing. This PR does marshalling at the end, using gencodec.
OBS!
This PR changes the call tracer result slightly:
- Order of type and value fields are changed (should not matter).
- Output fields are completely omitted when they're empty (no more output: "0x"). Previously, this was only _sometimes_ omitted (e.g. when call ended in a non-revert error) and otherwise 0x when the output was actually empty.
Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Adds a native tracer that returns that in case of failure returns the error message or the revert reason of a transaction.
Co-authored-by: Philip Fan <fanwengang@hotmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
* core,eth: add empty tx logger hooks
* core,eth: add initial and remaining gas to tx hooks
* store tx gasLimit in js tracer
* use gasLimit to compute intrinsic cost for js tracer
* re-use rules in transitiondb
* rm logs
* rm logs
* Mv some fields from Start to TxStart
* simplify sender lookup in prestate tracer
* mv env to TxStart
* Revert "mv env to TxStart"
This reverts commit 656939634b9aff19f55a1cd167345faf8b1ec310.
* Revert "simplify sender lookup in prestate tracer"
This reverts commit ab65bce48007cab99e68232e7aac2fe008338d50.
* Revert "Mv some fields from Start to TxStart"
This reverts commit aa50d3d9b2559addc80df966111ef5fb5d0c1b6b.
* fix intrinsic gas for prestate tracer
* add comments
* refactor
* fix test case
* simplify consumedGas calc in prestate tracer
Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
* feat: rename Tracer interface to EVMLogger;
minor changes in API
refine api_tracer.go
refine Tracer interface
* fix: broken tracer tests
* feat: add BenchmarkTransactionTrace
* feat: tracer CaptureEnter CaptureExit in evm
* feat: upgrade js tracers with geth upstream
* chore: clean test
* feat: eth/tracers: support for golang tracers + add golang callTracer
cf. https://github.com/ethereum/go-ethereum/pull/23708
* chore: clean testdata json
* fix: change test due to IntrinsicGas is not upgraded
* feat: make native Tracer the default Tracer
* fix: update tracers.New in api
* fix: addr prefix in callTracer
* fix: remove `native` in BenchmarkTracers
* fix: return consensus error of InsufficientBalance for tx, instead of vmerr
* chore: drop js tracers: call and noop