diff --git a/ts/client/src/accounts/group.ts b/ts/client/src/accounts/group.ts index 86e757b18..c373fe8dd 100644 --- a/ts/client/src/accounts/group.ts +++ b/ts/client/src/accounts/group.ts @@ -303,6 +303,7 @@ export class Group { bank.oracle, ai, this.getMintDecimals(bank.mint), + client, ); bank._price = price; bank._uiPrice = uiPrice; @@ -333,6 +334,7 @@ export class Group { perpMarket.oracle, ai, perpMarket.baseDecimals, + client, ); perpMarket._price = price; perpMarket._uiPrice = uiPrice; @@ -344,6 +346,7 @@ export class Group { oracle: PublicKey, ai: AccountInfo, baseDecimals: number, + client: MangoClient, ): Promise<{ price: I80F48; uiPrice: number }> { let price, uiPrice; if ( @@ -358,7 +361,10 @@ export class Group { uiPrice = parsePriceData(ai.data).previousPrice; price = this?.toNativePrice(uiPrice, baseDecimals); } else if (isSwitchboardOracle(ai)) { - uiPrice = await parseSwitchboardOracle(ai); + uiPrice = await parseSwitchboardOracle( + ai, + client.program.provider.connection, + ); price = this?.toNativePrice(uiPrice, baseDecimals); } else { throw new Error( diff --git a/ts/client/src/accounts/oracle.ts b/ts/client/src/accounts/oracle.ts index b0e7bf09f..563c75036 100644 --- a/ts/client/src/accounts/oracle.ts +++ b/ts/client/src/accounts/oracle.ts @@ -1,5 +1,5 @@ import { Magic as PythMagic } from '@pythnetwork/client'; -import { AccountInfo, PublicKey } from '@solana/web3.js'; +import { AccountInfo, Connection, PublicKey } from '@solana/web3.js'; import SwitchboardProgram from '@switchboard-xyz/sbv2-lite'; import BN from 'bn.js'; import { I80F48, I80F48Dto } from '../numbers/I80F48'; @@ -72,17 +72,18 @@ export function parseSwitcboardOracleV2( */ export async function parseSwitchboardOracle( accountInfo: AccountInfo, + connection: Connection, ): Promise { if (accountInfo.owner.equals(SwitchboardProgram.devnetPid)) { if (!sbv2DevnetProgram) { - sbv2DevnetProgram = await SwitchboardProgram.loadDevnet(); + sbv2DevnetProgram = await SwitchboardProgram.loadDevnet(connection); } return parseSwitcboardOracleV2(sbv2DevnetProgram, accountInfo); } if (accountInfo.owner.equals(SwitchboardProgram.mainnetPid)) { if (!sbv2MainnetProgram) { - sbv2MainnetProgram = await SwitchboardProgram.loadMainnet(); + sbv2MainnetProgram = await SwitchboardProgram.loadMainnet(connection); } return parseSwitcboardOracleV2(sbv2MainnetProgram, accountInfo); }