unc_primitives/
epoch_sync.rs1use crate::block_header::BlockHeader;
2use crate::epoch_manager::block_info::BlockInfo;
3use crate::epoch_manager::epoch_info::EpochInfo;
4use crate::merkle::PartialMerkleTree;
5use crate::views::LightClientBlockView;
6use borsh::{BorshDeserialize, BorshSerialize};
7
8#[derive(BorshSerialize, BorshDeserialize, Eq, PartialEq, Debug, Clone)]
9pub struct EpochSyncFinalizationResponse {
10 pub cur_epoch_header: BlockHeader,
11 pub prev_epoch_headers: Vec<BlockHeader>,
12 pub header_sync_init_header: BlockHeader,
13 pub header_sync_init_header_tree: PartialMerkleTree,
14 pub prev_epoch_first_block_info: BlockInfo,
17 pub prev_epoch_prev_last_block_info: BlockInfo,
20 pub prev_epoch_last_block_info: BlockInfo,
23 pub prev_epoch_info: EpochInfo,
24 pub cur_epoch_info: EpochInfo,
25 pub next_epoch_info: EpochInfo,
28}
29
30#[derive(BorshSerialize, BorshDeserialize, Eq, PartialEq, Debug, Clone)]
31pub enum EpochSyncResponse {
32 UpToDate,
33 Advance { light_client_block_view: Box<LightClientBlockView> },
34}