dpp/group/group_action/v0/
mod.rs1use 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, DecodeUntrusted, Encode};
8use platform_serialization_derive::{
9 PlatformDeserializeTrusted, PlatformDeserializeUntrusted, PlatformSerialize,
10};
11use platform_value::Identifier;
12#[cfg(feature = "serde-conversion")]
13use serde::{Deserialize, Serialize};
14
15#[cfg_attr(feature = "json-conversion", json_safe_fields)]
16#[derive(
17 Debug,
18 PartialEq,
19 PartialOrd,
20 Clone,
21 Eq,
22 Encode,
23 Decode,
24 PlatformDeserializeTrusted,
25 PlatformDeserializeUntrusted,
26 PlatformSerialize,
27 DecodeUntrusted,
28)]
29#[cfg_attr(feature = "serde-conversion", derive(Serialize, Deserialize))]
30#[platform_serialize(unversioned)] pub struct GroupActionV0 {
32 pub contract_id: Identifier,
33 pub proposer_id: Identifier,
34 pub token_contract_position: TokenContractPosition,
35 pub event: GroupActionEvent,
36}
37
38impl GroupActionAccessors for GroupActionV0 {
39 fn contract_id(&self) -> Identifier {
40 self.contract_id
41 }
42
43 fn proposer_id(&self) -> Identifier {
44 self.proposer_id
45 }
46
47 fn token_contract_position(&self) -> TokenContractPosition {
48 self.token_contract_position
49 }
50
51 fn event(&self) -> &GroupActionEvent {
52 &self.event
53 }
54}