fuels_rs/
errors.rs

1use core::str::Utf8Error;
2use fuels_core::errors::CodecError;
3use fuels_core::InvalidOutputType;
4use thiserror::Error;
5pub type Result<T> = core::result::Result<T, Error>;
6use std::net;
7
8#[derive(Error, Debug)]
9pub enum Error {
10    #[error("Invalid name: {0}")]
11    InvalidName(String),
12    #[error("Invalid data")]
13    InvalidData,
14    #[error("Missing data: {0}")]
15    MissingData(String),
16    #[error("Serialization error: {0}")]
17    SerdeJson(#[from] serde_json::Error),
18    #[error("Invalid type: {0}")]
19    InvalidType(String),
20    #[error("Parse integer error: {0}")]
21    ParseIntError(#[from] std::num::ParseIntError),
22    #[error("Parse boolean error: {0}")]
23    ParseBoolError(#[from] std::str::ParseBoolError),
24    #[error("Parse hex error: {0}")]
25    ParseHexError(#[from] hex::FromHexError),
26    #[error("Utf8 error: {0}")]
27    Utf8Error(#[from] Utf8Error),
28    #[error("Compilation error: {0}")]
29    CompilationError(String),
30    #[error("Network error: {0}")]
31    NetworkError(#[from] net::AddrParseError),
32    #[error("Transaction error: {0}")]
33    TransactionError(String),
34    #[error("Infrastructure error: {0}")]
35    InfrastructureError(String),
36    #[error("Contract call error: {0}")]
37    ContractCallError(String),
38}
39
40impl From<CodecError> for Error {
41    fn from(err: CodecError) -> Error {
42        match err {
43            CodecError::InvalidData => Error::InvalidData,
44            CodecError::Utf8Error(e) => Error::Utf8Error(e),
45        }
46    }
47}
48
49impl From<InvalidOutputType> for Error {
50    fn from(err: InvalidOutputType) -> Error {
51        Error::ContractCallError(err.0)
52    }
53}