use cosmwasm_std::StdError;
use cw_utils::{ParseReplyError, PaymentError};
use thiserror::Error;
use crate::contract::MINIMUM_STAKE_AMOUNT;
#[derive(Error, Debug, PartialEq)]
pub enum ContractError {
#[error("{0}")]
Std(#[from] StdError),
#[error("{0}")]
PaymentError(#[from] PaymentError),
#[error("{0}")]
ParseReplyError(#[from] ParseReplyError),
#[error("Initial stake amount must be more than {MINIMUM_STAKE_AMOUNT}")]
MinimumStakeAmountError {},
#[error("Insufficient amount of Stake")]
StakeAmountTooSmall {},
#[error("Failed to parse or process reply message")]
FailedToParseReply {},
#[error("Contract can't be migrated!")]
MigrationError {},
}