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 #[error("{0}")]
16 Codec(codec::Error) = 5,
17}
18
19impl From<subxt_core::Error> for Error {
20 fn from(value: subxt_core::Error) -> Self {
21 Self::SubxtCore(value)
22 }
23}
24
25#[cfg(feature = "subxt")]
26impl From<subxt::Error> for Error {
27 fn from(value: subxt::Error) -> Self {
28 Self::Subxt(value)
29 }
30}
31
32impl From<subxt_rpcs::Error> for Error {
33 fn from(value: subxt_rpcs::Error) -> Self {
34 Self::SubxtRpcs(value)
35 }
36}
37
38impl From<String> for Error {
39 fn from(value: String) -> Self {
40 Self::Custom(value)
41 }
42}
43
44impl From<&str> for Error {
45 fn from(value: &str) -> Self {
46 Self::Custom(String::from(value))
47 }
48}
49
50impl From<codec::Error> for Error {
51 fn from(value: codec::Error) -> Self {
52 Self::Codec(value)
53 }
54}