use solana_program::{pubkey, pubkey::Pubkey};
pub const TOKEN_DECIMALS: u8 = 9;
pub const ONE_TOKEN: u64 = 10u64.pow(TOKEN_DECIMALS as u32);
pub const EMISSION_PER_MINUTE: u64 = 10 * ONE_TOKEN;
pub const INITIAL_ROUND_SECONDS: u64 = 60;
pub const MIN_ROUND_SECONDS: u64 = 10;
pub const MAX_ROUND_SECONDS: u64 = 3600;
pub const fn round_budget(round_seconds: u64) -> u64 {
EMISSION_PER_MINUTE * round_seconds / 60
}
pub const ROUND_RETENTION: u64 = 2880;
pub const INITIAL_MIN_DIFFICULTY: u64 = 20;
pub const INITIAL_BASE_WEIGHT: u64 = 100 * ONE_TOKEN;
pub const CONFIG_SEED: &[u8] = b"config";
pub const TREASURY_SEED: &[u8] = b"treasury";
pub const ROUND_SEED: &[u8] = b"round";
pub const MINER_SEED: &[u8] = b"miner";
pub const SPL_TOKEN_PROGRAM_ID: Pubkey = pubkey!("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
pub const ASSOCIATED_TOKEN_PROGRAM_ID: Pubkey =
pubkey!("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
pub const SYSTEM_PROGRAM_ID: Pubkey = pubkey!("11111111111111111111111111111111");
pub const SLOT_HASHES_SYSVAR_ID: Pubkey =
pubkey!("SysvarS1otHashes111111111111111111111111111");
pub const SPL_TOKEN_MINT_TO_IX: u8 = 7;