diff --git a/packages/relayer/cmd/flags/indexer.go b/packages/relayer/cmd/flags/indexer.go index dd2ec13d46..72b7aae3cb 100644 --- a/packages/relayer/cmd/flags/indexer.go +++ b/packages/relayer/cmd/flags/indexer.go @@ -1,6 +1,8 @@ package flags import ( + "time" + "github.com/urfave/cli/v2" ) @@ -107,6 +109,13 @@ var ( Value: 0, EnvVars: []string{"MIN_FEE_TO_INDEX"}, } + WaitForConfirmationTimeout = &cli.DurationFlag{ + Name: "waitForConfirmationTimeout", + Usage: "Timeout waiting for confirmations", + Value: 5 * time.Minute, + Category: indexerCategory, + EnvVars: []string{"WAIT_FOR_CONFIRMATION_TIMEOUT"}, + } ) var IndexerFlags = MergeFlags(CommonFlags, QueueFlags, []cli.Flag{ @@ -124,4 +133,5 @@ var IndexerFlags = MergeFlags(CommonFlags, QueueFlags, []cli.Flag{ EventName, MinFeeToIndex, TargetBlockNumber, + WaitForConfirmationTimeout, }) diff --git a/packages/relayer/indexer/config.go b/packages/relayer/indexer/config.go index 7fe604df63..fdc52cdb0f 100644 --- a/packages/relayer/indexer/config.go +++ b/packages/relayer/indexer/config.go @@ -53,6 +53,7 @@ type Config struct { MinFeeToIndex uint64 OpenQueueFunc func() (queue.Queue, error) OpenDBFunc func() (db.DB, error) + ConfirmationTimeout time.Duration } // NewConfigFromCliContext creates a new config instance from command line flags. @@ -87,6 +88,7 @@ func NewConfigFromCliContext(c *cli.Context) (*Config, error) { BackOffMaxRetries: c.Uint64(flags.BackOffMaxRetrys.Name), BackOffRetryInterval: c.Duration(flags.BackOffRetryInterval.Name), MinFeeToIndex: c.Uint64(flags.MinFeeToIndex.Name), + ConfirmationTimeout: c.Duration(flags.WaitForConfirmationTimeout.Name), TargetBlockNumber: func() *uint64 { if c.IsSet(flags.TargetBlockNumber.Name) { value := c.Uint64(flags.TargetBlockNumber.Name) diff --git a/packages/relayer/indexer/handle_chain_data_synced_event.go b/packages/relayer/indexer/handle_chain_data_synced_event.go index 8a05dcbbb1..c00a3cf297 100644 --- a/packages/relayer/indexer/handle_chain_data_synced_event.go +++ b/packages/relayer/indexer/handle_chain_data_synced_event.go @@ -32,7 +32,7 @@ func (i *Indexer) handleChainDataSyncedEvent( // we need to wait for confirmations to confirm this event is not being reverted, // removed, or reorged now. - confCtx, confCtxCancel := context.WithTimeout(ctx, defaultCtxTimeout) + confCtx, confCtxCancel := context.WithTimeout(ctx, i.cfg.ConfirmationTimeout) defer confCtxCancel() diff --git a/packages/relayer/indexer/handle_message_processed_event.go b/packages/relayer/indexer/handle_message_processed_event.go index dd232374dc..38c04da166 100644 --- a/packages/relayer/indexer/handle_message_processed_event.go +++ b/packages/relayer/indexer/handle_message_processed_event.go @@ -45,7 +45,7 @@ func (i *Indexer) handleMessageProcessedEvent( if waitForConfirmations { // we need to wait for confirmations to confirm this event is not being reverted, // removed, or reorged now. - confCtx, confCtxCancel := context.WithTimeout(ctx, defaultCtxTimeout) + confCtx, confCtxCancel := context.WithTimeout(ctx, i.cfg.ConfirmationTimeout) defer confCtxCancel() diff --git a/packages/relayer/indexer/handle_message_sent_event.go b/packages/relayer/indexer/handle_message_sent_event.go index 368cb3fc17..c1e3b79e7c 100644 --- a/packages/relayer/indexer/handle_message_sent_event.go +++ b/packages/relayer/indexer/handle_message_sent_event.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "math/big" - "time" "log/slog" @@ -17,7 +16,6 @@ import ( ) var ( - defaultCtxTimeout = 3 * time.Minute defaultConfirmations = 5 ) @@ -56,7 +54,7 @@ func (i *Indexer) handleMessageSentEvent( if waitForConfirmations { // we need to wait for confirmations to confirm this event is not being reverted, // removed, or reorged now. - confCtx, confCtxCancel := context.WithTimeout(ctx, defaultCtxTimeout) + confCtx, confCtxCancel := context.WithTimeout(ctx, i.cfg.ConfirmationTimeout) defer confCtxCancel()