cdk_common/database/
mod.rs1#[cfg(feature = "mint")]
4pub mod mint;
5#[cfg(feature = "wallet")]
6mod wallet;
7
8#[cfg(all(feature = "mint", feature = "auth"))]
9pub use mint::MintAuthDatabase;
10#[cfg(feature = "mint")]
11pub use mint::{
12 Database as MintDatabase, KeysDatabase as MintKeysDatabase,
13 ProofsDatabase as MintProofsDatabase, QuotesDatabase as MintQuotesDatabase,
14 SignaturesDatabase as MintSignaturesDatabase,
15};
16#[cfg(feature = "wallet")]
17pub use wallet::Database as WalletDatabase;
18
19#[derive(Debug, thiserror::Error)]
21pub enum Error {
22 #[error(transparent)]
24 Database(Box<dyn std::error::Error + Send + Sync>),
25 #[error(transparent)]
27 DHKE(#[from] crate::dhke::Error),
28 #[error(transparent)]
30 NUT00(#[from] crate::nuts::nut00::Error),
31 #[error(transparent)]
33 NUT02(#[from] crate::nuts::nut02::Error),
34 #[error(transparent)]
36 #[cfg(feature = "auth")]
37 NUT22(#[from] crate::nuts::nut22::Error),
38 #[error(transparent)]
40 Serde(#[from] serde_json::Error),
41 #[error("Unknown Quote")]
43 UnknownQuote,
44 #[error("Attempt to remove spent proof")]
46 AttemptRemoveSpentProof,
47 #[error("Attempt to update state of spent proof")]
49 AttemptUpdateSpentProof,
50 #[error("Proof not found")]
52 ProofNotFound,
53 #[error("Unknown or invalid keyset")]
55 InvalidKeysetId,
56 #[cfg(feature = "mint")]
57 #[error("Invalid state transition")]
59 InvalidStateTransition(crate::state::Error),
60}
61
62#[cfg(feature = "mint")]
63impl From<crate::state::Error> for Error {
64 fn from(state: crate::state::Error) -> Self {
65 match state {
66 crate::state::Error::AlreadySpent => Error::AttemptUpdateSpentProof,
67 _ => Error::InvalidStateTransition(state),
68 }
69 }
70}