1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![forbid(unsafe_code)]
4#![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;
53pub 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 pub type IdentityNonce = u64;
116
117 pub type AddressNonce = u32;
119
120 pub type SenderKeyIndex = u32;
121 pub type RecipientKeyIndex = u32;
122
123 pub type RootEncryptionKeyIndex = u32;
125
126 pub type DerivationEncryptionKeyIndex = u32;
128
129 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;