HomeSource World

all: seperate consensus error and evm internal error (#20830)

Authored by gary rong <garyrong0905@gmail.com> on Apr 22 2020, 8:25 AM.

Description

all: seperate consensus error and evm internal error (#20830)

  • 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

Details

Committed
GitHub <noreply@github.com>Apr 22 2020, 8:25 AM
Parents
rGETHc60c0c97e77e: go.mod : update fastcache to 1.5.7 (#20936)
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rGETHb9df7ecdc3d3: all: seperate consensus error and evm internal error (#20830) (authored by gary rong <garyrong0905@gmail.com>).Apr 22 2020, 8:25 AM