Commit 0d1099a0 authored by linj's avatar linj Committed by linj

can build ; add TODO

parent cc5ede4c
...@@ -33,7 +33,7 @@ func newAction(u *Unfreeze, tx *types.Transaction, index int32) *action { ...@@ -33,7 +33,7 @@ func newAction(u *Unfreeze, tx *types.Transaction, index int32) *action {
func (a *action) UnfreezeCreate(create *uf.UnfreezeCreate) (*types.Receipt, error) { func (a *action) UnfreezeCreate(create *uf.UnfreezeCreate) (*types.Receipt, error) {
//构造ID - txHash //构造ID - txHash
var unfreezeID string = "unfreezeID_" + common.ToHex(a.txhash) var unfreezeID string = "unfreezeID_" + common.ToHex(a.txhash)
tokenAccDB, err := account.NewAccountDB("token", create.TokenName, a.db) tokenAccDB, err := account.NewAccountDB(create.AssetExec, create.AssetSymbol, a.db)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -49,14 +49,15 @@ func (a *action) UnfreezeCreate(create *uf.UnfreezeCreate) (*types.Receipt, erro ...@@ -49,14 +49,15 @@ func (a *action) UnfreezeCreate(create *uf.UnfreezeCreate) (*types.Receipt, erro
unfreeze := &uf.Unfreeze{ unfreeze := &uf.Unfreeze{
UnfreezeID: unfreezeID, UnfreezeID: unfreezeID,
StartTime: create.StartTime, StartTime: create.StartTime,
TokenName: create.TokenName, AssetExec: create.AssetExec,
AssetSymbol: create.AssetSymbol,
TotalCount: create.TotalCount, TotalCount: create.TotalCount,
Initiator: a.fromaddr, Initiator: a.fromaddr,
Beneficiary: create.Beneficiary, Beneficiary: create.Beneficiary,
Period: create.Period,
Means: create.Means, Means: create.Means,
Amount: create.Amount, // TODO set option
} }
a.saveStateDB(unfreeze) a.saveStateDB(unfreeze)
k := []byte(unfreezeID) k := []byte(unfreezeID)
v := types.Encode(unfreeze) v := types.Encode(unfreeze)
...@@ -81,13 +82,13 @@ func (a *action) UnfreezeWithdraw(withdraw *uf.UnfreezeWithdraw) (*types.Receipt ...@@ -81,13 +82,13 @@ 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, a.blocktime) _, 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
} }
tokenAccDB, err := account.NewAccountDB("token", unfreeze.TokenName, a.db) tokenAccDB, err := account.NewAccountDB(unfreeze.AssetExec, unfreeze.AssetSymbol, a.db)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -100,7 +101,7 @@ func (a *action) UnfreezeWithdraw(withdraw *uf.UnfreezeWithdraw) (*types.Receipt ...@@ -100,7 +101,7 @@ func (a *action) UnfreezeWithdraw(withdraw *uf.UnfreezeWithdraw) (*types.Receipt
logs = append(logs, receipt.Logs...) logs = append(logs, receipt.Logs...)
kv = append(kv, receipt.KV...) kv = append(kv, receipt.KV...)
unfreeze.WithdrawTimes += int32(reaTimes) //unfreeze.WithdrawTimes += int32(reaTimes)
unfreeze.Remaining -= available unfreeze.Remaining -= available
a.saveStateDB(&unfreeze) a.saveStateDB(&unfreeze)
receiptLog := a.getUnfreezeLog(&unfreeze) receiptLog := a.getUnfreezeLog(&unfreeze)
...@@ -132,7 +133,7 @@ func (a *action) UnfreezeTerminate(terminate *uf.UnfreezeTerminate) (*types.Rece ...@@ -132,7 +133,7 @@ func (a *action) UnfreezeTerminate(terminate *uf.UnfreezeTerminate) (*types.Rece
uflog.Error("unfreeze terminate ", "execaddr", a.execaddr, "err", uf.ErrUnfreezeEmptied) uflog.Error("unfreeze terminate ", "execaddr", a.execaddr, "err", uf.ErrUnfreezeEmptied)
return nil, uf.ErrUnfreezeEmptied return nil, uf.ErrUnfreezeEmptied
} }
tokenAccDB, err := account.NewAccountDB("token", unfreeze.TokenName, a.db) tokenAccDB, err := account.NewAccountDB(unfreeze.AssetExec, unfreeze.AssetSymbol, a.db)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -172,7 +173,7 @@ func (a *action) getUnfreezeLog(unfreeze *uf.Unfreeze) *types.ReceiptLog { ...@@ -172,7 +173,7 @@ func (a *action) getUnfreezeLog(unfreeze *uf.Unfreeze) *types.ReceiptLog {
r.UnfreezeID = unfreeze.UnfreezeID r.UnfreezeID = unfreeze.UnfreezeID
r.Initiator = unfreeze.Initiator r.Initiator = unfreeze.Initiator
r.Beneficiary = unfreeze.Beneficiary r.Beneficiary = unfreeze.Beneficiary
r.TokenName = unfreeze.TokenName r.TokenName = unfreeze.AssetSymbol // TODO exec
log.Log = types.Encode(r) log.Log = types.Encode(r)
return log return log
} }
...@@ -205,6 +206,8 @@ func QueryUnfreezeWithdraw(stateDB dbm.KV, param *uf.QueryUnfreezeWithdraw) (typ ...@@ -205,6 +206,8 @@ func QueryUnfreezeWithdraw(stateDB dbm.KV, param *uf.QueryUnfreezeWithdraw) (typ
} }
func getWithdrawAvailable(unfreeze uf.Unfreeze, calcTime int64) (int64, int64, error) { func getWithdrawAvailable(unfreeze uf.Unfreeze, calcTime int64) (int64, int64, error) {
return 1, 1, nil // TODO impl
/*
expectTimes := (calcTime + unfreeze.Period - unfreeze.StartTime) / unfreeze.Period expectTimes := (calcTime + unfreeze.Period - unfreeze.StartTime) / unfreeze.Period
reaTimes := expectTimes - int64(unfreeze.WithdrawTimes) reaTimes := expectTimes - int64(unfreeze.WithdrawTimes)
if reaTimes <= 0 { if reaTimes <= 0 {
...@@ -237,4 +240,5 @@ func getWithdrawAvailable(unfreeze uf.Unfreeze, calcTime int64) (int64, int64, e ...@@ -237,4 +240,5 @@ func getWithdrawAvailable(unfreeze uf.Unfreeze, calcTime int64) (int64, int64, e
return 0, 0, uf.ErrUnfreezeMeans return 0, 0, uf.ErrUnfreezeMeans
} }
return reaTimes, available, nil return reaTimes, available, nil
*/
} }
...@@ -95,18 +95,13 @@ func CreateUnfreezeCreateTx(parm *UnfreezeCreate) (*types.Transaction, error) { ...@@ -95,18 +95,13 @@ func CreateUnfreezeCreateTx(parm *UnfreezeCreate) (*types.Transaction, error) {
tlog.Error("CreateUnfreezeCreateTx", "parm", parm) tlog.Error("CreateUnfreezeCreateTx", "parm", parm)
return nil, types.ErrInvalidParam return nil, types.ErrInvalidParam
} }
v := &UnfreezeCreate{ if parm.AssetExec == "" || parm.AssetSymbol == "" || parm.TotalCount <= 0 || parm.Means == "" {
StartTime: parm.StartTime, tlog.Error("CreateUnfreezeCreateTx", "parm", parm)
TokenName: parm.TokenName, return nil, types.ErrInvalidParam
TotalCount: parm.TotalCount,
Beneficiary: parm.Beneficiary,
Period: parm.Period,
Means: parm.Means,
Amount: parm.Amount,
} }
create := &UnfreezeAction{ create := &UnfreezeAction{
Ty: UnfreezeActionCreate, Ty: UnfreezeActionCreate,
Value: &UnfreezeAction_Create{v}, Value: &UnfreezeAction_Create{parm},
} }
tx := &types.Transaction{ tx := &types.Transaction{
Execer: []byte(getRealExecName(types.GetParaName())), Execer: []byte(getRealExecName(types.GetParaName())),
......
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