diff options
author | obscuren <geffobscura@gmail.com> | 2014-10-28 20:26:30 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-10-28 20:26:30 +0800 |
commit | 48125a25eb9f4ece2613559ced5075bde1c75c7a (patch) | |
tree | 17d6e70c3d34f8ddb31e8a4d4e7c23086b38eec6 /vm | |
parent | 7849b7e97873ea443b480f45aa4fe6ffbb41cdb0 (diff) | |
download | dexon-48125a25eb9f4ece2613559ced5075bde1c75c7a.tar dexon-48125a25eb9f4ece2613559ced5075bde1c75c7a.tar.gz dexon-48125a25eb9f4ece2613559ced5075bde1c75c7a.tar.bz2 dexon-48125a25eb9f4ece2613559ced5075bde1c75c7a.tar.lz dexon-48125a25eb9f4ece2613559ced5075bde1c75c7a.tar.xz dexon-48125a25eb9f4ece2613559ced5075bde1c75c7a.tar.zst dexon-48125a25eb9f4ece2613559ced5075bde1c75c7a.zip |
Added missing requires on SSTORE SLOAD
Diffstat (limited to 'vm')
-rw-r--r-- | vm/common.go | 23 | ||||
-rw-r--r-- | vm/vm_debug.go | 6 |
2 files changed, 17 insertions, 12 deletions
diff --git a/vm/common.go b/vm/common.go index c73744506..16a0b5523 100644 --- a/vm/common.go +++ b/vm/common.go @@ -19,17 +19,18 @@ const ( ) var ( - GasStep = big.NewInt(1) - GasSha = big.NewInt(20) - GasSLoad = big.NewInt(20) - GasSStore = big.NewInt(100) - GasBalance = big.NewInt(20) - GasCreate = big.NewInt(100) - GasCall = big.NewInt(20) - GasMemory = big.NewInt(1) - GasData = big.NewInt(5) - GasTx = big.NewInt(500) - GasLog = big.NewInt(32) + GasStep = big.NewInt(1) + GasSha = big.NewInt(20) + GasSLoad = big.NewInt(20) + GasSStore = big.NewInt(100) + GasSStoreRefund = big.NewInt(100) + GasBalance = big.NewInt(20) + GasCreate = big.NewInt(100) + GasCall = big.NewInt(20) + GasMemory = big.NewInt(1) + GasData = big.NewInt(5) + GasTx = big.NewInt(500) + GasLog = big.NewInt(32) Pow256 = ethutil.BigPow(2, 256) diff --git a/vm/vm_debug.go b/vm/vm_debug.go index d38373411..1e45813bc 100644 --- a/vm/vm_debug.go +++ b/vm/vm_debug.go @@ -169,9 +169,13 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) { gas.Set(ethutil.Big0) case SLOAD: + require(1) + gas.Set(GasSLoad) // Memory resize & Gas case SSTORE: + require(2) + var mult *big.Int y, x := stack.Peekn() val := closure.GetStorage(x) @@ -179,7 +183,7 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) { // 0 => non 0 mult = ethutil.Big3 } else if val.BigInt().Cmp(ethutil.Big0) != 0 && len(y.Bytes()) == 0 { - state.Refund(closure.caller.Address(), big.NewInt(100), closure.Price) + state.Refund(closure.caller.Address(), GasSStoreRefund, closure.Price) mult = ethutil.Big0 } else { |