|
@@ -171,57 +171,60 @@ func confirmClaimedTxs() {
|
|
}
|
|
}
|
|
for _, t := range txs {
|
|
for _, t := range txs {
|
|
go func(tx models.ClaimedTxs) {
|
|
go func(tx models.ClaimedTxs) {
|
|
|
|
+ interval := 0
|
|
for {
|
|
for {
|
|
time.Sleep(time.Second * 5)
|
|
time.Sleep(time.Second * 5)
|
|
- if mark > (CONFIRMINTERVAL / 5) {
|
|
|
|
|
|
+ if interval > (CONFIRMINTERVAL / 5) {
|
|
var ui models.UserInfo
|
|
var ui models.UserInfo
|
|
_, err := dbUtil.Engine.Id(tx.Hash).Get(&ui)
|
|
_, err := dbUtil.Engine.Id(tx.Hash).Get(&ui)
|
|
if err != nil {
|
|
if err != nil {
|
|
- break
|
|
|
|
|
|
+ mark = tx.Id - 1
|
|
|
|
+ return
|
|
}
|
|
}
|
|
ui.AvailableClaim += tx.Amount
|
|
ui.AvailableClaim += tx.Amount
|
|
ui.TotalClaimed -= tx.Amount
|
|
ui.TotalClaimed -= tx.Amount
|
|
_, err = dbUtil.Engine.ID(tx.Addr).Cols("total_claimed,available_claim").Update(&ui)
|
|
_, err = dbUtil.Engine.ID(tx.Addr).Cols("total_claimed,available_claim").Update(&ui)
|
|
if err != nil {
|
|
if err != nil {
|
|
- break
|
|
|
|
|
|
+ mark = tx.Id - 1
|
|
|
|
+ return
|
|
}
|
|
}
|
|
|
|
|
|
tx.Droped = 1
|
|
tx.Droped = 1
|
|
_, err = dbUtil.Engine.ID(tx.Hash).Cols("droped").Update(&tx)
|
|
_, err = dbUtil.Engine.ID(tx.Hash).Cols("droped").Update(&tx)
|
|
if err != nil {
|
|
if err != nil {
|
|
- break
|
|
|
|
|
|
+ mark = tx.Id - 1
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- break
|
|
|
|
|
|
+ return
|
|
}
|
|
}
|
|
ptx, err := ktoClient.GetTxByHash(context.Background(), &pb.ReqTxByHash{Hash: tx.Hash})
|
|
ptx, err := ktoClient.GetTxByHash(context.Background(), &pb.ReqTxByHash{Hash: tx.Hash})
|
|
if err != nil {
|
|
if err != nil {
|
|
- mark++
|
|
|
|
|
|
+ interval++
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
if ptx.Code != 0 {
|
|
if ptx.Code != 0 {
|
|
- mark++
|
|
|
|
|
|
+ interval++
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
ftx, err := transaction.DeserializeFinishedTransaction(ptx.Data)
|
|
ftx, err := transaction.DeserializeFinishedTransaction(ptx.Data)
|
|
if err != nil {
|
|
if err != nil {
|
|
- mark++
|
|
|
|
|
|
+ interval++
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
//pending tx
|
|
//pending tx
|
|
if ftx.BlockNum == 0 {
|
|
if ftx.BlockNum == 0 {
|
|
- mark++
|
|
|
|
|
|
+ interval++
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
|
|
|
|
tx.State = 1
|
|
tx.State = 1
|
|
- _, err = dbUtil.Engine.ID(tx.Hash).Cols("droped").Update(&tx)
|
|
|
|
|
|
+ _, err = dbUtil.Engine.ID(tx.Hash).Cols("state").Update(&tx)
|
|
if err != nil {
|
|
if err != nil {
|
|
- break
|
|
|
|
|
|
+ mark = tx.Id - 1
|
|
}
|
|
}
|
|
|
|
+ return
|
|
}
|
|
}
|
|
}(t)
|
|
}(t)
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|