miden_crypto/merkle/smt/full/
error.rs1use thiserror::Error;
2
3use crate::{
4 hash::rpo::RpoDigest,
5 merkle::{LeafIndex, SMT_DEPTH},
6};
7
8#[derive(Debug, Error)]
12pub enum SmtLeafError {
13 #[error(
14 "multiple leaf requires all keys to map to the same leaf index but key1 {key_1} and key2 {key_2} map to different indices"
15 )]
16 InconsistentMultipleLeafKeys { key_1: RpoDigest, key_2: RpoDigest },
17 #[error("single leaf key {key} maps to {actual_leaf_index:?} but was expected to map to {expected_leaf_index:?}")]
18 InconsistentSingleLeafIndices {
19 key: RpoDigest,
20 expected_leaf_index: LeafIndex<SMT_DEPTH>,
21 actual_leaf_index: LeafIndex<SMT_DEPTH>,
22 },
23 #[error("supplied leaf index {leaf_index_supplied:?} does not match {leaf_index_from_keys:?} for multiple leaf")]
24 InconsistentMultipleLeafIndices {
25 leaf_index_from_keys: LeafIndex<SMT_DEPTH>,
26 leaf_index_supplied: LeafIndex<SMT_DEPTH>,
27 },
28 #[error("multiple leaf requires at least two entries but only {0} were given")]
29 MultipleLeafRequiresTwoEntries(usize),
30}
31
32#[derive(Debug, Error)]
36pub enum SmtProofError {
37 #[error("merkle path length {0} does not match SMT depth {SMT_DEPTH}")]
38 InvalidMerklePathLength(usize),
39}