private async Task <FilterLog[]> RetrieveLogsAsync( BlockRange range, NewFilterInput filter, uint retryNumber = 0) { try { filter.SetBlockRange(range); _log.LogInformation($"RetrieveLogsAsync - getting logs. RetryNumber:{retryNumber}, from:{range.From}, to:{range.To}."); return(await _eventLogProxy.GetLogs(filter).ConfigureAwait(false)); } catch (Exception ex) { _log.LogError("Get Logs Error", ex); retryNumber++; if (retryNumber < MaxRetries) { _log.LogInformation("Pausing before retry get logs"); await RetryWaitStrategy.Apply(retryNumber).ConfigureAwait(false); _log.LogInformation("Retrying get logs"); return(await RetrieveLogsAsync(range, filter, retryNumber) .ConfigureAwait(false)); } _log.LogError("MaxRetries exceeded when getting logs, throwing exception.", ex); throw; } }