dpp/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2// Coding conventions .
3#![forbid(unsafe_code)]
4//#![deny(missing_docs)]
5#![allow(dead_code)]
6#![allow(clippy::result_large_err)]
7
8extern crate core;
9
10pub use dashcore;
11
12#[cfg(feature = "core_key_wallet")]
13pub use key_wallet;
14
15#[cfg(feature = "core_key_wallet_manager")]
16pub use key_wallet_manager;
17
18#[cfg(feature = "core_spv")]
19pub use dash_spv;
20
21#[cfg(feature = "core_rpc_client")]
22pub use dashcore_rpc;
23
24#[cfg(feature = "client")]
25pub use dash_platform_protocol::DashPlatformProtocol;
26pub use errors::*;
27
28pub mod data_contract;
29pub mod document;
30pub mod identifier;
31pub mod identity;
32pub mod metadata;
33#[cfg(feature = "state-transitions")]
34pub mod state_transition;
35pub mod util;
36pub mod version;
37
38pub mod errors;
39
40pub mod validation;
41
42#[cfg(feature = "client")]
43pub mod dash_platform_protocol;
44
45mod bls;
46
47#[cfg(feature = "fixtures-and-mocks")]
48pub mod tests;
49
50pub mod asset_lock;
51pub mod balances;
52pub mod block;
53/// Core subsidy
54pub mod core_subsidy;
55pub mod fee;
56pub mod nft;
57pub mod prefunded_specialized_balance;
58pub mod serialization;
59#[cfg(any(
60    feature = "message-signing",
61    feature = "message-signature-verification"
62))]
63pub mod signing;
64#[cfg(feature = "system_contracts")]
65pub mod system_data_contracts;
66
67pub mod tokens;
68
69pub mod voting;
70
71#[cfg(feature = "core-types")]
72pub mod core_types;
73
74pub mod address_funds;
75pub mod group;
76pub mod shielded;
77pub mod withdrawal;
78
79pub use async_trait;
80
81pub use bls::*;
82
83pub mod prelude {
84
85    pub use crate::data_contract::DataContract;
86    #[cfg(feature = "extended-document")]
87    pub use crate::document::ExtendedDocument;
88    pub use crate::errors::ProtocolError;
89    pub use crate::identifier::Identifier;
90    pub use crate::identity::state_transition::asset_lock_proof::AssetLockProof;
91    pub use crate::identity::Identity;
92    pub use crate::identity::IdentityPublicKey;
93    #[cfg(feature = "validation")]
94    pub use crate::validation::ConsensusValidationResult;
95
96    pub type EpochInterval = u16;
97
98    pub type BlockHeight = u64;
99
100    pub type FeeMultiplier = u64;
101
102    pub type BlockHeightInterval = u64;
103
104    pub type CoreBlockHeight = u32;
105    pub type TimestampMillis = u64;
106
107    pub type TimestampMillisInterval = u64;
108
109    pub type StartAtIncluded = bool;
110
111    pub type TimestampIncluded = bool;
112    pub type Revision = u64;
113
114    /// Identity nonces are split 24 bits are for the recent documents, 40 bits are for the identity.
115    pub type IdentityNonce = u64;
116
117    /// The Key of type none is only 32 bits, which means an address can be used up to 4 billion times.
118    pub type AddressNonce = u32;
119
120    pub type SenderKeyIndex = u32;
121    pub type RecipientKeyIndex = u32;
122
123    /// The index of the user's key that is used to derive keys that will be used to encrypt the contact's user id in encToUserId and the private data.
124    pub type RootEncryptionKeyIndex = u32;
125
126    /// The index at which to derive the root encryption key.
127    pub type DerivationEncryptionKeyIndex = u32;
128
129    /// UserFeeIncrease is the additional percentage of the processing fee.
130    /// A 1 here means we pay 1% more in processing fees. A 100 means we pay 100% more.
131    pub type UserFeeIncrease = u16;
132}
133
134pub use bincode;
135pub use bincode::enc::Encode;
136#[cfg(feature = "bls-signatures")]
137pub use dashcore::blsful as bls_signatures;
138#[cfg(feature = "ed25519-dalek")]
139pub use dashcore::ed25519_dalek;
140#[cfg(feature = "data-contracts")]
141pub use data_contracts;
142#[cfg(feature = "jsonschema")]
143pub use jsonschema;
144pub use platform_serialization;
145pub use platform_serialization::de::{BorrowDecode, Decode, DefaultBorrowDecode, DefaultDecode};
146pub use platform_value;