diff options
author | Jeffrey Wilcke <geffobscura@gmail.com> | 2016-06-18 17:17:57 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2016-06-22 16:38:25 +0800 |
commit | 7a5b571c671e70e0e4807cf971c15e2d1e09d33d (patch) | |
tree | 4ae6b6e4be80171e26aab26b88124cd87a3c53d4 /core/vm/runtime/env.go | |
parent | 599e3c7b3f22b157c4f643a48d391cf972384099 (diff) | |
download | go-tangerine-7a5b571c671e70e0e4807cf971c15e2d1e09d33d.tar.gz go-tangerine-7a5b571c671e70e0e4807cf971c15e2d1e09d33d.tar.zst go-tangerine-7a5b571c671e70e0e4807cf971c15e2d1e09d33d.zip |
test, cmd/evm, core, core/vm: illegal code hash implementation
This implements a generic approach to enabling soft forks by allowing
anyone to put in hashes of contracts that should not be interacted from.
This will help "The DAO" in their endevour to stop any whithdrawals from
any DAO contract by convincing the mining community to accept their code
hash.
Diffstat (limited to 'core/vm/runtime/env.go')
-rw-r--r-- | core/vm/runtime/env.go | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/core/vm/runtime/env.go b/core/vm/runtime/env.go index d8c98e545..c510be759 100644 --- a/core/vm/runtime/env.go +++ b/core/vm/runtime/env.go @@ -27,9 +27,10 @@ import ( // Env is a basic runtime environment required for running the EVM. type Env struct { - ruleSet vm.RuleSet - depth int - state *state.StateDB + ruleSet vm.RuleSet + depth int + state *state.StateDB + illegalHashes []common.Hash origin common.Address coinbase common.Address @@ -49,14 +50,15 @@ type Env struct { // NewEnv returns a new vm.Environment func NewEnv(cfg *Config, state *state.StateDB) vm.Environment { env := &Env{ - ruleSet: cfg.RuleSet, - state: state, - origin: cfg.Origin, - coinbase: cfg.Coinbase, - number: cfg.BlockNumber, - time: cfg.Time, - difficulty: cfg.Difficulty, - gasLimit: cfg.GasLimit, + ruleSet: cfg.RuleSet, + illegalHashes: cfg.illegalHashes, + state: state, + origin: cfg.Origin, + coinbase: cfg.Coinbase, + number: cfg.BlockNumber, + time: cfg.Time, + difficulty: cfg.Difficulty, + gasLimit: cfg.GasLimit, } env.evm = vm.New(env, vm.Config{ Debug: cfg.Debug, @@ -79,6 +81,8 @@ func (self *Env) AddStructLog(log vm.StructLog) { self.logs = append(self.logs, log) } +func (self *Env) MarkCodeHash(hash common.Hash) {} + func (self *Env) RuleSet() vm.RuleSet { return self.ruleSet } func (self *Env) Vm() vm.Vm { return self.evm } func (self *Env) Origin() common.Address { return self.origin } |