diff --git a/nssa/program_methods/guest/src/bin/amm.rs b/nssa/program_methods/guest/src/bin/amm.rs index 39f11fa..534ef2b 100644 --- a/nssa/program_methods/guest/src/bin/amm.rs +++ b/nssa/program_methods/guest/src/bin/amm.rs @@ -335,20 +335,18 @@ fn swap( // Verify vaults are in fact vaults let pool_def_data = PoolDefinition::parse(&pool.account.data).unwrap(); - let vault1_data = TokenHolding::parse(&vault1.account.data).unwrap(); - let vault2_data = TokenHolding::parse(&vault2.account.data).unwrap(); - let vault_a = if vault1_data.definition_id == pool_def_data.definition_token_a_id { + let vault_a = if vault1.account_id == pool_def_data.vault_a_addr { vault1.clone() - } else if vault2_data.definition_id == pool_def_data.definition_token_a_id { + } else if vault2.account_id == pool_def_data.vault_a_addr { vault2.clone() } else { panic!("Vault A was not provided"); }; - let vault_b = if vault1_data.definition_id == pool_def_data.definition_token_b_id { + let vault_b = if vault1.account_id == pool_def_data.vault_b_addr { vault1.clone() - } else if vault2_data.definition_id == pool_def_data.definition_token_b_id { + } else if vault2.account_id == pool_def_data.vault_b_addr { vault2.clone() } else { panic!("Vault B was not provided"); @@ -485,29 +483,24 @@ fn add_liquidity(pre_states: &[AccountWithMetadata], let user_b = &pre_states[5]; let user_lp = &pre_states[6]; - let mut vault_a = AccountWithMetadata::default(); - let mut vault_b = AccountWithMetadata::default(); - + // Verify vaults are in fact vaults let pool_def_data = PoolDefinition::parse(&pool.account.data).unwrap(); - let vault1_data = TokenHolding::parse(&vault1.account.data).unwrap(); - let vault2_data = TokenHolding::parse(&vault2.account.data).unwrap(); - - if vault1_data.definition_id == pool_def_data.definition_token_a_id { - vault_a = vault1.clone(); - } else if vault2_data.definition_id == pool_def_data.definition_token_a_id { - vault_a = vault2.clone(); - } else { - panic!("Vault A was not provided"); - } + let vault_a = if vault1.account_id == pool_def_data.vault_a_addr { + vault1.clone() + } else if vault2.account_id == pool_def_data.vault_a_addr { + vault2.clone() + } else { + panic!("Vault A was not provided"); + }; - if vault1_data.definition_id == pool_def_data.definition_token_b_id { - vault_b = vault1.clone(); - } else if vault2_data.definition_id == pool_def_data.definition_token_b_id { - vault_b = vault2.clone(); + let vault_b = if vault1.account_id == pool_def_data.vault_b_addr { + vault1.clone() + } else if vault2.account_id == pool_def_data.vault_b_addr { + vault2.clone() } else { panic!("Vault B was not provided"); - } + }; if max_balance_in.len() != 2 { panic!("Invalid number of input balances"); @@ -647,29 +640,25 @@ fn remove_liquidity(pre_states: &[AccountWithMetadata]) -> (Vec, Vec