1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
use num_derive::FromPrimitive;
use solana_program::{decode_error::DecodeError, program_error::ProgramError};
use thiserror::Error;
#[derive(Clone, Debug, Eq, Error, FromPrimitive, PartialEq)]
pub enum StakePoolError {
#[error("AlreadyInUse")]
AlreadyInUse,
#[error("InvalidProgramAddress")]
InvalidProgramAddress,
#[error("InvalidState")]
InvalidState,
#[error("CalculationFailure")]
CalculationFailure,
#[error("FeeTooHigh")]
FeeTooHigh,
#[error("WrongAccountMint")]
WrongAccountMint,
#[error("WrongManager")]
WrongManager,
#[error("SignatureMissing")]
SignatureMissing,
#[error("InvalidValidatorStakeList")]
InvalidValidatorStakeList,
#[error("InvalidFeeAccount")]
InvalidFeeAccount,
#[error("WrongPoolMint")]
WrongPoolMint,
#[error("WrongStakeState")]
WrongStakeState,
#[error("UserStakeNotActive")]
UserStakeNotActive,
#[error("ValidatorAlreadyAdded")]
ValidatorAlreadyAdded,
#[error("ValidatorNotFound")]
ValidatorNotFound,
#[error("InvalidStakeAccountAddress")]
InvalidStakeAccountAddress,
#[error("StakeListOutOfDate")]
StakeListOutOfDate,
#[error("StakeListAndPoolOutOfDate")]
StakeListAndPoolOutOfDate,
#[error("UnknownValidatorStakeAccount")]
UnknownValidatorStakeAccount,
#[error("WrongMintingAuthority")]
WrongMintingAuthority,
#[error("UnexpectedValidatorListAccountSize")]
UnexpectedValidatorListAccountSize,
#[error("WrongStaker")]
WrongStaker,
#[error("NonZeroPoolTokenSupply")]
NonZeroPoolTokenSupply,
#[error("StakeLamportsNotEqualToMinimum")]
StakeLamportsNotEqualToMinimum,
}
impl From<StakePoolError> for ProgramError {
fn from(e: StakePoolError) -> Self {
ProgramError::Custom(e as u32)
}
}
impl<T> DecodeError<T> for StakePoolError {
fn type_of() -> &'static str {
"Stake Pool Error"
}
}