From 03c01902772739a69e77d5e6ec77f627ae2ee7b0 Mon Sep 17 00:00:00 2001 From: tbjump Date: Thu, 4 May 2023 00:39:01 +0000 Subject: [PATCH] node/watchers/evm: do not allow finalizer == nil (TOB-WORMGUWA-17) --- node/pkg/watchers/evm/connectors/poller.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/node/pkg/watchers/evm/connectors/poller.go b/node/pkg/watchers/evm/connectors/poller.go index c8eaefb27..b26c81441 100644 --- a/node/pkg/watchers/evm/connectors/poller.go +++ b/node/pkg/watchers/evm/connectors/poller.go @@ -37,6 +37,9 @@ func NewBlockPollConnector(ctx context.Context, baseConnector Connector, finaliz if publishSafeBlocks && !useFinalized { return nil, fmt.Errorf("publishSafeBlocks may only be enabled if useFinalized is enabled") } + if finalizer == nil { + return nil, fmt.Errorf("finalizer must not be nil; Use finalizers.NewDefaultFinalizer() if you want to have no finalizer.") + } connector := &BlockPollConnector{ Connector: baseConnector, Delay: delay, @@ -143,17 +146,15 @@ func (b *BlockPollConnector) pollBlocks(ctx context.Context, logger *zap.Logger, return lastPublishedBlock, fmt.Errorf("failed to fetch next block (%d): %w", nextBlockNumber.Uint64(), err) } - if b.finalizer != nil { - finalized, err := b.isBlockFinalizedWithTimeout(ctx, block) - if err != nil { - logger.Error("failed to check block finalization", - zap.Uint64("block", block.Number.Uint64()), zap.Error(err)) - return lastPublishedBlock, fmt.Errorf("failed to check block finalization (%d): %w", block.Number.Uint64(), err) - } + finalized, err := b.isBlockFinalizedWithTimeout(ctx, block) + if err != nil { + logger.Error("failed to check block finalization", + zap.Uint64("block", block.Number.Uint64()), zap.Error(err)) + return lastPublishedBlock, fmt.Errorf("failed to check block finalization (%d): %w", block.Number.Uint64(), err) + } - if !finalized { - break - } + if !finalized { + break } b.blockFeed.Send(block)