error.rs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //! LND Errors
  2. use fedimint_tonic_lnd::tonic::Status;
  3. use thiserror::Error;
  4. /// LND Error
  5. #[derive(Debug, Error)]
  6. pub enum Error {
  7. /// Invoice amount not defined
  8. #[error("Unknown invoice amount")]
  9. UnknownInvoiceAmount,
  10. /// Unknown invoice
  11. #[error("Unknown invoice")]
  12. UnknownInvoice,
  13. /// Connection error
  14. #[error("LND connection error")]
  15. Connection,
  16. /// Invalid hash
  17. #[error("Invalid hash")]
  18. InvalidHash,
  19. /// Payment failed
  20. #[error("LND payment failed")]
  21. PaymentFailed,
  22. /// Unknown payment status
  23. #[error("LND unknown payment status")]
  24. UnknownPaymentStatus,
  25. /// Missing last hop in route
  26. #[error("LND missing last hop in route")]
  27. MissingLastHop,
  28. /// Amount overflow
  29. #[error("Amount overflow")]
  30. AmountOverflow,
  31. /// Errors coming from the backend
  32. #[error("LND error: `{0}`")]
  33. LndError(Status),
  34. /// Errors invalid config
  35. #[error("LND invalid config: `{0}`")]
  36. InvalidConfig(String),
  37. }
  38. impl From<Error> for cdk::cdk_payment::Error {
  39. fn from(e: Error) -> Self {
  40. Self::Lightning(Box::new(e))
  41. }
  42. }