Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
93f9eb9
program: calc-ref-price-offset-calc-enhance
0xbigz Jul 25, 2025
f161589
less jumpy calc and smaller control for max offset
0xbigz Jul 29, 2025
004efaf
sdk: add detailed subscription log name (#1773)
wphan Jul 27, 2025
d4953c4
sdk: release v2.130.0-beta.2
github-actions[bot] Jul 27, 2025
2c09f90
sdk: ws resubscribe verbose logging (#1774)
wphan Jul 28, 2025
b5486ef
sdk: release v2.130.0-beta.3
github-actions[bot] Jul 28, 2025
4ab2143
sdk: add timing on ws unsubscribe
wphan Jul 28, 2025
6b6bee7
sdk: release v2.130.0-beta.4
github-actions[bot] Jul 28, 2025
1a8d0e8
program: add high leverage maintenance mode (#1759)
0xbigz Jul 28, 2025
79ba807
sdk: release v2.130.0-beta.5
github-actions[bot] Jul 28, 2025
6848d82
sdk: log ws unsubscribe timeout error
wphan Jul 28, 2025
e049be9
sdk: release v2.130.0-beta.6
github-actions[bot] Jul 28, 2025
94e35e8
Remove barrel imports from SDK (#1777)
ChesterSim Jul 28, 2025
f4a71fa
sdk: release v2.130.0-beta.7
github-actions[bot] Jul 28, 2025
fc505ac
Nour/mm oracle 2 (#1767)
crispheaney Jul 28, 2025
d485fa1
sdk: release v2.130.0-beta.8
github-actions[bot] Jul 28, 2025
f49c1e4
Improve circular dependencies 1 (#1776)
ChesterSim Jul 29, 2025
8b8b824
sdk: release v2.130.0-beta.9
github-actions[bot] Jul 29, 2025
24e1275
Improve Circular Dependencies 2 (#1778)
ChesterSim Jul 29, 2025
07b3fb5
sdk: release v2.130.0-beta.10
github-actions[bot] Jul 29, 2025
ca42b43
Remove Circular Dependencies 3 (#1779)
ChesterSim Jul 29, 2025
28b1531
sdk: release v2.130.0-beta.11
github-actions[bot] Jul 29, 2025
255c070
vamm l2 oracle changes (#1780)
moosecat2 Jul 29, 2025
6d8cf56
sdk: release v2.130.0-beta.12
github-actions[bot] Jul 29, 2025
cb1e7df
program: stop counting reduce only orders to open bids/asks (#1746)
crispheaney Jul 29, 2025
b2f3d7e
Nour/validate fill change (#1772)
moosecat2 Jul 29, 2025
8964eb0
sdk: release v2.130.0-beta.13
github-actions[bot] Jul 29, 2025
827731d
sdk: revert drift interface (#1784)
crispheaney Jul 29, 2025
707f50a
sdk: release v2.130.0-beta.14
github-actions[bot] Jul 29, 2025
060f4b4
sdk: restore grpc disconnect default behavior (#1782)
wphan Jul 29, 2025
e0bf4ad
sdk: release v2.130.0-beta.15
github-actions[bot] Jul 29, 2025
cb8da2c
program: trigger price based on oracle and basis (#1716)
crispheaney Jul 30, 2025
4c539de
sdk: release v2.130.0-beta.16
github-actions[bot] Jul 30, 2025
fab1029
add missing CHANGELOGs
crispheaney Jul 30, 2025
ee8172f
v2.130.0
wphan Jul 30, 2025
c26a214
sdk: release v2.131.0-beta.0
github-actions[bot] Jul 30, 2025
0751acf
Add lint for index imports (#1787)
ChesterSim Jul 30, 2025
6554cca
sdk: release v2.131.0-beta.1
github-actions[bot] Jul 30, 2025
d69208c
sdk: revert grpc account subscribers to v2.126.0-beta.0 (#1789)
wphan Jul 30, 2025
db13919
sdk: release v2.131.0-beta.2
github-actions[bot] Jul 30, 2025
9bbafe2
sdk: backwards compatible idl
crispheaney Jul 30, 2025
2634444
sdk: release v2.131.0-beta.3
github-actions[bot] Jul 30, 2025
a640eda
lukas/gill websocket sub (#1781)
LukasDeco Jul 30, 2025
dea787d
sdk: release v2.131.0-beta.4
github-actions[bot] Jul 30, 2025
1100492
Update main.yml
wphan Jul 31, 2025
519318e
refactor(sdk): add MAX_APR_PER_REVENUE_SETTLE_TO_INSURANCE_FUND_VAULT…
ChesterSim Jul 31, 2025
b6b7ece
sdk: release v2.131.0-beta.5
github-actions[bot] Jul 31, 2025
4e82cff
refactor(sdk): improve exports
ChesterSim Jul 31, 2025
69c4a8e
sdk: release v2.131.0-beta.6
github-actions[bot] Jul 31, 2025
40904e2
sdk: updated idl
crispheaney Jul 31, 2025
ac60372
sdk: release v2.131.0-beta.7
github-actions[bot] Jul 31, 2025
37e21a4
feat: initial websocket v2 program account sub
LukasDeco Jul 31, 2025
5ae39ae
sdk: release v2.131.0-beta.8
github-actions[bot] Jul 31, 2025
cc69f2c
fix: ws v2 subscriber hangs on async iterable loop (#1793)
LukasDeco Jul 31, 2025
88250f9
sdk: release v2.131.0-beta.9
github-actions[bot] Jul 31, 2025
1c3328b
fix: websocket order subscriber using v2 too soon
LukasDeco Jul 31, 2025
bec4445
sdk: release v2.131.0-beta.10
github-actions[bot] Jul 31, 2025
b13eca3
sdk: enter-high-leverage-mode-false (#1791)
0xbigz Aug 1, 2025
370b158
sdk: release v2.131.0-beta.11
github-actions[bot] Aug 1, 2025
4045af1
refactor(sdk): allow user client input for cancel orders (#1797)
ChesterSim Aug 4, 2025
a38e4cc
refactor(sdk): minimize type for getPerpPositionValue
ChesterSim Aug 4, 2025
5d6dc64
sdk: release v2.131.0-beta.12
github-actions[bot] Aug 4, 2025
7469e0d
program: relax fill validation for spot/swap (#1796)
crispheaney Aug 4, 2025
9aa793e
program: update fee tier (#1792)
0xbigz Aug 4, 2025
9a090c1
sdk lint
crispheaney Aug 4, 2025
8706140
sdk: release v2.131.0-beta.13
github-actions[bot] Aug 4, 2025
f88a22e
v2.131.0
wphan Aug 4, 2025
3c8dffa
sdk: release v2.132.0-beta.0
github-actions[bot] Aug 4, 2025
1901fc7
program: update-fee-tier-validates (#1798)
0xbigz Aug 4, 2025
2e3cfc9
v2.131.1
wphan Aug 4, 2025
3806196
sdk: release v2.132.0-beta.0
github-actions[bot] Aug 4, 2025
fd78db0
sdk: add missing param for updatePerpMarketAmmSpreadAdjustment
0xbigz Aug 5, 2025
1762890
sdk: release v2.132.0-beta.1
github-actions[bot] Aug 5, 2025
d69f73e
sdk: fix consts in calculateWithdrawLimit
0xbigz Aug 5, 2025
1904d0f
sdk: release v2.132.0-beta.2
github-actions[bot] Aug 5, 2025
8f42aad
sdk: rm legacy code for updateAmms
crispheaney Aug 5, 2025
a4e255b
sdk: release v2.132.0-beta.3
github-actions[bot] Aug 5, 2025
68c0b39
refactor(sdk): refine oracle price data input types
ChesterSim Aug 6, 2025
9e351fa
sdk: release v2.132.0-beta.4
github-actions[bot] Aug 6, 2025
bcbac30
program: update-max-borrow-token-amount-deltas (#1801)
0xbigz Aug 6, 2025
4e9a43d
sdk: release v2.132.0-beta.5
github-actions[bot] Aug 6, 2025
8395606
v2.132.0
wphan Aug 6, 2025
a789820
sdk: release v2.133.0-beta.0
github-actions[bot] Aug 6, 2025
0310d21
sdk: fix modify order post only
crispheaney Aug 8, 2025
b70979a
sdk: release v2.133.0-beta.1
github-actions[bot] Aug 8, 2025
9840e46
program: amm-spread-inventory-spread-adj-base-spread-lb (#1803)
0xbigz Aug 12, 2025
06a3e9d
program: always fail settle pnl even if try_settle used (#1809)
crispheaney Aug 12, 2025
ce9a159
v2.133.0
wphan Aug 12, 2025
6a901a3
sdk: release v2.134.0-beta.0
github-actions[bot] Aug 12, 2025
10f6035
refactor(sdk): add getActivePositions to user
ChesterSim Aug 12, 2025
6742151
sdk: release v2.134.0-beta.1
github-actions[bot] Aug 12, 2025
4bca9a2
sdk: add spot-market-index-57 to constants (#1815)
0xbigz Aug 13, 2025
2f4a0c2
sdk: release v2.134.0-beta.2
github-actions[bot] Aug 13, 2025
50059ec
lazer oracle migration (#1813)
moosecat2 Aug 13, 2025
5e11313
sdk: release v2.134.0-beta.3
github-actions[bot] Aug 13, 2025
6b28168
feat: option for custom oracle ws subscriber
LukasDeco Aug 13, 2025
fab1c38
fix: pass custom oracle ws sub option in dc constructor
LukasDeco Aug 13, 2025
d4341c2
sdk: release v2.134.0-beta.4
github-actions[bot] Aug 13, 2025
ffc6750
program: settle pnl invariants (#1812)
crispheaney Aug 13, 2025
58cb261
program: add_update_perp_pnl_pool (#1810)
crispheaney Aug 13, 2025
68b8cf1
sdk: release v2.134.0-beta.5
github-actions[bot] Aug 13, 2025
bfe0ee6
program: update-mark-twap-integer-bias (#1783)
0xbigz Aug 13, 2025
d1dcc96
program: update-fee-tier-determine-fix5 (#1800)
0xbigz Aug 13, 2025
8de9f60
program: update-mark-twap-crank-use-5min-basis (#1769)
0xbigz Aug 13, 2025
59d836c
program: update-min-margin-const-limit (#1802)
0xbigz Aug 13, 2025
fd54c99
sdk: release v2.134.0-beta.6
github-actions[bot] Aug 13, 2025
b42727c
program: rm-burn-lp-shares-invariant (#1816)
0xbigz Aug 13, 2025
15543c3
fix test and cargo fmt
crispheaney Aug 13, 2025
c47e9e9
fix anchor tests
crispheaney Aug 13, 2025
835c1d0
yarn prettify:fix
crispheaney Aug 13, 2025
f255610
reenable settle_pnl mode test
wphan Aug 13, 2025
34457c2
v2.134.0
wphan Aug 13, 2025
4578fa1
sdk: release v2.135.0-beta.0
github-actions[bot] Aug 13, 2025
4e6dd2f
Merge pull request #1820 from drift-labs/chester/fix-zod
ChesterSim Aug 18, 2025
c716ba0
sdk: release v2.135.0-beta.1
github-actions[bot] Aug 18, 2025
e129aef
mm oracle sdk change (#1806)
moosecat2 Aug 18, 2025
c610184
sdk: release v2.135.0-beta.2
github-actions[bot] Aug 18, 2025
6b25d24
sdk: fix isHighLeverageMode
crispheaney Aug 18, 2025
b0662f8
sdk: release v2.135.0-beta.3
github-actions[bot] Aug 18, 2025
cc88d50
refactor(sdk): add update delegate ix method, ovrride authority for s…
ChesterSim Aug 19, 2025
bd479be
mm oracle sdk additions (#1824)
moosecat2 Aug 19, 2025
6310e64
sdk: release v2.135.0-beta.4
github-actions[bot] Aug 19, 2025
daf235a
add strict typing for getPrice and new auction trigger function (#1826)
moosecat2 Aug 20, 2025
a547ea8
sdk: release v2.135.0-beta.5
github-actions[bot] Aug 20, 2025
a3853c1
sdk: handle unfillable reduce only orders (#1790)
wphan Aug 20, 2025
0a45d88
sdk: release v2.135.0-beta.6
github-actions[bot] Aug 20, 2025
5b981cb
ref price offset amm math fix (#1828)
moosecat2 Aug 21, 2025
1f21157
sdk: release v2.135.0-beta.7
github-actions[bot] Aug 21, 2025
44c6058
latest slot as argument to getL2 (#1829)
moosecat2 Aug 21, 2025
2a2f68f
sdk: release v2.135.0-beta.8
github-actions[bot] Aug 21, 2025
38119a4
program: trigger price use 5min mark price (#1830)
crispheaney Aug 22, 2025
9e2739b
v2.135.0
wphan Aug 22, 2025
e4e5820
sdk: release v2.136.0-beta.0
github-actions[bot] Aug 22, 2025
9b35551
lukas/websocket improvements (#1807)
LukasDeco Aug 26, 2025
1ace60b
sdk: release v2.136.0-beta.1
github-actions[bot] Aug 26, 2025
22f5e87
refactor(sdk): add decimal override for bignum prettyPrint
ChesterSim Aug 26, 2025
44e8911
sdk: release v2.136.0-beta.2
github-actions[bot] Aug 26, 2025
033a48e
sdk: while valid tx sender memory leak fix
moosecat2 Aug 26, 2025
d281aaa
sdk: release v2.136.0-beta.3
github-actions[bot] Aug 26, 2025
fd14960
[ FIX ] `posaune0423/fix tx fee payer` (#1837)
posaune0423 Aug 28, 2025
566a055
sdk: release v2.136.0-beta.4
github-actions[bot] Aug 28, 2025
e9fd9f9
sdk: add constant for spot market index 58 (#1840)
0xbigz Aug 28, 2025
dbac35a
sdk: release v2.136.0-beta.5
github-actions[bot] Aug 28, 2025
d327d15
Revert "[ FIX ] `posaune0423/fix tx fee payer` (#1837)" (#1841)
wphan Aug 28, 2025
e3a8567
sdk: release v2.136.0-beta.6
github-actions[bot] Aug 28, 2025
28fb909
Add buildDepositAndPlaceSignedMsgOrderRequest helper for swift deposi…
jordy25519 Sep 2, 2025
d10cafa
sdk: release v2.136.0-beta.7
github-actions[bot] Sep 2, 2025
100f01d
program: update-ref-fee-validate-rules (#1843)
0xbigz Sep 3, 2025
9cfc9eb
v2.136.0
wphan Sep 3, 2025
76ef78b
sdk: release v2.137.0-beta.0
github-actions[bot] Sep 3, 2025
a473de7
program: rm lp (#1755)
crispheaney Sep 3, 2025
829f552
sdk: release v2.137.0-beta.1
github-actions[bot] Sep 3, 2025
77d76eb
bump
wphan Sep 5, 2025
6b4fe1a
program: add swift message padding (#1845)
wphan Sep 8, 2025
28f9032
program: add max margin ratio per position (#1847)
crispheaney Sep 8, 2025
65e30da
tweak cargo tests
crispheaney Sep 8, 2025
24fbc98
cargo fmt --
crispheaney Sep 8, 2025
53f7be8
lukas/per market lev (#1862)
LukasDeco Sep 9, 2025
45ab630
sdk: release v2.137.0-beta.2
github-actions[bot] Sep 9, 2025
3909555
program: add max margin ratio to swift message (#1860)
crispheaney Sep 10, 2025
f14c09f
sdk: release v2.137.0-beta.3
github-actions[bot] Sep 10, 2025
8018711
program: revert swift max margin ratio (#1874)
crispheaney Sep 11, 2025
4e59148
sdk: release v2.137.0-beta.4
github-actions[bot] Sep 11, 2025
70be941
add helper to build swiftDepositTrade tx (#1868)
jordy25519 Sep 11, 2025
4016462
sdk: release v2.137.0-beta.5
github-actions[bot] Sep 12, 2025
b5ee5ea
add optional maintenance arge to disable hlm ix (#1869)
lowkeynicc Sep 15, 2025
3d10faf
sdk: release v2.137.0-beta.6
github-actions[bot] Sep 15, 2025
e306e42
program: make mm oracle sequence id based (#1834)
moosecat2 Sep 15, 2025
df99075
sdk: release v2.137.0-beta.7
github-actions[bot] Sep 15, 2025
8543110
program: relax fee tier constraints for maker tier (#1876)
0xbigz Sep 15, 2025
3ca3ed1
program: make it easer to fill min order size orders (#1799)
crispheaney Sep 15, 2025
2d09cef
program: fix clippy
crispheaney Sep 15, 2025
4ee44ba
fix cargo test
crispheaney Sep 15, 2025
a4d38d2
program: apply reduce only logic for post only orders (#1878)
crispheaney Sep 15, 2025
e6c8351
fix tests
wphan Sep 16, 2025
c4451e0
v2.237.0
wphan Sep 15, 2025
354e65f
sdk: release v2.138.0-beta.0
github-actions[bot] Sep 16, 2025
3fdcc49
refactor(sdk): export TransactionParamProcessor
ChesterSim Sep 16, 2025
0883a3d
sdk: release v2.138.0-beta.1
github-actions[bot] Sep 16, 2025
a8a9731
add hlmm to decodeUser (#1881)
lowkeynicc Sep 16, 2025
01ce904
sdk: release v2.138.0-beta.2
github-actions[bot] Sep 16, 2025
70a6cd9
chore: add laserstream client
jackwaller Sep 16, 2025
c5affe2
fix: update to correct naming
jackwaller Sep 16, 2025
989532e
sdk: release v2.138.0-beta.3
github-actions[bot] Sep 17, 2025
897fdef
chore: rename lazer -> laser
jackwaller Sep 17, 2025
4b24ba5
sdk: release v2.138.0-beta.4
github-actions[bot] Sep 17, 2025
5ee4b37
Revert "chore: rename lazer -> laser"
jackwaller Sep 17, 2025
671db10
Revert "fix: update to correct naming"
jackwaller Sep 17, 2025
a4b1977
Revert "chore: add laserstream client"
jackwaller Sep 17, 2025
0fafeb2
sdk: release v2.138.0-beta.5
github-actions[bot] Sep 17, 2025
06116f1
feat: pin deps away from mal packages (#1858)
LukasDeco Sep 17, 2025
1e29984
sdk: release v2.138.0-beta.6
github-actions[bot] Sep 17, 2025
3c0977a
Revert "Crispeaney/revert swift max margin ratio" (#1877)
wphan Sep 18, 2025
c565cc8
sdk: release v2.138.0-beta.7
github-actions[bot] Sep 18, 2025
104dbd0
add lp events for evnet subscriber (#1892)
moosecat2 Sep 18, 2025
f1c73b0
sdk: release v2.138.0-beta.8
github-actions[bot] Sep 18, 2025
a288e2e
CHANGELOG
crispheaney Sep 19, 2025
f824aa0
sdk: fix idl
crispheaney Sep 19, 2025
4b0acea
program: token 22 scaled ui support (#1894)
crispheaney Sep 19, 2025
7f53fe8
sdk: release v2.138.0-beta.9
github-actions[bot] Sep 19, 2025
0715088
fix build
wphan Sep 19, 2025
d91be8f
program: add log for get_vault_len
crispheaney Sep 19, 2025
c5b8e27
fix cargo build errors
crispheaney Sep 20, 2025
ef453e0
program: rm update devnet drift
crispheaney Sep 20, 2025
311b051
sdk: rm unused param
crispheaney Sep 20, 2025
ff0d66e
fix comments (#1844)
jordy25519 Sep 21, 2025
26d1b53
program: tweak ResizeSignedMsgUserOrders (#1898)
crispheaney Sep 22, 2025
40a2e03
fix linter and cargo test
wphan Sep 22, 2025
f201d6a
fix cargo build errors
wphan Sep 22, 2025
c653c67
v2.138.0
wphan Sep 22, 2025
1d03a2a
sdk: release v2.139.0-beta.0
github-actions[bot] Sep 22, 2025
bb342b5
merge master
0xbigz Sep 23, 2025
2fb1389
test update
0xbigz Sep 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions programs/drift/src/controller/position/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -599,7 +599,7 @@ fn amm_ref_price_decay_tail_test() {
perp_market.amm.curve_update_intensity = 200;

let max_ref_offset = perp_market.amm.get_max_reference_price_offset().unwrap();
assert_eq!(max_ref_offset, 10000);
assert_eq!(max_ref_offset, 5000);

let liquidity_ratio = crate::math::amm_spread::calculate_inventory_liquidity_ratio(
perp_market.amm.base_asset_amount_with_amm,
Expand Down Expand Up @@ -814,7 +814,7 @@ fn amm_ref_price_offset_decay_logic() {
max_ref_offset,
)
.unwrap();
assert_eq!(res, 10000);
assert_eq!(res, 750);

let mut now = perp_market.amm.last_mark_price_twap_ts + 10;
let mut clock_slot = 353317544 + 20; // todo
Expand Down Expand Up @@ -988,7 +988,7 @@ fn amm_negative_ref_price_offset_decay_logic() {
max_ref_offset,
)
.unwrap();
assert_eq!(res, 10000);
assert_eq!(res, 750);

let mut now = perp_market.amm.last_mark_price_twap_ts + 10;
let mut clock_slot = 353317544 + 20; // todo
Expand Down Expand Up @@ -1210,7 +1210,7 @@ fn amm_perp_ref_offset() {

let r = perp_market.amm.reserve_price().unwrap();
let (b, a) = perp_market.amm.bid_ask_price(r).unwrap();
assert_eq!(b, 7098999);
assert_eq!(b, 7102635);
assert_eq!(a, 7106129);
assert_eq!(
perp_market.amm.historical_oracle_data.last_oracle_price,
Expand Down
28 changes: 14 additions & 14 deletions programs/drift/src/math/amm_spread.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ use crate::math::constants::{
AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO_I128, AMM_TO_QUOTE_PRECISION_RATIO_I128,
BID_ASK_SPREAD_PRECISION, BID_ASK_SPREAD_PRECISION_I128, DEFAULT_LARGE_BID_ASK_FACTOR,
DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT, FUNDING_RATE_BUFFER,
MAX_BID_ASK_INVENTORY_SKEW_FACTOR, PEG_PRECISION, PERCENTAGE_PRECISION,
PERCENTAGE_PRECISION_I128, PERCENTAGE_PRECISION_U64, PRICE_PRECISION, PRICE_PRECISION_I128,
PRICE_PRECISION_I64,
FUNDING_RATE_OFFSET_DENOMINATOR, MAX_BID_ASK_INVENTORY_SKEW_FACTOR, PEG_PRECISION,
PERCENTAGE_PRECISION, PERCENTAGE_PRECISION_I128, PERCENTAGE_PRECISION_U64, PRICE_PRECISION,
PRICE_PRECISION_I128, PRICE_PRECISION_I64,
};
use crate::math::safe_math::SafeMath;
use crate::state::perp_market::{ContractType, PerpMarket, AMM};
Expand Down Expand Up @@ -591,9 +591,13 @@ pub fn calculate_reference_price_offset(
let mark_premium_day: i64 = last_24h_avg_funding_rate
.safe_div(FUNDING_RATE_BUFFER.cast()?)?
.safe_mul(24)?
.safe_sub(
oracle_twap_slow
.abs()
.safe_div(FUNDING_RATE_OFFSET_DENOMINATOR)?,
)?
.clamp(-max_offset_in_price, max_offset_in_price); // todo: look at how 24h funding is calc w.r.t. the funding_period

// take average clamped premium as the price-based offset
// take average clamped premium as the price-based offset
let mark_premium_avg = mark_premium_minute
.safe_add(mark_premium_hour)?
.safe_add(mark_premium_day)?
Expand All @@ -603,17 +607,13 @@ pub fn calculate_reference_price_offset(
.safe_mul(PRICE_PRECISION_I64)?
.safe_div(reserve_price.cast()?)?;

let inventory_pct = liquidity_fraction
.cast::<i64>()?
.safe_mul(max_offset_pct)?
.safe_div(PERCENTAGE_PRECISION.cast::<i64>()?)?
.clamp(-max_offset_pct, max_offset_pct);

// only apply when inventory is consistent with recent and 24h market premium
let offset_pct = if (mark_premium_avg_pct >= 0 && inventory_pct >= 0)
|| (mark_premium_avg_pct <= 0 && inventory_pct <= 0)
let offset_pct = if (mark_premium_avg_pct >= 0 && liquidity_fraction >= 0)
|| (mark_premium_avg_pct <= 0 && liquidity_fraction <= 0)
{
mark_premium_avg_pct.safe_add(inventory_pct)?
mark_premium_avg_pct
.safe_mul(liquidity_fraction.cast::<i64>()?)?
.safe_div(5)?
} else {
0
};
Expand Down
4 changes: 2 additions & 2 deletions programs/drift/src/math/amm_spread/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ mod test {
max_offset,
)
.unwrap();
assert_eq!(res, 158); // 237*2/3); // 1 penny divergence
assert_eq!(res, 182); // 237*2/3); // 1 penny divergence
let res = calculate_reference_price_offset(
rev_price,
1,
Expand Down Expand Up @@ -393,7 +393,7 @@ mod test {

market.amm.curve_update_intensity = 110;
let max_ref_offset = market.amm.get_max_reference_price_offset().unwrap();
assert_eq!(max_ref_offset, 1000); // 10 bps
assert_eq!(max_ref_offset, 500); // 5 bps

market.amm.curve_update_intensity = 200;
let max_ref_offset = market.amm.get_max_reference_price_offset().unwrap();
Expand Down
6 changes: 4 additions & 2 deletions programs/drift/src/state/perp_market.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1331,15 +1331,17 @@ impl AMM {
pub fn get_max_reference_price_offset(self) -> DriftResult<i64> {
if self.curve_update_intensity <= 100 {
return Ok(0);
} else if self.curve_update_intensity >= 200 {
return Ok(self.max_spread.cast::<i64>()? / 2);
}

let lower_bound_multiplier: i64 =
self.curve_update_intensity.safe_sub(100)?.cast::<i64>()?;

// always higher of 1-100 bps of price offset and half of the market's max_spread
// always the lesser of 1-100 bps of price offset and half of the market's max_spread
let lb_bps =
(PERCENTAGE_PRECISION.cast::<i64>()? / 10000).safe_mul(lower_bound_multiplier)?;
let max_offset = (self.max_spread.cast::<i64>()? / 2).max(lb_bps);
let max_offset = (self.max_spread.cast::<i64>()? / 2).min(lb_bps);

Ok(max_offset)
}
Expand Down
2 changes: 1 addition & 1 deletion sdk/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.139.0-beta.2
2.139.0-beta.2