@parcl-finance/product-sdk
Version:
TypeScript SDK for interacting with Parcl's product APIs
131 lines • 4.96 kB
TypeScript
import { ClusterHealth, Currency, Env, ExchangeInfo, ExchangeParams, MarketInfo, MarketParams } from "./types";
import { TimeFrameOption } from "./types/timeframeOption";
export declare class Account {
baseUrl: string;
private headers;
private client;
private expressClient;
constructor(baseUrl: string, accessToken?: string, env?: Env);
paused(refresh?: boolean): Promise<boolean>;
getClusterHealth(): Promise<ClusterHealth>;
getExchange(params?: ExchangeParams): Promise<ExchangeInfo>;
getMarket(params: MarketParams): Promise<MarketInfo>;
getMarkets(): Promise<MarketInfo[]>;
/**
* # 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",
* });
* ```
*
*/
getMarketsWithFilter(params: MarketInfoQueryParams): Promise<FilteredMarket[]>;
getStakingInfo(): Promise<{
totalStakedPrcl: number;
uniqueAddresses: number;
}>;
}
export type BaseMarketCategory = "token" | "forex" | "real-estate";
export type FilteredMarket = {
marketId: string | null;
name: string;
address: string;
parclId: number | null;
priceFeed: string;
isNew: boolean;
tradable: boolean;
symbol: string;
marketCategory: BaseMarketCategory;
currency: Currency;
metric: string | null;
pythTokenId: string | null;
marketPrice: string | null;
indexPrice: string | null;
fundingPerUnit: string | null;
skew: string | null;
fundingRate: string | null;
fundingVelocity: string | null;
totalOpenInterest: string | null;
volume: string | null;
marketPriceTrend: string | null;
indexPriceTrend: string | null;
longPct: number | null;
shortPct: number | null;
tags: MarketTags[];
};
export type FilteredMarketsResponse = {
markets: FilteredMarket[];
};
export type MarketInfoQueryParams = {
q?: string;
window?: TimeFrameOption;
indexPriceFilterLo?: number;
indexPriceFilterHi?: number;
marketPriceFilterLo?: number;
marketPriceFilterHi?: number;
trendFilterLo?: number;
trendFilterHi?: number;
trendPriceSpecifier?: "index" | "market";
fundingRateFilterLo?: number;
fundingRateFilterHi?: number;
volumeFilterLo?: number;
volumeFilterHi?: number;
openInterestFilterLo?: number;
openInterestFilterHi?: number;
fpuFilterLo?: number;
fpuFilterHi?: number;
tags?: MarketTags[];
live?: boolean;
isNew?: boolean;
sort?: MarketInfoSortOption;
order?: "asc" | "desc";
baseCategory?: BaseCategory;
};
export type MarketTags = "real-estate" | "token" | "forex" | "rental" | "sales" | "polar-vortex" | "la-strong";
export type BaseCategory = "all-markets" | "token" | "forex" | "real-estate" | "active-markets" | "non-trading";
export type MarketInfoSortOption = "openInterest" | "indexPriceTrend" | "marketPriceTrend" | "volume" | "fundingRate" | "fundingVelocity" | "skew";
//# sourceMappingURL=account.d.ts.map