Skip to main content

altius_tx_sdk/
error.rs

1//! Error types for the SDK
2
3use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, Error>;
6
7#[derive(Debug, Error)]
8pub enum Error {
9    #[error("Invalid private key: {0}")]
10    InvalidPrivateKey(String),
11
12    #[error("Invalid address: {0}")]
13    InvalidAddress(String),
14
15    #[error("Invalid hex string: {0}")]
16    InvalidHex(String),
17
18    #[error("Signing failed: {0}")]
19    SigningFailed(String),
20
21    #[error("Encoding failed: {0}")]
22    EncodingFailed(String),
23
24    #[error("Missing required field: {0}")]
25    MissingField(String),
26
27    #[error("RLP encoding error: {0}")]
28    RlpError(String),
29
30    #[error("RPC error: {0}")]
31    Rpc(String),
32
33    #[error("Other error: {0}")]
34    Other(String),
35}
36
37impl From<hex::FromHexError> for Error {
38    fn from(e: hex::FromHexError) -> Self {
39        Error::InvalidHex(e.to_string())
40    }
41}
42
43impl From<alloy_primitives::AddressError> for Error {
44    fn from(e: alloy_primitives::AddressError) -> Self {
45        Error::InvalidAddress(e.to_string())
46    }
47}
48
49impl From<reqwest::Error> for Error {
50    fn from(e: reqwest::Error) -> Self {
51        Error::Other(e.to_string())
52    }
53}
54
55impl From<std::num::ParseIntError> for Error {
56    fn from(e: std::num::ParseIntError) -> Self {
57        Error::InvalidHex(e.to_string())
58    }
59}