aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-06-29 16:44:51 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-06-29 16:44:51 +0800
commit6362a9d6102b26e926b3e73563267fc75cb30f9c (patch)
tree56ce21d1aaf6df3908335601a687f0f3ac4a50be /core/vm
parentd55fc35df1ca4996048625421d4c475a437d273e (diff)
downloaddexon-6362a9d6102b26e926b3e73563267fc75cb30f9c.tar
dexon-6362a9d6102b26e926b3e73563267fc75cb30f9c.tar.gz
dexon-6362a9d6102b26e926b3e73563267fc75cb30f9c.tar.bz2
dexon-6362a9d6102b26e926b3e73563267fc75cb30f9c.tar.lz
dexon-6362a9d6102b26e926b3e73563267fc75cb30f9c.tar.xz
dexon-6362a9d6102b26e926b3e73563267fc75cb30f9c.tar.zst
dexon-6362a9d6102b26e926b3e73563267fc75cb30f9c.zip
Revert "test, cmd/evm, core, core/vm: illegal code hash implementation"
This reverts commit 7a5b571c671e70e0e4807cf971c15e2d1e09d33d.
Diffstat (limited to 'core/vm')
-rw-r--r--core/vm/environment.go3
-rw-r--r--core/vm/jit_test.go9
-rw-r--r--core/vm/runtime/env.go26
-rw-r--r--core/vm/runtime/runtime.go23
4 files changed, 26 insertions, 35 deletions
diff --git a/core/vm/environment.go b/core/vm/environment.go
index 37817be9e..747627565 100644
--- a/core/vm/environment.go
+++ b/core/vm/environment.go
@@ -73,8 +73,6 @@ type Environment interface {
DelegateCall(me ContractRef, addr common.Address, data []byte, gas, price *big.Int) ([]byte, error)
// Create a new contract
Create(me ContractRef, data []byte, gas, price, value *big.Int) ([]byte, common.Address, error)
- // Mark the code hash that was executed
- MarkCodeHash(hash common.Hash)
}
// Vm is the basic interface for an implementation of the EVM.
@@ -98,7 +96,6 @@ type Database interface {
GetCode(common.Address) []byte
SetCode(common.Address, []byte)
- GetCodeHash(common.Address) common.Hash
AddRefund(*big.Int)
GetRefund() *big.Int
diff --git a/core/vm/jit_test.go b/core/vm/jit_test.go
index a9ddd48a5..403c15a8d 100644
--- a/core/vm/jit_test.go
+++ b/core/vm/jit_test.go
@@ -175,11 +175,10 @@ func NewEnv(noJit, forceJit bool) *Env {
return env
}
-func (self *Env) MarkCodeHash(common.Hash) {}
-func (self *Env) RuleSet() RuleSet { return ruleSet{new(big.Int)} }
-func (self *Env) Vm() Vm { return self.evm }
-func (self *Env) Origin() common.Address { return common.Address{} }
-func (self *Env) BlockNumber() *big.Int { return big.NewInt(0) }
+func (self *Env) RuleSet() RuleSet { return ruleSet{new(big.Int)} }
+func (self *Env) Vm() Vm { return self.evm }
+func (self *Env) Origin() common.Address { return common.Address{} }
+func (self *Env) BlockNumber() *big.Int { return big.NewInt(0) }
func (self *Env) AddStructLog(log StructLog) {
}
func (self *Env) StructLogs() []StructLog {
diff --git a/core/vm/runtime/env.go b/core/vm/runtime/env.go
index c510be759..d8c98e545 100644
--- a/core/vm/runtime/env.go
+++ b/core/vm/runtime/env.go
@@ -27,10 +27,9 @@ import (
// Env is a basic runtime environment required for running the EVM.
type Env struct {
- ruleSet vm.RuleSet
- depth int
- state *state.StateDB
- illegalHashes []common.Hash
+ ruleSet vm.RuleSet
+ depth int
+ state *state.StateDB
origin common.Address
coinbase common.Address
@@ -50,15 +49,14 @@ type Env struct {
// NewEnv returns a new vm.Environment
func NewEnv(cfg *Config, state *state.StateDB) vm.Environment {
env := &Env{
- 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,
+ ruleSet: cfg.RuleSet,
+ 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,
@@ -81,8 +79,6 @@ 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 }
diff --git a/core/vm/runtime/runtime.go b/core/vm/runtime/runtime.go
index 9b75fcaad..309d508c3 100644
--- a/core/vm/runtime/runtime.go
+++ b/core/vm/runtime/runtime.go
@@ -35,18 +35,17 @@ func (ruleSet) IsHomestead(*big.Int) bool { return true }
// Config is a basic type specifying certain configuration flags for running
// the EVM.
type Config struct {
- RuleSet vm.RuleSet
- Difficulty *big.Int
- Origin common.Address
- Coinbase common.Address
- BlockNumber *big.Int
- Time *big.Int
- GasLimit *big.Int
- GasPrice *big.Int
- Value *big.Int
- DisableJit bool // "disable" so it's enabled by default
- Debug bool
- illegalHashes []common.Hash
+ RuleSet vm.RuleSet
+ Difficulty *big.Int
+ Origin common.Address
+ Coinbase common.Address
+ BlockNumber *big.Int
+ Time *big.Int
+ GasLimit *big.Int
+ GasPrice *big.Int
+ Value *big.Int
+ DisableJit bool // "disable" so it's enabled by default
+ Debug bool
State *state.StateDB
GetHashFn func(n uint64) common.Hash