diff options
author | obscuren <geffobscura@gmail.com> | 2015-02-27 01:39:05 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-02-27 03:08:35 +0800 |
commit | e235b57234a68a8a39cfe7691a1825d8c6bb3443 (patch) | |
tree | a9531d9e14c15abd72625a98a21a9b988dc32319 /vm | |
parent | a1c830cd3c53bce7748d97e3f99fe6a90d526adb (diff) | |
download | dexon-e235b57234a68a8a39cfe7691a1825d8c6bb3443.tar.gz dexon-e235b57234a68a8a39cfe7691a1825d8c6bb3443.tar.zst dexon-e235b57234a68a8a39cfe7691a1825d8c6bb3443.zip |
Fixed consensus issue for refunding
* Refund should _always_ go to the origin
Diffstat (limited to 'vm')
-rw-r--r-- | vm/vm.go | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -664,6 +664,7 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I } addr = ref.Address() + fmt.Printf("CREATE %X\n", addr) stack.Push(ethutil.BigD(addr)) } @@ -727,7 +728,7 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I self.Printf(" => (%x) %v", receiver.Address()[:4], balance) - receiver.AddAmount(balance) + receiver.AddBalance(balance) statedb.Delete(context.Address()) fallthrough @@ -828,7 +829,7 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo // 0 => non 0 mult = ethutil.Big3 } else if len(val) > 0 && len(y.Bytes()) == 0 { - statedb.Refund(caller.Address(), GasSStoreRefund) + statedb.Refund(self.env.Origin(), GasSStoreRefund) mult = ethutil.Big0 } else { |