Skip to content

Commit c4dd1c4

Browse files
crispheaney0xbigz
andauthored
program: trigger price use 5min mark price (#1830)
* program: trigger price use 5min mark price * cargo fmt -- --------- Co-authored-by: 0xbigz <[email protected]>
1 parent 7f0eb9c commit c4dd1c4

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

programs/drift/src/controller/orders.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3058,7 +3058,15 @@ pub fn trigger_order(
30583058
let trigger_price =
30593059
perp_market.get_trigger_price(oracle_price, now, state.use_median_trigger_price())?;
30603060
let can_trigger = order_satisfies_trigger_condition(&user.orders[order_index], trigger_price)?;
3061-
validate!(can_trigger, ErrorCode::OrderDidNotSatisfyTriggerCondition)?;
3061+
3062+
validate!(
3063+
can_trigger,
3064+
ErrorCode::OrderDidNotSatisfyTriggerCondition,
3065+
"Order did not satisfy trigger condition. trigger_price: {} oracle_price: {} trigger_condition: {:?}",
3066+
trigger_price,
3067+
&user.orders[order_index].trigger_price,
3068+
&user.orders[order_index].trigger_condition
3069+
)?;
30623070

30633071
let (_, worst_case_liability_value_before) = user
30643072
.get_perp_position(market_index)?

programs/drift/src/state/perp_market.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,7 +766,7 @@ impl PerpMarket {
766766

767767
let last_fill_price = self.last_fill_price;
768768

769-
let mark_price_5min_twap = self.amm.last_mark_price_twap;
769+
let mark_price_5min_twap = self.amm.last_mark_price_twap_5min;
770770
let last_oracle_price_twap_5min =
771771
self.amm.historical_oracle_data.last_oracle_price_twap_5min;
772772

@@ -781,6 +781,10 @@ impl PerpMarket {
781781
let oracle_plus_funding_basis = oracle_price.safe_add(last_funding_basis)?.cast::<u64>()?;
782782

783783
let median_price = if last_fill_price > 0 {
784+
println!(
785+
"last_fill_price: {} oracle_plus_funding_basis: {} oracle_plus_basis_5min: {}",
786+
last_fill_price, oracle_plus_funding_basis, oracle_plus_basis_5min
787+
);
784788
let mut prices = [
785789
last_fill_price,
786790
oracle_plus_funding_basis,

programs/drift/src/state/perp_market/tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ mod get_trigger_price {
234234
.get_trigger_price(oracle_price, now, true)
235235
.unwrap();
236236

237-
assert_eq!(trigger_price, 109147085925);
237+
assert_eq!(trigger_price, 109144736794);
238238
}
239239

240240
#[test]

0 commit comments

Comments
 (0)