From a3a9d44e890f8c2d6b18c5639f73dfe63897570a Mon Sep 17 00:00:00 2001 From: microwavedcola1 Date: Wed, 7 Aug 2024 11:56:13 +0200 Subject: [PATCH] sb crank: also consider fallback oracles Signed-off-by: microwavedcola1 --- ts/client/scripts/sb-on-demand-crank.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/ts/client/scripts/sb-on-demand-crank.ts b/ts/client/scripts/sb-on-demand-crank.ts index abe824e66..90311ba74 100644 --- a/ts/client/scripts/sb-on-demand-crank.ts +++ b/ts/client/scripts/sb-on-demand-crank.ts @@ -310,10 +310,7 @@ async function preparePullIx( gateway: oracle.gatewayUrl, }; // TODO use fetchUpdateMany - const [pullIx] = await pullFeed.fetchUpdateIx( - conf, - recentSlothashes, - ); + const [pullIx] = await pullFeed.fetchUpdateIx(conf, recentSlothashes); return pullIx; } @@ -569,6 +566,22 @@ function getOraclesForMangoGroup( }; }); + const oraclesFb = Array.from(group.banksMapByName.values()) + .filter( + (b) => + !( + b[0].nativeDeposits().eq(ZERO_I80F48()) && + b[0].nativeBorrows().eq(ZERO_I80F48()) && + b[0].reduceOnly == 1 + ), + ) + .map((b) => { + return { + oraclePk: b[0].fallbackOracle, + name: b[0].name, + }; + }); + // oracles for perp markets const oracles2 = Array.from(group.perpMarketsMapByName.values()).map((pM) => { return { @@ -596,7 +609,7 @@ function getOraclesForMangoGroup( }; }) .filter((item) => !item.oraclePk.equals(PublicKey.default)); - const oracles = oracles1.concat(oracles2).concat(oracles3); + const oracles = oracles1.concat(oraclesFb).concat(oracles2).concat(oracles3); return oracles; }