use crate::block_header::BlockHeader;
use crate::epoch_manager::block_info::BlockInfo;
use crate::epoch_manager::epoch_info::EpochInfo;
use crate::merkle::PartialMerkleTree;
use crate::views::LightClientBlockView;
use borsh::{BorshDeserialize, BorshSerialize};
#[derive(BorshSerialize, BorshDeserialize, Eq, PartialEq, Debug, Clone)]
pub struct EpochSyncFinalizationResponse {
pub cur_epoch_header: BlockHeader,
pub prev_epoch_headers: Vec<BlockHeader>,
pub header_sync_init_header: BlockHeader,
pub header_sync_init_header_tree: PartialMerkleTree,
pub prev_epoch_first_block_info: BlockInfo,
pub prev_epoch_prev_last_block_info: BlockInfo,
pub prev_epoch_last_block_info: BlockInfo,
pub prev_epoch_info: EpochInfo,
pub cur_epoch_info: EpochInfo,
pub next_epoch_info: EpochInfo,
}
#[derive(BorshSerialize, BorshDeserialize, Eq, PartialEq, Debug, Clone)]
pub enum EpochSyncResponse {
UpToDate,
Advance { light_client_block_view: Box<LightClientBlockView> },
}