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); } }
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); }); }
private void OnBlockProcessed(object sender, BlockProcessedEventArgs e) { FinalizeBlocks(e.Block.Header); }
private void OnBlockProcessed(object sender, BlockProcessedEventArgs e) { _lastBlockHash = e.Block.Hash; _logIndex = 0; AddBlock(e.Block); }
private async void OnBlockProcessed(object sender, BlockProcessedEventArgs e) => await PublishBlockAsync(e.Block);
private void OnBlockProcessed(object sender, BlockProcessedEventArgs e) { BlockHeader header = e.Block.Header; GetItemsFromContractAtBlock(header, header.ParentHash == _lastHash, e.TxReceipts); }