From ea53225b7b6373533c6c3fd99451b0e4b57d0766 Mon Sep 17 00:00:00 2001 From: 0xbigz <83473873+0xbigz@users.noreply.github.com> Date: Fri, 1 Aug 2025 14:39:08 -0400 Subject: [PATCH 1/2] program: trusted-vault-require-force-withdraw-validate --- .../src/instructions/manager_update_borrow.rs | 2 +- programs/drift_vaults/src/instructions/withdraw.rs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/programs/drift_vaults/src/instructions/manager_update_borrow.rs b/programs/drift_vaults/src/instructions/manager_update_borrow.rs index d3c0d06d..9ddfc758 100644 --- a/programs/drift_vaults/src/instructions/manager_update_borrow.rs +++ b/programs/drift_vaults/src/instructions/manager_update_borrow.rs @@ -55,7 +55,7 @@ pub fn manager_update_borrow<'c: 'info, 'info>( vault.calculate_equity(&user, &perp_market_map, &spot_market_map, &mut oracle_map)?; let previous_borrow_value = vault.manager_borrowed_value; - vault.manager_borrowed_value = new_borrow_value; + vault.ed_value = new_borrow_value; drop(vault); drop(user); diff --git a/programs/drift_vaults/src/instructions/withdraw.rs b/programs/drift_vaults/src/instructions/withdraw.rs index 55568ac2..a93e98ad 100644 --- a/programs/drift_vaults/src/instructions/withdraw.rs +++ b/programs/drift_vaults/src/instructions/withdraw.rs @@ -73,6 +73,13 @@ pub fn withdraw<'c: 'info, 'info>(ctx: Context<'_, '_, 'c, 'info, Withdraw<'info msg!("user_withdraw_amount: {}", user_withdraw_amount); + validate!( + !vault.is_trusted_vault_class(), + ErrorCode::InvalidVaultClass, + "Trusted vaults requires manager to send withdraw" + )?; + + drop(spot_market); drop(vault); drop(user); @@ -93,6 +100,7 @@ pub fn withdraw<'c: 'info, 'info>(ctx: Context<'_, '_, 'c, 'info, Withdraw<'info ctx.drift_update_user_reduce_only(false)?; } + Ok(()) } From 2267c902935294bd8bf57a95a54bfa49b5c5f163 Mon Sep 17 00:00:00 2001 From: bigz_Pubkey <83473873+0xbigz@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:16:47 -0400 Subject: [PATCH 2/2] Update manager_update_borrow.rs --- programs/drift_vaults/src/instructions/manager_update_borrow.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/drift_vaults/src/instructions/manager_update_borrow.rs b/programs/drift_vaults/src/instructions/manager_update_borrow.rs index 9ddfc758..d3c0d06d 100644 --- a/programs/drift_vaults/src/instructions/manager_update_borrow.rs +++ b/programs/drift_vaults/src/instructions/manager_update_borrow.rs @@ -55,7 +55,7 @@ pub fn manager_update_borrow<'c: 'info, 'info>( vault.calculate_equity(&user, &perp_market_map, &spot_market_map, &mut oracle_map)?; let previous_borrow_value = vault.manager_borrowed_value; - vault.ed_value = new_borrow_value; + vault.manager_borrowed_value = new_borrow_value; drop(vault); drop(user);