Commit e7f83d08 authored by linj's avatar linj Committed by linj

fix calc Available withdraw

parent d576ed68
...@@ -81,7 +81,7 @@ func (a *action) UnfreezeWithdraw(withdraw *uf.UnfreezeWithdraw) (*types.Receipt ...@@ -81,7 +81,7 @@ func (a *action) UnfreezeWithdraw(withdraw *uf.UnfreezeWithdraw) (*types.Receipt
} }
var logs []*types.ReceiptLog var logs []*types.ReceiptLog
var kv []*types.KeyValue var kv []*types.KeyValue
reaTimes, available, err := getWithdrawAvailable(unfreeze) reaTimes, available, err := getWithdrawAvailable(unfreeze, a.blocktime)
if err != nil { if err != nil {
uflog.Error("unfreeze withdraw ", "execaddr", a.execaddr, "err", err) uflog.Error("unfreeze withdraw ", "execaddr", a.execaddr, "err", err)
return nil, err return nil, err
...@@ -193,8 +193,9 @@ func QueryUnfreezeWithdraw(stateDB dbm.KV, param *uf.QueryUnfreezeWithdraw) (typ ...@@ -193,8 +193,9 @@ func QueryUnfreezeWithdraw(stateDB dbm.KV, param *uf.QueryUnfreezeWithdraw) (typ
uflog.Error("QueryWithdraw ", "unfreezeID", unfreezeID, "err", err) uflog.Error("QueryWithdraw ", "unfreezeID", unfreezeID, "err", err)
return nil, err return nil, err
} }
currentTime := time.Now().Unix() // TODO
reply := &uf.ReplyQueryUnfreezeWithdraw{UnfreezeID: unfreezeID} reply := &uf.ReplyQueryUnfreezeWithdraw{UnfreezeID: unfreezeID}
_, available, err := getWithdrawAvailable(unfreeze) _, available, err := getWithdrawAvailable(unfreeze, currentTime)
if err != nil { if err != nil {
reply.AvailableAmount = 0 reply.AvailableAmount = 0
} else { } else {
...@@ -203,9 +204,8 @@ func QueryUnfreezeWithdraw(stateDB dbm.KV, param *uf.QueryUnfreezeWithdraw) (typ ...@@ -203,9 +204,8 @@ func QueryUnfreezeWithdraw(stateDB dbm.KV, param *uf.QueryUnfreezeWithdraw) (typ
return reply, nil return reply, nil
} }
func getWithdrawAvailable(unfreeze uf.Unfreeze) (int64, int64, error) { func getWithdrawAvailable(unfreeze uf.Unfreeze, calcTime int64) (int64, int64, error) {
currentTime := time.Now().Unix() expectTimes := (calcTime + unfreeze.Period - unfreeze.StartTime) / unfreeze.Period
expectTimes := (currentTime + unfreeze.Period - unfreeze.StartTime) / unfreeze.Period
reaTimes := expectTimes - int64(unfreeze.WithdrawTimes) reaTimes := expectTimes - int64(unfreeze.WithdrawTimes)
if reaTimes <= 0 { if reaTimes <= 0 {
return 0, 0, uf.ErrUnfreezeBeforeDue return 0, 0, uf.ErrUnfreezeBeforeDue
......
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