dpp/group/group_action/v0/
mod.rs

1use crate::data_contract::TokenContractPosition;
2use crate::group::action_event::GroupActionEvent;
3use crate::group::group_action::GroupActionAccessors;
4#[cfg(feature = "json-conversion")]
5use crate::serialization::json_safe_fields;
6use crate::ProtocolError;
7use bincode::{Decode, Encode};
8use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize};
9use platform_value::Identifier;
10#[cfg(feature = "serde-conversion")]
11use serde::{Deserialize, Serialize};
12
13#[cfg_attr(feature = "json-conversion", json_safe_fields)]
14#[derive(
15    Debug, PartialEq, PartialOrd, Clone, Eq, Encode, Decode, PlatformDeserialize, PlatformSerialize,
16)]
17#[cfg_attr(feature = "serde-conversion", derive(Serialize, Deserialize))]
18#[platform_serialize(unversioned)] //versioned directly, no need to use platform_version
19pub struct GroupActionV0 {
20    pub contract_id: Identifier,
21    pub proposer_id: Identifier,
22    pub token_contract_position: TokenContractPosition,
23    pub event: GroupActionEvent,
24}
25
26impl GroupActionAccessors for GroupActionV0 {
27    fn contract_id(&self) -> Identifier {
28        self.contract_id
29    }
30
31    fn proposer_id(&self) -> Identifier {
32        self.proposer_id
33    }
34
35    fn token_contract_position(&self) -> TokenContractPosition {
36        self.token_contract_position
37    }
38
39    fn event(&self) -> &GroupActionEvent {
40        &self.event
41    }
42}