diff --git a/Cargo.toml b/Cargo.toml index 228d8d65..029741d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,6 @@ rand = "0.8.5" getrandom = { version = "0.2", features = ["js"] } serde = { version = "1.0.160", features = ["derive"]} serde_json = "1.0.96" -thiserror = "1.0.40" url = "2.3.1" [dev-dependencies] diff --git a/src/client.rs b/src/client.rs index 2f1cac41..1feb60ff 100644 --- a/src/client.rs +++ b/src/client.rs @@ -71,7 +71,7 @@ impl Client { match response { Ok(res) => Ok(res), - Err(_) => Err(Error::CustomError(res.to_string())), + Err(_) => Err(MintError::from_json(&res.to_string())?.into()), } } @@ -88,7 +88,7 @@ impl Client { match response { Ok(res) => Ok(res), - Err(_) => Err(Error::CustomError(res.to_string())), + Err(_) => Err(MintError::from_json(&res.to_string())?.into()), } } diff --git a/src/error.rs b/src/error.rs index d79b4204..a6076d76 100644 --- a/src/error.rs +++ b/src/error.rs @@ -2,37 +2,74 @@ use std::string::FromUtf8Error; use crate::types::MintError; -#[derive(Debug, thiserror::Error)] +#[derive(Debug)] pub enum Error { /// Min req error - #[error("minreq error: {0}")] - MinReqError(#[from] minreq::Error), + MinReqError(minreq::Error), /// Parse Url Error - #[error("minreq error: {0}")] - UrlParseError(#[from] url::ParseError), + UrlParseError(url::ParseError), /// Unsupported Token - #[error("Unsupported Token")] UnsupportedToken, /// Utf8 parse error - #[error("utf8error error: {0}")] - Utf8ParseError(#[from] FromUtf8Error), + Utf8ParseError(FromUtf8Error), /// Serde Json error - #[error("Serde Json error: {0}")] - SerdeJsonError(#[from] serde_json::Error), + SerdeJsonError(serde_json::Error), /// Base64 error - #[error("Base64 error: {0}")] - Base64Error(#[from] base64::DecodeError), + Base64Error(base64::DecodeError), /// Insufficaint Funds - #[error("Not enough funds")] InsufficantFunds, - #[error("Custom error: {0}")] CustomError(String), /// From hex error - #[error("From Hex Error: {0}")] - HexError(#[from] hex::FromHexError), + HexError(hex::FromHexError), /// From elliptic curve - #[error("From Elliptic: {0}")] - EllipticError(#[from] k256::elliptic_curve::Error), - #[error("Mint Error: {0}")] - MintError(#[from] MintError), + EllipticError(k256::elliptic_curve::Error), + CrabMintError(MintError), +} + +impl From for Error { + fn from(err: minreq::Error) -> Error { + Error::MinReqError(err) + } +} + +impl From for Error { + fn from(err: url::ParseError) -> Error { + Error::UrlParseError(err) + } +} + +impl From for Error { + fn from(err: FromUtf8Error) -> Error { + Error::Utf8ParseError(err) + } +} + +impl From for Error { + fn from(err: serde_json::Error) -> Error { + Error::SerdeJsonError(err) + } +} + +impl From for Error { + fn from(err: base64::DecodeError) -> Error { + Error::Base64Error(err) + } +} + +impl From for Error { + fn from(err: hex::FromHexError) -> Error { + Error::HexError(err) + } +} + +impl From for Error { + fn from(err: k256::elliptic_curve::Error) -> Error { + Error::EllipticError(err) + } +} + +impl From for Error { + fn from(err: MintError) -> Error { + Error::CrabMintError(err) + } }