Skip to main content

drive_proof_verifier/
lib.rs

1//! Proof verification library for Dash Drive
2#![warn(missing_docs)]
3#![allow(clippy::result_large_err)]
4
5/// Errors that can occur during proof verification
6pub mod error;
7/// Implementation of proof verification
8mod proof;
9pub mod types;
10mod verify;
11pub use error::Error;
12pub use proof::document_count::{
13    verify_aggregate_count_proof, verify_distinct_count_proof, verify_point_lookup_count_proof,
14    verify_primary_key_count_tree_proof, DocumentCount,
15};
16pub use proof::document_split_count::DocumentSplitCounts;
17// Re-export `SplitCountEntry` from rs-drive at the proof-verifier
18// crate root so SDK consumers don't have to depend on rs-drive
19// directly just to name the entry type returned by
20// `verify_distinct_count_proof` and `DocumentSplitCounts::from_verified`.
21pub use drive::query::SplitCountEntry;
22pub use proof::{FromProof, Length};
23
24// Re-export context provider types from dash-context-provider
25#[cfg(feature = "mocks")]
26pub use dash_context_provider::MockContextProvider;
27pub use dash_context_provider::{ContextProvider, ContextProviderError, DataContractProvider};
28
29/// From Request
30pub mod from_request;
31/// Implementation of unproved verification
32pub mod unproved;
33
34// Needed for #[derive(PlatformSerialize, PlatformDeserialize)]
35#[cfg(feature = "mocks")]
36use dpp::serialization;