solana_kite/
error.rs

1//! Error types for Solana Kite operations.
2
3use std::fmt;
4
5/// Main error type for Solana Kite operations.
6#[derive(Debug)]
7pub enum SolanaKiteError {
8    /// Transaction failed with an error message.
9    TransactionFailed(String),
10    /// Program deployment failed.
11    ProgramDeploymentFailed(String),
12    /// Token operation failed.
13    TokenOperationFailed(String),
14    /// Account operation failed.
15    AccountOperationFailed(String),
16    /// I/O error occurred.
17    IoError(std::io::Error),
18}
19
20impl fmt::Display for SolanaKiteError {
21    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22        match self {
23            SolanaKiteError::TransactionFailed(msg) => {
24                write!(f, "Transaction failed: {}", msg)
25            }
26            SolanaKiteError::ProgramDeploymentFailed(msg) => {
27                write!(f, "Program deployment failed: {}", msg)
28            }
29            SolanaKiteError::TokenOperationFailed(msg) => {
30                write!(f, "Token operation failed: {}", msg)
31            }
32            SolanaKiteError::AccountOperationFailed(msg) => {
33                write!(f, "Account operation failed: {}", msg)
34            }
35            SolanaKiteError::IoError(err) => {
36                write!(f, "I/O error: {}", err)
37            }
38        }
39    }
40}
41
42impl std::error::Error for SolanaKiteError {
43    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
44        match self {
45            SolanaKiteError::IoError(err) => Some(err),
46            _ => None,
47        }
48    }
49}
50
51impl From<std::io::Error> for SolanaKiteError {
52    fn from(err: std::io::Error) -> Self {
53        SolanaKiteError::IoError(err)
54    }
55}
56
57/// Legacy error type for backward compatibility.
58/// 
59/// This is kept for backward compatibility with existing code.
60/// New code should use [`SolanaKiteError`] instead.
61#[deprecated(since = "0.1.0", note = "Use SolanaKiteError instead")]
62#[derive(Debug)]
63pub enum TestError {
64    /// Transaction failed with an error message.
65    TransactionFailed(String),
66}
67
68#[allow(deprecated)]
69impl fmt::Display for TestError {
70    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
71        match self {
72            TestError::TransactionFailed(msg) => {
73                write!(f, "Transaction failed: {}", msg)
74            }
75        }
76    }
77}
78
79#[allow(deprecated)]
80impl std::error::Error for TestError {}
81
82#[allow(deprecated)]
83impl From<TestError> for SolanaKiteError {
84    fn from(err: TestError) -> Self {
85        match err {
86            TestError::TransactionFailed(msg) => SolanaKiteError::TransactionFailed(msg),
87        }
88    }
89}