diff --git a/server/light_backtask/task/escec_Transfer.go b/server/light_backtask/task/escec_Transfer.go index 2b4d8148..1bb68a42 100644 --- a/server/light_backtask/task/escec_Transfer.go +++ b/server/light_backtask/task/escec_Transfer.go @@ -1,8 +1,12 @@ package task import ( + "q5" + "f5" "jccommon" "main/mt" + "main/constant" + "fmt" ) type esCecTransfer struct { @@ -22,4 +26,37 @@ func (this *esCecTransfer) unInit() { } func (this *esCecTransfer) process(netId int32, contractAddress string) { + key := fmt.Sprintf("esCecTransfer.lastIdx.%d.%s", netId, contractAddress) + if dbLastIdxStr, err := jccommon.GetDbParam(constant.BCEVENT_DB, key); err == nil { + f5.GetGoStyleDb().IncrementLoad( + constant.BCEVENT_DB, + "esCecTransfer." + q5.ToString(netId) + "." + contractAddress, + "t_blockchain_event", + q5.ToInt64(dbLastIdxStr), + func (lastIdx int64, maxIdx int64) (string, []string) { + sql := fmt.Sprintf(` +SELECT * FROM t_blockchain_event +WHERE idx > %d AND idx <= %d AND net_id = %d AND contract_address = ? AND event_name IN (?, ?) +ORDER BY idx LIMIT 1000 +`, + lastIdx, + maxIdx, + netId) + params := []string{ + contractAddress, + "Transfer", + } + return sql, params + }, + func (newLastIdx int64) { + jccommon.SaveDbParam(constant.BCEVENT_DB, key, q5.ToString(newLastIdx)) + }, + this.saveToDb) + } else { + panic(fmt.Sprintf("esCecTransfer.processLockAndUnLockEvent getDBParam error %s", err)) + } +} + +func (this* esCecTransfer) saveToDb(ds *f5.DataSet) bool { + return true }