@@ -97,27 +97,18 @@ export function isOracleValid(
9797export function isOracleTooDivergent (
9898 amm : AMM ,
9999 oraclePriceData : OraclePriceData ,
100- oracleGuardRails : OracleGuardRails ,
101- now : BN
100+ oracleGuardRails : OracleGuardRails
102101) : boolean {
103- const sinceLastUpdate = now . sub (
104- amm . historicalOracleData . lastOraclePriceTwapTs
105- ) ;
106- const sinceStart = BN . max ( ZERO , FIVE_MINUTE . sub ( sinceLastUpdate ) ) ;
107- const oracleTwap5min = amm . historicalOracleData . lastOraclePriceTwap5Min
108- . mul ( sinceStart )
109- . add ( oraclePriceData . price )
110- . mul ( sinceLastUpdate )
111- . div ( sinceStart . add ( sinceLastUpdate ) ) ;
112-
113- const oracleSpread = oracleTwap5min . sub ( oraclePriceData . price ) ;
114- const oracleSpreadPct = oracleSpread . mul ( PRICE_PRECISION ) . div ( oracleTwap5min ) ;
115-
102+ const oracleSpreadPct = oraclePriceData . price
103+ . sub ( amm . historicalOracleData . lastOraclePriceTwap5Min )
104+ . mul ( PERCENTAGE_PRECISION )
105+ . div ( amm . historicalOracleData . lastOraclePriceTwap5Min ) ;
116106 const maxDivergence = BN . max (
117107 oracleGuardRails . priceDivergence . markOraclePercentDivergence ,
118108 PERCENTAGE_PRECISION . div ( new BN ( 10 ) )
119109 ) ;
120-
110+ console . log ( `oracle spread pct: ${ oracleSpreadPct . toString ( ) } ` ) ;
111+ console . log ( `max divergence: ${ maxDivergence . toString ( ) } ` ) ;
121112 const tooDivergent = oracleSpreadPct . abs ( ) . gte ( maxDivergence ) ;
122113
123114 return tooDivergent ;
0 commit comments