1#![cfg_attr(feature = "std", doc = "## Feature flags")]
11#![cfg_attr(feature = "std", doc = document_features::document_features!())]
12#![no_std]
15#![cfg_attr(docsrs, feature(doc_cfg))]
16#![deny(rustdoc::broken_intra_doc_links)]
18#![deny(unsafe_code)]
19
20#[macro_use]
21extern crate alloc;
22
23#[cfg(feature = "std")]
24extern crate std;
25
26mod address;
27pub mod builder;
28pub mod bundle;
29
30#[cfg(feature = "circuit")]
31pub mod circuit;
32pub mod constants;
33pub mod group_hash;
34pub mod keys;
35pub mod note;
36pub mod note_encryption;
37pub mod pczt;
38pub mod pedersen_hash;
39#[cfg(feature = "circuit")]
40pub mod prover;
41mod spec;
42mod tree;
43pub mod util;
44pub mod value;
45#[cfg(feature = "circuit")]
46mod verifier;
47pub mod zip32;
48
49pub use address::PaymentAddress;
50pub use bundle::Bundle;
51pub use keys::{Diversifier, NullifierDerivingKey, ProofGenerationKey, SaplingIvk, ViewingKey};
52pub use note::{nullifier::Nullifier, Note, Rseed};
53pub use tree::{
54 merkle_hash, Anchor, CommitmentTree, IncrementalWitness, MerklePath, Node,
55 NOTE_COMMITMENT_TREE_DEPTH,
56};
57
58#[cfg(feature = "circuit")]
59pub use verifier::{BatchValidator, SaplingVerificationContext};
60
61#[cfg(any(test, feature = "test-dependencies"))]
62#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))]
63pub mod testing {
64 pub use super::{
65 address::testing::arb_payment_address, keys::testing::arb_incoming_viewing_key,
66 note::testing::arb_note, tree::testing::arb_node,
67 };
68}
69
70#[cfg(test)]
71mod test_vectors;