reth_chain_state/
noop.rs

1//! Noop impls for testing.
2
3use crate::{
4    CanonStateNotifications, CanonStateSubscriptions, ForkChoiceNotifications,
5    ForkChoiceSubscriptions,
6};
7use reth_primitives_traits::NodePrimitives;
8use reth_storage_api::noop::NoopProvider;
9use tokio::sync::{broadcast, watch};
10
11impl<C: Send + Sync, N: NodePrimitives> CanonStateSubscriptions for NoopProvider<C, N> {
12    fn subscribe_to_canonical_state(&self) -> CanonStateNotifications<N> {
13        broadcast::channel(1).1
14    }
15}
16
17impl<C: Send + Sync, N: NodePrimitives> ForkChoiceSubscriptions for NoopProvider<C, N> {
18    type Header = N::BlockHeader;
19
20    fn subscribe_safe_block(&self) -> ForkChoiceNotifications<N::BlockHeader> {
21        let (_, rx) = watch::channel(None);
22        ForkChoiceNotifications(rx)
23    }
24
25    fn subscribe_finalized_block(&self) -> ForkChoiceNotifications<N::BlockHeader> {
26        let (_, rx) = watch::channel(None);
27        ForkChoiceNotifications(rx)
28    }
29}