lazarus_receipts/lib.rs
1//! Lazarus Receipts SDK - Cryptographic receipt verification.
2//!
3//! This crate provides Merkle proof verification using the positional v1.0.1 rule,
4//! which is the auditor-grade standard for Lazarus Receipts.
5//!
6//! # Example
7//!
8//! ```rust
9//! use lazarus_receipts::{hash256, verify_merkle_proof_directional, ProofNode};
10//!
11//! let leaf_a = hash256(b"leaf_a");
12//! let leaf_b = hash256(b"leaf_b");
13//!
14//! // Build root: H(leaf_a || leaf_b)
15//! let mut combined = Vec::new();
16//! combined.extend_from_slice(&leaf_a);
17//! combined.extend_from_slice(&leaf_b);
18//! let root = hash256(&combined);
19//!
20//! // Proof for leaf_a: sibling (leaf_b) is on RIGHT
21//! let proof = vec![ProofNode { side: 'R', hash: leaf_b }];
22//!
23//! assert!(verify_merkle_proof_directional(leaf_a, root, &proof));
24//! ```
25
26pub mod hash;
27pub mod merkle;
28
29pub use hash::{hash256, hex_to_bytes, bytes_to_hex, receipt_hash_from_json_bytes};
30pub use merkle::{ProofNode, verify_merkle_proof_directional};
31
32#[allow(deprecated)]
33pub use merkle::verify_merkle_proof_legacy_sorted;