use steel::*;
#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)]
#[repr(u32)]
pub enum AirdropError {
#[error("Invalid campaign owner")]
InvalidOwner = 0,
#[error("Invalid program admin")]
InvalidProgramAdmin = 1,
#[error("Campaign not found")]
CampaignNotFound = 2,
#[error("Campaign is not active")]
CampaignNotActive = 3,
#[error("Invalid allocation amount")]
InvalidAmount = 4,
#[error("Allocation already claimed")]
AlreadyClaimed = 5,
#[error("Invalid recipient")]
InvalidRecipient = 6,
#[error("Invalid signature")]
InvalidSignature = 7,
#[error("Nonce already used")]
NonceAlreadyUsed = 8,
#[error("Insufficient treasury balance")]
InsufficientBalance = 9,
#[error("Invalid campaign ID")]
InvalidCampaignId = 10,
#[error("Invalid mint")]
InvalidMint = 11,
#[error("Insufficient fee payment")]
InsufficientFee = 12,
#[error("Config not initialized")]
ConfigNotInitialized = 13,
#[error("Invalid fee amount")]
InvalidFeeAmount = 14,
#[error("Invalid mint authority")]
InvalidMintAuthority = 15,
#[error("Merkle root not set")]
MerkleRootNotSet = 16,
#[error("Invalid merkle proof")]
InvalidMerkleProof = 17,
#[error("Max supply exceeded")]
MaxSupplyExceeded = 18,
#[error("Mint authority has been revoked")]
MintAuthorityRevoked = 19,
}
error!(AirdropError);