snarkvm_errors/dpc/
ledger.rs1use crate::{algorithms::MerkleError, objects::TransactionError};
18
19#[derive(Debug, Error)]
20pub enum LedgerError {
21 #[error("{}: {}", _0, _1)]
22 Crate(&'static str, String),
23
24 #[error("duplicate sn pushed to ledger")]
25 DuplicateMemo,
26
27 #[error("duplicate memo pushed to ledger")]
28 DuplicateSn,
29
30 #[error("database already exists")]
31 ExistingDatabase,
32
33 #[error("invalid cm pushed to ledger")]
34 InvalidCm,
35
36 #[error("invalid cm index during proving")]
37 InvalidCmIndex,
38
39 #[error("{}", _0)]
40 MerkleError(MerkleError),
41
42 #[error("{}", _0)]
43 Message(String),
44
45 #[error("{}", _0)]
46 TransactionError(TransactionError),
47}
48
49impl From<std::io::Error> for LedgerError {
50 fn from(error: std::io::Error) -> Self {
51 LedgerError::Crate("std::io", format!("{:?}", error))
52 }
53}
54
55impl From<MerkleError> for LedgerError {
56 fn from(error: MerkleError) -> Self {
57 LedgerError::MerkleError(error)
58 }
59}
60
61impl From<TransactionError> for LedgerError {
62 fn from(error: TransactionError) -> Self {
63 LedgerError::TransactionError(error)
64 }
65}