From 1177054802798afa5ca837c07206f71d5a6a76dd Mon Sep 17 00:00:00 2001
From: Chris Heaney <chrisheaney30@gmail.com>
Date: Wed, 2 Apr 2025 14:24:51 -0400
Subject: [PATCH] program: blocks for update_pool_id

---
 programs/drift/src/instructions/user.rs | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/programs/drift/src/instructions/user.rs b/programs/drift/src/instructions/user.rs
index 9ae0b462b2..05dc77f6f8 100644
--- a/programs/drift/src/instructions/user.rs
+++ b/programs/drift/src/instructions/user.rs
@@ -3128,6 +3128,31 @@ pub fn handle_update_user_pool_id<'c: 'info, 'info>(
     )?;
 
     let mut user = load_mut!(ctx.accounts.user)?;
+
+    validate!(
+        user.pool_id == 0,
+        ErrorCode::DefaultError,
+        "user must be pool_id 0"
+    )?;
+
+    validate!(
+        user.total_deposits == 0,
+        ErrorCode::DefaultError,
+        "user must be total_deposits 0"
+    )?;
+
+    validate!(
+        user.total_withdraws == 0,
+        ErrorCode::DefaultError,
+        "user must be total_withdraws 0"
+    )?;
+
+    validate!(
+        user.settled_perp_pnl == 0,
+        ErrorCode::DefaultError,
+        "user must be settled_perp_pnl 0"
+    )?;
+
     user.pool_id = pool_id;
 
     // will throw if user has deposits/positions in other pools