Exemple #1
0
        public void OnBlockProcessed(object?sender, BlockProcessedEventArgs args)
        {
            if (Emit == null)
            {
                return;
            }

            Emit((TOut)args.Block);
        }
        private void OnBlockProcessed(object?sender, BlockProcessedEventArgs e)
        {
            if (_logger.IsWarn)
            {
                _logger.Warn($"Tree tracker for {_baselineTree} processing block {e.Block.ToString(Block.Format.Short)}");
            }

            if (_currentBlockHeader != null && _currentBlockHeader.Hash != e.Block.ParentHash && _currentBlockHeader.Number < e.Block.Number)
            {
                // what is this - not covered by any test?
                // why do we build tree here?
                _baselineTreeHelper.BuildTree(_baselineTree, _address, new BlockParameter(_currentBlockHeader.Hash), new BlockParameter(e.Block.Hash));
                _currentBlockHeader = e.Block.Header;

                // TODO: why this is here
                _baselineTree.MemorizeCurrentCount(_baselineTree.LastBlockDbHash, _baselineTree.LastBlockWithLeaves, _baselineTree.Count);
                return;
            }

            uint removedItemsCount = 0;
            bool reorganized       = _currentBlockHeader != null && _currentBlockHeader.Hash != e.Block.ParentHash;

            if (reorganized)
            {
                if (_logger.IsWarn)
                {
                    _logger.Warn(
                        $"Tree tracker for {_baselineTree} reorganizes from branching point at {e.Block.ToString(Block.Format.Short)}");
                }
                removedItemsCount = Revert(e.Block.Number);
            }

            _currentBlockHeader = e.Block.Header;
            uint treeStartingCount = _baselineTree.Count;
            uint newLeavesCount    = AddFromCurrentBlock(e.TxReceipts);

            _baselineTree.CalculateHashes(treeStartingCount - removedItemsCount);
            if (newLeavesCount != 0 || removedItemsCount != 0 || reorganized)
            {
                uint currentTreeCount = treeStartingCount + newLeavesCount - removedItemsCount;
                _baselineTree.MemorizeCurrentCount(e.Block.Hash, e.Block.Number, currentTreeCount);
            }
        }
Exemple #3
0
        private void OnBlockProcessed(object sender, BlockProcessedEventArgs e)
        {
            Interlocked.Exchange(ref _currentBlockTimestamp, (long)e.Block.Timestamp);
            _consumerNotifier.SendBlockProcessedAsync(e.Block.Number);
            _depositRepository.BrowseAsync(new GetDeposits
            {
                OnlyUnconfirmed = true,
                OnlyNotRejected = true,
                Results         = int.MaxValue
            }).ContinueWith(async t =>
            {
                if (t.IsFaulted && _logger.IsError)
                {
                    _logger.Error($"Fetching the deposits has failed.", t.Exception);
                    return;
                }

                await TryConfirmDepositsAsync(t.Result.Items);
            });
        }
Exemple #4
0
 private void OnBlockProcessed(object sender, BlockProcessedEventArgs e)
 {
     FinalizeBlocks(e.Block.Header);
 }
Exemple #5
0
 private void OnBlockProcessed(object sender, BlockProcessedEventArgs e)
 {
     _lastBlockHash = e.Block.Hash;
     _logIndex      = 0;
     AddBlock(e.Block);
 }
Exemple #6
0
 private async void OnBlockProcessed(object sender, BlockProcessedEventArgs e)
 => await PublishBlockAsync(e.Block);
Exemple #7
0
        private void OnBlockProcessed(object sender, BlockProcessedEventArgs e)
        {
            BlockHeader header = e.Block.Header;

            GetItemsFromContractAtBlock(header, header.ParentHash == _lastHash, e.TxReceipts);
        }