use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("Unknown invoice amount")]
UnknownInvoiceAmount,
#[error("Wrong CLN response")]
WrongClnResponse,
#[error("Unknown invoice")]
UnknownInvoice,
#[error("Invalid hash")]
InvalidHash,
#[error(transparent)]
Cln(#[from] cln_rpc::Error),
#[error(transparent)]
ClnRpc(#[from] cln_rpc::RpcError),
#[error(transparent)]
Amount(#[from] cdk_common::amount::Error),
#[error(transparent)]
Utf8(#[from] std::string::FromUtf8Error),
#[error("Bolt12 error: {0}")]
Bolt12(String),
#[error("Database error: {0}")]
Database(String),
#[error(transparent)]
SerdeJson(#[from] serde_json::Error),
}
impl From<Error> for cdk_common::payment::Error {
fn from(e: Error) -> Self {
Self::Lightning(Box::new(e))
}
}