Commit 003668ec authored by linj's avatar linj Committed by linj

update query

parent 69245823
package executor
import (
"time"
dbm "gitlab.33.cn/chain33/chain33/common/db"
pty "gitlab.33.cn/chain33/chain33/plugin/dapp/unfreeze/types"
"gitlab.33.cn/chain33/chain33/types"
)
//查询可提币状态
func QueryUnfreezeWithdraw(stateDB dbm.KV, param *pty.QueryUnfreezeWithdraw) (types.Message, error) {
//查询提币次数
//计算当前可否提币
unfreezeID := param.UnfreezeID
value, err := stateDB.Get([]byte(unfreezeID))
if err != nil {
uflog.Error("QueryWithdraw ", "unfreezeID", unfreezeID, "err", err)
return nil, err
}
var unfreeze pty.Unfreeze
err = types.Decode(value, &unfreeze)
if err != nil {
uflog.Error("QueryWithdraw ", "unfreezeID", unfreezeID, "err", err)
return nil, err
}
currentTime := time.Now().Unix()
reply := &pty.ReplyQueryUnfreezeWithdraw{UnfreezeID: unfreezeID}
available, err := getWithdrawAvailable(&unfreeze, currentTime)
if err != nil {
reply.AvailableAmount = 0
} else {
reply.AvailableAmount = available
}
return reply, nil
}
func getWithdrawAvailable(unfreeze *pty.Unfreeze, calcTime int64) (int64, error) {
means, err := newMeans(unfreeze.Means)
if err != nil {
return 0, err
}
frozen, err := means.calcFrozen(unfreeze, calcTime)
if err != nil {
return 0, err
}
_, amount := withdraw(unfreeze, frozen)
return amount, nil
}
package executor
import (
uf "gitlab.33.cn/chain33/chain33/plugin/dapp/unfreeze/types"
"time"
dbm "gitlab.33.cn/chain33/chain33/common/db"
pty "gitlab.33.cn/chain33/chain33/plugin/dapp/unfreeze/types"
"gitlab.33.cn/chain33/chain33/types"
)
func (u *Unfreeze) Query_QueryUnfreezeWithdraw(in *uf.QueryUnfreezeWithdraw) (types.Message, error) {
func (u *Unfreeze) Query_QueryUnfreezeWithdraw(in *pty.QueryUnfreezeWithdraw) (types.Message, error) {
return QueryUnfreezeWithdraw(u.GetStateDB(), in)
}
//查询可提币状态
func QueryUnfreezeWithdraw(stateDB dbm.KV, param *pty.QueryUnfreezeWithdraw) (types.Message, error) {
//查询提币次数
//计算当前可否提币
unfreezeID := param.UnfreezeID
value, err := stateDB.Get([]byte(unfreezeID))
if err != nil {
uflog.Error("QueryWithdraw ", "unfreezeID", unfreezeID, "err", err)
return nil, err
}
var unfreeze pty.Unfreeze
err = types.Decode(value, &unfreeze)
if err != nil {
uflog.Error("QueryWithdraw ", "unfreezeID", unfreezeID, "err", err)
return nil, err
}
currentTime := time.Now().Unix()
reply := &pty.ReplyQueryUnfreezeWithdraw{UnfreezeID: unfreezeID}
available, err := getWithdrawAvailable(&unfreeze, currentTime)
if err != nil {
return nil, err
}
reply.AvailableAmount = available
return reply, nil
}
func getWithdrawAvailable(unfreeze *pty.Unfreeze, calcTime int64) (int64, error) {
means, err := newMeans(unfreeze.Means)
if err != nil {
return 0, err
}
frozen, err := means.calcFrozen(unfreeze, calcTime)
if err != nil {
return 0, err
}
_, amount := withdraw(unfreeze, frozen)
return amount, nil
}
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