partner_chains_mock_data_sources/
governed_map.rs1use 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}