dpp/data_contract/accessors/v1/
mod.rs1use crate::block::epoch::EpochIndex;
2use crate::data_contract::accessors::v0::{DataContractV0Getters, DataContractV0Setters};
3use crate::data_contract::associated_token::token_configuration::TokenConfiguration;
4use crate::data_contract::group::Group;
5use crate::data_contract::{GroupContractPosition, TokenContractPosition};
6use crate::identity::TimestampMillis;
7use crate::prelude::BlockHeight;
8use crate::ProtocolError;
9use platform_value::Identifier;
10use std::collections::BTreeMap;
11
12pub trait DataContractV1Getters: DataContractV0Getters {
13 fn groups(&self) -> &BTreeMap<GroupContractPosition, Group>;
15
16 fn groups_mut(&mut self) -> Option<&mut BTreeMap<GroupContractPosition, Group>>;
18
19 fn expected_group(&self, position: GroupContractPosition) -> Result<&Group, ProtocolError>;
22
23 fn tokens(&self) -> &BTreeMap<TokenContractPosition, TokenConfiguration>;
25
26 fn tokens_mut(&mut self) -> Option<&mut BTreeMap<TokenContractPosition, TokenConfiguration>>;
28
29 fn expected_token_configuration(
32 &self,
33 position: TokenContractPosition,
34 ) -> Result<&TokenConfiguration, ProtocolError>;
35
36 fn token_configuration_mut(
39 &mut self,
40 position: TokenContractPosition,
41 ) -> Option<&mut TokenConfiguration>;
42
43 fn token_id(&self, position: TokenContractPosition) -> Option<Identifier>;
45
46 fn created_at(&self) -> Option<TimestampMillis>;
48
49 fn updated_at(&self) -> Option<TimestampMillis>;
51
52 fn created_at_block_height(&self) -> Option<BlockHeight>;
54
55 fn updated_at_block_height(&self) -> Option<BlockHeight>;
57
58 fn created_at_epoch(&self) -> Option<EpochIndex>;
60
61 fn updated_at_epoch(&self) -> Option<EpochIndex>;
63
64 fn keywords(&self) -> &Vec<String>;
66
67 fn keywords_mut(&mut self) -> Option<&mut Vec<String>>;
69
70 fn description(&self) -> Option<&String>;
72
73 fn description_mut(&mut self) -> Option<&mut String>;
75}
76
77pub trait DataContractV1Setters: DataContractV0Setters {
78 fn set_groups(&mut self, groups: BTreeMap<GroupContractPosition, Group>);
80
81 fn set_tokens(&mut self, tokens: BTreeMap<TokenContractPosition, TokenConfiguration>);
83
84 fn add_group(&mut self, pos: GroupContractPosition, group: Group);
86
87 fn add_token(&mut self, pos: TokenContractPosition, token: TokenConfiguration);
89
90 fn set_created_at(&mut self, created_at: Option<TimestampMillis>);
92
93 fn set_updated_at(&mut self, updated_at: Option<TimestampMillis>);
95
96 fn set_created_at_block_height(&mut self, block_height: Option<BlockHeight>);
98
99 fn set_updated_at_block_height(&mut self, block_height: Option<BlockHeight>);
101
102 fn set_created_at_epoch(&mut self, epoch: Option<EpochIndex>);
104
105 fn set_updated_at_epoch(&mut self, epoch: Option<EpochIndex>);
107
108 fn set_keywords(&mut self, keywords: Vec<String>);
110
111 fn set_description(&mut self, description: Option<String>);
113}