partner_chains_mock_data_sources/
governed_map.rs

1use crate::Result;
2use async_trait::async_trait;
3use sidechain_domain::byte_string::ByteString;
4use sidechain_domain::*;
5use sp_governed_map::{GovernedMapDataSource, MainChainScriptsV1};
6
7#[derive(Debug, Default)]
8pub struct GovernedMapDataSourceMock {
9	changes: Vec<(String, Option<ByteString>)>,
10	data: BTreeMap<String, ByteString>,
11}
12
13impl GovernedMapDataSourceMock {
14	pub fn new(
15		changes: Vec<(String, Option<ByteString>)>,
16		data: BTreeMap<String, ByteString>,
17	) -> Self {
18		Self { changes, data }
19	}
20}
21
22#[async_trait]
23impl GovernedMapDataSource for GovernedMapDataSourceMock {
24	async fn get_mapping_changes(
25		&self,
26		_since_mc_block: Option<McBlockHash>,
27		_up_to_mc_block: McBlockHash,
28		_scripts: MainChainScriptsV1,
29	) -> Result<Vec<(String, Option<ByteString>)>> {
30		Ok(self.changes.clone())
31	}
32
33	async fn get_state_at_block(
34		&self,
35		_mc_block: McBlockHash,
36		_main_chain_scripts: MainChainScriptsV1,
37	) -> Result<BTreeMap<String, ByteString>> {
38		Ok(self.data.clone())
39	}
40}