1use cosmwasm_std::StdError;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum ContractError {
6 #[error("InvalidVersion")]
8 InvalidVersion,
9
10 #[error("InvalidGuardianSetIndex")]
12 InvalidGuardianSetIndex,
13
14 #[error("GuardianSetExpired")]
16 GuardianSetExpired,
17
18 #[error("NoQuorum")]
20 NoQuorum,
21
22 #[error("WrongGuardianIndexOrder")]
24 WrongGuardianIndexOrder,
25
26 #[error("CannotDecodeSignature")]
28 CannotDecodeSignature,
29
30 #[error("CannotRecoverKey")]
32 CannotRecoverKey,
33
34 #[error("GuardianSignatureError")]
36 GuardianSignatureError,
37
38 #[error("InvalidVAAAction")]
40 InvalidVAAAction,
41
42 #[error("NotCurrentGuardianSet")]
44 NotCurrentGuardianSet,
45
46 #[error("AmountTooHigh")]
48 AmountTooHigh,
49
50 #[error("AmountTooLow")]
52 AmountTooLow,
53
54 #[error("SameSourceAndTarget")]
56 SameSourceAndTarget,
57
58 #[error("WrongTargetChain")]
60 WrongTargetChain,
61
62 #[error("AssetAlreadyRegistered")]
64 AssetAlreadyRegistered,
65
66 #[error("GuardianSetIndexIncreaseError")]
68 GuardianSetIndexIncreaseError,
69
70 #[error("VaaAlreadyExecuted")]
72 VaaAlreadyExecuted,
73
74 #[error("PermissionDenied")]
76 PermissionDenied,
77
78 #[error("WrongTargetAddressFormat")]
80 WrongTargetAddressFormat,
81
82 #[error("TooManySignatures")]
84 TooManySignatures,
85
86 #[error("AssetNotFound")]
88 AssetNotFound,
89
90 #[error("InvalidVAA")]
92 InvalidVAA,
93
94 #[error("FeeTooLow")]
96 FeeTooLow,
97
98 #[error("RegistrationForbidden")]
100 RegistrationForbidden,
101}
102
103impl ContractError {
104 pub fn std(&self) -> StdError {
105 StdError::GenericErr {
106 msg: format!("{}", self),
107 }
108 }
109
110 pub fn std_err<T>(&self) -> Result<T, StdError> {
111 Err(self.std())
112 }
113}