go-ethereum/core
Martin Holst Swende 7770e41cb5
core: improve contextual information on core errors (#21869)
A lot of times when we hit 'core' errors, example: invalid tx, the information provided is
insufficient. We miss several pieces of information: what account has nonce too high,
and what transaction in that block was offending?

This PR adds that information, using the new type of wrapped errors.
It also adds a testcase which (partly) verifies the output from the errors.

The first commit changes all usage of direct equality-checks on core errors, into
using errors.Is. The second commit adds contextual information. This wraps most
of the core errors with more information, and also wraps it one more time in
stateprocessor, to further provide tx index and tx hash, if such a tx is encoutered in
a block. The third commit uses the chainmaker to try to generate chains with such
errors in them, thus triggering the errors and checking that the generated string meets
expectations.
2020-12-04 12:22:19 +01:00
..
asm core/asm: allow numbers in labels (#20362) 2019-11-23 12:52:17 +01:00
bloombits core/bloombits: faster generator (#21625) 2020-10-06 16:34:29 +03:00
forkid cmd/devp2p: add eth protocol test suite (#21598) 2020-09-23 15:18:17 +02:00
rawdb core: improve snapshot journal recovery (#21594) 2020-10-29 21:01:58 +02:00
state all: remove redundant conversions and import names (#21903) 2020-11-25 21:00:23 +01:00
types core/types: fixed typo (#21897) 2020-11-25 08:53:20 +01:00
vm core/vm/runtime: remove duplicated line (#21956) 2020-12-04 08:54:07 +01:00
.gitignore Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
bench_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
block_validator.go trie: use stacktrie for Derivesha operation (#21407) 2020-09-29 17:38:13 +02:00
block_validator_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
blockchain.go all: disable recording preimage of trie keys (#21402) 2020-11-18 11:51:33 +02:00
blockchain_insert.go core: fix blockchain insert report time interval calculation (#21723) 2020-10-21 16:53:30 +02:00
blockchain_repair_test.go core: improve snapshot journal recovery (#21594) 2020-10-29 21:01:58 +02:00
blockchain_sethead_test.go core: improve snapshot journal recovery (#21594) 2020-10-29 21:01:58 +02:00
blockchain_snapshot_test.go core/state/snapshot: update generator marker in sync with flushes 2020-11-09 16:03:58 +02:00
blockchain_test.go core: improve contextual information on core errors (#21869) 2020-12-04 12:22:19 +01:00
blocks.go core: typos and comments improve 2017-05-25 17:14:33 +03:00
chain_indexer.go all: replace RWMutex with Mutex in places where RLock is not used (#21622) 2020-10-13 10:58:41 +02:00
chain_indexer_test.go les: historical data garbage collection (#19570) 2020-07-13 11:02:54 +02:00
chain_makers.go les: historical data garbage collection (#19570) 2020-07-13 11:02:54 +02:00
chain_makers_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
dao_test.go les: historical data garbage collection (#19570) 2020-07-13 11:02:54 +02:00
error.go all: fix typos in comments (#21118) 2020-05-25 10:21:28 +02:00
events.go eth/filters: remove use of event.TypeMux for pending logs (#20312) 2019-12-10 12:39:14 +01:00
evm.go core, all: split vm.Context into BlockContext and TxContext (#21672) 2020-11-13 13:42:19 +01:00
gaspool.go miner: avoid unnecessary work (#15883) 2018-01-15 12:57:06 +02:00
gen_genesis.go all: regenerate codecs with gencodec commit 90983d99de (#15830) 2018-01-08 15:13:22 +02:00
gen_genesis_account.go all: regenerate codecs with gencodec commit 90983d99de (#15830) 2018-01-08 15:13:22 +02:00
genesis.go all: disable recording preimage of trie keys (#21402) 2020-11-18 11:51:33 +02:00
genesis_alloc.go cmd, core, params: inital support for yolo-v1 testnet (#21154) 2020-06-03 12:05:15 +03:00
genesis_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
headerchain.go all: simplify nested complexity and if blocks ending with a return statement (#21854) 2020-11-25 09:24:50 +01:00
mkalloc.go core/vm: 64 bit memory and gas calculations (#19210) 2019-03-12 11:40:05 +02:00
rlp_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
state_prefetcher.go core, all: split vm.Context into BlockContext and TxContext (#21672) 2020-11-13 13:42:19 +01:00
state_processor.go core: improve contextual information on core errors (#21869) 2020-12-04 12:22:19 +01:00
state_processor_test.go core: improve contextual information on core errors (#21869) 2020-12-04 12:22:19 +01:00
state_transition.go core: improve contextual information on core errors (#21869) 2020-12-04 12:22:19 +01:00
tx_cacher.go Comment error (#18303) 2018-12-14 11:15:31 +01:00
tx_journal.go core: fix typos in comment (#17531) 2018-08-28 10:04:33 +03:00
tx_list.go core: free pointer from slice after popping element from price heap (#21572) 2020-09-28 14:24:01 +02:00
tx_list_test.go Revert "core, txpool: less allocations when handling transactions (#21232)" 2020-07-09 14:02:03 +02:00
tx_noncer.go core: fix write concurrency in txpool (#19835) 2019-07-17 13:39:41 +03:00
tx_pool.go core: fix txpool off-by-one error (#21683) 2020-10-09 12:23:46 +03:00
tx_pool_test.go core: improve contextual information on core errors (#21869) 2020-12-04 12:22:19 +01:00
types.go core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00