airdrop-api 0.1.0

Mint and Airdrop Framework on Solana for Sovereign Individuals
Documentation
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);