From 0c87440c7b70b7e98e62edeb6c68c548da888c0d Mon Sep 17 00:00:00 2001 From: Andrew Nguyen Date: Tue, 13 May 2025 10:15:34 +0700 Subject: [PATCH 1/2] remove quote contraints --- programs/cp-amm/src/constants.rs | 8 ---- .../ix_initialize_customizable_pool.rs | 38 +------------------ 2 files changed, 1 insertion(+), 45 deletions(-) diff --git a/programs/cp-amm/src/constants.rs b/programs/cp-amm/src/constants.rs index 98b03b7..9783669 100644 --- a/programs/cp-amm/src/constants.rs +++ b/programs/cp-amm/src/constants.rs @@ -1,6 +1,3 @@ -use anchor_lang::prelude::Pubkey; -use anchor_lang::solana_program::pubkey; - /// refer raydium clmm pub const MIN_SQRT_PRICE: u128 = 4295048016; /// refer raydium clmm @@ -121,8 +118,3 @@ pub mod treasury { // https://app.squads.so/squads/4EWqcx3aNZmMetCnxwLYwyNjan6XLGp3Ca2W316vrSjv/treasury pub const ID: Pubkey = pubkey!("4EWqcx3aNZmMetCnxwLYwyNjan6XLGp3Ca2W316vrSjv"); } - -// Supported quote mints -const SOL: Pubkey = pubkey!("So11111111111111111111111111111111111111112"); -const USDC: Pubkey = pubkey!("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"); -pub const DEFAULT_QUOTE_MINTS: [Pubkey; 2] = [SOL, USDC]; diff --git a/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_customizable_pool.rs b/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_customizable_pool.rs index d307765..3d5d766 100644 --- a/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_customizable_pool.rs +++ b/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_customizable_pool.rs @@ -12,7 +12,7 @@ use crate::{ CUSTOMIZABLE_POOL_PREFIX, POOL_AUTHORITY_PREFIX, POSITION_NFT_ACCOUNT_PREFIX, POSITION_PREFIX, TOKEN_VAULT_PREFIX, }, - DEFAULT_QUOTE_MINTS, MAX_SQRT_PRICE, MIN_SQRT_PRICE, + MAX_SQRT_PRICE, MIN_SQRT_PRICE, }, create_position_nft, curve::get_initialize_amounts, @@ -264,14 +264,6 @@ pub fn handle_initialize_customizable_pool<'c: 'info, 'info>( has_alpha_vault, } = params; - // validate quote token - #[cfg(not(feature = "devnet"))] - validate_quote_token( - &ctx.accounts.token_a_mint.key(), - &ctx.accounts.token_b_mint.key(), - has_alpha_vault, - )?; - let (token_a_amount, token_b_amount) = get_initialize_amounts(sqrt_min_price, sqrt_max_price, sqrt_price, liquidity)?; require!( @@ -399,31 +391,3 @@ pub fn get_whitelisted_alpha_vault(payer: Pubkey, pool: Pubkey, has_alpha_vault: Pubkey::default() } } - -pub fn validate_quote_token( - token_mint_a: &Pubkey, - token_mint_b: &Pubkey, - has_alpha_vault: bool, -) -> Result<()> { - let is_a_whitelisted_quote_token = is_whitelisted_quote_token(token_mint_a); - // A will never be a whitelisted quote token - require!(!is_a_whitelisted_quote_token, PoolError::InvalidQuoteMint); - let is_b_whitelisted_quote_token = is_whitelisted_quote_token(token_mint_b); - if !is_b_whitelisted_quote_token { - // BE AWARE!!!!!!!!!!!!!!!!!!!!!!!!!! - // even B is not whitelisted quote token, but deployer should always be aware that B is quote token, A is base token - // if B is not whitelisted quote token, then pool shouldn't be linked with an alpha-vault - require!(!has_alpha_vault, PoolError::InvalidQuoteMint); - } - - Ok(()) -} - -fn is_whitelisted_quote_token(mint: &Pubkey) -> bool { - for i in 0..DEFAULT_QUOTE_MINTS.len() { - if DEFAULT_QUOTE_MINTS[i].eq(mint) { - return true; - } - } - false -} From e7a381e8c82291deeac53f05c855ff49abe5ce41 Mon Sep 17 00:00:00 2001 From: Andrew Nguyen Date: Sat, 17 May 2025 08:28:17 +0700 Subject: [PATCH 2/2] remove quote constraints in new endpoint --- .../ix_initialize_pool_with_dynamic_config.rs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_pool_with_dynamic_config.rs b/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_pool_with_dynamic_config.rs index f009a76..85a2a61 100644 --- a/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_pool_with_dynamic_config.rs +++ b/programs/cp-amm/src/instructions/initialize_pool/ix_initialize_pool_with_dynamic_config.rs @@ -18,7 +18,7 @@ use crate::{ calculate_transfer_fee_included_amount, get_token_program_flags, is_supported_mint, is_token_badge_initialized, transfer_from_user, }, - validate_quote_token, EvtCreatePosition, EvtInitializePool, PoolError, + EvtCreatePosition, EvtInitializePool, PoolError, }; use super::{max_key, min_key, InitializeCustomizablePoolParameters}; @@ -216,14 +216,6 @@ pub fn handle_initialize_pool_with_dynamic_config<'c: 'info, 'info>( PoolError::InvalidConfigType ); - // validate quote token - #[cfg(not(feature = "devnet"))] - validate_quote_token( - &ctx.accounts.token_a_mint.key(), - &ctx.accounts.token_b_mint.key(), - has_alpha_vault, - )?; - let (token_a_amount, token_b_amount) = get_initialize_amounts(sqrt_min_price, sqrt_max_price, sqrt_price, liquidity)?; require!(