diff --git a/programs/conditional_vault/src/error.rs b/programs/conditional_vault/src/error.rs index e5e970e01..d7e2aad57 100644 --- a/programs/conditional_vault/src/error.rs +++ b/programs/conditional_vault/src/error.rs @@ -34,4 +34,6 @@ pub enum VaultError { QuestionAlreadyResolved, #[msg("Conditional token metadata already set")] ConditionalTokenMetadataAlreadySet, -} + #[msg("Conditional token account is not owned by the authority")] + UnauthorizedConditionalTokenAccount, +} \ No newline at end of file diff --git a/programs/conditional_vault/src/instructions/common.rs b/programs/conditional_vault/src/instructions/common.rs index 330d1f8b4..86cb1e9bb 100644 --- a/programs/conditional_vault/src/instructions/common.rs +++ b/programs/conditional_vault/src/instructions/common.rs @@ -65,9 +65,15 @@ impl<'info, 'c: 'info> InteractWithVault<'info> { VaultError::ConditionalTokenMintMismatch ); + require_eq!( + user_conditional_token_account.owner, + ctx.accounts.authority.key(), + VaultError::UnauthorizedConditionalTokenAccount + ); + user_conditional_token_accounts.push(user_conditional_token_account); } Ok((conditional_token_mints, user_conditional_token_accounts)) } -} +} \ No newline at end of file