1#[derive(thiserror::Error, Debug)]
2#[repr(u8)]
3pub enum Error {
4 #[cfg(feature = "subxt")]
5 #[error("{0}")]
6 Subxt(subxt::Error) = 0,
7 #[error("{0}")]
8 SubxtCore(subxt_core::Error) = 1,
9 #[error("{0}")]
10 SubxtRpcs(subxt_rpcs::Error) = 2,
11 #[error("{0}")]
12 Custom(String) = 3,
13 #[error("Transaction is not allowed. {0}")]
14 TransactionNotAllowed(String) = 4,
15}
16
17impl From<subxt_core::Error> for Error {
18 fn from(value: subxt_core::Error) -> Self {
19 Self::SubxtCore(value)
20 }
21}
22
23#[cfg(feature = "subxt")]
24impl From<subxt::Error> for Error {
25 fn from(value: subxt::Error) -> Self {
26 Self::Subxt(value)
27 }
28}
29
30impl From<subxt_rpcs::Error> for Error {
31 fn from(value: subxt_rpcs::Error) -> Self {
32 Self::SubxtRpcs(value)
33 }
34}
35
36impl From<String> for Error {
37 fn from(value: String) -> Self {
38 Self::Custom(value)
39 }
40}
41
42impl From<&str> for Error {
43 fn from(value: &str) -> Self {
44 Self::Custom(String::from(value))
45 }
46}