Skip to content

Commit d17d212

Browse files
committed
change tron scan logic
1 parent 51a2acc commit d17d212

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

src/model/service/task_service.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,29 @@ func TryProcessEvmERC20Transfer(chainNetwork string, contract common.Address, to
216216
log.Sugar.Infof("[%s-%s][%s] skip non-positive or nil amount", net, tokenSym, walletAddr)
217217
return
218218
}
219+
220+
chainTokens, err := data.ListChainTokens(chainNetwork)
221+
if err != nil {
222+
log.Sugar.Warnf("[%s-%s] load chain tokens: %v", net, tokenSym, err)
223+
return
224+
}
225+
var tokenConfig *mdb.ChainToken
226+
for _, t := range chainTokens {
227+
if strings.EqualFold(t.Symbol, tokenSym) {
228+
tokenConfig = &t
229+
break
230+
}
231+
}
232+
if tokenConfig == nil || !tokenConfig.Enabled {
233+
log.Sugar.Warnf("[%s-%s] token not enabled or configured in chain_tokens", net, tokenSym)
234+
return
235+
}
236+
237+
pow := decimal.New(1, int32(tokenConfig.Decimals))
238+
log.Sugar.Warnf("tokenConfig.Decimals %d pow %s", tokenConfig.Decimals, pow.String())
239+
219240
decimalQuant := decimal.NewFromBigInt(rawValue, 0)
220-
amount := math.MustParsePrecFloat64(decimalQuant.Div(decimal.NewFromInt(1_000_000)).InexactFloat64(), 2)
241+
amount := math.MustParsePrecFloat64(decimalQuant.Div(pow).InexactFloat64(), 2)
221242
if amount <= 0 {
222243
log.Sugar.Warnf("[%s-%s][%s] skip non-positive amount %.2f", net, tokenSym, walletAddr, amount)
223244
return

src/task/listen.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,24 @@ func Start() {
1616
go StartTronBlockScannerListener()
1717

1818
c := cron.New()
19+
20+
// Solana polling
21+
_, err := c.AddJob("@every 5s", ListenSolJob{})
22+
if err != nil {
23+
log.Sugar.Errorf("[task] Failed to add ListenSolJob: %v", err)
24+
return
25+
}
26+
27+
log.Sugar.Info("[task] ListenSolJob scheduled successfully (@every 5s)")
28+
1929
// RPC node health checks
20-
_, err := c.AddJob("@every 30s", RpcHealthJob{})
30+
_, err = c.AddJob("@every 30s", RpcHealthJob{})
2131
if err != nil {
2232
log.Sugar.Errorf("[task] Failed to add RpcHealthJob: %v", err)
2333
return
2434
}
2535
log.Sugar.Info("[task] RpcHealthJob scheduled successfully (@every 30s)")
36+
2637
c.Start()
2738
log.Sugar.Info("[task] Task scheduler started")
2839
}

0 commit comments

Comments
 (0)