diff options
author | obscuren <geffobscura@gmail.com> | 2014-11-29 04:44:34 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-11-29 04:44:34 +0800 |
commit | 1bce02eff70db43b98d68fcd094fd2e15745b021 (patch) | |
tree | a69acb327b4f71d59b297ca778450c128dce85f8 /chain/state_transition.go | |
parent | 8cf9ed0ea588e97f2baf0f834248727e8fbca18f (diff) | |
parent | a3559c5e1b469890bb8d71e9992175febaae31c7 (diff) | |
download | dexon-1bce02eff70db43b98d68fcd094fd2e15745b021.tar dexon-1bce02eff70db43b98d68fcd094fd2e15745b021.tar.gz dexon-1bce02eff70db43b98d68fcd094fd2e15745b021.tar.bz2 dexon-1bce02eff70db43b98d68fcd094fd2e15745b021.tar.lz dexon-1bce02eff70db43b98d68fcd094fd2e15745b021.tar.xz dexon-1bce02eff70db43b98d68fcd094fd2e15745b021.tar.zst dexon-1bce02eff70db43b98d68fcd094fd2e15745b021.zip |
Fixed merge
Diffstat (limited to 'chain/state_transition.go')
-rw-r--r-- | chain/state_transition.go | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/chain/state_transition.go b/chain/state_transition.go index 789698675..53b1f6e2d 100644 --- a/chain/state_transition.go +++ b/chain/state_transition.go @@ -157,12 +157,24 @@ func (self *StateTransition) TransitionState() (err error) { } // Pay data gas - dataPrice := big.NewInt(int64(len(self.data))) - dataPrice.Mul(dataPrice, vm.GasData) - if err = self.UseGas(dataPrice); err != nil { + var dgas int64 + for _, byt := range self.data { + if byt != 0 { + dgas += vm.GasData.Int64() + } else { + dgas += 1 // This is 1/5. If GasData changes this fails + } + } + if err = self.UseGas(big.NewInt(dgas)); err != nil { return } + //dataPrice := big.NewInt(int64(len(self.data))) + //dataPrice.Mul(dataPrice, vm.GasData) + //if err = self.UseGas(dataPrice); err != nil { + // return + //} + if sender.Balance().Cmp(self.value) < 0 { return fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", self.value, sender.Balance) } |