private async Task <long> GetLastBlockFromDbAsync() { var getBestIndexedBlockNumber = _lastIndexedBlock ?? await _indexingStateRepository.GetLastIndexedBlockNumberAsync(); return(getBestIndexedBlockNumber ?? -1); }
private async Task <(long From, long To)?> TryGetNonIndexedBlocksRangeAsync() { var getBestBlockNumber = _web3.Eth.Blocks.GetBlockNumber.SendRequestAsync(); var getBestIndexedBlockNumber = _indexingStateRepository.GetLastIndexedBlockNumberAsync(); await Task.WhenAll(getBestBlockNumber, getBestIndexedBlockNumber); var bestBlockNumber = (long)getBestBlockNumber.Result.Value; var bestIndexedBlockNumber = getBestIndexedBlockNumber.Result ?? -1; #region Logging _log.Debug ( $"Got best block number [{bestBlockNumber}] from RPC node and best indexed block number [{bestIndexedBlockNumber}] from DB.", new { BestBlockNumber = bestBlockNumber, BestIndexedBlockNumber = bestIndexedBlockNumber } ); #endregion if (bestIndexedBlockNumber < bestBlockNumber) { return(bestIndexedBlockNumber + 1, bestBlockNumber); } else { return(null); } }