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
use serde::ser::StdError;
use std::fmt;

#[derive(Clone, Debug)]
#[repr(u32)]
pub enum OnDemandError {
    Generic,
    AccountBorrowError,
    AccountNotFound,
    AnchorParse,
    AnchorParseError,
    CheckSizeError,
    DecimalConversionError,
    DecryptError,
    EventListenerRoutineFailure,
    EvmError,
    FunctionResultIxIncorrectTargetChain,
    HeartbeatRoutineFailure,
    IntegerOverflowError,
    InvalidChain,
    InvalidData,
    InvalidDiscriminator,
    InvalidInstructionError,
    InvalidKeypairFile,
    InvalidNativeMint,
    InvalidQuote,
    InvalidQuoteError,
    InvalidSignature,
    IpfsNetworkError,
    IpfsParseError,
    KeyParseError,
    MrEnclaveMismatch,
    NetworkError,
    ParseError,
    PdaDerivationError,
    QuoteParseError,
    QvnTxSendFailure,
    SgxError,
    SgxWriteError,
    SolanaBlockhashError,
    SolanaMissingSigner,
    SolanaPayerSignerMissing,
    SolanaPayerMismatch,
    SolanaInstructionOverflow,
    SolanaInstructionsEmpty,
    TxCompileErr,
    TxDeserializationError,
    TxFailure,
    Unexpected,
    SolanaSignError,
    IoError,
    KeyDerivationFailed,
    InvalidSecretKey,
    EnvVariableMissing,
    AccountDeserializeError,
    NotEnoughSamples,
    IllegalFeedValue,
    CustomMessage(String),
    SwitchboardRandomnessTooOld,
    AddressLookupTableFetchError,
    AddressLookupTableDeserializeError,
}

impl StdError for OnDemandError {
    fn source(&self) -> Option<&(dyn StdError + 'static)> {
        None
    }
}
impl fmt::Display for OnDemandError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{:#?}", self)
    }
}