Skip to main content

light_merkle_tree_metadata/
lib.rs

1//! # light-merkle-tree-metadata
2//!
3//! Metadata structs for concurrent, indexed, and batched Merkle trees.
4//!
5//! | Module | Description |
6//! |--------|-------------|
7//! | [`merkle_tree`] | Tree metadata: height, next index, owner, delegate |
8//! | [`queue`] | Queue metadata: type, capacity, sequence numbers |
9//! | [`access`] | Owner and delegate access control checks |
10//! | [`fee`] | Fee parameters for tree and queue operations |
11//! | [`rollover`] | Rollover threshold and status tracking |
12//! | [`events`] | Changelog events emitted on tree updates |
13//! | [`errors`] | `MerkleTreeMetadataError` variants |
14
15pub mod access;
16pub mod errors;
17pub mod events;
18pub mod fee;
19pub mod merkle_tree;
20pub mod queue;
21pub mod rollover;
22pub mod utils;
23#[cfg(feature = "anchor")]
24use anchor_lang::{AnchorDeserialize, AnchorSerialize};
25#[cfg(not(feature = "anchor"))]
26pub(crate) use borsh::{BorshDeserialize as AnchorDeserialize, BorshSerialize as AnchorSerialize};
27pub use light_compressed_account::{
28    QueueType, TreeType, ADDRESS_MERKLE_TREE_TYPE_V1, ADDRESS_MERKLE_TREE_TYPE_V2,
29    ADDRESS_QUEUE_TYPE_V1, ADDRESS_QUEUE_TYPE_V2, INPUT_STATE_QUEUE_TYPE_V2,
30    NULLIFIER_QUEUE_TYPE_V1, OUTPUT_STATE_QUEUE_TYPE_V2, STATE_MERKLE_TREE_TYPE_V1,
31    STATE_MERKLE_TREE_TYPE_V2,
32};