Skip to main content

walletconnect_sdk/
error.rs

1/// Error
2///
3/// Wraps all the relevant errors in this crate.
4///
5use crate::types::JsonRpcError;
6
7pub type Result<T, E = Error> = core::result::Result<T, E>;
8
9#[derive(Debug)]
10pub enum Error {
11    RelayProtocolNotMentioned,
12    InvalidUri,
13    SymKeyNotMentioned,
14    PathEndNotFound,
15    EmptyParams,
16    PairingNotApproved,
17    MethodIsNone(String),
18    InvalidIrnTag(u16),
19    ParseInt(std::num::ParseIntError),
20    JsonRpc(JsonRpcError),
21    Anyhow(anyhow::Error),
22    Reqwest(reqwest::Error),
23    InternalError(String),
24    InternalError2(&'static str),
25    InternalError3(&'static str, String),
26    SerdePlainError(serde_plain::Error),
27    SerdeJsonError(serde_json::Error),
28    // SerdePathToError(Box<serde_path_to_error::Error<serde_json::Error>>),
29    FromHexError(alloy::hex::FromHexError),
30    AesError(aes_gcm::Error),
31    FromUtf8Error(std::string::FromUtf8Error),
32    FmtError(std::fmt::Error),
33    SignatureError(alloy::primitives::SignatureError),
34    TimeError(time::error::Format),
35    SystemTimeError(std::time::SystemTimeError),
36}
37
38impl From<&'static str> for Error {
39    fn from(e: &'static str) -> Self {
40        Error::InternalError2(e)
41    }
42}
43
44impl From<String> for Error {
45    fn from(e: String) -> Self {
46        Error::InternalError(e)
47    }
48}
49
50impl From<std::num::ParseIntError> for Error {
51    fn from(e: std::num::ParseIntError) -> Self {
52        Error::ParseInt(e)
53    }
54}
55
56impl From<JsonRpcError> for Error {
57    fn from(e: JsonRpcError) -> Self {
58        Error::JsonRpc(e)
59    }
60}
61
62impl From<anyhow::Error> for Error {
63    fn from(e: anyhow::Error) -> Self {
64        Error::Anyhow(e)
65    }
66}
67
68impl From<reqwest::Error> for Error {
69    fn from(e: reqwest::Error) -> Self {
70        Error::Reqwest(e)
71    }
72}
73
74impl From<serde_plain::Error> for Error {
75    fn from(e: serde_plain::Error) -> Self {
76        Error::SerdePlainError(e)
77    }
78}
79
80impl From<serde_json::Error> for Error {
81    fn from(e: serde_json::Error) -> Self {
82        Error::SerdeJsonError(e)
83    }
84}
85
86impl From<alloy::hex::FromHexError> for Error {
87    fn from(e: alloy::hex::FromHexError) -> Self {
88        Error::FromHexError(e)
89    }
90}
91
92impl From<aes_gcm::Error> for Error {
93    fn from(e: aes_gcm::Error) -> Self {
94        Error::AesError(e)
95    }
96}
97
98impl From<std::string::FromUtf8Error> for Error {
99    fn from(e: std::string::FromUtf8Error) -> Self {
100        Error::FromUtf8Error(e)
101    }
102}
103
104impl From<std::fmt::Error> for Error {
105    fn from(e: std::fmt::Error) -> Self {
106        Error::FmtError(e)
107    }
108}
109
110impl From<alloy::primitives::SignatureError> for Error {
111    fn from(e: alloy::primitives::SignatureError) -> Self {
112        Error::SignatureError(e)
113    }
114}
115
116impl From<time::error::Format> for Error {
117    fn from(e: time::error::Format) -> Self {
118        Error::TimeError(e)
119    }
120}
121
122impl From<std::time::SystemTimeError> for Error {
123    fn from(e: std::time::SystemTimeError) -> Self {
124        Error::SystemTimeError(e)
125    }
126}