Skip to main content

dpp/state_transition/state_transitions/shielded/shield_transition/
mod.rs

1pub mod methods;
2mod state_transition_estimated_fee_validation;
3mod state_transition_like;
4mod state_transition_validation;
5pub mod v0;
6mod version;
7
8use crate::state_transition::shield_transition::v0::ShieldTransitionV0;
9use crate::state_transition::shield_transition::v0::ShieldTransitionV0Signable;
10use crate::state_transition::StateTransitionFieldTypes;
11
12pub type ShieldTransitionLatest = ShieldTransitionV0;
13
14use crate::identity::state_transition::OptionallyAssetLockProved;
15#[cfg(feature = "json-conversion")]
16use crate::serialization::JsonConvertible;
17#[cfg(feature = "value-conversion")]
18use crate::serialization::ValueConvertible;
19use crate::ProtocolError;
20use bincode::{Decode, Encode};
21use derive_more::From;
22use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize, PlatformSignable};
23use platform_versioning::PlatformVersioned;
24#[cfg(feature = "serde-conversion")]
25use serde::{Deserialize, Serialize};
26
27#[derive(
28    Debug,
29    Clone,
30    Encode,
31    Decode,
32    PlatformDeserialize,
33    PlatformSerialize,
34    PlatformSignable,
35    PlatformVersioned,
36    From,
37    PartialEq,
38)]
39#[cfg_attr(
40    feature = "serde-conversion",
41    derive(Serialize, Deserialize),
42    serde(tag = "$formatVersion")
43)]
44#[cfg_attr(
45    all(feature = "json-conversion", feature = "serde-conversion"),
46    derive(JsonConvertible)
47)]
48#[cfg_attr(feature = "value-conversion", derive(ValueConvertible))]
49#[platform_serialize(unversioned)] //versioned directly, no need to use platform_version
50#[platform_version_path_bounds(
51    "dpp.state_transition_serialization_versions.shield_state_transition"
52)]
53pub enum ShieldTransition {
54    #[cfg_attr(feature = "serde-conversion", serde(rename = "0"))]
55    V0(ShieldTransitionV0),
56}
57
58impl OptionallyAssetLockProved for ShieldTransition {}
59
60impl StateTransitionFieldTypes for ShieldTransition {
61    fn signature_property_paths() -> Vec<&'static str> {
62        vec![]
63    }
64
65    fn identifiers_property_paths() -> Vec<&'static str> {
66        vec![]
67    }
68
69    fn binary_property_paths() -> Vec<&'static str> {
70        vec![]
71    }
72}