use sc_utils::notification::{NotificationSender, NotificationStream, TracingKeyStr};
use sp_runtime::traits::Block as BlockT;
use crate::justification::BeefyVersionedFinalityProof;
pub type BeefyBestBlockSender<Block> = NotificationSender<<Block as BlockT>::Hash>;
pub type BeefyBestBlockStream<Block> =
NotificationStream<<Block as BlockT>::Hash, BeefyBestBlockTracingKey>;
pub type BeefyVersionedFinalityProofSender<Block, AuthorityId> =
NotificationSender<BeefyVersionedFinalityProof<Block, AuthorityId>>;
pub type BeefyVersionedFinalityProofStream<Block, AuthorityId> = NotificationStream<
BeefyVersionedFinalityProof<Block, AuthorityId>,
BeefyVersionedFinalityProofTracingKey,
>;
#[derive(Clone)]
pub struct BeefyBestBlockTracingKey;
impl TracingKeyStr for BeefyBestBlockTracingKey {
const TRACING_KEY: &'static str = "mpsc_beefy_best_block_notification_stream";
}
#[derive(Clone)]
pub struct BeefyVersionedFinalityProofTracingKey;
impl TracingKeyStr for BeefyVersionedFinalityProofTracingKey {
const TRACING_KEY: &'static str = "mpsc_beefy_versioned_finality_proof_notification_stream";
}