diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-03-24 06:20:51 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-03-24 06:20:51 +0800 |
commit | 75c86f8646ed6a21116d6c5f5e400dd966bb218d (patch) | |
tree | 6c979fd121e7721328b9502f1855387b602dcd87 /core/vm/runtime/env.go | |
parent | 9866f19d6af607f629be311cb1c879e8f6472773 (diff) | |
parent | 0cfa21fc7f34d9da93abc41541dd4a98d70eb9dd (diff) | |
download | go-tangerine-75c86f8646ed6a21116d6c5f5e400dd966bb218d.tar go-tangerine-75c86f8646ed6a21116d6c5f5e400dd966bb218d.tar.gz go-tangerine-75c86f8646ed6a21116d6c5f5e400dd966bb218d.tar.bz2 go-tangerine-75c86f8646ed6a21116d6c5f5e400dd966bb218d.tar.lz go-tangerine-75c86f8646ed6a21116d6c5f5e400dd966bb218d.tar.xz go-tangerine-75c86f8646ed6a21116d6c5f5e400dd966bb218d.tar.zst go-tangerine-75c86f8646ed6a21116d6c5f5e400dd966bb218d.zip |
Merge pull request #2141 from obscuren/evm-init
core, core/vm, tests: changed the initialisation behaviour of the EVM
Diffstat (limited to 'core/vm/runtime/env.go')
-rw-r--r-- | core/vm/runtime/env.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/core/vm/runtime/env.go b/core/vm/runtime/env.go index 77519df81..ce64d7117 100644 --- a/core/vm/runtime/env.go +++ b/core/vm/runtime/env.go @@ -41,11 +41,13 @@ type Env struct { logs []vm.StructLog getHashFn func(uint64) common.Hash + + evm *vm.EVM } // NewEnv returns a new vm.Environment func NewEnv(cfg *Config, state *state.StateDB) vm.Environment { - return &Env{ + env := &Env{ state: state, origin: cfg.Origin, coinbase: cfg.Coinbase, @@ -54,6 +56,17 @@ func NewEnv(cfg *Config, state *state.StateDB) vm.Environment { difficulty: cfg.Difficulty, gasLimit: cfg.GasLimit, } + env.evm = vm.New(env, &vm.Config{ + Debug: cfg.Debug, + EnableJit: !cfg.DisableJit, + ForceJit: !cfg.DisableJit, + + Logger: vm.LogConfig{ + Collector: env, + }, + }) + + return env } func (self *Env) StructLogs() []vm.StructLog { @@ -64,6 +77,7 @@ func (self *Env) AddStructLog(log vm.StructLog) { self.logs = append(self.logs, log) } +func (self *Env) Vm() vm.Vm { return self.evm } func (self *Env) Origin() common.Address { return self.origin } func (self *Env) BlockNumber() *big.Int { return self.number } func (self *Env) Coinbase() common.Address { return self.coinbase } |