Skip to main content

arweave_rs/
error.rs

1use std::string::FromUtf8Error;
2
3use thiserror::Error;
4use url::ParseError;
5
6#[derive(Debug, Error)]
7pub enum Error {
8    #[error("Error getting oracle price: {0}")]
9    OracleGetPriceError(String),
10
11    #[error("Getting Arweave price from oracle: {0}")]
12    GetPriceError(String),
13
14    #[error("Status code not Ok")]
15    StatusCodeNotOk,
16
17    #[error("Unsigned transaction")]
18    UnsignedTransaction,
19
20    #[error("Invalid proof")]
21    InvalidProof,
22
23    #[error("Slice error")]
24    SliceError,
25
26    #[error("Invalid tag encoding.")]
27    InvalidValueForTx,
28
29    #[error("Invalid tag encoding.")]
30    InvalidTagEncoding,
31
32    #[error("Error getting network info: {0}")]
33    NetworkInfoError(String),
34
35    #[error("No bytes left.")]
36    NoBytesLeft,
37
38    #[error("Crypto error: {0}")]
39    CryptoError(String),
40
41    #[error("Error getting transaction info: {0}")]
42    TransactionInfoError(String),
43
44    #[error("Unknown Error.")]
45    UnknownError,
46
47    #[error("Error getting wallet: {0}")]
48    WalletError(String),
49
50    #[error("Invalid signature")]
51    InvalidSignature,
52
53    #[error("Error posting chunk: {0}")]
54    PostChunkError(String),
55
56    #[error("Error signing: {0}")]
57    SigningError(String),
58
59    #[error("No field present: {0}")]
60    NoneError(String), //TODO: add option::NoneError implementation when released
61
62    #[error("Io Error")]
63    IoError(std::io::Error),
64
65    #[error("ParseIntError")]
66    ParseIntError(std::num::ParseIntError),
67
68    #[error("UrlParseError")]
69    UrlParseError(ParseError),
70
71    #[error("FromUtf8Error")]
72    FromUtf8Error(FromUtf8Error),
73
74    #[error("FromUtf8Error")]
75    JsonWebKeyError(jsonwebkey::Error),
76
77    #[error("ReqwestError")]
78    ReqwestError(reqwest::Error),
79
80    #[error("DecodeError")]
81    Base64DecodeError(base64::DecodeError),
82
83    #[error("SerdeJsonError")]
84    SerdeJsonError(serde_json::Error),
85}
86
87impl From<std::io::Error> for Error {
88    fn from(value: std::io::Error) -> Self {
89        Self::IoError(value)
90    }
91}