dpp/state_transition/
proof_result.rs

1use crate::address_funds::PlatformAddress;
2use crate::asset_lock::StoredAssetLockInfo;
3use crate::balances::credits::TokenAmount;
4use crate::data_contract::group::GroupSumPower;
5use crate::data_contract::DataContract;
6use crate::document::Document;
7use crate::fee::Credits;
8use crate::group::group_action_status::GroupActionStatus;
9use crate::identity::{Identity, PartialIdentity};
10use crate::prelude::AddressNonce;
11use crate::tokens::info::IdentityTokenInfo;
12use crate::tokens::status::TokenStatus;
13use crate::tokens::token_pricing_schedule::TokenPricingSchedule;
14use crate::voting::votes::Vote;
15use platform_value::Identifier;
16use std::collections::BTreeMap;
17
18#[derive(Debug, strum::Display, derive_more::TryInto)]
19#[cfg_attr(
20    feature = "serde-conversion",
21    derive(serde::Serialize, serde::Deserialize)
22)]
23pub enum StateTransitionProofResult {
24    VerifiedDataContract(DataContract),
25    VerifiedIdentity(Identity),
26    VerifiedTokenBalanceAbsence(Identifier),
27    VerifiedTokenBalance(Identifier, TokenAmount),
28    VerifiedTokenIdentityInfo(Identifier, IdentityTokenInfo),
29    VerifiedTokenPricingSchedule(Identifier, Option<TokenPricingSchedule>),
30    VerifiedTokenStatus(TokenStatus),
31    VerifiedTokenIdentitiesBalances(BTreeMap<Identifier, TokenAmount>),
32    VerifiedPartialIdentity(PartialIdentity),
33    VerifiedBalanceTransfer(PartialIdentity, PartialIdentity), //from/to
34    VerifiedDocuments(BTreeMap<Identifier, Option<Document>>),
35    VerifiedTokenActionWithDocument(Document),
36    VerifiedTokenGroupActionWithDocument(GroupSumPower, Option<Document>),
37    VerifiedTokenGroupActionWithTokenBalance(GroupSumPower, GroupActionStatus, Option<TokenAmount>),
38    VerifiedTokenGroupActionWithTokenIdentityInfo(
39        GroupSumPower,
40        GroupActionStatus,
41        Option<IdentityTokenInfo>,
42    ),
43    VerifiedTokenGroupActionWithTokenPricingSchedule(
44        GroupSumPower,
45        GroupActionStatus,
46        Option<TokenPricingSchedule>,
47    ),
48    VerifiedMasternodeVote(Vote),
49    VerifiedNextDistribution(Vote),
50    VerifiedAddressInfos(BTreeMap<PlatformAddress, Option<(AddressNonce, Credits)>>),
51    VerifiedIdentityFullWithAddressInfos(
52        Identity,
53        BTreeMap<PlatformAddress, Option<(AddressNonce, Credits)>>,
54    ),
55    VerifiedIdentityWithAddressInfos(
56        PartialIdentity,
57        BTreeMap<PlatformAddress, Option<(AddressNonce, Credits)>>,
58    ),
59    VerifiedAssetLockConsumed(StoredAssetLockInfo),
60    VerifiedShieldedNullifiers(Vec<(Vec<u8>, bool)>),
61    VerifiedShieldedNullifiersWithAddressInfos(
62        Vec<(Vec<u8>, bool)>,
63        BTreeMap<PlatformAddress, Option<(AddressNonce, Credits)>>,
64    ),
65    VerifiedShieldedNullifiersWithWithdrawalDocument(
66        Vec<(Vec<u8>, bool)>,
67        BTreeMap<Identifier, Option<Document>>,
68    ),
69}