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
use cosmwasm_std::{StdError, Uint128}; use thiserror::Error; #[derive(Error, Debug, PartialEq)] pub enum ContractError { #[error("{0}")] Std(#[from] StdError), #[error("Unauthorized")] Unauthorized {}, #[error("Validator '{validator}' not in current validator set")] NotInValidatorSet { validator: String }, #[error("Different denominations in bonds: '{denom1}' vs. '{denom2}'")] DifferentBondDenom { denom1: String, denom2: String }, #[error("Stored bonded {stored}, but query bonded {queried}")] BondedMismatch { stored: Uint128, queried: Uint128 }, #[error("No {denom} tokens sent")] EmptyBalance { denom: String }, #[error("Must unbond at least {min_bonded} {denom}")] UnbondTooSmall { min_bonded: Uint128, denom: String }, #[error("Insufficient balance in contract to process claim")] BalanceTooSmall {}, #[error("No claims that can be released currently")] NothingToClaim {}, #[error("Cannot set to own account")] CannotSetOwnAccount {}, #[error("Invalid zero amount")] InvalidZeroAmount {}, #[error("Allowance is expired")] Expired {}, #[error("No allowance for this account")] NoAllowance {}, #[error("Minting cannot exceed the cap")] CannotExceedCap {}, } impl From<cw20_base::ContractError> for ContractError { fn from(err: cw20_base::ContractError) -> Self { match err { cw20_base::ContractError::Std(error) => ContractError::Std(error), cw20_base::ContractError::Unauthorized {} => ContractError::Unauthorized {}, cw20_base::ContractError::CannotSetOwnAccount {} => { ContractError::CannotSetOwnAccount {} } cw20_base::ContractError::InvalidZeroAmount {} => ContractError::InvalidZeroAmount {}, cw20_base::ContractError::Expired {} => ContractError::Expired {}, cw20_base::ContractError::NoAllowance {} => ContractError::NoAllowance {}, cw20_base::ContractError::CannotExceedCap {} => ContractError::CannotExceedCap {}, } } }