go-ethereum/les
gary rong b9df7ecdc3
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
2020-04-22 11:25:36 +03:00
..
checkpointoracle les/checkpointoracle: move oracle into its own package (#20508) 2020-01-07 11:24:21 +02:00
flowcontrol all: update author list and licenses 2019-07-22 12:17:27 +03:00
lespay/client les, les/lespay/client: add service value statistics and API (#20837) 2020-04-09 11:55:32 +02:00
utils accounts/abi: implement new fallback functions (#20764) 2020-04-15 09:23:58 +02:00
api.go les/checkpointoracle: move oracle into its own package (#20508) 2020-01-07 11:24:21 +02:00
api_backend.go internal/ethapi: don't set sender-balance to maxuint, fixes #16999 (#20783) 2020-03-23 18:21:23 +01:00
api_test.go build: use golangci-lint (#20295) 2019-11-18 10:49:17 +02:00
balance.go les: rename UpdateBalance to AddBalance and simplify return format (#20304) 2019-11-18 12:42:49 +01:00
balance_test.go les: rework clientpool (#20077) 2019-11-02 13:02:35 +01:00
benchmark.go les, les/lespay/client: add service value statistics and API (#20837) 2020-04-09 11:55:32 +02:00
bloombits.go les: handler separation (#19639) 2019-08-21 11:29:34 +02:00
client.go cmd, core: remove override muir glacier and override istanbul (#20942) 2020-04-20 12:46:38 +03:00
client_handler.go les, les/lespay/client: add service value statistics and API (#20837) 2020-04-09 11:55:32 +02:00
clientpool.go all: simplify and fix database iteration with prefix/start (#20808) 2020-04-15 14:08:53 +03:00
clientpool_test.go les, miner, accounts/abi/bind: fix load-sensitive unit tests (#20698) 2020-02-20 13:05:54 +01:00
commons.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
costtracker.go les: add missing Ticker.Stop call (#20864) 2020-04-02 15:54:59 +02:00
distributor.go les: create utilities as common package (#20509) 2020-03-31 17:17:24 +02:00
distributor_test.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
enr_entry.go les: add empty "les" ENR entry for servers (#20145) 2019-10-02 14:14:27 +03:00
fetcher.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
handler_test.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
metrics.go les: multiple server bugfixes (#20079) 2019-09-17 16:28:41 +03:00
odr.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
odr_requests.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
odr_test.go all: seperate consensus error and evm internal error (#20830) 2020-04-22 11:25:36 +03:00
peer.go les, les/lespay/client: add service value statistics and API (#20837) 2020-04-09 11:55:32 +02:00
peer_test.go eth, les: fix flaky tests (#20897) 2020-04-07 09:16:21 +03:00
protocol.go les, les/lespay/client: add service value statistics and API (#20837) 2020-04-09 11:55:32 +02:00
request_test.go eth, les: fix time sensitive unit tests (#20741) 2020-03-12 11:25:52 +01:00
retrieve.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
server.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
server_handler.go eth, les: fix time sensitive unit tests (#20741) 2020-03-12 11:25:52 +01:00
serverpool.go les: create utilities as common package (#20509) 2020-03-31 17:17:24 +02:00
servingqueue.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
sync.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
sync_test.go eth, les: fix time sensitive unit tests (#20741) 2020-03-12 11:25:52 +01:00
test_helper.go eth, les: fix time sensitive unit tests (#20741) 2020-03-12 11:25:52 +01:00
txrelay.go les, les/lespay/client: add service value statistics and API (#20837) 2020-04-09 11:55:32 +02:00
ulc.go cmd, eth, les: fix up ultra light config integration 2019-07-09 20:34:42 +03:00
ulc_test.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00