Skip to main content

jito_restaking_sdk/
error.rs

1use solana_program::{decode_error::DecodeError, program_error::ProgramError};
2use thiserror::Error;
3
4#[derive(Debug, Error)]
5pub enum RestakingError {
6    #[error("NcnOperatorAdminInvalid")]
7    NcnOperatorAdminInvalid = 1000,
8    #[error("NcnCooldownOperatorFailed")]
9    NcnCooldownOperatorFailed,
10    #[error("NcnSlasherAdminInvalid")]
11    NcnSlasherAdminInvalid,
12    #[error("NcnVaultAdminInvalid")]
13    NcnVaultAdminInvalid,
14    #[error("NcnAdminInvalid")]
15    NcnAdminInvalid,
16    #[error("NcnDelegateAdminInvalid")]
17    NcnDelegateAdminInvalid,
18    #[error("NcnVaultSlasherTicketFailedCooldown")]
19    NcnVaultSlasherTicketFailedCooldown,
20    #[error("NcnVaultTicketFailedCooldown")]
21    NcnVaultTicketFailedCooldown,
22    #[error("NcnWarmupOperatorFailed")]
23    NcnWarmupOperatorFailed,
24    #[error("NcnVaultSlasherTicketFailedWarmup")]
25    NcnVaultSlasherTicketFailedWarmup,
26    #[error("NcnVaultTicketFailedWarmup")]
27    NcnVaultTicketFailedWarmup,
28
29    #[error("OperatorNcnAdminInvalid")]
30    OperatorNcnAdminInvalid = 2000,
31    #[error("OperatorVaultAdminInvalid")]
32    OperatorVaultAdminInvalid,
33    #[error("OperatorAdminInvalid")]
34    OperatorAdminInvalid,
35    #[error("OperatorDelegateAdminInvalid")]
36    OperatorDelegateAdminInvalid,
37    #[error("OperatorCooldownNcnFailed")]
38    OperatorCooldownNcnFailed,
39    #[error("OperatorVaultTicketFailedCooldown")]
40    OperatorVaultTicketFailedCooldown,
41    #[error("OperatorVaultTicketFailedWarmup")]
42    OperatorVaultTicketFailedWarmup,
43    #[error("OperatorWarmupNcnFailed")]
44    OperatorWarmupNcnFailed,
45    #[error("OperatorFeeCapExceeded")]
46    OperatorFeeCapExceeded,
47    #[error("NcnOverflow")]
48    NcnOverflow,
49    #[error("OperatorOverflow")]
50    OperatorOverflow,
51    #[error("VaultOverflow")]
52    VaultOverflow,
53    #[error("SlasherOverflow")]
54    SlasherOverflow,
55    #[error("InvalidEpochLength")]
56    InvalidEpochLength,
57
58    #[error("ConfigAdminInvalid")]
59    ConfigAdminInvalid,
60
61    #[error("ArithmeticOverflow")]
62    ArithmeticOverflow = 3000,
63    #[error("ArithmeticUnderflow")]
64    ArithmeticUnderflow,
65    #[error("DivisionByZero")]
66    DivisionByZero,
67}
68
69impl<T> DecodeError<T> for RestakingError {
70    fn type_of() -> &'static str {
71        "jito::restaking"
72    }
73}
74
75impl From<RestakingError> for ProgramError {
76    fn from(e: RestakingError) -> Self {
77        Self::Custom(e as u32)
78    }
79}
80
81impl From<RestakingError> for u64 {
82    fn from(e: RestakingError) -> Self {
83        e as Self
84    }
85}