use cosmwasm_std::{HumanAddr, StdError};
use thiserror::Error;
use cw_controllers::{AdminError, HookError};
#[derive(Error, Debug, PartialEq)]
pub enum ContractError {
#[error("{0}")]
Std(#[from] StdError),
#[error("{0}")]
Admin(#[from] AdminError),
#[error("{0}")]
Hook(#[from] HookError),
#[error("Unauthorized")]
Unauthorized {},
#[error("No claims that can be released currently")]
NothingToClaim {},
#[error("Must send '{0}' to stake")]
MissingDenom(String),
#[error("Sent unsupported denoms, must send '{0}' to stake")]
ExtraDenoms(String),
#[error("Must send valid address to stake")]
InvalidDenom(HumanAddr),
#[error("Missed address or denom")]
MixedNativeAndCw20(String),
#[error("No funds sent")]
NoFunds {},
}