Skip to content

Commit 54315e9

Browse files
committed
Merge remote-tracking branch 'origin/crispheaney/support-deposits-on-behalf-of-user' into devnet
2 parents 71a823a + d04e6fc commit 54315e9

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

programs/drift/src/instructions/admin.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4864,6 +4864,7 @@ pub fn handle_admin_deposit<'c: 'info, 'info>(
48644864
market_index,
48654865
explanation: DepositExplanation::Reward,
48664866
transfer_user: None,
4867+
signer: Some(ctx.accounts.admin.key()),
48674868
};
48684869
emit!(deposit_record);
48694870

programs/drift/src/instructions/user.rs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,11 @@ pub fn handle_deposit<'c: 'info, 'info>(
793793
} else {
794794
DepositExplanation::None
795795
};
796+
let signer = if ctx.accounts.authority.key() == user.authority {
797+
Some(ctx.accounts.authority.key())
798+
} else {
799+
None
800+
};
796801
let deposit_record = DepositRecord {
797802
ts: now,
798803
deposit_record_id,
@@ -810,6 +815,7 @@ pub fn handle_deposit<'c: 'info, 'info>(
810815
market_index,
811816
explanation,
812817
transfer_user: None,
818+
signer,
813819
};
814820
emit!(deposit_record);
815821

@@ -965,6 +971,7 @@ pub fn handle_withdraw<'c: 'info, 'info>(
965971
total_withdraws_after: user.total_withdraws,
966972
explanation: deposit_explanation,
967973
transfer_user: None,
974+
signer: None,
968975
};
969976
emit!(deposit_record);
970977

@@ -1135,6 +1142,7 @@ pub fn handle_transfer_deposit<'c: 'info, 'info>(
11351142
total_withdraws_after: from_user.total_withdraws,
11361143
explanation: DepositExplanation::Transfer,
11371144
transfer_user: Some(to_user_key),
1145+
signer: None,
11381146
};
11391147
emit!(deposit_record);
11401148
}
@@ -1199,6 +1207,7 @@ pub fn handle_transfer_deposit<'c: 'info, 'info>(
11991207
total_withdraws_after,
12001208
explanation: DepositExplanation::Transfer,
12011209
transfer_user: Some(from_user_key),
1210+
signer: None,
12021211
};
12031212
emit!(deposit_record);
12041213
}
@@ -1411,6 +1420,7 @@ pub fn handle_transfer_pools<'c: 'info, 'info>(
14111420
total_withdraws_after: from_user.total_withdraws,
14121421
explanation: DepositExplanation::Transfer,
14131422
transfer_user: Some(to_user_key),
1423+
signer: None,
14141424
};
14151425
emit!(deposit_record);
14161426

@@ -1445,6 +1455,7 @@ pub fn handle_transfer_pools<'c: 'info, 'info>(
14451455
total_withdraws_after: to_user.total_withdraws,
14461456
explanation: DepositExplanation::Transfer,
14471457
transfer_user: Some(from_user_key),
1458+
signer: None,
14481459
};
14491460
emit!(deposit_record);
14501461
}
@@ -1511,6 +1522,7 @@ pub fn handle_transfer_pools<'c: 'info, 'info>(
15111522
total_withdraws_after: from_user.total_withdraws,
15121523
explanation: DepositExplanation::Transfer,
15131524
transfer_user: Some(to_user_key),
1525+
signer: None,
15141526
};
15151527
emit!(deposit_record);
15161528

@@ -1545,6 +1557,7 @@ pub fn handle_transfer_pools<'c: 'info, 'info>(
15451557
total_withdraws_after: to_user.total_withdraws,
15461558
explanation: DepositExplanation::Transfer,
15471559
transfer_user: Some(from_user_key),
1560+
signer: None,
15481561
};
15491562
emit!(deposit_record);
15501563
}
@@ -4326,8 +4339,7 @@ pub struct InitializeReferrerName<'info> {
43264339
pub struct Deposit<'info> {
43274340
pub state: Box<Account<'info, State>>,
43284341
#[account(
4329-
mut,
4330-
constraint = can_sign_for_user(&user, &authority)?
4342+
mut
43314343
)]
43324344
pub user: AccountLoader<'info, User>,
43334345
#[account(

programs/drift/src/state/events.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ pub struct DepositRecord {
5151
pub total_withdraws_after: u64,
5252
pub explanation: DepositExplanation,
5353
pub transfer_user: Option<Pubkey>,
54+
pub signer: Option<Pubkey>,
5455
}
5556

5657
#[derive(Clone, Copy, BorshSerialize, BorshDeserialize, PartialEq, Eq, Default)]

0 commit comments

Comments
 (0)