diff --git a/node/pkg/celo/celoimpl.go b/node/pkg/celo/celoimpl.go index c00151749..2fac263ec 100644 --- a/node/pkg/celo/celoimpl.go +++ b/node/pkg/celo/celoimpl.go @@ -164,6 +164,14 @@ func (e *CeloImpl) SubscribeForBlocks(ctx context.Context, sink chan<- *common.N case <-ctx.Done(): return case ev := <-headSink: + if ev == nil { + e.logger.Error("new header event is nil", zap.String("eth_network", e.NetworkName)) + continue + } + if ev.Number == nil { + e.logger.Error("new header block number is nil", zap.String("eth_network", e.NetworkName)) + continue + } sink <- &common.NewBlock{ Number: ev.Number, Hash: ethCommon.BytesToHash(ev.Hash().Bytes()), diff --git a/node/pkg/ethereum/ethimpl.go b/node/pkg/ethereum/ethimpl.go index e03c72fb8..591321bd9 100644 --- a/node/pkg/ethereum/ethimpl.go +++ b/node/pkg/ethereum/ethimpl.go @@ -20,12 +20,15 @@ import ( type EthImpl struct { NetworkName string + logger *zap.Logger client *ethClient.Client filterer *ethAbi.AbiFilterer caller *ethAbi.AbiCaller } -func (e *EthImpl) SetLogger(_l *zap.Logger) {} +func (e *EthImpl) SetLogger(l *zap.Logger) { + e.logger = l +} func (e *EthImpl) DialContext(ctx context.Context, rawurl string) (err error) { e.client, err = ethClient.DialContext(ctx, rawurl) @@ -115,6 +118,14 @@ func (e *EthImpl) SubscribeForBlocks(ctx context.Context, sink chan<- *common.Ne case <-ctx.Done(): return case ev := <-headSink: + if ev == nil { + e.logger.Error("new header event is nil", zap.String("eth_network", e.NetworkName)) + continue + } + if ev.Number == nil { + e.logger.Error("new header block number is nil", zap.String("eth_network", e.NetworkName)) + continue + } sink <- &common.NewBlock{ Number: ev.Number, Hash: ev.Hash(), diff --git a/node/pkg/ethereum/getlogsimpl.go b/node/pkg/ethereum/getlogsimpl.go index 49bc1c992..3ff83c9b2 100644 --- a/node/pkg/ethereum/getlogsimpl.go +++ b/node/pkg/ethereum/getlogsimpl.go @@ -132,11 +132,6 @@ func (f *GetLogsQuery) DialContext(ctx context.Context, rawurl string) (err erro timeout, cancel := context.WithTimeout(ctx, 15*time.Second) defer cancel() f.client, err = ethClient.DialContext(timeout, rawurl) - - if err != nil { - return err - } - return err } diff --git a/node/pkg/ethereum/watcher.go b/node/pkg/ethereum/watcher.go index 8121886f9..bd985800c 100644 --- a/node/pkg/ethereum/watcher.go +++ b/node/pkg/ethereum/watcher.go @@ -399,10 +399,15 @@ func (e *Watcher) Run(ctx context.Context) error { p2p.DefaultRegistry.AddErrorCount(e.chainID, 1) return case ev := <-headSink: + // These two pointers should have been checked before the event was placed on the channel, but just being safe. if ev == nil { logger.Error("new header event is nil", zap.String("eth_network", e.networkName)) continue } + if ev.Number == nil { + logger.Error("new header block number is nil", zap.String("eth_network", e.networkName)) + continue + } start := time.Now() currentHash := ev.Hash