Ejemplo n.º 1
0
        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();
Ejemplo n.º 3
0
 public virtual Task <BigInteger> GetMaxBlockNumberAsync() => BlockProcessor.GetMaxBlockNumberAsync();