1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::jormungandr::explorer::{data::last_block, BlockDate};
use chain_impl_mockchain::block::BlockDate as LibBlockDate;
use graphql_client::Response;

#[derive(Debug)]
pub struct LastBlockResponse {
    data: Response<last_block::ResponseData>,
}

impl LastBlockResponse {
    pub fn new(data: Response<last_block::ResponseData>) -> Self {
        Self { data }
    }

    pub fn block(&self) -> &last_block::LastBlockTipBlock {
        &self.data.data.as_ref().unwrap().tip.block
    }

    pub fn block_date(&self) -> BlockDate {
        let date = &self.data.data.as_ref().unwrap().tip.block.date;

        let block_date = LibBlockDate {
            epoch: date.epoch.id.parse().unwrap(),
            slot_id: date.slot.parse().unwrap(),
        };
        BlockDate::from(block_date)
    }
}