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