use thiserror::Error;
#[derive(Error, Debug)]
pub enum MescError {
#[error("Mesc is not enabled")]
MescNotEnabled,
#[error("Invalid configuration mode")]
InvalidConfigMode,
#[error("Invalid chain ID: {0}")]
InvalidChainId(String),
#[error("Integrity error: {0}")]
IntegrityError(String),
#[error("Missing endpoint: {0}")]
MissingEndpoint(String),
#[error("Invalid path: {0}")]
InvalidPath(String),
#[error("Missing config file: {0}")]
MissingConfigFile(String),
#[error(transparent)]
IOError(#[from] std::io::Error),
#[error("Invalid JSON format")]
InvalidJson,
#[error(transparent)]
EnvReadError(#[from] std::env::VarError),
#[error("Not implemented: {0}")]
NotImplemented(String),
#[error(transparent)]
SerdeError(#[from] serde_json::Error),
#[error("Invalid input")]
InvalidInput,
#[error("Override error: {0}")]
OverrideError(String),
}