node/watchers/evm: do not allow finalizer == nil (TOB-WORMGUWA-17)

This commit is contained in:
tbjump 2023-05-04 00:39:01 +00:00 committed by tbjump
parent 3e1b31e7db
commit 03c0190277
1 changed files with 11 additions and 10 deletions

View File

@ -37,6 +37,9 @@ func NewBlockPollConnector(ctx context.Context, baseConnector Connector, finaliz
if publishSafeBlocks && !useFinalized { if publishSafeBlocks && !useFinalized {
return nil, fmt.Errorf("publishSafeBlocks may only be enabled if useFinalized is enabled") 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 := &BlockPollConnector{
Connector: baseConnector, Connector: baseConnector,
Delay: delay, 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) return lastPublishedBlock, fmt.Errorf("failed to fetch next block (%d): %w", nextBlockNumber.Uint64(), err)
} }
if b.finalizer != nil { finalized, err := b.isBlockFinalizedWithTimeout(ctx, block)
finalized, err := b.isBlockFinalizedWithTimeout(ctx, block) if err != nil {
if err != nil { logger.Error("failed to check block finalization",
logger.Error("failed to check block finalization", zap.Uint64("block", block.Number.Uint64()), zap.Error(err))
zap.Uint64("block", block.Number.Uint64()), zap.Error(err)) return lastPublishedBlock, fmt.Errorf("failed to check block finalization (%d): %w", block.Number.Uint64(), err)
return lastPublishedBlock, fmt.Errorf("failed to check block finalization (%d): %w", block.Number.Uint64(), err) }
}
if !finalized { if !finalized {
break break
}
} }
b.blockFeed.Send(block) b.blockFeed.Send(block)