use const_crypto::ed25519;
use solana_program::{pubkey, pubkey::Pubkey};
use steel::*;
pub const INITIALIZER_ADDRESS: Pubkey = pubkey!("4ALL9EAVHpv7ioJF95ktDLtrHUEJezPuFxTFFMy3fpSy");
pub const CAMPAIGN_STATUS_ACTIVE: u8 = 0;
pub const CAMPAIGN_STATUS_PAUSED: u8 = 1;
pub const CAMPAIGN_STATUS_CLOSED: u8 = 2;
#[repr(u8)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)]
pub enum AirdropAccount {
Config = 0,
Campaign = 1,
Allocation = 2,
}
pub const CONFIG: &[u8] = b"config";
pub const FEE_ACCOUNT: &[u8] = b"fee_account";
pub const CAMPAIGN: &[u8] = b"campaign";
pub const MINT: &[u8] = b"mint";
pub const MINT_AUTHORITY: &[u8] = b"mint_authority";
pub const TREASURY: &[u8] = b"treasury";
pub const ALLOCATION: &[u8] = b"allocation";
const PROGRAM_ID: [u8; 32] = unsafe { *(&crate::id() as *const Pubkey as *const [u8; 32]) };
pub const CONFIG_ADDRESS: Pubkey =
Pubkey::new_from_array(ed25519::derive_program_address(&[CONFIG], &PROGRAM_ID).0);
pub const MAX_MERKLE_PROOF_LENGTH: u8 = 25;