spl_token_upgrade/
error.rs

1//! Error types
2
3use {
4    num_derive::FromPrimitive,
5    solana_program::{decode_error::DecodeError, program_error::ProgramError},
6    thiserror::Error,
7};
8
9/// Errors that may be returned by the program.
10#[derive(Clone, Debug, Eq, Error, FromPrimitive, PartialEq)]
11pub enum TokenUpgradeError {
12    // 0
13    /// Account does not match address derivation
14    #[error("Account does not match address derivation")]
15    InvalidOwner,
16    /// Decimals of original and new token mint do not match
17    #[error("Decimals of original and new token mint do not match")]
18    DecimalsMismatch,
19}
20impl From<TokenUpgradeError> for ProgramError {
21    fn from(e: TokenUpgradeError) -> Self {
22        ProgramError::Custom(e as u32)
23    }
24}
25impl<T> DecodeError<T> for TokenUpgradeError {
26    fn type_of() -> &'static str {
27        "TokenUpgradeError"
28    }
29}