From 0f9145b728d2079d9c0fd0e6cd997f5641e3a675 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Tue, 23 Apr 2024 23:17:36 +0200 Subject: [PATCH] chore: add CanonStateSubscriptions to NoopTree (#7828) --- crates/blockchain-tree/src/noop.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/blockchain-tree/src/noop.rs b/crates/blockchain-tree/src/noop.rs index eff385fb6..9fa820255 100644 --- a/crates/blockchain-tree/src/noop.rs +++ b/crates/blockchain-tree/src/noop.rs @@ -22,7 +22,10 @@ use std::collections::{BTreeMap, HashSet}; /// Caution: this is only intended for testing purposes, or for wiring components together. #[derive(Debug, Clone, Default)] #[non_exhaustive] -pub struct NoopBlockchainTree {} +pub struct NoopBlockchainTree { + /// Broadcast channel for canon state changes notifications. + pub canon_state_notification_sender: Option, +} impl BlockchainTreeEngine for NoopBlockchainTree { fn buffer_block(&self, _block: SealedBlockWithSenders) -> Result<(), InsertBlockError> { @@ -127,6 +130,9 @@ impl BlockchainTreePendingStateProvider for NoopBlockchainTree { impl CanonStateSubscriptions for NoopBlockchainTree { fn subscribe_to_canonical_state(&self) -> CanonStateNotifications { - CanonStateNotificationSender::new(1).subscribe() + self.canon_state_notification_sender + .as_ref() + .map(|sender| sender.subscribe()) + .unwrap_or_else(|| CanonStateNotificationSender::new(1).subscribe()) } }