HomeSource World

core: improve contextual information on core errors (#21869)

Description

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.

Details

Provenance
Martin Holst Swende <martin@swende.se>Authored on Dec 4 2020, 11:22 AM
GitHub <noreply@github.com>Committed on Dec 4 2020, 11:22 AM
Parents
rGETH62cedb3aabf5: core/vm/runtime: remove duplicated line (#21956)
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rGETH7770e41cb5fc: core: improve contextual information on core errors (#21869) (authored by Martin Holst Swende <martin@swende.se>).Dec 4 2020, 11:22 AM