@parcl-finance/product-sdk
Version:
TypeScript SDK for interacting with Parcl's product APIs
120 lines • 4.36 kB
JavaScript
;
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