zebra_chain/
sapling.rs

1//! Sapling-related functionality.
2//!
3//! These data structures enforce the *structural validity* of Sapling-related
4//! consensus-critical objects.
5//!
6//! **Consensus rule**:
7//!
8//! These data structures ensure that [ZIP-216](https://zips.z.cash/zip-0216),
9//! canonical Jubjub point encodings, are enforced everywhere where Jubjub
10//! points occur, and non-canonical point encodings are rejected. This is
11//! enforced by the jubjub crate, which is also used by the redjubjub crate.
12
13mod commitment;
14mod note;
15
16#[cfg(any(test, feature = "proptest-impl"))]
17mod arbitrary;
18#[cfg(test)]
19mod tests;
20
21pub mod keys;
22pub mod output;
23pub mod shielded_data;
24pub mod spend;
25pub mod tree;
26
27pub use commitment::{CommitmentRandomness, ValueCommitment};
28pub use keys::Diversifier;
29pub use note::{EncryptedNote, Note, Nullifier, WrappedNoteKey};
30pub use output::{Output, OutputInTransactionV4, OutputPrefixInTransactionV5};
31pub use shielded_data::{
32    AnchorVariant, FieldNotPresent, PerSpendAnchor, SharedAnchor, ShieldedData, TransferData,
33};
34pub use spend::{Spend, SpendPrefixInTransactionV5};