@@ -17,6 +17,8 @@ import (
17
17
"gitlab.com/distributed_lab/logan/v3/errors"
18
18
)
19
19
20
+ var DuplicateEventErr = errors .New ("Duplicate event in db" )
21
+
20
22
// processLog based on the event name and filtered log, it parses and update the relevant information
21
23
func (ch * checker ) processLog (vLog types.Log , eventName string ) error {
22
24
var processedEvent data.ProcessedEvent
@@ -27,6 +29,13 @@ func (ch *checker) processLog(vLog types.Log, eventName string) error {
27
29
processedEvent .TransactionHash = vLog .TxHash [:]
28
30
err := ch .insertProcessedEventLog (processedEvent )
29
31
if err != nil {
32
+ if err == DuplicateEventErr {
33
+ ch .log .WithFields (logan.F {
34
+ "hash_tx" : vLog .TxHash .Hex (),
35
+ "log_index" : processedEvent .LogIndex ,
36
+ }).Debug ("event already processed and stored" )
37
+ return nil
38
+ }
30
39
return errors .Wrap (err , "failed insert processed event" )
31
40
}
32
41
sender , err := ch .getSender (vLog .TxHash )
@@ -149,7 +158,7 @@ func (ch *checker) getSender(txHash common.Hash) (string, error) {
149
158
func (ch * checker ) insertProcessedEventLog (processedEvent data.ProcessedEvent ) error {
150
159
isExist , err := ch .processedEventQ .CheckProcessedEventExist (processedEvent )
151
160
if isExist {
152
- return errors . New ( "Duplicate event in db" )
161
+ return DuplicateEventErr
153
162
}
154
163
if err != nil {
155
164
return errors .Wrap (err , "failed to check processed event exist in db" )
0 commit comments