1use thiserror::Error;
4use tonic::Status;
5
6#[derive(Debug, Error)]
8pub enum Error {
9 #[error(transparent)]
11 Amount(#[from] cdk_common::amount::Error),
12 #[error("Unknown invoice amount")]
14 UnknownInvoiceAmount,
15 #[error("Unknown invoice")]
17 UnknownInvoice,
18 #[error("LND connection error")]
20 Connection,
21 #[error("Invalid hash")]
23 InvalidHash,
24 #[error("LND payment failed")]
26 PaymentFailed,
27 #[error("LND unknown payment status")]
29 UnknownPaymentStatus,
30 #[error("LND missing last hop in route")]
32 MissingLastHop,
33 #[error("Amount overflow")]
35 AmountOverflow,
36 #[error("LND error: `{0}`")]
38 LndError(Status),
39 #[error("LND invalid config: `{0}`")]
41 InvalidConfig(String),
42 #[error("Could not read file")]
44 ReadFile,
45 #[error("Database error: {0}")]
47 Database(String),
48}
49
50impl From<Error> for cdk_common::payment::Error {
51 fn from(e: Error) -> Self {
52 Self::Lightning(Box::new(e))
53 }
54}