Commit 48125a25 authored by obscuren's avatar obscuren

Added missing requires on SSTORE SLOAD

parent 7849b7e9
...@@ -23,6 +23,7 @@ var ( ...@@ -23,6 +23,7 @@ var (
GasSha = big.NewInt(20) GasSha = big.NewInt(20)
GasSLoad = big.NewInt(20) GasSLoad = big.NewInt(20)
GasSStore = big.NewInt(100) GasSStore = big.NewInt(100)
GasSStoreRefund = big.NewInt(100)
GasBalance = big.NewInt(20) GasBalance = big.NewInt(20)
GasCreate = big.NewInt(100) GasCreate = big.NewInt(100)
GasCall = big.NewInt(20) GasCall = big.NewInt(20)
......
...@@ -169,9 +169,13 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) { ...@@ -169,9 +169,13 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) {
gas.Set(ethutil.Big0) gas.Set(ethutil.Big0)
case SLOAD: case SLOAD:
require(1)
gas.Set(GasSLoad) gas.Set(GasSLoad)
// Memory resize & Gas // Memory resize & Gas
case SSTORE: case SSTORE:
require(2)
var mult *big.Int var mult *big.Int
y, x := stack.Peekn() y, x := stack.Peekn()
val := closure.GetStorage(x) val := closure.GetStorage(x)
...@@ -179,7 +183,7 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) { ...@@ -179,7 +183,7 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) {
// 0 => non 0 // 0 => non 0
mult = ethutil.Big3 mult = ethutil.Big3
} else if val.BigInt().Cmp(ethutil.Big0) != 0 && len(y.Bytes()) == 0 { } 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 mult = ethutil.Big0
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment