diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-04-01 19:42:19 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-04-01 19:42:19 +0800 |
commit | c58079461bafe508bea9233e2b81852df5188f57 (patch) | |
tree | 33d4c6a96eed3bf1ce9f69bbef3cbc1561f2b114 /core/vm/vm.go | |
parent | 10d3466c934bd425a8c941270749a652a588527d (diff) | |
parent | 1f3596c25af077a3303c554ee6b49404b20f7117 (diff) | |
download | dexon-c58079461bafe508bea9233e2b81852df5188f57.tar dexon-c58079461bafe508bea9233e2b81852df5188f57.tar.gz dexon-c58079461bafe508bea9233e2b81852df5188f57.tar.bz2 dexon-c58079461bafe508bea9233e2b81852df5188f57.tar.lz dexon-c58079461bafe508bea9233e2b81852df5188f57.tar.xz dexon-c58079461bafe508bea9233e2b81852df5188f57.tar.zst dexon-c58079461bafe508bea9233e2b81852df5188f57.zip |
Merge pull request #2281 from obscuren/configurable-genesis
core: homestead chain configuration & artificial gas floor target mining flag
Diffstat (limited to 'core/vm/vm.go')
-rw-r--r-- | core/vm/vm.go | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/core/vm/vm.go b/core/vm/vm.go index f72c853a2..0f93715d6 100644 --- a/core/vm/vm.go +++ b/core/vm/vm.go @@ -43,18 +43,13 @@ type Config struct { type EVM struct { env Environment jumpTable vmJumpTable - cfg *Config + cfg Config logger *Logger } // New returns a new instance of the EVM. -func New(env Environment, cfg *Config) *EVM { - // initialise a default config if none is present - if cfg == nil { - cfg = new(Config) - } - +func New(env Environment, cfg Config) *EVM { var logger *Logger if cfg.Debug { logger = newLogger(cfg.Logger, env) @@ -62,7 +57,7 @@ func New(env Environment, cfg *Config) *EVM { return &EVM{ env: env, - jumpTable: newJumpTable(env.BlockNumber()), + jumpTable: newJumpTable(env.RuleSet(), env.BlockNumber()), cfg: cfg, logger: logger, } @@ -154,7 +149,7 @@ func (evm *EVM) Run(contract *Contract, input []byte) (ret []byte, err error) { // User defer pattern to check for an error and, based on the error being nil or not, use all gas and return. defer func() { if err != nil && evm.cfg.Debug { - evm.logger.captureState(pc, op, contract.Gas, cost, mem, stack, contract, err) + evm.logger.captureState(pc, op, contract.Gas, cost, mem, stack, contract, evm.env.Depth(), err) } }() @@ -196,7 +191,7 @@ func (evm *EVM) Run(contract *Contract, input []byte) (ret []byte, err error) { mem.Resize(newMemSize.Uint64()) // Add a log message if evm.cfg.Debug { - evm.logger.captureState(pc, op, contract.Gas, cost, mem, stack, contract, nil) + evm.logger.captureState(pc, op, contract.Gas, cost, mem, stack, contract, evm.env.Depth(), nil) } if opPtr := evm.jumpTable[op]; opPtr.valid { |