Skip to main content

acta_maker_sdk/chain/vault/
error.rs

1use thiserror::Error;
2
3use super::manager::VAULT_CAPITAL_BATCH_USERS;
4
5#[derive(Debug, Clone, PartialEq, Eq, Error)]
6#[non_exhaustive]
7pub enum VaultChainError {
8    #[error("vault has an open staging slot")]
9    Staged,
10    #[error("caller is not the current vault governance authority")]
11    GovernanceAuthorityRequired,
12    #[error("HWM reset cancellation requires protocol cold authority")]
13    ColdAuthorityRequired,
14    #[error("price section is required")]
15    MissingPriceSection,
16    #[error("account owner mismatch: expected {expected}, got {actual}")]
17    Owner {
18        expected: solana_sdk::pubkey::Pubkey,
19        actual: solana_sdk::pubkey::Pubkey,
20    },
21    #[error("account data is {actual} bytes, expected at least {expected}")]
22    AccountTooShort { expected: usize, actual: usize },
23    #[error("account data is {actual} bytes, expected {expected}")]
24    AccountLength { expected: usize, actual: usize },
25    #[error("account discriminator mismatch: expected {expected}, got {actual}")]
26    Discriminator { expected: u8, actual: u8 },
27    #[error("unsupported account version {0}")]
28    Version(u8),
29    #[error("unknown vault phase {0}")]
30    UnknownPhase(u8),
31    #[error("unknown vault safety mode {0}")]
32    UnknownSafety(u8),
33    #[error("unknown token program kind {0}")]
34    UnknownTokenProgramKind(u8),
35    #[error("unknown vault accounting flags {0:#x}")]
36    UnknownAccountingFlags(u32),
37    #[error("unknown vault staged kind {0}")]
38    UnknownStagedKind(u8),
39    #[error("unknown vault staged leg {0}")]
40    UnknownStagedLeg(u8),
41    #[error("invalid price route: {0}")]
42    PriceRoute(&'static str),
43    #[error("vault second leg rolled since the manager was built; refresh it")]
44    SecondLegRolled,
45    #[error("vault batch exceeds {VAULT_CAPITAL_BATCH_USERS} users")]
46    BatchTooLarge,
47    #[error("invalid vault input: {0}")]
48    InvalidInput(&'static str),
49}