• gary rong's avatar
    all: seperate consensus error and evm internal error (#20830) · b9df7ecd
    gary rong authored
    * 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
    b9df7ecd
Name
Last commit
Last update
..
fuzzers Loading commit data...
solidity Loading commit data...
testdata @ 7497b116 Loading commit data...
block_test.go Loading commit data...
block_test_util.go Loading commit data...
difficulty_test.go Loading commit data...
difficulty_test_util.go Loading commit data...
gen_btheader.go Loading commit data...
gen_difficultytest.go Loading commit data...
gen_stenv.go Loading commit data...
gen_sttransaction.go Loading commit data...
gen_vmexec.go Loading commit data...
init.go Loading commit data...
init_test.go Loading commit data...
rlp_test.go Loading commit data...
rlp_test_util.go Loading commit data...
state_test.go Loading commit data...
state_test_util.go Loading commit data...
transaction_test.go Loading commit data...
transaction_test_util.go Loading commit data...
vm_test.go Loading commit data...
vm_test_util.go Loading commit data...