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