Skip to content

Commit 149557e

Browse files
moosecat2harsh4786
authored andcommitted
Mm oracle sdk patch (drift-labs#1977)
* patch mm oracle price data selection * patch the patch * prettify
1 parent 2bd4857 commit 149557e

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

sdk/src/driftClient.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,11 @@ import { getMarinadeDepositIx, getMarinadeFinanceProgram } from './marinade';
168168
import { getOrderParams, isUpdateHighLeverageMode } from './orderParams';
169169
import { numberToSafeBN } from './math/utils';
170170
import { TransactionParamProcessor } from './tx/txParamProcessor';
171-
import { isOracleValid, trimVaaSignatures } from './math/oracles';
171+
import {
172+
isOracleTooDivergent,
173+
isOracleValid,
174+
trimVaaSignatures,
175+
} from './math/oracles';
172176
import { TxHandler } from './tx/txHandler';
173177
import {
174178
DEFAULT_RECEIVER_PROGRAM_ID,
@@ -9384,23 +9388,29 @@ export class DriftClient {
93849388
isExchangeOracleMoreRecent = false;
93859389
}
93869390

9391+
const conf = getOracleConfidenceFromMMOracleData(
9392+
perpMarket.amm.mmOraclePrice,
9393+
oracleData
9394+
);
9395+
93879396
if (
9388-
!isOracleValid(
9389-
perpMarket,
9390-
oracleData,
9397+
isOracleTooDivergent(
9398+
perpMarket.amm,
9399+
{
9400+
price: perpMarket.amm.mmOraclePrice,
9401+
slot: perpMarket.amm.mmOracleSlot,
9402+
confidence: conf,
9403+
hasSufficientNumberOfDataPoints: true,
9404+
},
93919405
stateAccountAndSlot.data.oracleGuardRails,
9392-
stateAccountAndSlot.slot
9406+
perpMarket.amm.mmOracleSlot
93939407
) ||
93949408
perpMarket.amm.mmOraclePrice.eq(ZERO) ||
93959409
isExchangeOracleMoreRecent ||
93969410
pctDiff.gt(PERCENTAGE_PRECISION.divn(100)) // 1% threshold
93979411
) {
93989412
return { ...oracleData, isMMOracleActive };
93999413
} else {
9400-
const conf = getOracleConfidenceFromMMOracleData(
9401-
perpMarket.amm.mmOraclePrice,
9402-
oracleData
9403-
);
94049414
return {
94059415
price: perpMarket.amm.mmOraclePrice,
94069416
slot: perpMarket.amm.mmOracleSlot,

0 commit comments

Comments
 (0)