cdk_common/database/
mod.rs1#[cfg(feature = "mint")]
4pub mod mint;
5#[cfg(feature = "wallet")]
6mod wallet;
7
8#[cfg(feature = "mint")]
9pub use mint::{
10 Database as MintDatabase, DbTransactionFinalizer as MintDbWriterFinalizer,
11 KeysDatabase as MintKeysDatabase, KeysDatabaseTransaction as MintKeyDatabaseTransaction,
12 ProofsDatabase as MintProofsDatabase, ProofsTransaction as MintProofsTransaction,
13 QuotesDatabase as MintQuotesDatabase, QuotesTransaction as MintQuotesTransaction,
14 SignaturesDatabase as MintSignaturesDatabase,
15 SignaturesTransaction as MintSignatureTransaction, Transaction as MintTransaction,
16};
17#[cfg(all(feature = "mint", feature = "auth"))]
18pub use mint::{MintAuthDatabase, MintAuthTransaction};
19#[cfg(feature = "wallet")]
20pub use wallet::Database as WalletDatabase;
21
22#[derive(Debug, thiserror::Error)]
24pub enum Error {
25 #[error(transparent)]
27 Database(Box<dyn std::error::Error + Send + Sync>),
28
29 #[error("Duplicate entry")]
31 Duplicate,
32
33 #[error(transparent)]
35 DHKE(#[from] crate::dhke::Error),
36 #[error(transparent)]
38 NUT00(#[from] crate::nuts::nut00::Error),
39 #[error(transparent)]
41 NUT02(#[from] crate::nuts::nut02::Error),
42 #[error(transparent)]
44 #[cfg(feature = "auth")]
45 NUT22(#[from] crate::nuts::nut22::Error),
46 #[error(transparent)]
48 Serde(#[from] serde_json::Error),
49 #[error("Unknown Quote")]
51 UnknownQuote,
52 #[error("Attempt to remove spent proof")]
54 AttemptRemoveSpentProof,
55 #[error("Attempt to update state of spent proof")]
57 AttemptUpdateSpentProof,
58 #[error("Proof not found")]
60 ProofNotFound,
61 #[error("Unknown or invalid keyset")]
63 InvalidKeysetId,
64 #[cfg(feature = "mint")]
65 #[error("Invalid state transition")]
67 InvalidStateTransition(crate::state::Error),
68}
69
70#[cfg(feature = "mint")]
71impl From<crate::state::Error> for Error {
72 fn from(state: crate::state::Error) -> Self {
73 match state {
74 crate::state::Error::AlreadySpent => Error::AttemptUpdateSpentProof,
75 _ => Error::InvalidStateTransition(state),
76 }
77 }
78}