UNPKG

@parifi/sdk

Version:

Parifi SDK with common utility functions

178 lines (173 loc) 5.67 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/subgraph/markets/index.ts var markets_exports = {}; __export(markets_exports, { getAllMarketsFromSubgraph: () => getAllMarketsFromSubgraph, getMarketById: () => getMarketById }); module.exports = __toCommonJS(markets_exports); var import_graphql_request2 = require("graphql-request"); // src/subgraph/markets/subgraphQueries.ts var import_graphql_request = require("graphql-request"); var fetchAllMarketsDataQuery = import_graphql_request.gql` { markets { id marketName marketSymbol marketPrice feedId skew size maxOpenInterest maxMarketValue interestRate currentFundingRate currentFundingVelocity indexPrice skewScale maxFundingVelocity makerFee takerFee marketPrice initialMarginRatioD18 minimumPositionMargin maintenanceMarginRatioD18 minimumInitialMarginRatioD18 } } `; var fetchMarketByIdQuery = (marketId) => import_graphql_request.gql` { market(id: "${marketId}") { id marketName marketSymbol marketPrice feedId skew size maxOpenInterest maxMarketValue interestRate currentFundingRate currentFundingVelocity indexPrice skewScale maxFundingVelocity makerFee takerFee marketPrice initialMarginRatioD18 minimumPositionMargin maintenanceMarginRatioD18 minimumInitialMarginRatioD18 } } `; // src/common/subgraphMapper.ts var mapResponseToMarket = (response) => { if (!response) return void 0; if (response?.marketName === "" || response?.marketSymbol === "") return void 0; try { return { id: response?.id ?? "", marketName: response?.marketName ?? "", marketSymbol: response?.marketSymbol ?? "", feedId: response?.feedId ?? "", skew: response?.skew ?? "0", size: response?.size ?? "0", maxOpenInterest: response?.maxOpenInterest ?? "0", interestRate: response?.interestRate ?? "0", currentFundingRate: response?.currentFundingRate ?? "0", currentFundingVelocity: response?.currentFundingVelocity ?? "0", indexPrice: response?.indexPrice ?? "0", skewScale: response?.skewScale ?? "0", maxFundingVelocity: response?.maxFundingVelocity ?? "0", makerFee: response?.makerFee ?? "0", takerFee: response?.takerFee ?? "0", maxMarketValue: response?.maxMarketValue ?? "0", maxMarketSize: response?.maxMarketSize ?? "0", marketPrice: response?.marketPrice ?? "0", initialMarginRatioD18: response?.initialMarginRatioD18 ?? "0", maintenanceMarginRatioD18: response?.maintenanceMarginRatioD18 ?? "0", minimumInitialMarginRatioD18: response?.minimumInitialMarginRatioD18 ?? "0", flagRewardRatioD18: response?.flagRewardRatioD18 ?? "0", minimumPositionMargin: response?.minimumPositionMargin ?? "0", openInterestUsd: response?.openInterestUsd ?? "0" }; } catch (error) { console.log("Error while mapping data", error); return void 0; } }; var mapResponseToMarketArray = (response) => { if (!response) return void 0; try { return response.map((market) => { return mapResponseToMarket(market); }); } catch (error) { console.log("Error while mapping data", error); return void 0; } }; // src/error/not-found.error.ts var NotFoundError = class extends Error { constructor(message) { super(message); this.name = this.constructor.name; } }; // src/subgraph/markets/index.ts var getAllMarketsFromSubgraph = async (subgraphEndpoint) => { try { const subgraphResponse = await (0, import_graphql_request2.request)(subgraphEndpoint, fetchAllMarketsDataQuery); if (!subgraphResponse) throw Error(`Error while fetching markets`); const markets = mapResponseToMarketArray(subgraphResponse.markets)?.filter((market) => !!market); if (markets) return markets; throw new NotFoundError("Markets not found"); } catch (error) { console.log("Markets not found. Subgraph request failed", error); return []; } }; var getMarketById = async (subgraphEndpoint, marketId) => { try { const subgraphResponse = await (0, import_graphql_request2.request)(subgraphEndpoint, fetchMarketByIdQuery(marketId)); if (!subgraphResponse) throw Error(`Error while fetching markets`); if (subgraphResponse) { const market = mapResponseToMarket(subgraphResponse.market); if (market && market.id === marketId) { return market; } } throw Error(`Market with Market Id ${marketId} Not Found`); } catch (error) { console.log(`Market with Market Id ${marketId} Not Found`, error); throw error; } }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { getAllMarketsFromSubgraph, getMarketById }); //# sourceMappingURL=index.js.map