use anchor_lang::prelude::*;
use crate::liquidity;
pub const RATE_OUTPUT_DECIMALS: u32 = 15;
pub const EXCHANGE_PRICES_PRECISION: u128 = liquidity::constants::EXCHANGE_PRICES_PRECISION;
pub const EXCHANGE_PRICE_SCALE_FACTOR: u128 = 10u128.pow(18);
pub const MIN_TOKEN_DECIMALS: u8 = 6;
pub const MAX_TOKEN_DECIMALS: u8 = 9;
pub const SECONDS_PER_YEAR: u128 = 31_536_000;
pub const BILLION: u128 = 10u128.pow(9);
pub const FOUR_DECIMALS: u128 = 10_000;
pub const THREE_DECIMALS: u128 = 1000;
pub const ADDRESS_DEAD: Pubkey = Pubkey::new_from_array([0; 32]);
pub const INITIAL_BRANCH_DEBT_FACTOR: u128 = (X35 << 15) | (1 << 14);
pub const X10: u128 = 0x3ff;
pub const X16: u128 = 0xffff;
pub const X30: u128 = 0x3FFFFFFF;
pub const X35: u128 = 0x7ffffffff;
pub const MIN_OPERATE: u128 = 1_000; pub const MAX_OPERATE: u128 = i64::MAX as u128;
pub const MIN_DEBT: u128 = 1_000;
pub const MINIMUM_BRANCH_DEBT: u128 = 100;
pub const MAX_LIQUIDATION_PENALTY: u16 = 9970;
pub const MAX_AUTH_COUNT: usize = 10;
pub const PROTOCOL_INIT_AUTH: Pubkey = pubkey!("3H8C6yYTXUcN9RRRDmcLDt3e4aZLYRRX4x2HbEjTqQAA");
pub const GOVERNANCE_MS: Pubkey = pubkey!("HqPrpa4ESBDnRHRWaiYtjv4xe93wvCS9NNZtDwR89cVa");