@@ -16,7 +16,7 @@ use crate::math::constants::{
1616use crate :: math:: lp:: calculate_settle_lp_metrics;
1717use crate :: math:: position:: swap_direction_to_close_position;
1818use crate :: math:: repeg;
19- use crate :: state:: oracle:: { MMOraclePriceData , OraclePriceData , PrelaunchOracle } ;
19+ use crate :: state:: oracle:: { OraclePriceData , PrelaunchOracle } ;
2020use crate :: state:: oracle_map:: OracleMap ;
2121use crate :: state:: perp_market:: { AMMLiquiditySplit , PerpMarket , AMM } ;
2222use crate :: state:: perp_market_map:: PerpMarketMap ;
@@ -40,7 +40,6 @@ use crate::test_utils::get_hardcoded_pyth_price;
4040use crate :: QUOTE_PRECISION_I64 ;
4141use anchor_lang:: prelude:: { AccountLoader , Clock } ;
4242use anchor_lang:: Owner ;
43- use solana_program:: clock;
4443use solana_program:: pubkey:: Pubkey ;
4544use std:: str:: FromStr ;
4645
@@ -541,9 +540,6 @@ fn amm_pred_market_example() {
541540 delay : 1 ,
542541 has_sufficient_number_of_data_points : true ,
543542 } ;
544- let mut mm_oracle_price_data = perp_market
545- . get_mm_oracle_price_data ( oracle_price_data, clock_slot)
546- . unwrap ( ) ;
547543
548544 let ( max_bids, max_asks) = calculate_market_open_bids_asks ( & perp_market. amm ) . unwrap ( ) ;
549545 perp_market. amm . curve_update_intensity = 99 ;
@@ -554,7 +550,7 @@ fn amm_pred_market_example() {
554550 assert_eq ! ( perp_market. amm. sqrt_k, 56_649_660_613_272 ) ;
555551
556552 let ( optimal_peg, fee_budget, _check_lower_bound) =
557- repeg:: calculate_optimal_peg_and_budget ( & perp_market, & mut mm_oracle_price_data ) . unwrap ( ) ;
553+ repeg:: calculate_optimal_peg_and_budget ( & perp_market, & oracle_price_data ) . unwrap ( ) ;
558554
559555 assert_eq ! ( perp_market. amm. terminal_quote_asset_reserve, 56405211622548 ) ;
560556 assert_eq ! ( perp_market. amm. quote_asset_reserve, 56933567973708 ) ;
@@ -585,7 +581,7 @@ fn amm_pred_market_example() {
585581
586582 let cost = _update_amm (
587583 & mut perp_market,
588- & mut mm_oracle_price_data ,
584+ & oracle_price_data ,
589585 & state,
590586 now,
591587 clock_slot,
@@ -1168,12 +1164,9 @@ fn amm_perp_ref_offset() {
11681164 delay : 1 ,
11691165 has_sufficient_number_of_data_points : true ,
11701166 } ;
1171- let mut mm_oracle_price_data = perp_market
1172- . get_mm_oracle_price_data ( oracle_price_data, clock_slot)
1173- . unwrap ( ) ;
11741167 let cost = _update_amm (
11751168 & mut perp_market,
1176- & mut mm_oracle_price_data ,
1169+ & oracle_price_data ,
11771170 & state,
11781171 now,
11791172 clock_slot,
@@ -1198,53 +1191,6 @@ fn amm_perp_ref_offset() {
11981191 assert_eq ! ( perp_market. amm. ask_base_asset_reserve, 4672813088646692 ) ;
11991192
12001193 crate :: validation:: perp_market:: validate_perp_market ( & perp_market) . unwrap ( ) ;
1201-
1202- // Update MM oracle and reference price offset stays the same and is applied to the MM oracle
1203- perp_market. amm . mm_oracle_price = 7200000 ;
1204- perp_market. amm . mm_oracle_slot = clock_slot;
1205- let mut mm_oracle_price_data = perp_market
1206- . get_mm_oracle_price_data ( oracle_price_data, clock_slot)
1207- . unwrap ( ) ;
1208-
1209- let _ = _update_amm (
1210- & mut perp_market,
1211- & mut mm_oracle_price_data,
1212- & state,
1213- now,
1214- clock_slot,
1215- ) ;
1216- let reserve_price_mm_offset = perp_market. amm . reserve_price ( ) . unwrap ( ) ;
1217- let ( b2, a2) = perp_market
1218- . amm
1219- . bid_ask_price ( reserve_price_mm_offset)
1220- . unwrap ( ) ;
1221- assert_eq ! ( perp_market. amm. reference_price_offset, 132 ) ;
1222- assert_eq ! ( reserve_price_mm_offset, 7199999 ) ;
1223- assert_eq ! ( b2, 7180271 ) ;
1224- assert_eq ! ( a2, 7221656 ) ;
1225-
1226- // Uses the original oracle if the slot is old, ignoring MM oracle
1227- perp_market. amm . mm_oracle_price = 7200000 ;
1228- perp_market. amm . mm_oracle_slot = clock_slot - 100 ;
1229- let mut mm_oracle_price = perp_market
1230- . get_mm_oracle_price_data ( oracle_price_data, clock_slot)
1231- . unwrap ( ) ;
1232-
1233- let _ = _update_amm (
1234- & mut perp_market,
1235- & mut mm_oracle_price,
1236- & state,
1237- now,
1238- clock_slot,
1239- ) ;
1240- let reserve_price_mm_offset_3 = perp_market. amm . reserve_price ( ) . unwrap ( ) ;
1241- let ( b3, a3) = perp_market
1242- . amm
1243- . bid_ask_price ( reserve_price_mm_offset_3)
1244- . unwrap ( ) ;
1245- assert_eq ! ( reserve_price_mm_offset_3, r) ;
1246- assert_eq ! ( b3, 7082154 ) ;
1247- assert_eq ! ( a3, 7122974 ) ;
12481194}
12491195
12501196#[ test]
@@ -1671,13 +1617,10 @@ fn amm_split_large_k_with_rebase() {
16711617 delay : 14 ,
16721618 has_sufficient_number_of_data_points : true ,
16731619 } ;
1674- let mut mm_oracle_price = perp_market
1675- . get_mm_oracle_price_data ( oracle_price_data, clock_slot)
1676- . unwrap ( ) ;
16771620
16781621 let cost = _update_amm (
16791622 & mut perp_market,
1680- & mut mm_oracle_price ,
1623+ & oracle_price_data ,
16811624 & state,
16821625 now,
16831626 clock_slot,
@@ -2781,20 +2724,10 @@ fn update_amm_near_boundary() {
27812724 println ! ( "perp_market: {:?}" , perp_market. amm. last_update_slot) ;
27822725
27832726 let oracle_price_data = oracle_map. get_price_data ( & perp_market. oracle_id ( ) ) . unwrap ( ) ;
2784- let mut mm_oracle_price_data = perp_market
2785- . get_mm_oracle_price_data ( * oracle_price_data, slot)
2786- . unwrap ( ) ;
27872727
27882728 let state = State :: default ( ) ;
27892729
2790- let cost = _update_amm (
2791- & mut perp_market,
2792- & mut mm_oracle_price_data,
2793- & state,
2794- now,
2795- slot,
2796- )
2797- . unwrap ( ) ;
2730+ let cost = _update_amm ( & mut perp_market, oracle_price_data, & state, now, slot) . unwrap ( ) ;
27982731
27992732 assert_eq ! ( cost, 18803837952 ) ;
28002733}
@@ -2833,19 +2766,10 @@ fn update_amm_near_boundary2() {
28332766 println ! ( "perp_market: {:?}" , perp_market. amm. last_update_slot) ;
28342767
28352768 let oracle_price_data = oracle_map. get_price_data ( & perp_market. oracle_id ( ) ) . unwrap ( ) ;
2836- let mut mm_oracle_price_data = perp_market
2837- . get_mm_oracle_price_data ( * oracle_price_data, slot)
2838- . unwrap ( ) ;
2769+
28392770 let state = State :: default ( ) ;
28402771
2841- let cost: i128 = _update_amm (
2842- & mut perp_market,
2843- & mut mm_oracle_price_data,
2844- & state,
2845- now,
2846- slot,
2847- )
2848- . unwrap ( ) ;
2772+ let cost: i128 = _update_amm ( & mut perp_market, oracle_price_data, & state, now, slot) . unwrap ( ) ;
28492773 assert ! ( perp_market. amm. last_oracle_valid) ;
28502774 assert_eq ! ( cost, 2987010 ) ;
28512775}
@@ -2884,20 +2808,10 @@ fn recenter_amm_1() {
28842808 println ! ( "perp_market: {:?}" , perp_market. amm. last_update_slot) ;
28852809
28862810 let oracle_price_data = oracle_map. get_price_data ( & perp_market. oracle_id ( ) ) . unwrap ( ) ;
2887- let mut mm_oracle_price_data = perp_market
2888- . get_mm_oracle_price_data ( * oracle_price_data, slot)
2889- . unwrap ( ) ;
28902811
28912812 let state = State :: default ( ) ;
28922813
2893- let cost = _update_amm (
2894- & mut perp_market,
2895- & mut mm_oracle_price_data,
2896- & state,
2897- now,
2898- slot,
2899- )
2900- . unwrap ( ) ;
2814+ let cost = _update_amm ( & mut perp_market, oracle_price_data, & state, now, slot) . unwrap ( ) ;
29012815
29022816 assert_eq ! ( cost, 2987010 ) ;
29032817
@@ -2994,23 +2908,10 @@ fn recenter_amm_2() {
29942908 let oracle_price_data = oracle_map
29952909 . get_price_data ( & ( oracle_price_key, OracleSource :: Pyth ) )
29962910 . unwrap ( ) ;
2997- let mut mm_oracle_price_data = MMOraclePriceData {
2998- mm_oracle_price : oracle_price_data. price ,
2999- mm_oracle_delay : oracle_price_data. delay + 1 ,
3000- oracle_confidence : None ,
3001- oracle_price_data : * oracle_price_data,
3002- } ;
30032911
30042912 let state = State :: default ( ) ;
30052913
3006- let cost = _update_amm (
3007- & mut perp_market,
3008- & mut mm_oracle_price_data,
3009- & state,
3010- now,
3011- slot,
3012- )
3013- . unwrap ( ) ;
2914+ let cost = _update_amm ( & mut perp_market, oracle_price_data, & state, now, slot) . unwrap ( ) ;
30142915
30152916 assert_eq ! ( cost, 0 ) ;
30162917
@@ -3136,23 +3037,10 @@ fn test_move_amm() {
31363037 let oracle_price_data = oracle_map
31373038 . get_price_data ( & ( oracle_price_key, OracleSource :: Pyth ) )
31383039 . unwrap ( ) ;
3139- let mut mm_oracle_price_data = MMOraclePriceData {
3140- mm_oracle_price : oracle_price_data. price ,
3141- mm_oracle_delay : oracle_price_data. delay + 1 ,
3142- oracle_confidence : None ,
3143- oracle_price_data : * oracle_price_data,
3144- } ;
31453040
31463041 let state = State :: default ( ) ;
31473042
3148- let cost = _update_amm (
3149- & mut perp_market,
3150- & mut mm_oracle_price_data,
3151- & state,
3152- now,
3153- slot,
3154- )
3155- . unwrap ( ) ;
3043+ let cost = _update_amm ( & mut perp_market, oracle_price_data, & state, now, slot) . unwrap ( ) ;
31563044
31573045 assert_eq ! ( cost, 0 ) ;
31583046
0 commit comments