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);
            }
        }