light_ctoken_types/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, LightTokenSdkTypeError>;
4
5#[derive(Debug, Error)]
6pub enum LightTokenSdkTypeError {
7    #[error("CPI accounts index out of bounds: {0}")]
8    CpiAccountsIndexOutOfBounds(usize),
9    #[error("Sender token account does only exist in compressed mode")]
10    SenderTokenAccountDoesOnlyExistInCompressedMode,
11    #[error("Decompression recipient token account does only exist in decompressed mode")]
12    DecompressionRecipientTokenAccountDoesOnlyExistInDecompressedMode,
13    #[error("Sol pool PDA is undefined")]
14    SolPoolPdaUndefined,
15    #[error("Mint is undefined for batch compress")]
16    MintUndefinedForBatchCompress,
17    #[error("Token pool PDA is undefined for compressed")]
18    TokenPoolUndefinedForCompressed,
19    #[error("Token program is undefined for compressed")]
20    TokenProgramUndefinedForCompressed,
21}
22
23impl From<LightTokenSdkTypeError> for u32 {
24    fn from(error: LightTokenSdkTypeError) -> Self {
25        match error {
26            LightTokenSdkTypeError::CpiAccountsIndexOutOfBounds(_) => 18001,
27            LightTokenSdkTypeError::SenderTokenAccountDoesOnlyExistInCompressedMode => 18002,
28            LightTokenSdkTypeError::DecompressionRecipientTokenAccountDoesOnlyExistInDecompressedMode => 18003,
29            LightTokenSdkTypeError::SolPoolPdaUndefined => 18004,
30            LightTokenSdkTypeError::MintUndefinedForBatchCompress => 18005,
31            LightTokenSdkTypeError::TokenPoolUndefinedForCompressed => 18006,
32            LightTokenSdkTypeError::TokenProgramUndefinedForCompressed => 18007,
33        }
34    }
35}