* Adding some testdata for RPC tracing
* Adding command line option to allow switching trace export format
* Moved types into a separate file for clarity
* Added endpoints and stub functions for other trace routines
* Added experimental end points for issuance, blockReward, and uncleReward
* Moved supporting functions for filtering to _filtering file
* Moved Filter function to _filtering file
* Reordering functions for clarity
* Cleaning up
* Implemented trace_get - 7 of 8 tests pass
* Implemented trace_transaction - 2 of 8 tests pass
* Updating test cases
* Turning off lint temporarily. Will be turned back on
* Extended trace_filter (parity traces, reward traces) - 10 of 13 tests pass
* Implemented trace_block - 4 of 6 tests passed
* Cleanup test cases
* Added refundAddress and selfDestructedAddress to self destruct traces
* Total hack fix to missing gasUsed in some tests. Fixes tests, needs to be replaced
* uint256 in rlp
* uint256 rather than big.Int in Transation
* linters
* more linters
* still linters
* Reduce garbage in writeUint256
* Experiment with GC in writeByteArray
* all: seperate consensus error and evm internal error
There are actually two types of error will be returned when
a tranaction/message call is executed: (a) consensus error
(b) evm internal error. The former should be converted to
a consensus issue, e.g. The sender doesn't enough asset to
purchase the gas it specifies. The latter is allowed since
evm itself is a blackbox and internal error is allowed to happen.
This PR emphasizes the difference by introducing a executionResult
structure. The evm error is embedded inside. So if any error
returned, it indicates consensus issue happens.
And also this PR improve the `EstimateGas` API to return the concrete
revert reason if the transaction always fails
* all: polish
* accounts/abi/bind/backends: add tests
* accounts/abi/bind/backends, internal: cleanup error message
* all: address comments
* core: fix lint
* accounts, core, eth, internal: address comments
* accounts, internal: resolve revert reason if possible
* accounts, internal: address comments
# Conflicts:
# accounts/abi/abi.go
# accounts/abi/bind/backends/simulated.go
# cmd/geth/retesteth.go
# core/state/snapshot/difflayer_test.go
# core/state/snapshot/disklayer_test.go
# core/state/snapshot/iterator_test.go
# core/state_processor.go
# core/state_transition.go
# core/vm/evm.go
# core/vm/instructions.go
# core/vm/jump_table.go
# eth/api_tracer.go
# internal/ethapi/api.go
# les/odr_test.go
# light/odr_test.go
# tests/state_test_util.go