|
@@ -24,7 +24,7 @@ import (
|
|
)
|
|
)
|
|
|
|
|
|
var ktoClient pb.GreeterClient
|
|
var ktoClient pb.GreeterClient
|
|
-var ktoRpc = beego.AppConfig.String("hostHttp_mit_kto")
|
|
|
|
|
|
+var ktoRpc = beego.AppConfig.String("miner_node")
|
|
var currentBlock uint64
|
|
var currentBlock uint64
|
|
|
|
|
|
var TopsMap map[string]string
|
|
var TopsMap map[string]string
|
|
@@ -32,21 +32,22 @@ var TopsMap map[string]string
|
|
func init() {
|
|
func init() {
|
|
kc, err := grpc.Dial(ktoRpc, grpc.WithInsecure(), grpc.WithBlock())
|
|
kc, err := grpc.Dial(ktoRpc, grpc.WithInsecure(), grpc.WithBlock())
|
|
if err != nil {
|
|
if err != nil {
|
|
- logs.Info(err)
|
|
|
|
|
|
+ logs.Error(err)
|
|
os.Exit(1)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
ktoClient = pb.NewGreeterClient(kc)
|
|
ktoClient = pb.NewGreeterClient(kc)
|
|
utilAddress.SetNetWork("mainnet")
|
|
utilAddress.SetNetWork("mainnet")
|
|
|
|
|
|
tm := make(map[string]string, 0)
|
|
tm := make(map[string]string, 0)
|
|
- tm[TopicParticipate] = COLLECT_PARTICIPATE
|
|
|
|
|
|
+ tm[TOPIC_PARTICIPATE] = COLLECT_PARTICIPATE
|
|
TopsMap = tm
|
|
TopsMap = tm
|
|
|
|
|
|
go scanBlock()
|
|
go scanBlock()
|
|
- go confirmClaimedTxs()
|
|
|
|
|
|
+ //go confirmClaimedTxs()
|
|
}
|
|
}
|
|
|
|
|
|
func scanBlock() {
|
|
func scanBlock() {
|
|
|
|
+ logs.Info("scanBlock...")
|
|
var bi models.BlockInfo
|
|
var bi models.BlockInfo
|
|
ok, err := dbUtil.Engine.Id(1).Get(&bi)
|
|
ok, err := dbUtil.Engine.Id(1).Get(&bi)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -61,9 +62,10 @@ func scanBlock() {
|
|
//currentBlock =62203394
|
|
//currentBlock =62203394
|
|
for {
|
|
for {
|
|
time.Sleep(time.Second * 3)
|
|
time.Sleep(time.Second * 3)
|
|
|
|
+ logs.Info("currentBlock...", currentBlock)
|
|
res, err := ktoClient.GetMaxBlockHeight(context.Background(), &pb.ReqMaxBlockHeight{})
|
|
res, err := ktoClient.GetMaxBlockHeight(context.Background(), &pb.ReqMaxBlockHeight{})
|
|
if err != nil {
|
|
if err != nil {
|
|
- fmt.Println("获取交易block number错误=", err)
|
|
|
|
|
|
+ logs.Error("获取交易block number错误=", err)
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
if res.MaxHeight < currentBlock {
|
|
if res.MaxHeight < currentBlock {
|
|
@@ -72,18 +74,22 @@ func scanBlock() {
|
|
|
|
|
|
bl, err := ktoClient.GetBlockByNum(context.Background(), &pb.ReqBlockByNumber{Height: currentBlock})
|
|
bl, err := ktoClient.GetBlockByNum(context.Background(), &pb.ReqBlockByNumber{Height: currentBlock})
|
|
if err != nil || bl.Code != 0 {
|
|
if err != nil || bl.Code != 0 {
|
|
- fmt.Println("获取交易block错误=", err)
|
|
|
|
|
|
+ logs.Error("获取交易block错误=", err)
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
blc, errs := block.Deserialize(bl.Data)
|
|
blc, errs := block.Deserialize(bl.Data)
|
|
if errs != nil {
|
|
if errs != nil {
|
|
- fmt.Println("解析blcock错误=", errs)
|
|
|
|
|
|
+ logs.Error("解析blcock错误=", errs)
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
var ERR error
|
|
var ERR error
|
|
for _, v := range blc.Transactions {
|
|
for _, v := range blc.Transactions {
|
|
|
|
+ if len(v.Input) == 0 {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
evm, err := transaction.DecodeEvmData(v.Input)
|
|
evm, err := transaction.DecodeEvmData(v.Input)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
ERR = err
|
|
ERR = err
|
|
break
|
|
break
|
|
}
|
|
}
|
|
@@ -99,18 +105,22 @@ func scanBlock() {
|
|
var ev EventParticipate
|
|
var ev EventParticipate
|
|
abi, err := abi.JSON(strings.NewReader(Collect.CollectMetaData.ABI))
|
|
abi, err := abi.JSON(strings.NewReader(Collect.CollectMetaData.ABI))
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
ERR = err
|
|
ERR = err
|
|
break
|
|
break
|
|
}
|
|
}
|
|
|
|
+ logs.Info("method=%+v,l.Data=%v\n ", method, l.Data)
|
|
err = abi.UnpackIntoInterface(&ev, method, l.Data)
|
|
err = abi.UnpackIntoInterface(&ev, method, l.Data)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
ERR = err
|
|
ERR = err
|
|
break
|
|
break
|
|
}
|
|
}
|
|
- fmt.Printf("participate event data=%+v\n ", ev)
|
|
|
|
|
|
+ logs.Info("participate data=%+v\n ", ev)
|
|
//handle user participate
|
|
//handle user participate
|
|
- err = participate(dbUtil.Engine, ev.User.String(), ev.Inviter.String(), v.HashToString(), float64(ev.Amount.Uint64()/controller.Decimals))
|
|
|
|
|
|
+ err = participate(dbUtil.Engine, ev.Participant.String(), ev.Inviter.String(), v.HashToString(), float64(ev.Amount.Uint64()/controller.Decimals))
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
ERR = err
|
|
ERR = err
|
|
break
|
|
break
|
|
}
|
|
}
|
|
@@ -118,11 +128,13 @@ func scanBlock() {
|
|
var evt EventClaim
|
|
var evt EventClaim
|
|
abi, err := abi.JSON(strings.NewReader(Collect.CollectMetaData.ABI))
|
|
abi, err := abi.JSON(strings.NewReader(Collect.CollectMetaData.ABI))
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
ERR = err
|
|
ERR = err
|
|
break
|
|
break
|
|
}
|
|
}
|
|
err = abi.UnpackIntoInterface(&evt, method, l.Data)
|
|
err = abi.UnpackIntoInterface(&evt, method, l.Data)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
ERR = err
|
|
ERR = err
|
|
break
|
|
break
|
|
}
|
|
}
|
|
@@ -130,6 +142,7 @@ func scanBlock() {
|
|
|
|
|
|
err = checkClaim(dbUtil.Engine, evt.User.String(), v.HashToString(), hex.EncodeToString(evt.Signature), float64(evt.Amount.Uint64()/controller.Decimals))
|
|
err = checkClaim(dbUtil.Engine, evt.User.String(), v.HashToString(), hex.EncodeToString(evt.Signature), float64(evt.Amount.Uint64()/controller.Decimals))
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
ERR = err
|
|
ERR = err
|
|
break
|
|
break
|
|
}
|
|
}
|
|
@@ -138,17 +151,18 @@ func scanBlock() {
|
|
|
|
|
|
}
|
|
}
|
|
if ERR != nil {
|
|
if ERR != nil {
|
|
|
|
+ logs.Error(err)
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ERR != nil {
|
|
if ERR != nil {
|
|
- fmt.Println("处理错误=", ERR)
|
|
|
|
|
|
+ logs.Error("处理错误=", ERR)
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
bi.BlockNumber = int64(currentBlock)
|
|
bi.BlockNumber = int64(currentBlock)
|
|
_, err = dbUtil.Engine.ID(1).Update(&bi)
|
|
_, err = dbUtil.Engine.ID(1).Update(&bi)
|
|
if err != nil {
|
|
if err != nil {
|
|
- fmt.Println("更新最新快高错误=", err)
|
|
|
|
|
|
+ logs.Error("更新最新快高错误=", err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
currentBlock++
|
|
currentBlock++
|
|
@@ -162,6 +176,7 @@ func confirmClaimedTxs() {
|
|
var txs []models.ClaimedTxs
|
|
var txs []models.ClaimedTxs
|
|
ok, err := dbUtil.Engine.Where("state = ?", 0).Where("droped = ?", 0).Where("id > ?", mark).Get(&txs)
|
|
ok, err := dbUtil.Engine.Where("state = ?", 0).Where("droped = ?", 0).Where("id > ?", mark).Get(&txs)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error(err)
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
if !ok {
|
|
if !ok {
|