partner_chains_dolos_data_sources/
sidechain_rpc.rs

1use crate::{
2	Result,
3	client::{MiniBFClient, api::MiniBFApi, conversions::from_block_content},
4};
5use pallet_sidechain_rpc::SidechainRpcDataSource;
6use sidechain_domain::MainchainBlock;
7
8pub struct SidechainRpcDataSourceImpl {
9	client: MiniBFClient,
10}
11
12impl SidechainRpcDataSourceImpl {
13	pub fn new(client: MiniBFClient) -> Self {
14		Self { client }
15	}
16}
17
18#[async_trait::async_trait]
19impl SidechainRpcDataSource for SidechainRpcDataSourceImpl {
20	async fn get_latest_block_info(&self) -> Result<MainchainBlock> {
21		Ok(from_block_content(self.client.blocks_latest().await?)?)
22	}
23}