1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum Error {
8 #[error("Unknown invoice amount")]
10 UnknownInvoiceAmount,
11 #[error("Wrong CLN response")]
13 WrongClnResponse,
14 #[error("Unknown invoice")]
16 UnknownInvoice,
17 #[error("Invalid hash")]
19 InvalidHash,
20 #[error(transparent)]
22 Cln(#[from] cln_rpc::Error),
23 #[error(transparent)]
25 ClnRpc(#[from] cln_rpc::RpcError),
26 #[error(transparent)]
28 Amount(#[from] cdk_common::amount::Error),
29 #[error(transparent)]
31 Utf8(#[from] std::string::FromUtf8Error),
32 #[error("Bolt12 error: {0}")]
34 Bolt12(String),
35 #[error("Database error: {0}")]
37 Database(String),
38}
39
40impl From<Error> for cdk_common::payment::Error {
41 fn from(e: Error) -> Self {
42 Self::Lightning(Box::new(e))
43 }
44}