Skip to main content

solana_primitives/
error.rs

1use thiserror::Error;
2
3/// A custom error type for Solana operations
4#[derive(Debug, Error)]
5pub enum SolanaError {
6    #[error("Invalid public key: {0}")]
7    InvalidPubkey(String),
8    #[error("Invalid signature: {0}")]
9    InvalidSignature(String),
10    #[error("Invalid instruction data")]
11    InvalidInstructionData,
12    #[error("Invalid message")]
13    InvalidMessage,
14    #[error("Invalid transaction")]
15    InvalidTransaction,
16    #[error("Serialization error: {0}")]
17    SerializationError(String),
18    #[error("Deserialization error: {0}")]
19    DeserializationError(String),
20    #[error("{0}")]
21    GenericError(String),
22}
23
24impl From<&str> for SolanaError {
25    fn from(s: &str) -> Self {
26        SolanaError::GenericError(s.to_string())
27    }
28}
29
30impl From<String> for SolanaError {
31    fn from(s: String) -> Self {
32        SolanaError::GenericError(s)
33    }
34}
35
36/// A type alias for Result with SolanaError
37pub type Result<T> = std::result::Result<T, SolanaError>;