partner_chains_dolos_data_sources/client/
conversions.rs1use crate::{DataSourceError, Result};
2use blockfrost_openapi::models::block_content::BlockContent;
3use sidechain_domain::*;
4
5pub fn from_block_content(value: BlockContent) -> Result<MainchainBlock> {
6 Ok(MainchainBlock {
7 number: value
8 .height
9 .map(|n| sidechain_domain::McBlockNumber(n as u32))
10 .ok_or(DataSourceError::InvalidData("number missing".to_string()))?,
11 hash: McBlockHash::decode_hex(&value.hash)?,
12 epoch: value
13 .epoch
14 .map(|n| sidechain_domain::McEpochNumber(n as u32))
15 .ok_or(DataSourceError::InvalidData("epoch missing".to_string()))?,
16 slot: value
17 .slot
18 .map(|n| sidechain_domain::McSlotNumber(n as u64))
19 .ok_or(DataSourceError::InvalidData("slot missing".to_string()))?,
20 timestamp: value.time as u64,
21 })
22}