import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
import {
IndexerGrpcOracleApi,
IndexerGrpcDerivativesApi,
} from "@injectivelabs/sdk-ts/client/indexer";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcDerivativesApi = new IndexerGrpcDerivativesApi(endpoints.indexer);
const indexerGrpcOracleApi = new IndexerGrpcOracleApi(endpoints.indexer);
// 获取衍生品市场列表
const markets = await indexerGrpcDerivativesApi.fetchMarkets();
// 根据交易对查找特定市场
const market = markets.find((market) => market.ticker === "INJ/USDT PERP");
if (!market) {
throw new Error("Market not found");
}
// 这些值是从 indexer 获取的市场对象的一部分
// 即 `oracleBase` 和 `oracleQuote`
const baseSymbol = market.oracleBase;
const quoteSymbol = market.oracleQuote;
const oracleType = market.oracleType;
const oraclePrice = await indexerGrpcOracleApi.fetchOraclePriceNoThrow({
baseSymbol,
quoteSymbol,
oracleType,
});
console.log(oraclePrice);