Skip to main content

predict_sdk/
errors.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum Error {
5    #[error("Invalid chain ID: {0}")]
6    InvalidChainId(u64),
7
8    #[error("Invalid quantity: {0}")]
9    InvalidQuantity(String),
10
11    #[error("Invalid price: {0}")]
12    InvalidPrice(String),
13
14    #[error("Invalid order data: {0}")]
15    InvalidOrderData(String),
16
17    #[error("EIP-712 signing error: {0}")]
18    SigningError(String),
19
20    #[error("Contract interaction error: {0}")]
21    ContractError(String),
22
23    #[error("HTTP request error: {0}")]
24    HttpError(#[from] reqwest::Error),
25
26    #[error("API error: {0}")]
27    ApiError(String),
28
29    #[error("Configuration error: {0}")]
30    ConfigError(String),
31
32    #[error("JSON serialization error: {0}")]
33    JsonError(#[from] serde_json::Error),
34
35    #[error("Alloy error: {0}")]
36    AlloyError(String),
37
38    #[error("{0}")]
39    Other(String),
40}
41
42impl From<alloy::contract::Error> for Error {
43    fn from(err: alloy::contract::Error) -> Self {
44        Error::AlloyError(err.to_string())
45    }
46}
47
48pub type Result<T> = std::result::Result<T, Error>;