dpp/tokens/contract_info/v0/
mod.rs

1use crate::data_contract::TokenContractPosition;
2use bincode::{Decode, Encode};
3use derive_more::From;
4use platform_value::Identifier;
5
6#[derive(Debug, Clone, Encode, Decode, From, PartialEq)]
7#[cfg_attr(
8    any(feature = "fixtures-and-mocks", feature = "serde-conversion"),
9    derive(serde::Serialize, serde::Deserialize),
10    serde(rename_all = "camelCase")
11)]
12/// Token contract info
13pub struct TokenContractInfoV0 {
14    /// The contract id of the token
15    pub contract_id: Identifier,
16    /// The token contract position
17    pub token_contract_position: TokenContractPosition,
18}
19
20/// Accessor trait for `TokenContractInfoV0`
21pub trait TokenContractInfoV0Accessors {
22    /// Returns a reference to the contract ID.
23    fn contract_id(&self) -> Identifier;
24
25    /// Sets the contract ID.
26    fn set_contract_id(&mut self, contract_id: Identifier);
27
28    /// Returns the token contract position.
29    fn token_contract_position(&self) -> TokenContractPosition;
30
31    /// Sets the token contract position.
32    fn set_token_contract_position(&mut self, position: TokenContractPosition);
33}
34
35impl TokenContractInfoV0Accessors for TokenContractInfoV0 {
36    fn contract_id(&self) -> Identifier {
37        self.contract_id
38    }
39
40    fn set_contract_id(&mut self, contract_id: Identifier) {
41        self.contract_id = contract_id;
42    }
43
44    fn token_contract_position(&self) -> TokenContractPosition {
45        self.token_contract_position
46    }
47
48    fn set_token_contract_position(&mut self, position: TokenContractPosition) {
49        self.token_contract_position = position;
50    }
51}