public async Task <bool> ExecuteAsync( long?startBlock, long?endBlock, CancellationToken cancellationToken) { startBlock = startBlock ?? await GetStartingBlockNumber(); if (endBlock.HasValue && startBlock.Value > endBlock.Value) { return(false); } _log.LogInformation("Begin FillContractCacheAsync"); await _strategy.FillContractCacheAsync().ConfigureAwait(false); _log.LogInformation("Begin BlockEnumeration"); return(await new BlockEnumeration( (blkNumber) => _blockProcessor.ProcessBlockAsync(blkNumber), (retryNum) => _strategy.WaitForNextBlock(retryNum), (retryNum) => _strategy.PauseFollowingAnError(retryNum), () => _blockProcessor.GetMaxBlockNumberAsync(), _strategy.MinimumBlockConfirmations, _strategy.MaxRetries, cancellationToken, startBlock.Value, endBlock ) .ExecuteAsync().ConfigureAwait(false)); }
public virtual Task <ulong> GetMaxBlockNumberAsync() => BlockProcessor.GetMaxBlockNumberAsync();
public virtual Task <BigInteger> GetMaxBlockNumberAsync() => BlockProcessor.GetMaxBlockNumberAsync();