fuel_core_interfaces/
block_importer.rs

1use super::model::{
2    ConsensusVote,
3    FuelBlock,
4    SealedFuelBlock,
5};
6use crate::common::fuel_types::Bytes32;
7use std::sync::Arc;
8
9#[derive(Clone, Debug)]
10pub enum ImportBlockBroadcast {
11    PendingFuelBlockImported {
12        block: Arc<FuelBlock>,
13    },
14    /// for blocks that imported in initial sync and in active sync.
15    SealedFuelBlockImported {
16        block: Arc<SealedFuelBlock>,
17        is_created_by_self: bool,
18    },
19}
20
21impl ImportBlockBroadcast {
22    pub fn block(&self) -> &FuelBlock {
23        match self {
24            Self::PendingFuelBlockImported { block } => block.as_ref(),
25            Self::SealedFuelBlockImported { block, .. } => &block.as_ref().block,
26        }
27    }
28}
29
30pub enum ImportBlockMpsc {
31    ImportSealedFuelBlock {
32        block: Arc<SealedFuelBlock>,
33    },
34    ImportFuelBlock {
35        block: Arc<FuelBlock>,
36    },
37    SealFuelBlock {
38        votes: Vec<ConsensusVote>,
39        block_id: Bytes32,
40    },
41    Stop,
42}