use thiserror::Error;
#[derive(Debug, Error)]
pub enum SignerError {
#[error("{0}")]
Msg(String),
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
SerdeJson(#[from] serde_json::Error),
#[error(transparent)]
Base64(#[from] base64::DecodeError),
#[error("crypto error: {0}")]
Crypto(String),
#[error(transparent)]
Utf8(#[from] std::string::FromUtf8Error),
#[error("signature error: {0}")]
Signature(String),
}
pub type Result<T> = std::result::Result<T, SignerError>;
impl From<chacha20poly1305::aead::Error> for SignerError {
fn from(err: chacha20poly1305::aead::Error) -> Self {
SignerError::Crypto(err.to_string())
}
}
impl From<schnorrkel::SignatureError> for SignerError {
fn from(err: schnorrkel::SignatureError) -> Self {
SignerError::Signature(err.to_string())
}
}