dd_merkle_tree/merkle/
errors.rs1#[cfg(not(target_arch = "wasm32"))]
2use anchor_lang::error::{AnchorError, Error, ERROR_CODE_OFFSET};
3use thiserror::Error;
4
5#[cfg(not(target_arch = "wasm32"))]
6pub type Result<T> = anchor_lang::Result<T>;
7#[cfg(target_arch = "wasm32")]
8pub type Result<T> = anyhow::Result<T, MerkleError>;
9
10#[derive(Debug, Error)]
11pub enum MerkleError {
12 #[error("Leaf out of range")]
13 LeafOutOfRange,
14 #[error("Branch out of range")]
15 BranchOutOfRange,
16 #[error("Leaf not found")]
17 LeafNotFound,
18 #[error("Merkle tree not merklized")]
19 TreeNotMerklized,
20 #[error("Merkle tree is empty")]
21 TreeEmpty,
22 #[error("Invalid hash size")]
23 InvalidHashSize,
24}
25
26#[cfg(not(target_arch = "wasm32"))]
27impl From<MerkleError> for anchor_lang::error::Error {
28 fn from(value: MerkleError) -> Self {
29 let e = match value {
30 MerkleError::LeafOutOfRange => AnchorError {
31 error_name: "LeafOutOfRange".to_string(),
32 error_code_number: ERROR_CODE_OFFSET + 1337 + 0,
33 error_msg: value.to_string(),
34 error_origin: None,
35 compared_values: None
36 },
37 MerkleError::BranchOutOfRange => AnchorError {
38 error_name: "BranchOutOfRange".to_string(),
39 error_code_number: ERROR_CODE_OFFSET + 1337 + 1,
40 error_msg: value.to_string(),
41 error_origin: None,
42 compared_values: None
43 },
44 MerkleError::LeafNotFound => AnchorError {
45 error_name: "LeafNotFound".to_string(),
46 error_code_number: ERROR_CODE_OFFSET + 1337 + 2,
47 error_msg: value.to_string(),
48 error_origin: None,
49 compared_values: None
50 },
51 MerkleError::TreeNotMerklized => AnchorError {
52 error_name: "TreeNotMerklized".to_string(),
53 error_code_number: ERROR_CODE_OFFSET + 1337 + 3,
54 error_msg: value.to_string(),
55 error_origin: None,
56 compared_values: None
57 },
58 MerkleError::TreeEmpty => AnchorError {
59 error_name: "TreeEmpty".to_string(),
60 error_code_number: ERROR_CODE_OFFSET + 1337 + 4,
61 error_msg: value.to_string(),
62 error_origin: None,
63 compared_values: None
64 },
65 MerkleError::InvalidHashSize => AnchorError {
66 error_name: "InvalidHashSize".to_string(),
67 error_code_number: ERROR_CODE_OFFSET + 1337 + 5,
68 error_msg: value.to_string(),
69 error_origin: None,
70 compared_values: None
71 },
72 };
73 Error::AnchorError(Box::new(e))
74 }
75}