partner_chains_dolos_data_sources/client/
conversions.rs

1use 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}