use thiserror::Error;
#[derive(Error, Clone, Debug)]
pub enum BlsError {
#[error("invalid signing operation: {0}")]
SigningError(String),
#[error("invalid inputs: {0}")]
InvalidInputs(String),
#[error("invalid signature")]
InvalidSignature,
#[error("invalid proof")]
InvalidProof,
#[error("Invalid signature scheme")]
InvalidSignatureScheme,
#[error("Invalid sign cryption share")]
InvalidDecryptionShare,
#[error("an error occurred during secret sharing")]
VsssError,
#[error("serialization error: {0}")]
DeserializationError(String),
}
pub type BlsResult<T> = anyhow::Result<T, BlsError>;
impl From<vsss_rs::Error> for BlsError {
fn from(_: vsss_rs::Error) -> Self {
Self::VsssError
}
}
impl From<serde_bare::error::Error> for BlsError {
fn from(e: serde_bare::error::Error) -> Self {
Self::DeserializationError(e.to_string())
}
}