UNPKG

@parcl-finance/product-sdk

Version:

TypeScript SDK for interacting with Parcl's product APIs

120 lines 4.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Account = void 0; const defaults_1 = require("./constants/defaults"); const httpClient_1 = require("./httpClient"); const utils_1 = require("./utils"); class Account { baseUrl; headers; client; expressClient; constructor(baseUrl, accessToken, env) { const headers = {}; if (accessToken !== undefined) { headers["Authorization"] = "Bearer " + accessToken; } this.headers = headers; this.baseUrl = baseUrl.concat("/account"); this.client = new httpClient_1.HttpClient(this.baseUrl, this.headers); this.expressClient = new httpClient_1.HttpClient((0, defaults_1.getDefaultExpressApiUrl)(env), this.headers); } // FIXME: urgent async paused(refresh) { const { paused } = await this.client.get({ path: `/paused`, params: { refresh, }, }); return paused; } async getClusterHealth() { const { clusterHealth } = await this.client.get({ path: `/cluster-health`, }); return clusterHealth; } async getExchange(params) { const res = await this.client.get({ path: "/exchange", params }); return (0, utils_1.formatExchangeInfo)(res.exchange); } async getMarket(params) { const res = await this.client.get({ path: `/market/${params.market}`, params, }); return (0, utils_1.formatMarketInfo)(res.market); } async getMarkets() { const res = await this.client.get({ path: "/markets" }); return res.markets.map((market) => (0, utils_1.formatMarketInfo)(market)); } /** * # Get markets with search, filter, sorting, and ordering * @param q - search query. Searches for the query in the market name, symbol, and address * @param window - timeframe option. Default is 3m * @param indexPriceFilterLo - index price filter * @param indexPriceFilterHi - index price filter * @param marketPriceFilterLo - market price filter * @param marketPriceFilterHi - market price filter * @param trendFilterLo - trend filter * @param trendFilterHi - trend filter * @param trendPriceSpecifier - specifies what trend price to filter on (market or index). Default is market * @param fundingRateFilterLo - funding rate filter * @param fundingRateFilterHi - funding rate filter * @param volumeFilterLo - volume filter * @param volumeFilterHi - volume filter * @param openInterestFilterLo - open interest filter * @param openInterestFilterHi - open interest filter * @param sort - sort by. Default is openInterest * @param order - order. Default is desc * @param fpuFilterLo - funding per unit filter * @param fpuFilterHi - funding per unit filter * @param fundingVelocityFilterLo - funding velocity filter * @param fundingVelocityFilterHi - funding velocity filter * * @example * ```typescript * const filteredMarkets = await sdk.account.getMarketsWithFilter({ * q: 'ny', * indexPriceFilterLo: 3, * indexPriceFilterHi: 700, * marketPriceFilterLo: 3, * marketPriceFilterHi: 700, * trendFilterLo: 0, * trendFilterHi: 15, * trendPriceSpecifier: "index", * fundingRateFilterLo: -10, * fundingRateFilterHi: 0, * volumeFilterLo: 200, * volumeFilterHi: 2000000000, * openInterestFilterLo: 200, * openInterestFilterHi: 40500000, * fpuFilterLo: -350, * fpuFilterHi: -30, * tags: ['real-estate', 'rental'], * live: true, * sort: "marketPriceTrend", * order: "asc", * window: "1d", * }); * ``` * */ async getMarketsWithFilter(params) { const { markets } = await this.expressClient.get({ path: "/market/search", params: { ...params, tags: params.tags?.join(",") }, }); return markets; } async getStakingInfo() { const { stakingInfo } = await this.expressClient.get({ path: "/staking", }); return stakingInfo; } } exports.Account = Account; //# sourceMappingURL=account.js.map