From 7d9d4afad8f4684edb743780c3fbb02c64820546 Mon Sep 17 00:00:00 2001 From: brooksjeremy7 <92278656+brooksjeremy7@users.noreply.github.com> Date: Tue, 24 Jun 2025 14:08:00 -0700 Subject: [PATCH 1/2] fix: added a constraint to conditional_token_mint to ensure it's in the vaults vector of mints --- .../src/instructions/add_metadata_to_conditional_tokens.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs b/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs index a24828dcd..8bbabb615 100644 --- a/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs +++ b/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs @@ -23,6 +23,7 @@ pub struct AddMetadataToConditionalTokens<'info> { #[account( mut, mint::authority = vault, + constraint = vault.conditional_token_mints.contains(&conditional_token_mint.key()), )] pub conditional_token_mint: Account<'info, Mint>, /// CHECK: verified via cpi into token metadata @@ -102,4 +103,4 @@ impl AddMetadataToConditionalTokens<'_> { Ok(()) } -} +} \ No newline at end of file From df4a452e45949acb55fa8ffb7a7deea502519505 Mon Sep 17 00:00:00 2001 From: brooksjeremy7 <92278656+brooksjeremy7@users.noreply.github.com> Date: Tue, 24 Jun 2025 14:18:15 -0700 Subject: [PATCH 2/2] fix: moved validation from the struct to the validate function --- .../src/instructions/add_metadata_to_conditional_tokens.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs b/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs index 8bbabb615..054f77c91 100644 --- a/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs +++ b/programs/conditional_vault/src/instructions/add_metadata_to_conditional_tokens.rs @@ -23,7 +23,6 @@ pub struct AddMetadataToConditionalTokens<'info> { #[account( mut, mint::authority = vault, - constraint = vault.conditional_token_mints.contains(&conditional_token_mint.key()), )] pub conditional_token_mint: Account<'info, Mint>, /// CHECK: verified via cpi into token metadata @@ -41,6 +40,11 @@ impl AddMetadataToConditionalTokens<'_> { // VaultError::VaultAlreadySettled // ); + require!( + self.vault.conditional_token_mints.contains(&self.conditional_token_mint.key()), + VaultError::InvalidConditionalTokenMint + ); + require!( self.conditional_token_metadata.data_is_empty(), VaultError::ConditionalTokenMetadataAlreadySet