use thiserror::Error;
use crate::nuts::{nut01, nut11, nut14};
use crate::util::hex;
#[derive(Debug, Error)]
pub enum Error {
#[error("Kind not found")]
KindNotFound,
#[error("Tag value not found")]
TagValueNotFound,
#[error("Incorrect secret kind")]
IncorrectSecretKind,
#[error("Spend conditions are not met")]
SpendConditionsNotMet,
#[error("proof does not contain enough proofs to be spendable")]
NotEnoughSignatures,
#[error(transparent)]
HexError(#[from] hex::Error),
#[error(transparent)]
ParseInt(#[from] std::num::ParseIntError),
#[error(transparent)]
SerdeJsonError(#[from] serde_json::Error),
#[error(transparent)]
Secret(#[from] crate::secret::Error),
#[error(transparent)]
NUT01(#[from] nut01::Error),
#[error(transparent)]
NUT11(#[from] nut11::Error),
#[error(transparent)]
NUT14(#[from] nut14::Error),
}