- 02 Jun, 2020 1 commit
-
-
Greg Colvin authored
* core/vm: implement EIP 2315, subroutines for the EVM * core/vm: eip 2315 - lintfix + check jump dest validity + check ret stack size constraints logger: markdown-friendly traces, validate jumpdest, more testcase, correct opcodes * core/vm: update subroutines acc to eip: disallow walk-into * core/vm/eips: gas cost changes for subroutines * core/vm: update opcodes for EIP-2315 * core/vm: define RETURNSUB as a 'jumping' operation + review concerns Co-authored-by:
Martin Holst Swende <martin@swende.se>
-
- 22 Apr, 2020 1 commit
-
-
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
-
- 25 Jul, 2018 1 commit
-
-
Guillaume Ballet authored
- Define an Interpreter interface - One contract can call contracts from other interpreter types. - Pass the interpreter to the operands instead of the evm. This is meant to prevent type assertions in operands.
-
- 26 Jun, 2018 1 commit
-
-
Guillaume Ballet authored
* core/vm: clear linter warnings * core/vm: review input * core/vm.go: revert lint in noop as per request
-
- 25 Aug, 2017 1 commit
-
-
Péter Szilágyi authored
-
- 05 Jan, 2017 1 commit
-
-
Jeffrey Wilcke authored
The run loop, which previously contained custom opcode executes have been removed and has been simplified to a few checks. Each operation consists of 4 elements: execution function, gas cost function, stack validation function and memory size function. The execution function implements the operation's runtime behaviour, the gas cost function implements the operation gas costs function and greatly depends on the memory and stack, the stack validation function validates the stack and makes sure that enough items can be popped off and pushed on and the memory size function calculates the memory required for the operation and returns it. This commit also allows the EVM to go unmetered. This is helpful for offline operations such as contract calls.
-
- 06 Dec, 2016 1 commit
-
-
Jeffrey Wilcke authored
Environment is now a struct (not an interface). This reduces a lot of tech-debt throughout the codebase where a virtual machine environment had to be implemented in order to test or run it. The new environment is suitable to be used en the json tests, core consensus and light client.
-
- 30 Sep, 2016 1 commit
-
-
Yoichi Hirai authored
that specifies the maximum number of elements in the `structLogs` output. This option is useful for debugging a transaction that involves a large number of repetition. For example, ``` debug.traceTransaction(tx, {disableStorage: true, limit: 2}) ``` shows at most the first two steps in the `structLogs`.
-
- 18 Feb, 2016 1 commit
-
-
Gustav Simonsson authored
* change gas cost for contract creating txs * invalidate signature with s value greater than secp256k1 N / 2 * OOG contract creation if not enough gas to store code * new difficulty adjustment algorithm * new DELEGATECALL op code
-
- 10 Sep, 2015 1 commit
-
-
Gustav Simonsson authored
-
- 23 Jul, 2015 1 commit
-
-
Felix Lange authored
I forgot to update one instance of "go-ethereum" in commit 3f047be5.
-
- 22 Jul, 2015 1 commit
-
-
Felix Lange authored
All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library".
-
- 07 Jul, 2015 1 commit
-
-
Felix Lange authored
-
- 06 Jul, 2015 1 commit
-
-
Jeffrey Wilcke authored
Removed VM errors from the consensus errors. They now used for output only.
-
- 04 Jul, 2015 1 commit
-
-
Gustav Simonsson authored
-
- 12 Jun, 2015 1 commit
-
-
obscuren authored
-
- 02 Apr, 2015 1 commit
-
-
Gustav Simonsson authored
* Add params package with exported variables generated from github.com/ethereum/common/blob/master/params.json * Use params package variables in applicable places * Add check for minimum gas limit in validation of block's gas limit * Remove common/params.json from go-ethereum to avoid outdated version of it
-
- 23 Mar, 2015 1 commit
-
-
obscuren authored
-
- 23 Oct, 2014 1 commit
-
-
obscuren authored
-