jito_vault_sdk/
error.rs

1use solana_program::{decode_error::DecodeError, program_error::ProgramError};
2use thiserror::Error;
3
4#[derive(Debug, Error, PartialEq, Eq)]
5pub enum VaultError {
6    #[error("VaultSlashUnderflow")]
7    VaultSlashUnderflow = 1000,
8    #[error("VaultInitialAmountFailed")]
9    VaultInitialAmountFailed,
10    #[error("VaultInsufficientFunds")]
11    VaultInsufficientFunds,
12    #[error("VaultOverflow")]
13    VaultOverflow,
14    #[error("VaultOperatorAdminInvalid")]
15    VaultOperatorAdminInvalid,
16    #[error("VaultAdminInvalid")]
17    VaultAdminInvalid,
18    #[error("VaultCapacityAdminInvalid")]
19    VaultCapacityAdminInvalid,
20    #[error("VaultMintBurnAdminInvalid")]
21    VaultMintBurnAdminInvalid,
22    #[error("VaultDelegationAdminInvalid")]
23    VaultDelegationAdminInvalid,
24    #[error("VaultDelegateAssetAdminInvalid")]
25    VaultDelegateAssetAdminInvalid,
26    #[error("VaultCapacityExceeded")]
27    VaultCapacityExceeded,
28    #[error("VaultSlasherAdminInvalid")]
29    VaultSlasherAdminInvalid,
30    #[error("VaultNcnAdminInvalid")]
31    VaultNcnAdminInvalid,
32    #[error("VaultFeeAdminInvalid")]
33    VaultFeeAdminInvalid,
34    #[error("ConfigAdminInvalid")]
35    ConfigAdminInvalid,
36    #[error("ConfigFeeAdminInvalid")]
37    ConfigFeeAdminInvalid,
38    #[error("VaultFeeCapExceeded")]
39    VaultFeeCapExceeded,
40    #[error("VaultFeeChangeTooSoon")]
41    VaultFeeChangeTooSoon,
42    #[error("VaultFeeBumpTooLarge")]
43    VaultFeeBumpTooLarge,
44    #[error("VaultUnderflow")]
45    VaultUnderflow,
46    #[error("VaultUpdateNeeded")]
47    VaultUpdateNeeded,
48    #[error("VaultIsUpdated")]
49    VaultIsUpdated,
50    #[error("VaultOperatorDelegationUpdateNeeded")]
51    VaultOperatorDelegationUpdateNeeded,
52    #[error("VaultOperatorDelegationIsUpdated")]
53    VaultOperatorDelegationIsUpdated,
54    #[error("VaultUpdateIncorrectIndex")]
55    VaultUpdateIncorrectIndex,
56    #[error("VaultUpdateStateNotFinishedUpdating")]
57    VaultUpdateStateNotFinishedUpdating,
58    #[error("VaultSecurityOverflow")]
59    VaultSecurityOverflow,
60    #[error("VaultSlashIncomplete")]
61    VaultSlashIncomplete,
62    #[error("VaultSecurityUnderflow")]
63    VaultSecurityUnderflow,
64    #[error("SlippageError")]
65    SlippageError,
66    #[error("VaultStakerWithdrawalTicketNotWithdrawable")]
67    VaultStakerWithdrawalTicketNotWithdrawable,
68    #[error("VaultNcnSlasherTicketFailedCooldown")]
69    VaultNcnSlasherTicketFailedCooldown,
70    #[error("VaultNcnSlasherTicketFailedWarmup")]
71    VaultNcnSlasherTicketFailedWarmup,
72    #[error("VaultNcnTicketFailedCooldown")]
73    VaultNcnTicketFailedCooldown,
74    #[error("VaultNcnTicketFailedWarmup")]
75    VaultNcnTicketFailedWarmup,
76    #[error("VaultNcnTicketUnslashable")]
77    VaultNcnTicketUnslashable,
78    #[error("OperatorVaultTicketUnslashable")]
79    OperatorVaultTicketUnslashable,
80    #[error("NcnOperatorStateUnslashable")]
81    NcnOperatorStateUnslashable,
82    #[error("VaultNcnSlasherTicketUnslashable")]
83    VaultNcnSlasherTicketUnslashable,
84    #[error("NcnVaultTicketUnslashable")]
85    NcnVaultTicketUnslashable,
86    #[error("NcnVaultSlasherTicketUnslashable")]
87    NcnVaultSlasherTicketUnslashable,
88    #[error("VaultMaxSlashedPerOperatorExceeded")]
89    VaultMaxSlashedPerOperatorExceeded,
90    #[error("VaultStakerWithdrawalTicketInvalidStaker")]
91    VaultStakerWithdrawalTicketInvalidStaker,
92    #[error("SlasherOverflow")]
93    SlasherOverflow,
94    #[error("NcnOverflow")]
95    NcnOverflow,
96    #[error("OperatorOverflow")]
97    OperatorOverflow,
98    #[error("VaultDelegationZero")]
99    VaultDelegationZero,
100    #[error("VaultCooldownZero")]
101    VaultCooldownZero,
102    #[error("VaultBurnZero")]
103    VaultBurnZero,
104    #[error("VaultEnqueueWithdrawalAmountZero")]
105    VaultEnqueueWithdrawalAmountZero,
106    #[error("VaultMintZero")]
107    VaultMintZero,
108    #[error("VaultIsPaused")]
109    VaultIsPaused,
110    #[error("InvalidDepositor")]
111    InvalidDepositor,
112    #[error("InvalidDepositTokenAccount")]
113    InvalidDepositTokenAccount,
114    #[error("NoSupportedMintBalanceChange")]
115    NoSupportedMintBalanceChange,
116    #[error("InvalidEpochLength")]
117    InvalidEpochLength,
118    #[error("VaultRewardFeeDeltaTooLarge")]
119    VaultRewardFeeDeltaTooLarge,
120    #[error("VaultRewardFeeIsZero")]
121    VaultRewardFeeIsZero,
122    #[error("VrtOutCannotBeZero")]
123    VrtOutCannotBeZero,
124    #[error("NonZeroAdditionalAssetsNeededForWithdrawalAtEndOfUpdate")]
125    NonZeroAdditionalAssetsNeededForWithdrawalAtEndOfUpdate,
126    #[error("ArithmeticOverflow")]
127    ArithmeticOverflow = 3000,
128    #[error("ArithmeticUnderflow")]
129    ArithmeticUnderflow,
130    #[error("DivisionByZero")]
131    DivisionByZero,
132}
133
134impl<T> DecodeError<T> for VaultError {
135    fn type_of() -> &'static str {
136        "jito::vault"
137    }
138}
139
140impl From<VaultError> for ProgramError {
141    fn from(e: VaultError) -> Self {
142        Self::Custom(e as u32)
143    }
144}
145
146impl From<VaultError> for u64 {
147    fn from(e: VaultError) -> Self {
148        e as Self
149    }
150}
151
152impl From<VaultError> for u32 {
153    fn from(e: VaultError) -> Self {
154        e as Self
155    }
156}