go-ethereum/core/vm
Jeffrey Wilcke 1e5725f03b core/vm: removed err checks from EVM and added snapshot to interpreter
The REVERT op codes reverts the state by returning an error from the
instruction. The instruction was checked during in the EVM. This error
would then determine whether any gas should be consumed or not. If the
error was an errRevert, no gas was further reduced and only state was
reverted.

This solution is error prone as you'll need an err check in multiple
locations and removes the no-err check requirement of the evm. This has
been solved by passing the snapshot to the interpreter and letting the
interpreter do the state reverting if the operation so requires.
2017-04-06 09:01:50 +02:00
..
runtime common: move big integer math to common/math (#3699) 2017-02-26 22:21:51 +01:00
analysis.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
common.go all: unify big.Int zero checks, use common/math in more places (#3716) 2017-02-28 15:09:11 +01:00
contract.go core, core/state, core/vm: remove exported account getters (#3618) 2017-02-22 23:29:59 +01:00
contracts.go core/vm: implemented bn256 mul and add pre compiled - EIP#197 2017-04-06 09:01:50 +02:00
contracts_test.go core/vm: implemented bn256 mul and add pre compiled - EIP#197 2017-04-06 09:01:50 +02:00
doc.go all: update license information 2016-04-15 09:48:05 +02:00
errors.go core/vm: improved EVM run loop & instruction calling (#3378) 2017-01-05 11:52:10 +01:00
evm.go core/vm: removed err checks from EVM and added snapshot to interpreter 2017-04-06 09:01:50 +02:00
gas.go params: core, core/vm, miner: 64bit gas instructions 2017-02-13 21:44:25 +01:00
gas_table.go all: unify big.Int zero checks, use common/math in more places (#3716) 2017-02-28 15:09:11 +01:00
gas_table_test.go params: core, core/vm, miner: 64bit gas instructions 2017-02-13 21:44:25 +01:00
instructions.go core/vm: removed err checks from EVM and added snapshot to interpreter 2017-04-06 09:01:50 +02:00
int_pool_verifier.go params: core, core/vm, miner: 64bit gas instructions 2017-02-13 21:44:25 +01:00
int_pool_verifier_empty.go params: core, core/vm, miner: 64bit gas instructions 2017-02-13 21:44:25 +01:00
interface.go core, core/state, core/vm: remove exported account getters (#3618) 2017-02-22 23:29:59 +01:00
interpreter.go core/vm: removed err checks from EVM and added snapshot to interpreter 2017-04-06 09:01:50 +02:00
intpool.go params: core, core/vm, miner: 64bit gas instructions 2017-02-13 21:44:25 +01:00
jump_table.go core/vm: removed err checks from EVM and added snapshot to interpreter 2017-04-06 09:01:50 +02:00
logger.go core/vm: use uint64 instead of *big.Int in tracer (#3805) 2017-03-22 15:32:51 +01:00
logger_test.go core/vm: use uint64 instead of *big.Int in tracer (#3805) 2017-03-22 15:32:51 +01:00
memory.go params: core, core/vm, miner: 64bit gas instructions 2017-02-13 21:44:25 +01:00
memory_table.go common: move big integer math to common/math (#3699) 2017-02-26 22:21:51 +01:00
noop.go core, core/state, core/vm: remove exported account getters (#3618) 2017-02-22 23:29:59 +01:00
opcodes.go core/vm, params: implemented STATIC_CALL - EIP#116 2017-04-06 08:44:59 +02:00
stack.go core/vm: improved EVM run loop & instruction calling (#3378) 2017-01-05 11:52:10 +01:00
stack_table.go params: core, core/vm, miner: 64bit gas instructions 2017-02-13 21:44:25 +01:00
vm_jit.go core/vm: improved EVM run loop & instruction calling (#3378) 2017-01-05 11:52:10 +01:00
vm_jit_fake.go core, core/vm: implemented a generic environment (#3348) 2016-12-06 02:16:03 +01:00