• 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
..
runtime Loading commit data...
testdata Loading commit data...
analysis.go Loading commit data...
analysis_test.go Loading commit data...
common.go Loading commit data...
contract.go Loading commit data...
contracts.go Loading commit data...
contracts_test.go Loading commit data...
doc.go Loading commit data...
eips.go Loading commit data...
errors.go Loading commit data...
evm.go Loading commit data...
gas.go Loading commit data...
gas_table.go Loading commit data...
gas_table_test.go Loading commit data...
gen_structlog.go Loading commit data...
instructions.go Loading commit data...
instructions_test.go Loading commit data...
int_pool_verifier.go Loading commit data...
int_pool_verifier_empty.go Loading commit data...
interface.go Loading commit data...
interpreter.go Loading commit data...
intpool.go Loading commit data...
intpool_test.go Loading commit data...
jump_table.go Loading commit data...
logger.go Loading commit data...
logger_json.go Loading commit data...
logger_test.go Loading commit data...
memory.go Loading commit data...
memory_table.go Loading commit data...
opcodes.go Loading commit data...
stack.go Loading commit data...
stack_table.go Loading commit data...