diff --git a/CHANGELOG.md b/CHANGELOG.md index 6231c7a14..5bd53f4c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Features +- program: add titan to whitelisted swap programs ([#1952](https://github.com/drift-labs/protocol-v2/pull/1952)) + ### Fixes ### Breaking diff --git a/programs/drift/src/ids.rs b/programs/drift/src/ids.rs index 2e65c5de2..e3dce8aa7 100644 --- a/programs/drift/src/ids.rs +++ b/programs/drift/src/ids.rs @@ -112,3 +112,8 @@ pub mod dflow_mainnet_aggregator_4 { use solana_program::declare_id; declare_id!("DF1ow4tspfHX9JwWJsAb9epbkA8hmpSEAtxXy1V27QBH"); } + +pub mod titan_mainnet_argos_v1 { + use solana_program::declare_id; + declare_id!("T1TANpTeScyeqVzzgNViGDNrkQ6qHz9KrSBS4aNXvGT"); +} diff --git a/programs/drift/src/instructions/keeper.rs b/programs/drift/src/instructions/keeper.rs index cc8c87b32..0fc1fc385 100644 --- a/programs/drift/src/instructions/keeper.rs +++ b/programs/drift/src/instructions/keeper.rs @@ -21,8 +21,10 @@ use crate::controller::spot_balance::update_spot_balances; use crate::controller::token::{receive, send_from_program_vault}; use crate::error::ErrorCode; use crate::ids::admin_hot_wallet; -use crate::ids::dflow_mainnet_aggregator_4; -use crate::ids::{jupiter_mainnet_3, jupiter_mainnet_4, jupiter_mainnet_6, serum_program}; +use crate::ids::{ + dflow_mainnet_aggregator_4, jupiter_mainnet_3, jupiter_mainnet_4, jupiter_mainnet_6, + serum_program, titan_mainnet_argos_v1, +}; use crate::instructions::constraints::*; use crate::instructions::optional_accounts::get_revenue_share_escrow_account; use crate::instructions::optional_accounts::{load_maps, AccountMaps}; @@ -1719,11 +1721,12 @@ pub fn handle_liquidate_spot_with_swap_begin<'c: 'info, 'info>( jupiter_mainnet_4::ID, jupiter_mainnet_6::ID, dflow_mainnet_aggregator_4::ID, + titan_mainnet_argos_v1::ID, ]; validate!( whitelisted_programs.contains(&ix.program_id), ErrorCode::InvalidLiquidateSpotWithSwap, - "only allowed to pass in ixs to token, openbook, and Jupiter v3/v4/v6 programs" + "only allowed to pass in ixs to ATA, openbook, Jupiter v3/v4/v6, dflow, or titan programs" )?; for meta in ix.accounts.iter() { diff --git a/programs/drift/src/instructions/user.rs b/programs/drift/src/instructions/user.rs index db9b9f426..3cb9d8e41 100644 --- a/programs/drift/src/instructions/user.rs +++ b/programs/drift/src/instructions/user.rs @@ -22,10 +22,9 @@ use crate::controller::spot_position::{ }; use crate::error::ErrorCode; use crate::ids::admin_hot_wallet; -use crate::ids::dflow_mainnet_aggregator_4; use crate::ids::{ - jupiter_mainnet_3, jupiter_mainnet_4, jupiter_mainnet_6, lighthouse, marinade_mainnet, - serum_program, + dflow_mainnet_aggregator_4, jupiter_mainnet_3, jupiter_mainnet_4, jupiter_mainnet_6, + lighthouse, marinade_mainnet, serum_program, titan_mainnet_argos_v1, }; use crate::instructions::constraints::*; use crate::instructions::optional_accounts::get_revenue_share_escrow_account; @@ -3686,6 +3685,7 @@ pub fn handle_begin_swap<'c: 'info, 'info>( jupiter_mainnet_4::ID, jupiter_mainnet_6::ID, dflow_mainnet_aggregator_4::ID, + titan_mainnet_argos_v1::ID, ]; if !delegate_is_signer { whitelisted_programs.push(Token::id()); @@ -3695,7 +3695,7 @@ pub fn handle_begin_swap<'c: 'info, 'info>( validate!( whitelisted_programs.contains(&ix.program_id), ErrorCode::InvalidSwap, - "only allowed to pass in ixs to token, openbook, and Jupiter v3/v4/v6 programs" + "only allowed to pass in ixs to ATA, openbook, Jupiter v3/v4/v6, dflow, or titan programs" )?; for meta in ix.accounts.iter() {