partner_chains_dolos_data_sources/
sidechain_rpc.rs1use 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}