import { PublicKey } from "@solana/web3.js";

export const BASKETS_PROGRAM_ID = new PublicKey("BASKETT4Krk5oE121dARBeUKP4aWP5RDGx6FgAGu1Nqi");

export const REBALANCE_STATE_SEED = Buffer.from("rebalance_state");
export const REBALANCE_FEE_WALLET = new PublicKey("SMfQCgXCacqPXBDs2cS55nHRQaNbWRfERVxQerFEY4t");
export const REBALANCE_FEE_BPS = 30;

export const DEPOSIT_FEE_SEED = Buffer.from("deposit_fee");
export const DEPOSIT_FEE_BPS = 30;

export const WITHDRAW_FEE_SEED = Buffer.from("withdraw_fee");
export const WITHDRAW_FEE_BPS = 30;

export const UPDATE_PRICES_AUTHORITY = new PublicKey("updts9afhkBnuUdDkr6yHEmXK3mV7g16c7ndUH226hB");
export const AUTOMATION_FEE_WALLET = new PublicKey("autoorXqec6cowSnomD5zHu2Ew5gF8ZbtXiMTQMyrAE");
export const AUTOMATION_FEE_LAMPORTS = 200_000;

export const MAX_ACCOUNTS_IN_LUT = 255;
export const STATE_CREATOR_SEED = Buffer.from("state_creator");

export const MINT_SEED = Buffer.from("mint");
export const MINT_DECIMALS = 6;
export const USDC_DECIMALS = 6;
export const WSOL_DECIMALS = 9;

export const MANAGERS_PER_BASKET = 10;
export const MAX_SUPPORTED_TOKENS_V200 = 200;
export const TOKEN_PRICE_UPDATE_LIFETIME = 90;
export const TOTAL_WEIGHT = 10000;
export const BPS_DIVIDER = 10000;
export const UNKNOWN_TOKEN_INDEX = 200;
export const BASKET_STARTING_PRICE = 10_000;
export const PRICE_OF_ONE_USD = 1_000_000_000_000;

export const PYTH_SPONSORED_FEEDS = new PublicKey("GLQEi9mEfjTFgsLF1rkPSYborKnup5omjZ3cjCQR7YyH");
export const PYTH_RECEIVER_ORACLE_PROGRAM = new PublicKey("rec5EKMGg6MxZYaMdyBfgwp4d5rB9T1VQH5pJv5LtFJ");
export const PYTHNET_CUSTODY_PRICE_USDC_ACCOUNT = new PublicKey("Dpw1EAVrSB1ibxiDQyTAW6Zip3J4Btk2x4SgApQCeFbX");
export const PYTHNET_CUSTODY_PRICE_SOL_ACCOUNT = new PublicKey("7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE");

export const RAYDIUM_CPMM = new PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C");
export const RAYDIUM_LIQUIDITY_POOL_V4 = new PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8");

export const MEME_SOL = new PublicKey("meme9VKXNNxquqQgvXTAauiHYP6giqrZHA2Tjzf9umy");
export const WSOL_MINT = new PublicKey("So11111111111111111111111111111111111111112");
export const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");

export const MAX_PRICE_UPDATES_PER_TX = 50;
export const MAX_LUT_UPDATES_PER_TX = 50;
export const MAX_CLAIM_TOKENS_PER_TX = 5;
export const MAX_ATA_CREATION_PER_TX = 10;
export const MAX_JUPITER_ACCOUNTS = 35;
export const MIN_SWAP_VALUE = 0.01;
export const MAX_SELL_VALUE_PER_TOKEN = 2000;
export const MAX_NUMBER_OF_SWAPS = 10;
export const COMPUTE_UNITS = 1_200_000;
export const PRIORITY_FEE = 100_000;
export const JUPITER_API_KEY = "https://quote-api.jup.ag/v6/";
