massa_consensus_exports/
channels.rs1use massa_channel::sender::MassaSender;
2use massa_execution_exports::ExecutionController;
3use massa_models::block::{FilledBlock, SecureShareBlock};
4use massa_models::block_header::BlockHeader;
5use massa_models::block_id::BlockId;
6use massa_models::secure_share::SecureShare;
7use massa_pool_exports::PoolController;
8use massa_pos_exports::SelectorController;
9use massa_protocol_exports::ProtocolController;
10
11use crate::events::ConsensusEvent;
12
13#[derive(Clone)]
15pub struct ConsensusChannels {
16 pub execution_controller: Box<dyn ExecutionController>,
18 pub selector_controller: Box<dyn SelectorController>,
20 pub pool_controller: Box<dyn PoolController>,
22 pub protocol_controller: Box<dyn ProtocolController>,
24 pub controller_event_tx: MassaSender<ConsensusEvent>,
26 pub broadcasts: ConsensusBroadcasts,
28}
29
30#[derive(Clone)]
32pub struct ConsensusBroadcasts {
33 pub block_sender: tokio::sync::broadcast::Sender<SecureShareBlock>,
35 pub block_header_sender: tokio::sync::broadcast::Sender<SecureShare<BlockHeader, BlockId>>,
37 pub filled_block_sender: tokio::sync::broadcast::Sender<FilledBlock>,
39}