use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error("fmt error: {0}")]
Fmt(#[from] std::fmt::Error),
#[error("io error: {0}")]
Io(#[from] std::io::Error),
#[error("vsss error: {0}")]
Vsss(vsss_rs::Error),
#[error("Postcard error: {0}")]
Postcard(#[from] postcard::Error),
#[error("invalid protocol message: {0}")]
InvalidMessage(String),
#[error("error during participant initialization: {0}")]
Initialization(String),
#[error("round error: {0}")]
Round(String),
#[error("publicly verifiable secret sharing error: {0}")]
Pvss(String),
}
impl From<vsss_rs::Error> for Error {
fn from(e: vsss_rs::Error) -> Self {
Error::Vsss(e)
}
}
pub type DkgResult<T> = Result<T, Error>;