2020-08-15 18:02:07 -07:00
|
|
|
//! Sapling-related functionality.
|
2021-06-22 20:16:22 -07:00
|
|
|
//!
|
|
|
|
//! These data structures enforce the *structural validity* of Sapling-related
|
|
|
|
//! consensus-critical objects.
|
|
|
|
//!
|
|
|
|
//! **Consensus rule**:
|
|
|
|
//!
|
|
|
|
//! These data structures ensure that [ZIP-216](https://zips.z.cash/zip-0216),
|
|
|
|
//! canonical Jubjub point encodings, are enforced everywhere where Jubjub
|
|
|
|
//! points occur, and non-canonical point encodings are rejected. This is
|
|
|
|
//! enforced by the jubjub crate, which is also used by the redjubjub crate.
|
2020-08-15 18:02:07 -07:00
|
|
|
|
2020-08-27 21:14:41 -07:00
|
|
|
mod commitment;
|
2020-08-28 01:14:58 -07:00
|
|
|
mod note;
|
2022-10-29 13:59:55 -07:00
|
|
|
|
|
|
|
#[cfg(any(test, feature = "proptest-impl"))]
|
|
|
|
mod arbitrary;
|
2020-08-28 01:14:58 -07:00
|
|
|
#[cfg(test)]
|
|
|
|
mod tests;
|
2020-08-17 01:48:47 -07:00
|
|
|
|
2020-08-15 18:02:07 -07:00
|
|
|
pub mod keys;
|
2021-04-18 15:09:57 -07:00
|
|
|
pub mod output;
|
2021-03-31 14:34:25 -07:00
|
|
|
pub mod shielded_data;
|
2021-04-18 15:09:57 -07:00
|
|
|
pub mod spend;
|
2020-08-15 18:02:07 -07:00
|
|
|
pub mod tree;
|
2020-08-17 01:48:47 -07:00
|
|
|
|
2020-08-27 21:14:41 -07:00
|
|
|
pub use commitment::{CommitmentRandomness, NoteCommitment, ValueCommitment};
|
|
|
|
pub use keys::Diversifier;
|
2020-08-28 01:14:58 -07:00
|
|
|
pub use note::{EncryptedNote, Note, Nullifier, WrappedNoteKey};
|
2021-04-18 15:09:57 -07:00
|
|
|
pub use output::{Output, OutputInTransactionV4, OutputPrefixInTransactionV5};
|
2021-04-07 05:34:58 -07:00
|
|
|
pub use shielded_data::{
|
2021-04-19 23:22:25 -07:00
|
|
|
AnchorVariant, FieldNotPresent, PerSpendAnchor, SharedAnchor, ShieldedData, TransferData,
|
2021-04-07 05:34:58 -07:00
|
|
|
};
|
2021-04-18 15:09:57 -07:00
|
|
|
pub use spend::{Spend, SpendPrefixInTransactionV5};
|