Exemplo n.º 1
0
        public async Task Initialize(CancellationToken cancellationToken)
        {
            foreach (var type in Enum.GetValues(typeof(IndexType)).OfType <IndexType>())
            {
                var tip = await _checkpointStore.GetCheckpointAsync(type).ConfigureAwait(false);

                _indexers.Add(type, new IndexerTarget
                {
                    Type       = type,
                    Checkpoint = tip,
                    Tip        = _chain.FindFork(tip.BlockLocator)
                });
            }

            Indexers = new ReadOnlyCollection <IIndexerTarget>(_indexers.Values.ToList());

            var minHeight = _indexers.Values.Min(i => i.Tip.Height);

            Tip = _settings.IgnoreCheckpoints ? _chain.GetBlock(_settings.From) : _chain.GetBlock(minHeight);
        }