partner_chains_mock_data_sources/
sidechain_rpc.rs

1use crate::Result;
2use crate::block::BlockDataSourceMock;
3use pallet_sidechain_rpc::SidechainRpcDataSource;
4use sidechain_domain::MainchainBlock;
5use std::sync::Arc;
6
7/// Mock sidechain RPC data source returning constant data
8pub struct SidechainRpcDataSourceMock {
9	block_source: Arc<BlockDataSourceMock>,
10}
11
12impl SidechainRpcDataSourceMock {
13	/// Creates new mocked sidechain RPC data source
14	pub fn new(inner: Arc<BlockDataSourceMock>) -> Self {
15		Self { block_source: inner }
16	}
17}
18
19#[async_trait::async_trait]
20impl SidechainRpcDataSource for SidechainRpcDataSourceMock {
21	async fn get_latest_block_info(&self) -> Result<MainchainBlock> {
22		Ok(self.block_source.get_latest_block_info().await?)
23	}
24}