From 1571d2f9476c37364b0f74acebc8bfba3233c369 Mon Sep 17 00:00:00 2001 From: Javed Khan Date: Fri, 26 Aug 2022 22:55:46 +0530 Subject: [PATCH] indexer: update l1/l2 filters for new events (#3317) --- indexer/services/l1/bridge/filter.go | 32 ++++++++++++++++++++++++++++ indexer/services/l2/bridge/filter.go | 32 ++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/indexer/services/l1/bridge/filter.go b/indexer/services/l1/bridge/filter.go index a3ccf60b277b..d7d8b02b6514 100644 --- a/indexer/services/l1/bridge/filter.go +++ b/indexer/services/l1/bridge/filter.go @@ -43,3 +43,35 @@ func FilterERC20DepositInitiatedWithRetry(ctx context.Context, filterer *binding time.Sleep(clientRetryInterval) } } + +// FilterETHWithdrawalFinalizedWithRetry retries the given func until it succeeds, +// waiting for clientRetryInterval duration after every call. +func FilterETHWithdrawalFinalizedWithRetry(ctx context.Context, filterer *bindings.L1StandardBridgeFilterer, opts *bind.FilterOpts) (*bindings.L1StandardBridgeETHWithdrawalFinalizedIterator, error) { + for { + ctxt, cancel := context.WithTimeout(ctx, DefaultConnectionTimeout) + opts.Context = ctxt + res, err := filterer.FilterETHWithdrawalFinalized(opts, nil, nil) + cancel() + if err == nil { + return res, nil + } + logger.Error("Error fetching filter", "err", err) + time.Sleep(clientRetryInterval) + } +} + +// FilterERC20WithdrawalFinalizedWithRetry retries the given func until it succeeds, +// waiting for clientRetryInterval duration after every call. +func FilterERC20WithdrawalFinalizedWithRetry(ctx context.Context, filterer *bindings.L1StandardBridgeFilterer, opts *bind.FilterOpts) (*bindings.L1StandardBridgeERC20WithdrawalFinalizedIterator, error) { + for { + ctxt, cancel := context.WithTimeout(ctx, DefaultConnectionTimeout) + opts.Context = ctxt + res, err := filterer.FilterERC20WithdrawalFinalized(opts, nil, nil, nil) + cancel() + if err == nil { + return res, nil + } + logger.Error("Error fetching filter", "err", err) + time.Sleep(clientRetryInterval) + } +} diff --git a/indexer/services/l2/bridge/filter.go b/indexer/services/l2/bridge/filter.go index 0047342d3990..0d1987fbdff3 100644 --- a/indexer/services/l2/bridge/filter.go +++ b/indexer/services/l2/bridge/filter.go @@ -27,3 +27,35 @@ func FilterWithdrawalInitiatedWithRetry(ctx context.Context, filterer *bindings. time.Sleep(clientRetryInterval) } } + +// FilterDepositFinalizedWithRetry retries the given func until it succeeds, +// waiting for clientRetryInterval duration after every call. +func FilterDepositFinalizedWithRetry(ctx context.Context, filterer *bindings.L2StandardBridgeFilterer, opts *bind.FilterOpts) (*bindings.L2StandardBridgeDepositFinalizedIterator, error) { + for { + ctxt, cancel := context.WithTimeout(ctx, DefaultConnectionTimeout) + opts.Context = ctxt + res, err := filterer.FilterDepositFinalized(opts, nil, nil, nil) + cancel() + if err == nil { + return res, nil + } + logger.Error("Error fetching filter", "err", err) + time.Sleep(clientRetryInterval) + } +} + +// FilterDepositFailedWithRetry retries the given func until it succeeds, +// waiting for clientRetryInterval duration after every call. +func FilterDepositFailedWithRetry(ctx context.Context, filterer *bindings.L2StandardBridgeFilterer, opts *bind.FilterOpts) (*bindings.L2StandardBridgeDepositFailedIterator, error) { + for { + ctxt, cancel := context.WithTimeout(ctx, DefaultConnectionTimeout) + opts.Context = ctxt + res, err := filterer.FilterDepositFailed(opts, nil, nil, nil) + cancel() + if err == nil { + return res, nil + } + logger.Error("Error fetching filter", "err", err) + time.Sleep(clientRetryInterval) + } +}