use crate::token::psp22::PSP22Error;
use ink::prelude::string::String;
use pendzl::math::errors::MathError;
#[derive(Debug, PartialEq, Eq, scale::Encode, scale::Decode)]
#[cfg_attr(feature = "std", derive(scale_info::TypeInfo))]
pub enum VestingError {
Custom(String),
PSP22Error(PSP22Error),
NativeTransferFailed,
InvalidAmountPaid,
}
impl From<PSP22Error> for VestingError {
fn from(error: PSP22Error) -> Self {
VestingError::PSP22Error(error)
}
}
impl From<MathError> for VestingError {
fn from(err: MathError) -> Self {
match err {
MathError::Overflow => {
VestingError::Custom(String::from("M::Overflow"))
}
MathError::Underflow => {
VestingError::Custom(String::from("M::Underflow"))
}
MathError::DivByZero => {
VestingError::Custom(String::from("M::DivByZero"))
}
}
}
}