From bc50a175438e0670b09d17ef6f4602899e8bfe28 Mon Sep 17 00:00:00 2001 From: Arrowana Date: Wed, 27 Sep 2023 11:08:29 +1000 Subject: [PATCH] expose program_id for the stake pool for testing --- common/src/base_amm.rs | 2 ++ common/src/deposit_sol.rs | 23 +++------------- common/src/pool_pair.rs | 26 +++++++++++++++++++ .../eversol_stake_pool/src/stakedex_traits.rs | 4 +++ libs/lido/src/stakedex_traits.rs | 4 +++ libs/marinade/src/stakedex_traits.rs | 4 +++ libs/socean_stake_pool/src/stakedex_traits.rs | 4 +++ libs/spl_stake_pool/src/stakedex_traits.rs | 4 +++ libs/unstake_it/src/stakedex_traits.rs | 4 +++ 9 files changed, 56 insertions(+), 19 deletions(-) diff --git a/common/src/base_amm.rs b/common/src/base_amm.rs index a10ddb6..4473eac 100644 --- a/common/src/base_amm.rs +++ b/common/src/base_amm.rs @@ -4,6 +4,8 @@ use jupiter_amm_interface::AccountMap; use solana_program::pubkey::Pubkey; pub trait BaseStakePoolAmm { + fn program_id(&self) -> Pubkey; + fn stake_pool_label(&self) -> &'static str; /// For ID purposes diff --git a/common/src/deposit_sol.rs b/common/src/deposit_sol.rs index 93b8d12..f711893 100644 --- a/common/src/deposit_sol.rs +++ b/common/src/deposit_sol.rs @@ -167,24 +167,9 @@ where } fn program_dependencies(&self) -> Vec<(Pubkey, String)> { - use crate::{eversol_program, lido_program, marinade_program, socean_program}; - use solana_sdk::pubkey; - - let mut stake_pool_label = self.0.stake_pool_label(); - let stake_pool_program = match stake_pool_label { - "Eversol" => eversol_program::ID, - "Socean" => socean_program::ID, - "Marinade" => marinade_program::ID, - "Lido" => lido_program::ID, - "Cogent" | "DaoPool" | "Jito" | "Laine" | "SolBlaze" => { - stake_pool_label = "spl_stake_pool"; - pubkey!("SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy") - } - _ => { - println!("Label not recognized: {}", stake_pool_label); - return vec![]; - } - }; - vec![(stake_pool_program, stake_pool_label.to_lowercase())] + vec![( + self.0.program_id(), + self.0.stake_pool_label().to_lowercase(), + )] } } diff --git a/common/src/pool_pair.rs b/common/src/pool_pair.rs index 8ed6447..c8a039b 100644 --- a/common/src/pool_pair.rs +++ b/common/src/pool_pair.rs @@ -235,6 +235,19 @@ where .underlying_liquidity() .map(|ul| HashSet::from([*ul])) } + + fn program_dependencies(&self) -> Vec<(Pubkey, String)> { + vec![ + ( + self.withdraw.program_id(), + self.withdraw.stake_pool_label().to_lowercase(), + ), + ( + self.deposit.program_id(), + self.deposit.stake_pool_label().to_lowercase(), + ), + ] + } } #[derive(Clone)] @@ -345,4 +358,17 @@ where // Pick a single direction 1 + WithdrawStake::accounts_len(&self.p1) + DepositStake::accounts_len(&self.p2) + 1 } + + fn program_dependencies(&self) -> Vec<(Pubkey, String)> { + vec![ + ( + self.p1.program_id(), + self.p1.stake_pool_label().to_lowercase(), + ), + ( + self.p2.program_id(), + self.p2.stake_pool_label().to_lowercase(), + ), + ] + } } diff --git a/libs/eversol_stake_pool/src/stakedex_traits.rs b/libs/eversol_stake_pool/src/stakedex_traits.rs index 71afec5..9163574 100644 --- a/libs/eversol_stake_pool/src/stakedex_traits.rs +++ b/libs/eversol_stake_pool/src/stakedex_traits.rs @@ -200,6 +200,10 @@ impl InitFromKeyedAccount for EversolStakePoolStakedex { } impl BaseStakePoolAmm for EversolStakePoolStakedex { + fn program_id(&self) -> Pubkey { + eversol_program::ID + } + fn stake_pool_label(&self) -> &'static str { EVERSOL_STAKE_POOL_LABEL } diff --git a/libs/lido/src/stakedex_traits.rs b/libs/lido/src/stakedex_traits.rs index fde3084..aa37e00 100644 --- a/libs/lido/src/stakedex_traits.rs +++ b/libs/lido/src/stakedex_traits.rs @@ -37,6 +37,10 @@ impl InitFromKeyedAccount for LidoStakedex { } impl BaseStakePoolAmm for LidoStakedex { + fn program_id(&self) -> Pubkey { + lido_program::ID + } + fn stake_pool_label(&self) -> &'static str { LIDO_LABEL } diff --git a/libs/marinade/src/stakedex_traits.rs b/libs/marinade/src/stakedex_traits.rs index 21c2275..d816a1a 100644 --- a/libs/marinade/src/stakedex_traits.rs +++ b/libs/marinade/src/stakedex_traits.rs @@ -32,6 +32,10 @@ impl InitFromKeyedAccount for MarinadeStakedex { } impl BaseStakePoolAmm for MarinadeStakedex { + fn program_id(&self) -> Pubkey { + marinade_program::ID + } + fn stake_pool_label(&self) -> &'static str { MARINADE_LABEL } diff --git a/libs/socean_stake_pool/src/stakedex_traits.rs b/libs/socean_stake_pool/src/stakedex_traits.rs index 0fd25ee..c783dae 100644 --- a/libs/socean_stake_pool/src/stakedex_traits.rs +++ b/libs/socean_stake_pool/src/stakedex_traits.rs @@ -74,6 +74,10 @@ impl InitFromKeyedAccount for SoceanStakePoolStakedex { } impl BaseStakePoolAmm for SoceanStakePoolStakedex { + fn program_id(&self) -> Pubkey { + socean_program::ID + } + fn stake_pool_label(&self) -> &'static str { SOCEAN_STAKE_POOL_LABEL } diff --git a/libs/spl_stake_pool/src/stakedex_traits.rs b/libs/spl_stake_pool/src/stakedex_traits.rs index faa92fd..a53d26e 100644 --- a/libs/spl_stake_pool/src/stakedex_traits.rs +++ b/libs/spl_stake_pool/src/stakedex_traits.rs @@ -74,6 +74,10 @@ impl InitFromKeyedAccount for SplStakePoolStakedex { } impl BaseStakePoolAmm for SplStakePoolStakedex { + fn program_id(&self) -> Pubkey { + spl_stake_pool::ID + } + fn stake_pool_label(&self) -> &'static str { self.stake_pool_label } diff --git a/libs/unstake_it/src/stakedex_traits.rs b/libs/unstake_it/src/stakedex_traits.rs index 5d8d4a7..596cc63 100644 --- a/libs/unstake_it/src/stakedex_traits.rs +++ b/libs/unstake_it/src/stakedex_traits.rs @@ -81,6 +81,10 @@ impl InitFromKeyedAccount for UnstakeItStakedex { } impl BaseStakePoolAmm for UnstakeItStakedex { + fn program_id(&self) -> Pubkey { + unstake_it_program::ID + } + fn stake_pool_label(&self) -> &'static str { SANCTUM_LABEL }