use cosmwasm_std::StdError;
use thiserror::Error;

#[derive(Error, Debug, PartialEq)]
pub enum ContractError {
    #[error("{0}")]
    Std(#[from] StdError),

    #[error("Unauthorized")]
    Unauthorized {},

    #[error("Contract is paused")]
    Paused {},

    #[error("Caller is not authorized: {addr}")]
    NotAuthorizedCaller { addr: String },

    #[error("Total supply cap exceeded")]
    SupplyCapExceeded {},

    #[error("Invalid transfer amount")]
    InvalidTransferAmount {},

    #[error("Invalid amount")]
    InvalidAmount {},

    #[error("Insufficient funds")]
    InsufficientFunds {},

    #[error("Migration error")]
    MigrationError {},

    #[error("{0}")]
    Cw20Base(String),
}

impl From<cw20_base::ContractError> for ContractError {
    fn from(err: cw20_base::ContractError) -> Self {
        match err {
            cw20_base::ContractError::Std(e) => ContractError::Std(e),
            cw20_base::ContractError::Unauthorized {} => ContractError::Unauthorized {},
            other => ContractError::Cw20Base(other.to_string()),
        }
    }
}

Dimensions

cw-cyber/contracts/litium-stake/src/error.rs
cw-cyber/contracts/cw-cyber-subgraph/src/error.rs
cw-cyber/contracts/hub-skills/src/error.rs
cw-cyber/contracts/cybernet/src/error.rs
cw-cyber/contracts/litium-refer/src/error.rs
cw-cyber/contracts/cw-cyber-gift/src/error.rs
cw-cyber/contracts/hub-libs/src/error.rs
cw-cyber/contracts/hub-tokens/src/error.rs
cw-cyber/contracts/cw-cyber-passport/src/error.rs
cw-cyber/contracts/litium-wrap/src/error.rs
cw-cyber/packages/hub-base/src/error.rs
cw-cyber/contracts/litium-mine/src/error.rs
cw-cyber/contracts/std-test/src/error.rs
cw-cyber/contracts/hub-channels/src/error.rs
cw-cyber/contracts/graph-filter/src/error.rs
cw-cyber/contracts/hub-networks/src/error.rs
cw-cyber/contracts/hub-protocols/src/error.rs

Local Graph