Fixed refund model

This commit is contained in:
obscuren
2014-12-18 22:38:51 +01:00
parent f7287c626e
commit 3325683794
3 changed files with 18 additions and 17 deletions

View File

@ -213,12 +213,10 @@ func MakeContract(msg Message, state *state.StateDB) *state.StateObject {
func (self *StateTransition) RefundGas() {
coinbaseSub := new(big.Int).Set(self.gas)
uhalf := new(big.Int).Div(self.GasUsed(), ethutil.Big2)
for addr, refs := range self.state.Refunds() {
for _, ref := range refs {
coinbaseSub.Add(self.gas, ref)
refund := ethutil.BigMin(uhalf, ref)
self.state.AddBalance([]byte(addr), refund.Mul(refund, self.msg.GasPrice()))
}
for addr, ref := range self.state.Refunds() {
refund := ethutil.BigMin(uhalf, ref)
coinbaseSub.Add(self.gas, refund)
self.state.AddBalance([]byte(addr), refund.Mul(refund, self.msg.GasPrice()))
}
coinbase, sender := self.Coinbase(), self.From()