From 9ce278e4c112f7af4d160b4c819ec145a19f3293 Mon Sep 17 00:00:00 2001 From: prathamesh0 Date: Mon, 25 Jul 2022 17:49:54 +0530 Subject: [PATCH] Add nil check before accessing watched addresses from direct indexing params --- statediff/service.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/statediff/service.go b/statediff/service.go index bc9336f6e..30d227f17 100644 --- a/statediff/service.go +++ b/statediff/service.go @@ -483,7 +483,7 @@ func (sds *Service) StateDiffAt(blockNumber uint64, params Params) (*Payload, er log.Info("sending state diff", "block height", blockNumber) // use watched addresses from statediffing write loop if not provided - if params.WatchedAddresses == nil { + if params.WatchedAddresses == nil && writeLoopParams.WatchedAddresses != nil { writeLoopParams.RLock() params.WatchedAddresses = make([]common.Address, len(writeLoopParams.WatchedAddresses)) copy(params.WatchedAddresses, writeLoopParams.WatchedAddresses) @@ -506,7 +506,7 @@ func (sds *Service) StateDiffFor(blockHash common.Hash, params Params) (*Payload log.Info("sending state diff", "block hash", blockHash) // use watched addresses from statediffing write loop if not provided - if params.WatchedAddresses == nil { + if params.WatchedAddresses == nil && writeLoopParams.WatchedAddresses != nil { writeLoopParams.RLock() params.WatchedAddresses = make([]common.Address, len(writeLoopParams.WatchedAddresses)) copy(params.WatchedAddresses, writeLoopParams.WatchedAddresses) @@ -799,7 +799,7 @@ func (sds *Service) WriteStateDiffAt(blockNumber uint64, params Params) error { log.Info("writing state diff at", "block height", blockNumber) // use watched addresses from statediffing write loop if not provided - if params.WatchedAddresses == nil { + if params.WatchedAddresses == nil && writeLoopParams.WatchedAddresses != nil { writeLoopParams.RLock() params.WatchedAddresses = make([]common.Address, len(writeLoopParams.WatchedAddresses)) copy(params.WatchedAddresses, writeLoopParams.WatchedAddresses) @@ -824,7 +824,7 @@ func (sds *Service) WriteStateDiffFor(blockHash common.Hash, params Params) erro log.Info("writing state diff for", "block hash", blockHash) // use watched addresses from statediffing write loop if not provided - if params.WatchedAddresses == nil { + if params.WatchedAddresses == nil && writeLoopParams.WatchedAddresses != nil { writeLoopParams.RLock() params.WatchedAddresses = make([]common.Address, len(writeLoopParams.WatchedAddresses)) copy(params.WatchedAddresses, writeLoopParams.WatchedAddresses)