add mm oracle data as separate response
This commit is contained in:
@@ -100,9 +100,7 @@ export const getOracleForMarket = (
|
|||||||
if (isVariant(marketType, 'spot')) {
|
if (isVariant(marketType, 'spot')) {
|
||||||
return driftClient.getOracleDataForSpotMarket(marketIndex).price.toNumber();
|
return driftClient.getOracleDataForSpotMarket(marketIndex).price.toNumber();
|
||||||
} else if (isVariant(marketType, 'perp')) {
|
} else if (isVariant(marketType, 'perp')) {
|
||||||
return driftClient
|
return driftClient.getOracleDataForPerpMarket(marketIndex).price.toNumber();
|
||||||
.getMMOracleDataForPerpMarket(marketIndex)
|
|
||||||
.price.toNumber();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -134,7 +132,8 @@ const getSerializableOraclePriceData = (
|
|||||||
export const getOracleDataForMarket = (
|
export const getOracleDataForMarket = (
|
||||||
driftClient: DriftClient,
|
driftClient: DriftClient,
|
||||||
marketType: MarketType,
|
marketType: MarketType,
|
||||||
marketIndex: number
|
marketIndex: number,
|
||||||
|
useMMOracleData = false
|
||||||
): SerializableOraclePriceData => {
|
): SerializableOraclePriceData => {
|
||||||
if (isVariant(marketType, 'spot')) {
|
if (isVariant(marketType, 'spot')) {
|
||||||
return getSerializableOraclePriceData(
|
return getSerializableOraclePriceData(
|
||||||
@@ -142,7 +141,9 @@ export const getOracleDataForMarket = (
|
|||||||
);
|
);
|
||||||
} else if (isVariant(marketType, 'perp')) {
|
} else if (isVariant(marketType, 'perp')) {
|
||||||
return getSerializableOraclePriceData(
|
return getSerializableOraclePriceData(
|
||||||
driftClient.getMMOracleDataForPerpMarket(marketIndex)
|
useMMOracleData
|
||||||
|
? driftClient.getMMOracleDataForPerpMarket(marketIndex)
|
||||||
|
: driftClient.getOracleDataForPerpMarket(marketIndex)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -170,10 +171,20 @@ export const addOracletoResponse = (
|
|||||||
marketIndex
|
marketIndex
|
||||||
);
|
);
|
||||||
if (!response['oracleData'].price) {
|
if (!response['oracleData'].price) {
|
||||||
logger.info(`oracle price is undefined for ${marketType}-${marketIndex}`);
|
logger.info(
|
||||||
|
`oracle price is undefined or 0 for ${marketType}-${marketIndex}`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (Number(response['oracleData'].price) == 0) {
|
response['mmOracleData'] = getOracleDataForMarket(
|
||||||
logger.info(`oracle price is 0 for ${marketType}-${marketIndex}`);
|
driftClient,
|
||||||
|
marketType,
|
||||||
|
marketIndex,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
if (!response['mmOracleData'].price && response['mmOracleData'].isActive) {
|
||||||
|
logger.info(
|
||||||
|
`mm oracle price is undefined or 0 for ${marketType}-${marketIndex}`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user