Guardian eth nil event check (#1300)
* Guardian eth nil event check * Check for number being nil in watcher
This commit is contained in:
parent
fe198be748
commit
cdc6edd425
|
@ -164,6 +164,14 @@ func (e *CeloImpl) SubscribeForBlocks(ctx context.Context, sink chan<- *common.N
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
return
|
return
|
||||||
case ev := <-headSink:
|
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{
|
sink <- &common.NewBlock{
|
||||||
Number: ev.Number,
|
Number: ev.Number,
|
||||||
Hash: ethCommon.BytesToHash(ev.Hash().Bytes()),
|
Hash: ethCommon.BytesToHash(ev.Hash().Bytes()),
|
||||||
|
|
|
@ -20,12 +20,15 @@ import (
|
||||||
|
|
||||||
type EthImpl struct {
|
type EthImpl struct {
|
||||||
NetworkName string
|
NetworkName string
|
||||||
|
logger *zap.Logger
|
||||||
client *ethClient.Client
|
client *ethClient.Client
|
||||||
filterer *ethAbi.AbiFilterer
|
filterer *ethAbi.AbiFilterer
|
||||||
caller *ethAbi.AbiCaller
|
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) {
|
func (e *EthImpl) DialContext(ctx context.Context, rawurl string) (err error) {
|
||||||
e.client, err = ethClient.DialContext(ctx, rawurl)
|
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():
|
case <-ctx.Done():
|
||||||
return
|
return
|
||||||
case ev := <-headSink:
|
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{
|
sink <- &common.NewBlock{
|
||||||
Number: ev.Number,
|
Number: ev.Number,
|
||||||
Hash: ev.Hash(),
|
Hash: ev.Hash(),
|
||||||
|
|
|
@ -132,11 +132,6 @@ func (f *GetLogsQuery) DialContext(ctx context.Context, rawurl string) (err erro
|
||||||
timeout, cancel := context.WithTimeout(ctx, 15*time.Second)
|
timeout, cancel := context.WithTimeout(ctx, 15*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
f.client, err = ethClient.DialContext(timeout, rawurl)
|
f.client, err = ethClient.DialContext(timeout, rawurl)
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -399,10 +399,15 @@ func (e *Watcher) Run(ctx context.Context) error {
|
||||||
p2p.DefaultRegistry.AddErrorCount(e.chainID, 1)
|
p2p.DefaultRegistry.AddErrorCount(e.chainID, 1)
|
||||||
return
|
return
|
||||||
case ev := <-headSink:
|
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 {
|
if ev == nil {
|
||||||
logger.Error("new header event is nil", zap.String("eth_network", e.networkName))
|
logger.Error("new header event is nil", zap.String("eth_network", e.networkName))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if ev.Number == nil {
|
||||||
|
logger.Error("new header block number is nil", zap.String("eth_network", e.networkName))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
currentHash := ev.Hash
|
currentHash := ev.Hash
|
||||||
|
|
Loading…
Reference in New Issue