1use cosmwasm_std::StdError;
2use thiserror::Error;
3
4use cw_controllers::AdminError;
5use tg_utils::{HookError, PreauthError, SlasherError};
6
7#[derive(Error, Debug, PartialEq)]
8pub enum ContractError {
9 #[error("{0}")]
10 Std(#[from] StdError),
11
12 #[error("{0}")]
13 Admin(#[from] AdminError),
14
15 #[error("{0}")]
16 Hook(#[from] HookError),
17
18 #[error("{0}")]
19 Slasher(#[from] SlasherError),
20
21 #[error("{0}")]
22 Preauth(#[from] PreauthError),
23
24 #[error("Unauthorized: {0}")]
25 Unauthorized(String),
26
27 #[error("No claims that can be released currently")]
28 NothingToClaim {},
29
30 #[error("Must send '{0}' to stake")]
31 MissingDenom(String),
32
33 #[error("Sent unsupported denoms, must send '{0}' to stake")]
34 ExtraDenoms(String),
35
36 #[error("Must send valid amount to unbond")]
37 ZeroAmount {},
38
39 #[error("Must send valid denom to unbond")]
40 InvalidDenom {},
41
42 #[error("No funds sent")]
43 NoFunds {},
44
45 #[error("Unrecognized sudo message")]
46 UnknownSudoMsg {},
47}