109 lines
3.1 KiB
TypeScript
109 lines
3.1 KiB
TypeScript
import { AxiosRequestConfig } from 'axios';
|
|
import { GenericAPIResponse, getBaseRESTInverseUrl, RestClientInverseOptions } from './util/requestUtils';
|
|
import RequestWrapper from './util/requestWrapper';
|
|
import SharedEndpoints from './shared-endpoints';
|
|
|
|
export class LinearClient extends SharedEndpoints {
|
|
protected requestWrapper: RequestWrapper;
|
|
|
|
/**
|
|
* @public Creates an instance of the inverse REST API client.
|
|
*
|
|
* @param {string} key - your API key
|
|
* @param {string} secret - your API secret
|
|
* @param {boolean} [livenet=false]
|
|
* @param {RestClientInverseOptions} [restInverseOptions={}] options to configure REST API connectivity
|
|
* @param {AxiosRequestConfig} [requestOptions={}] HTTP networking options for axios
|
|
*/
|
|
|
|
constructor(
|
|
key?: string | undefined,
|
|
secret?: string | undefined,
|
|
livenet?: boolean,
|
|
restInverseOptions:RestClientInverseOptions = {}, // TODO: Rename this type to be more general.
|
|
requestOptions: AxiosRequestConfig = {}
|
|
) {
|
|
super()
|
|
this.requestWrapper = new RequestWrapper(
|
|
key,
|
|
secret,
|
|
getBaseRESTInverseUrl(livenet),
|
|
restInverseOptions,
|
|
requestOptions
|
|
);
|
|
return this;
|
|
}
|
|
//------------Market Data Endpoints------------>
|
|
|
|
getKline(params: {
|
|
symbol: string;
|
|
interval: string;
|
|
from: number;
|
|
limit?: number;
|
|
}): GenericAPIResponse {
|
|
return this.requestWrapper.get('/public/linear/kline', params);
|
|
}
|
|
|
|
/**
|
|
* @deprecated use getTrades() instead
|
|
*/
|
|
getPublicTradingRecords(params: {
|
|
symbol: string;
|
|
from?: number;
|
|
limit?: number;
|
|
}): GenericAPIResponse {
|
|
return this.getTrades(params);
|
|
}
|
|
|
|
getTrades(params: {
|
|
symbol: string;
|
|
from?: number;
|
|
limit?: number;
|
|
}): GenericAPIResponse {
|
|
return this.requestWrapper.get('/public/linear/recent-trading-records', params);
|
|
}
|
|
|
|
getLastFundingRate(params: {
|
|
symbol: string;
|
|
}): GenericAPIResponse {
|
|
return this.requestWrapper.get('public/linear/funding/prev-funding-rate', params);
|
|
}
|
|
|
|
getMarkPriceKline(params: {
|
|
symbol: string;
|
|
interval: string;
|
|
from: number;
|
|
limit?: number;
|
|
}): GenericAPIResponse {
|
|
return this.requestWrapper.get('/public/linear/mark-price-kline', params);
|
|
}
|
|
|
|
getIndexPriceKline(params: {
|
|
symbol: string;
|
|
interval: string;
|
|
from: number;
|
|
limit?: number;
|
|
}): GenericAPIResponse {
|
|
return this.requestWrapper.get('/public/linear/index-price-kline', params);
|
|
}
|
|
|
|
getPremiumIndexKline(params: {
|
|
symbol: string;
|
|
interval: string;
|
|
from: number;
|
|
limit?: number;
|
|
}): GenericAPIResponse {
|
|
return this.requestWrapper.get('/public/linear/premium-index-kline', params);
|
|
}
|
|
|
|
|
|
//-----------Account Data Endpoints------------>
|
|
|
|
//------------Wallet Data Endpoints------------>
|
|
|
|
//-------------API Data Endpoints-------------->
|
|
|
|
|
|
|
|
}
|