Skip to content

Commit e59bef5

Browse files
committed
program: ix to reset old lp fields
1 parent 53721d0 commit e59bef5

File tree

3 files changed

+44
-23
lines changed

3 files changed

+44
-23
lines changed

programs/drift/src/instructions/keeper.rs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ use crate::state::spot_market_map::{
8484
};
8585
use crate::state::state::State;
8686
use crate::state::user::{
87-
MarginMode, MarketType, OrderStatus, OrderTriggerCondition, OrderType, User, UserStats,
87+
MarginMode, MarketType, OrderTriggerCondition, OrderType, User, UserStats,
8888
};
8989
use crate::state::user_map::{load_user_map, load_user_maps, UserMap, UserStatsMap};
9090
use crate::state::zero_copy::AccountZeroCopyMut;
@@ -616,27 +616,16 @@ pub fn handle_update_user_stats_referrer_info<'c: 'info, 'info>(
616616
#[access_control(
617617
exchange_not_paused(&ctx.accounts.state)
618618
)]
619-
pub fn handle_update_user_open_orders_count<'info>(ctx: Context<UpdateUserIdle>) -> Result<()> {
619+
pub fn handle_update_user_lp_fields<'info>(ctx: Context<UpdateUserIdle>) -> Result<()> {
620620
let mut user = load_mut!(ctx.accounts.user)?;
621621

622-
let mut open_orders = 0_u8;
623-
let mut open_auctions = 0_u8;
624-
625-
for order in user.orders.iter() {
626-
if order.status == OrderStatus::Open {
627-
open_orders += 1;
628-
}
629-
630-
if order.has_auction() {
631-
open_auctions += 1;
632-
}
622+
for perp_position in user.perp_positions.iter_mut() {
623+
perp_position.lp_shares = 0;
624+
perp_position.last_base_asset_amount_per_lp = 0;
625+
perp_position.last_quote_asset_amount_per_lp = 0;
626+
perp_position.per_lp_base = 0;
633627
}
634628

635-
user.open_orders = open_orders;
636-
user.has_open_order = open_orders > 0;
637-
user.open_auctions = open_auctions;
638-
user.has_open_auction = open_auctions > 0;
639-
640629
Ok(())
641630
}
642631

programs/drift/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -524,9 +524,9 @@ pub mod drift {
524524
handle_update_user_stats_referrer_info(ctx)
525525
}
526526

527-
// pub fn update_user_open_orders_count(ctx: Context<UpdateUserIdle>) -> Result<()> {
528-
// handle_update_user_open_orders_count(ctx)
529-
// }
527+
pub fn update_update_user_lp_fields(ctx: Context<UpdateUserIdle>) -> Result<()> {
528+
handle_update_user_lp_fields(ctx)
529+
}
530530

531531
pub fn admin_disable_update_perp_bid_ask_twap(
532532
ctx: Context<AdminDisableBidAskTwapUpdate>,

sdk/src/idl/drift.json

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2041,6 +2041,32 @@
20412041
],
20422042
"args": []
20432043
},
2044+
{
2045+
"name": "updateUpdateUserLpFields",
2046+
"accounts": [
2047+
{
2048+
"name": "state",
2049+
"isMut": false,
2050+
"isSigner": false
2051+
},
2052+
{
2053+
"name": "authority",
2054+
"isMut": false,
2055+
"isSigner": true
2056+
},
2057+
{
2058+
"name": "filler",
2059+
"isMut": true,
2060+
"isSigner": false
2061+
},
2062+
{
2063+
"name": "user",
2064+
"isMut": true,
2065+
"isSigner": false
2066+
}
2067+
],
2068+
"args": []
2069+
},
20442070
{
20452071
"name": "adminDisableUpdatePerpBidAskTwap",
20462072
"accounts": [
@@ -15434,6 +15460,9 @@
1543415460
},
1543515461
{
1543615462
"name": "AmmImmediateFill"
15463+
},
15464+
{
15465+
"name": "SettleRevPool"
1543715466
}
1543815467
]
1543915468
}
@@ -19565,5 +19594,8 @@
1956519594
"name": "MarketIndexNotFoundAmmCache",
1956619595
"msg": "MarketIndexNotFoundAmmCache"
1956719596
}
19568-
]
19569-
}
19597+
],
19598+
"metadata": {
19599+
"address": "dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH"
19600+
}
19601+
}

0 commit comments

Comments
 (0)