Skip to content

Commit a4fe692

Browse files
committed
disable extra instructions, fix builder code feature flag selection
1 parent d3a7aad commit a4fe692

File tree

13 files changed

+385
-340
lines changed

13 files changed

+385
-340
lines changed

programs/drift/src/controller/liquidation.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,6 +1107,7 @@ pub fn liquidate_perp_with_fill(
11071107
clock,
11081108
FillMode::Liquidation,
11091109
&mut None,
1110+
false,
11101111
)?;
11111112

11121113
let mut user = load_mut!(user_loader)?;

programs/drift/src/controller/orders.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,7 @@ pub fn fill_perp_order(
988988
clock: &Clock,
989989
fill_mode: FillMode,
990990
rev_share_escrow: &mut Option<&mut RevenueShareEscrowZeroCopyMut>,
991+
builder_referral_feature_enabled: bool,
991992
) -> DriftResult<(u64, u64)> {
992993
let now = clock.unix_timestamp;
993994
let slot = clock.slot;
@@ -1336,6 +1337,7 @@ pub fn fill_perp_order(
13361337
fill_mode,
13371338
oracle_stale_for_margin,
13381339
rev_share_escrow,
1340+
builder_referral_feature_enabled,
13391341
)?;
13401342

13411343
if base_asset_amount != 0 {
@@ -1752,10 +1754,15 @@ fn get_builder_escrow_info(
17521754
sub_account_id: u16,
17531755
order_id: u32,
17541756
market_index: u16,
1757+
builder_referral_feature_enabled: bool,
17551758
) -> (Option<u32>, Option<u32>, Option<u16>, Option<u8>) {
17561759
if let Some(escrow) = escrow_opt {
17571760
let builder_order_idx = escrow.find_order_index(sub_account_id, order_id);
1758-
let referrer_builder_order_idx = escrow.find_or_create_referral_index(market_index);
1761+
let referrer_builder_order_idx = if builder_referral_feature_enabled {
1762+
escrow.find_or_create_referral_index(market_index)
1763+
} else {
1764+
None
1765+
};
17591766

17601767
let builder_order = builder_order_idx.and_then(|idx| escrow.get_order(idx).ok());
17611768
let builder_order_fee_bps = builder_order.map(|order| order.fee_tenth_bps);
@@ -1797,6 +1804,7 @@ fn fulfill_perp_order(
17971804
fill_mode: FillMode,
17981805
oracle_stale_for_margin: bool,
17991806
rev_share_escrow: &mut Option<&mut RevenueShareEscrowZeroCopyMut>,
1807+
builder_referral_feature_enabled: bool,
18001808
) -> DriftResult<(u64, u64)> {
18011809
let market_index = user.orders[user_order_index].market_index;
18021810

@@ -1897,6 +1905,7 @@ fn fulfill_perp_order(
18971905
AMMLiquiditySplit::Shared,
18981906
fill_mode.is_liquidation(),
18991907
rev_share_escrow,
1908+
builder_referral_feature_enabled,
19001909
)?;
19011910

19021911
(fill_base_asset_amount, fill_quote_asset_amount)
@@ -1943,6 +1952,7 @@ fn fulfill_perp_order(
19431952
fill_mode.is_liquidation(),
19441953
None,
19451954
rev_share_escrow,
1955+
builder_referral_feature_enabled,
19461956
)?;
19471957

19481958
if maker_fill_base_asset_amount != 0 {
@@ -2188,6 +2198,7 @@ pub fn fulfill_perp_order_with_amm(
21882198
liquidity_split: AMMLiquiditySplit,
21892199
is_liquidation: bool,
21902200
rev_share_escrow: &mut Option<&mut RevenueShareEscrowZeroCopyMut>,
2201+
builder_referral_feature_enabled: bool,
21912202
) -> DriftResult<(u64, u64)> {
21922203
let position_index = get_position_index(&user.perp_positions, market.market_index)?;
21932204
let existing_base_asset_amount = user.perp_positions[position_index].base_asset_amount;
@@ -2302,6 +2313,7 @@ pub fn fulfill_perp_order_with_amm(
23022313
user.sub_account_id,
23032314
order_id,
23042315
market.market_index,
2316+
builder_referral_feature_enabled,
23052317
);
23062318

23072319
let FillFees {
@@ -2605,6 +2617,7 @@ pub fn fulfill_perp_order_with_match(
26052617
is_liquidation: bool,
26062618
amm_lp_allowed_to_jit_make: Option<bool>,
26072619
builder_escrow: &mut Option<&mut RevenueShareEscrowZeroCopyMut>,
2620+
builder_referral_feature_enabled: bool,
26082621
) -> DriftResult<(u64, u64, u64)> {
26092622
if !are_orders_same_market_but_different_sides(
26102623
&maker.orders[maker_order_index],
@@ -2720,6 +2733,7 @@ pub fn fulfill_perp_order_with_match(
27202733
amm_liquidity_split,
27212734
is_liquidation,
27222735
builder_escrow,
2736+
builder_referral_feature_enabled,
27232737
)?;
27242738

27252739
total_base_asset_amount = base_asset_amount_filled_by_amm;
@@ -2821,6 +2835,7 @@ pub fn fulfill_perp_order_with_match(
28212835
taker.sub_account_id,
28222836
taker.orders[taker_order_index].order_id,
28232837
market.market_index,
2838+
builder_referral_feature_enabled,
28242839
);
28252840

28262841
let filler_multiplier = if reward_filler {

programs/drift/src/controller/orders/amm_jit_tests.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ pub mod amm_jit {
302302
FillMode::Fill,
303303
false,
304304
&mut None,
305+
false,
305306
)
306307
.unwrap();
307308

@@ -493,6 +494,7 @@ pub mod amm_jit {
493494
FillMode::Fill,
494495
false,
495496
&mut None,
497+
false,
496498
)
497499
.unwrap();
498500

@@ -692,6 +694,7 @@ pub mod amm_jit {
692694
FillMode::Fill,
693695
false,
694696
&mut None,
697+
false,
695698
)
696699
.unwrap();
697700

@@ -890,6 +893,7 @@ pub mod amm_jit {
890893
FillMode::Fill,
891894
false,
892895
&mut None,
896+
false,
893897
)
894898
.unwrap();
895899

@@ -1090,6 +1094,7 @@ pub mod amm_jit {
10901094
FillMode::Fill,
10911095
false,
10921096
&mut None,
1097+
false,
10931098
)
10941099
.unwrap();
10951100

@@ -1299,6 +1304,7 @@ pub mod amm_jit {
12991304
FillMode::Fill,
13001305
false,
13011306
&mut None,
1307+
false,
13021308
)
13031309
.unwrap();
13041310

@@ -1506,6 +1512,7 @@ pub mod amm_jit {
15061512
FillMode::Fill,
15071513
false,
15081514
&mut None,
1515+
false,
15091516
)
15101517
.unwrap();
15111518

@@ -1736,6 +1743,7 @@ pub mod amm_jit {
17361743
FillMode::Fill,
17371744
false,
17381745
&mut None,
1746+
false,
17391747
)
17401748
.unwrap();
17411749

@@ -1937,6 +1945,7 @@ pub mod amm_jit {
19371945
FillMode::Fill,
19381946
false,
19391947
&mut None,
1948+
false,
19401949
)
19411950
.unwrap();
19421951

@@ -2126,6 +2135,7 @@ pub mod amm_jit {
21262135
FillMode::Fill,
21272136
false,
21282137
&mut None,
2138+
false,
21292139
)
21302140
.unwrap();
21312141

@@ -2327,6 +2337,7 @@ pub mod amm_jit {
23272337
FillMode::Fill,
23282338
false,
23292339
&mut None,
2340+
false,
23302341
)
23312342
.unwrap();
23322343

@@ -2579,6 +2590,7 @@ pub mod amm_jit {
25792590
FillMode::Fill,
25802591
false,
25812592
&mut None,
2593+
false,
25822594
)
25832595
.unwrap();
25842596

@@ -2864,6 +2876,7 @@ pub mod amm_jit {
28642876
FillMode::Fill,
28652877
false,
28662878
&mut None,
2879+
false,
28672880
)
28682881
.unwrap();
28692882

@@ -3094,6 +3107,7 @@ pub mod amm_jit {
30943107
FillMode::Fill,
30953108
false,
30963109
&mut None,
3110+
false,
30973111
)
30983112
.unwrap();
30993113

programs/drift/src/controller/orders/amm_lp_jit_tests.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,7 @@ pub mod amm_lp_jit {
656656
FillMode::Fill,
657657
false,
658658
&mut None,
659+
false,
659660
)
660661
.unwrap();
661662

@@ -860,6 +861,7 @@ pub mod amm_lp_jit {
860861
FillMode::Fill,
861862
false,
862863
&mut None,
864+
false,
863865
)
864866
.unwrap();
865867

@@ -1071,6 +1073,7 @@ pub mod amm_lp_jit {
10711073
FillMode::Fill,
10721074
false,
10731075
&mut None,
1076+
false,
10741077
)
10751078
.unwrap();
10761079

@@ -1289,6 +1292,7 @@ pub mod amm_lp_jit {
12891292
FillMode::Fill,
12901293
false,
12911294
&mut None,
1295+
false,
12921296
)
12931297
.unwrap();
12941298

@@ -1510,6 +1514,7 @@ pub mod amm_lp_jit {
15101514
FillMode::Fill,
15111515
false,
15121516
&mut None,
1517+
false,
15131518
)
15141519
.unwrap();
15151520

@@ -1713,6 +1718,7 @@ pub mod amm_lp_jit {
17131718
FillMode::Fill,
17141719
false,
17151720
&mut None,
1721+
false,
17161722
)
17171723
.unwrap();
17181724

@@ -1925,6 +1931,7 @@ pub mod amm_lp_jit {
19251931
FillMode::Fill,
19261932
false,
19271933
&mut None,
1934+
false,
19281935
)
19291936
.unwrap();
19301937

@@ -2129,6 +2136,7 @@ pub mod amm_lp_jit {
21292136
FillMode::Fill,
21302137
false,
21312138
&mut None,
2139+
false,
21322140
)
21332141
.unwrap();
21342142

@@ -2321,6 +2329,7 @@ pub mod amm_lp_jit {
23212329
FillMode::Fill,
23222330
false,
23232331
&mut None,
2332+
false,
23242333
)
23252334
.unwrap();
23262335

@@ -2525,6 +2534,7 @@ pub mod amm_lp_jit {
25252534
FillMode::Fill,
25262535
false,
25272536
&mut None,
2537+
false,
25282538
)
25292539
.unwrap();
25302540

@@ -2777,6 +2787,7 @@ pub mod amm_lp_jit {
27772787
FillMode::Fill,
27782788
false,
27792789
&mut None,
2790+
false,
27802791
)
27812792
.unwrap();
27822793

@@ -3062,6 +3073,7 @@ pub mod amm_lp_jit {
30623073
FillMode::Fill,
30633074
false,
30643075
&mut None,
3076+
false,
30653077
)
30663078
.unwrap();
30673079

@@ -3295,6 +3307,7 @@ pub mod amm_lp_jit {
32953307
FillMode::Fill,
32963308
false,
32973309
&mut None,
3310+
false,
32983311
)
32993312
.unwrap();
33003313

programs/drift/src/controller/orders/fuel_tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ pub mod fuel_scoring {
246246
FillMode::Fill,
247247
false,
248248
&mut None,
249+
false,
249250
)
250251
.unwrap();
251252

0 commit comments

Comments
 (0)