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::{
28    CommitmentRandomness, NotSmallOrderValueCommitment, NoteCommitment, ValueCommitment,
29};
30pub use keys::Diversifier;
31pub use note::{EncryptedNote, Note, Nullifier, WrappedNoteKey};
32pub use output::{Output, OutputInTransactionV4, OutputPrefixInTransactionV5};
33pub use shielded_data::{
34    AnchorVariant, FieldNotPresent, PerSpendAnchor, SharedAnchor, ShieldedData, TransferData,
35};
36pub use spend::{Spend, SpendPrefixInTransactionV5};