aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/errors.go
Commit message (Collapse)AuthorAgeFilesLines
* core/vm: support for multiple interpreters (#17093)Guillaume Ballet2018-07-251-0/+1
| | | | | | - 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.
* core/vm: clear linter warnings (#17057)Guillaume Ballet2018-06-261-0/+1
| | | | | | | | * core/vm: clear linter warnings * core/vm: review input * core/vm.go: revert lint in noop as per request
* core, tests: implement Metropolis EIP 684Péter Szilágyi2017-08-251-5/+6
|
* core/vm: improved EVM run loop & instruction calling (#3378)Jeffrey Wilcke2017-01-051-10/+5
| | | | | | | | | | | | | | | 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.
* core, core/vm: implemented a generic environment (#3348)Jeffrey Wilcke2016-12-061-4/+7
| | | | | | | | 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.
* vm, ethapi: add `limit` option to traceTransactionYoichi Hirai2016-09-301-0/+1
| | | | | | | | | | | | 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`.
* parmas, crypto, core, core/vm: homestead consensus protocol changesGustav Simonsson2016-02-181-0/+1
| | | | | | | | * 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
* core, core/vm, core/state: remove unused functionsGustav Simonsson2015-09-111-17/+0
|
* all: fix license headers one more timeFelix Lange2015-07-241-1/+1
| | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-231-4/+4
| | | | | All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library".
* all: update license informationFelix Lange2015-07-071-0/+16
|
* core, miner: removed vm errors from consensus err checkingJeffrey Wilcke2015-07-061-1/+1
| | | | | Removed VM errors from the consensus errors. They now used for output only.
* Fix core error forwarding, unify OOG VM errGustav Simonsson2015-07-041-21/+3
|
* core/vm: Improved error reporting for trace loggingobscuren2015-06-121-9/+3
|
* Read most protocol params from common/params.jsonGustav Simonsson2015-04-021-1/+2
| | | | | | | | | * 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
* moved state and vm to coreobscuren2015-03-231-0/+51