Skip to content

Commit bfbe20b

Browse files
committed
Merge branch 'master' into lukas/per-market-lev-swift-plus-more
2 parents 54af3ae + 5b84861 commit bfbe20b

File tree

34 files changed

+536
-88
lines changed

34 files changed

+536
-88
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Features
1111

12+
### Fixes
13+
14+
### Breaking
15+
16+
## [2.137.0] - 2025-09-15
17+
18+
### Features
19+
20+
- program: post only respects reduce only ([#1878](https://github.com/drift-labs/protocol-v2/pull/1878))
21+
- program: add sequence id to exchange/mm oracle ([#1834](https://github.com/drift-labs/protocol-v2/pull/1834))
1222
- program: perp position max margin ratio ([#1847](https://github.com/drift-labs/protocol-v2/pull/1847))
1323
- program: rm lp ([#1755](https://github.com/drift-labs/protocol-v2/pull/1755))
1424

1525
### Fixes
1626

27+
- program: make it easier to fill step size orders ([#1799](https://github.com/drift-labs/protocol-v2/pull/1799))
28+
- program: relax fee tier constraints for maker ([#1876](https://github.com/drift-labs/protocol-v2/pull/1876))
29+
1730
### Breaking
1831

1932
## [2.136.0] - 2025-09-03

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,51 @@
4848
"prepare": "husky install",
4949
"prettify": "prettier --check './sdk/src/**/*.ts' './tests/**.ts' './cli/**.ts'",
5050
"prettify:fix": "prettier --write './sdk/src/**/*.ts' './tests/**.ts' './cli/**.ts'",
51-
"lint": "eslint . --ext ts --quiet",
51+
"lint": "eslint . --ext ts --quiet --format unix",
5252
"lint:fix": "eslint . --ext ts --fix",
5353
"update-idl": "cp target/idl/drift.json sdk/src/idl/drift.json"
5454
},
5555
"engines": {
5656
"node": ">=12"
57+
},
58+
"resolutions": {
59+
"chalk": "4.1.2",
60+
"debug": "<4.4.2",
61+
"ansi-styles": "4.3.0",
62+
"supports-color": "7.2.0",
63+
"strip-ansi": "6.0.1",
64+
"ansi-regex": "5.0.1",
65+
"wrap-ansi": "7.0.0",
66+
"color-convert": "<3.1.1",
67+
"color-name": "<2.0.1",
68+
"color-string": "<2.1.1",
69+
"simple-swizzle": "<0.2.3",
70+
"is-arrayish": "<0.3.3",
71+
"slice-ansi": "3.0.0",
72+
"error-ex": "<1.3.3",
73+
"backslash": "<0.2.1",
74+
"chalk-template": "<1.1.1",
75+
"supports-hyperlinks": "<4.1.1",
76+
"has-ansi": "<6.0.1"
77+
},
78+
"overrides": {
79+
"chalk": "4.1.2",
80+
"debug": "<4.4.2",
81+
"ansi-styles": "4.3.0",
82+
"supports-color": "7.2.0",
83+
"strip-ansi": "6.0.1",
84+
"ansi-regex": "5.0.1",
85+
"wrap-ansi": "7.0.0",
86+
"color-convert": "<3.1.1",
87+
"color-name": "<2.0.1",
88+
"color-string": "<2.1.1",
89+
"simple-swizzle": "<0.2.3",
90+
"is-arrayish": "<0.3.3",
91+
"slice-ansi": "3.0.0",
92+
"error-ex": "<1.3.3",
93+
"backslash": "<0.2.1",
94+
"chalk-template": "<1.1.1",
95+
"supports-hyperlinks": "<4.1.1",
96+
"has-ansi": "<6.0.1"
5797
}
5898
}

programs/drift/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "drift"
3-
version = "2.136.0"
3+
version = "2.137.0"
44
description = "Created with Anchor"
55
edition = "2018"
66

programs/drift/src/controller/amm/tests.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ fn formualic_k_tests() {
133133
confidence: 0,
134134
delay: 2,
135135
has_sufficient_number_of_data_points: true,
136+
sequence_id: None,
136137
};
137138

138139
// zero funding cost
@@ -192,6 +193,7 @@ fn iterative_bounds_formualic_k_tests() {
192193
confidence: 0,
193194
delay: 2,
194195
has_sufficient_number_of_data_points: true,
196+
sequence_id: None,
195197
};
196198

197199
// negative funding cost
@@ -236,6 +238,7 @@ fn iterative_no_bounds_formualic_k_tests() {
236238
confidence: 0,
237239
delay: 2,
238240
has_sufficient_number_of_data_points: true,
241+
sequence_id: None,
239242
};
240243

241244
// negative funding cost

programs/drift/src/controller/orders.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2172,12 +2172,13 @@ pub fn fulfill_perp_order_with_amm(
21722172
};
21732173

21742174
// if user position is less than min order size, step size is the threshold
2175-
let amm_size_threshold =
2176-
if existing_base_asset_amount.unsigned_abs() > market.amm.min_order_size {
2177-
market.amm.min_order_size
2178-
} else {
2179-
market.amm.order_step_size
2180-
};
2175+
let amm_size_threshold = if !user.orders[order_index].reduce_only
2176+
&& existing_base_asset_amount.unsigned_abs() > market.amm.min_order_size
2177+
{
2178+
market.amm.min_order_size
2179+
} else {
2180+
market.amm.order_step_size
2181+
};
21812182

21822183
if base_asset_amount < amm_size_threshold {
21832184
// if is an actual swap (and not amm jit order) then msg!

programs/drift/src/controller/position/tests.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,7 @@ fn amm_pred_market_example() {
508508
confidence: 47843,
509509
delay: 1,
510510
has_sufficient_number_of_data_points: true,
511+
sequence_id: None,
511512
};
512513
let mm_oracle_price_data = perp_market
513514
.get_mm_oracle_price_data(
@@ -646,6 +647,7 @@ fn amm_ref_price_decay_tail_test() {
646647
confidence: PRICE_PRECISION_U64 / 100000,
647648
delay: 1,
648649
has_sufficient_number_of_data_points: true,
650+
sequence_id: None,
649651
};
650652
let mm_oracle_price_data = perp_market
651653
.get_mm_oracle_price_data(
@@ -822,6 +824,7 @@ fn amm_ref_price_offset_decay_logic() {
822824
confidence: PRICE_PRECISION_U64 / 1000,
823825
delay: 1,
824826
has_sufficient_number_of_data_points: true,
827+
sequence_id: None,
825828
};
826829
let mm_oracle_price_data = perp_market
827830
.get_mm_oracle_price_data(
@@ -995,6 +998,7 @@ fn amm_negative_ref_price_offset_decay_logic() {
995998
confidence: PRICE_PRECISION_U64 / 1000,
996999
delay: 1,
9971000
has_sufficient_number_of_data_points: true,
1001+
sequence_id: None,
9981002
};
9991003
let mm_oracle_price_data = perp_market
10001004
.get_mm_oracle_price_data(
@@ -1184,6 +1188,7 @@ fn amm_perp_ref_offset() {
11841188
confidence: PRICE_PRECISION_U64 / 1000,
11851189
delay: 1,
11861190
has_sufficient_number_of_data_points: true,
1191+
sequence_id: None,
11871192
};
11881193
let mm_oracle_price_data = perp_market
11891194
.get_mm_oracle_price_data(
@@ -2446,6 +2451,7 @@ fn recenter_amm_2() {
24462451
let mm_oracle_price_data = MMOraclePriceData::new(
24472452
oracle_price_data.price,
24482453
oracle_price_data.delay + 1,
2454+
1,
24492455
OracleValidity::default(),
24502456
*oracle_price_data,
24512457
)
@@ -2587,6 +2593,7 @@ fn test_move_amm() {
25872593
let mm_oracle_price_data = MMOraclePriceData::new(
25882594
oracle_price_data.price,
25892595
oracle_price_data.delay + 1,
2596+
1,
25902597
OracleValidity::default(),
25912598
*oracle_price_data,
25922599
)

programs/drift/src/controller/repeg/tests.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ pub fn update_amm_test() {
7676
confidence: 0,
7777
delay: 2,
7878
has_sufficient_number_of_data_points: true,
79+
sequence_id: None,
7980
};
8081

8182
let reserve_price_before = market.amm.reserve_price().unwrap();
@@ -227,6 +228,7 @@ pub fn update_amm_test_bad_oracle() {
227228
confidence: 0,
228229
delay: 12,
229230
has_sufficient_number_of_data_points: true,
231+
sequence_id: None,
230232
};
231233
let mm_oracle_price_data = market
232234
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)
@@ -285,6 +287,7 @@ pub fn update_amm_larg_conf_test() {
285287
confidence: 0,
286288
delay: 9,
287289
has_sufficient_number_of_data_points: true,
290+
sequence_id: None,
288291
};
289292
let mm_oracle_price_data = market
290293
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)
@@ -309,6 +312,7 @@ pub fn update_amm_larg_conf_test() {
309312
confidence: 100 * PRICE_PRECISION_U64,
310313
delay: 1,
311314
has_sufficient_number_of_data_points: true,
315+
sequence_id: None,
312316
};
313317
let mm_oracle_price_data = market
314318
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)
@@ -335,6 +339,7 @@ pub fn update_amm_larg_conf_test() {
335339
confidence: 100 * PRICE_PRECISION_U64,
336340
delay: 1,
337341
has_sufficient_number_of_data_points: true,
342+
sequence_id: None,
338343
};
339344

340345
let fee_budget = calculate_fee_pool(&market).unwrap();
@@ -377,6 +382,7 @@ pub fn update_amm_larg_conf_test() {
377382
confidence: 121 * PRICE_PRECISION_U64,
378383
delay: 1,
379384
has_sufficient_number_of_data_points: true,
385+
sequence_id: None,
380386
};
381387
let mm_oracle_price_data = market
382388
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)
@@ -432,6 +438,7 @@ pub fn update_amm_larg_conf_w_neg_tfmd_test() {
432438
confidence: 0,
433439
delay: 9,
434440
has_sufficient_number_of_data_points: true,
441+
sequence_id: None,
435442
};
436443
let mm_oracle_price_data = market
437444
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)
@@ -486,6 +493,7 @@ pub fn update_amm_larg_conf_w_neg_tfmd_test() {
486493
confidence: 100 * PRICE_PRECISION_U64,
487494
delay: 1,
488495
has_sufficient_number_of_data_points: true,
496+
sequence_id: None,
489497
};
490498
let mm_oracle_price_data = market
491499
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)
@@ -512,6 +520,7 @@ pub fn update_amm_larg_conf_w_neg_tfmd_test() {
512520
confidence: 100 * PRICE_PRECISION_U64,
513521
delay: 1,
514522
has_sufficient_number_of_data_points: true,
523+
sequence_id: None,
515524
};
516525
let mm_oracle_price_data = market
517526
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)
@@ -588,6 +597,7 @@ pub fn update_amm_larg_conf_w_neg_tfmd_test() {
588597
confidence: 121 * PRICE_PRECISION_U64,
589598
delay: 1,
590599
has_sufficient_number_of_data_points: true,
600+
sequence_id: None,
591601
};
592602
let mm_oracle_price_data = market
593603
.get_mm_oracle_price_data(oracle_price_data, slot, &state.oracle_guard_rails.validity)

programs/drift/src/controller/spot_balance/tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1700,6 +1700,7 @@ fn check_usdc_spot_market_twap() {
17001700
confidence: 1,
17011701
delay: 0,
17021702
has_sufficient_number_of_data_points: true,
1703+
sequence_id: None,
17031704
};
17041705

17051706
update_spot_market_twap_stats(&mut spot_market, Some(&oracle_price_data), now).unwrap();

0 commit comments

Comments
 (0)