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), #[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}