partner_chains_db_sync_data_sources/sidechain_rpc/
mod.rs1use crate::block::BlockDataSourceImpl;
3use pallet_sidechain_rpc::SidechainRpcDataSource;
4use partner_chains_data_source_metrics::{McFollowerMetrics, observed_async_trait};
5use sidechain_domain::MainchainBlock;
6use std::sync::Arc;
7
8pub struct SidechainRpcDataSourceImpl {
10 inner: Arc<BlockDataSourceImpl>,
12 metrics_opt: Option<McFollowerMetrics>,
14}
15
16impl SidechainRpcDataSourceImpl {
17 pub fn new(inner: Arc<BlockDataSourceImpl>, metrics_opt: Option<McFollowerMetrics>) -> Self {
19 Self { inner, metrics_opt }
20 }
21}
22
23observed_async_trait!(
24impl SidechainRpcDataSource for SidechainRpcDataSourceImpl {
25 async fn get_latest_block_info(
26 &self,
27 ) -> Result<MainchainBlock, Box<dyn std::error::Error + Send + Sync>> {
28 self.inner.get_latest_block_info().await
29 }
30}
31);