binance-futures-wrapper
Version:
A comprehensive TypeScript wrapper for Binance USDT-M Futures API with full REST and WebSocket support
337 lines • 9.22 kB
TypeScript
/**
* REST API client for Binance Futures
*/
import { BinanceConfig, ExchangeInfo, Kline, PriceTickerData, BookTicker, OrderBook, MarketTrade, AggTrade, MarkPrice, FundingRate, AccountInfo, AccountPosition, Order, Trade, ForceOrder, PositionRisk, Income, NewOrderParams, ModifyOrderParams, Ticker24hr, PositionModeResponse, MultiAssetsResponse, OpenInterestResponse, BaseResponse, ServerTimeResponse, ListenKeyResponse, LeverageBracket, AdlQuantile, ApiTradingStatus, CancelOrderResponse, CancelAllOrdersResponse, BatchOrderResponse } from '../types';
import { EndpointKey } from './endpoints';
export declare class RestClient {
private config;
private client;
private logger;
private rateLimiter;
private baseUrl;
constructor(config: BinanceConfig);
private setupInterceptors;
private handleError;
/**
* Generic request method
*/
request<T = any>(method: 'GET' | 'POST' | 'PUT' | 'DELETE', endpoint: string, params?: Record<string, any>, signed?: boolean): Promise<T>;
/**
* Call predefined endpoint
*/
call<T = any>(endpointKey: EndpointKey, params?: Record<string, any>): Promise<T>;
/**
* Test connectivity to the Rest API
*/
ping(): Promise<{}>;
/**
* Test connectivity to the Rest API and get the current server time
*/
time(): Promise<ServerTimeResponse>;
/**
* Current exchange trading rules and symbol information
*/
exchangeInfo(): Promise<ExchangeInfo>;
/**
* Get orderbook for symbol
*/
orderBook(params: {
symbol: string;
limit?: number;
}): Promise<OrderBook>;
/**
* Get recent trades list
*/
trades(params: {
symbol: string;
limit?: number;
}): Promise<MarketTrade[]>;
/**
* Get older market trades
*/
historicalTrades(params: {
symbol: string;
limit?: number;
fromId?: number;
}): Promise<MarketTrade[]>;
/**
* Get compressed, aggregate trades
*/
aggTrades(params: {
symbol: string;
fromId?: number;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<AggTrade[]>;
/**
* Kline/candlestick bars for a symbol
*/
klines(params: {
symbol: string;
interval: string;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<Kline[]>;
/**
* Continuous contract kline/candlestick bars for a pair
*/
continuousKlines(params: {
pair: string;
contractType: string;
interval: string;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<Kline[]>;
/**
* Index price kline/candlestick bars for a pair
*/
indexPriceKlines(params: {
pair: string;
interval: string;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<Kline[]>;
/**
* Mark price kline/candlestick bars for a symbol
*/
markPriceKlines(params: {
symbol: string;
interval: string;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<Kline[]>;
/**
* Mark Price and Funding Rate
*/
markPrice(params?: {
symbol?: string;
}): Promise<MarkPrice | MarkPrice[]>;
/**
* Get funding rate history
*/
fundingRate(params?: {
symbol?: string;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<FundingRate[]>;
/**
* 24hr ticker price change statistics
*/
ticker24hr(params?: {
symbol?: string;
}): Promise<Ticker24hr | Ticker24hr[]>;
/**
* Latest price for a symbol or symbols
*/
tickerPrice(params?: {
symbol?: string;
}): Promise<PriceTickerData | PriceTickerData[]>;
/**
* Best price/qty on the order book for a symbol or symbols
*/
bookTicker(params?: {
symbol?: string;
}): Promise<BookTicker | BookTicker[]>;
/**
* Get present open interest of a specific symbol
*/
openInterest(params: {
symbol: string;
}): Promise<OpenInterestResponse>;
/**
* Change user's position mode (Hedge Mode or One-way Mode) on EVERY symbol
*/
changePositionMode(params: {
dualSidePosition: boolean;
}): Promise<BaseResponse>;
/**
* Get user's position mode (Hedge Mode or One-way Mode) on EVERY symbol
*/
getPositionMode(): Promise<PositionModeResponse>;
/**
* Change user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on Every symbol
*/
changeMultiAssetsMode(params: {
multiAssetsMargin: boolean;
}): Promise<BaseResponse>;
/**
* Get user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on Every symbol
*/
getMultiAssetsMode(): Promise<MultiAssetsResponse>;
/**
* Send in a new order
*/
newOrder(params: NewOrderParams): Promise<Order>;
/**
* Modify an open order
*/
modifyOrder(params: ModifyOrderParams): Promise<Order>;
/**
* Place multiple orders
*/
newBatchOrders(params: {
batchOrders: NewOrderParams[];
}): Promise<BatchOrderResponse>;
/**
* Check an order's status
*/
getOrder(params: {
symbol: string;
orderId?: number;
origClientOrderId?: string;
}): Promise<Order>;
/**
* Cancel an active order
*/
cancelOrder(params: {
symbol: string;
orderId?: number;
origClientOrderId?: string;
}): Promise<CancelOrderResponse>;
/**
* Cancel all open orders for a symbol
*/
cancelAllOrders(params: {
symbol: string;
}): Promise<CancelAllOrdersResponse>;
/**
* Cancel multiple orders
*/
cancelBatchOrders(params: {
symbol: string;
orderIdList?: number[];
origClientOrderIdList?: string[];
}): Promise<CancelOrderResponse[]>;
/**
* Get all open orders on a symbol
*/
getOpenOrders(params?: {
symbol?: string;
}): Promise<Order[]>;
/**
* Get all account orders; active, canceled, or filled
*/
getAllOrders(params: {
symbol: string;
orderId?: number;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<Order[]>;
/**
* Get futures account balance
*/
balance(): Promise<AccountPosition[]>;
/**
* Get current account information
*/
account(): Promise<AccountInfo>;
/**
* Change user's initial leverage of specific symbol market
*/
changeInitialLeverage(params: {
symbol: string;
leverage: number;
}): Promise<BaseResponse>;
/**
* Change user's margin type of specific symbol market
*/
changeMarginType(params: {
symbol: string;
marginType: string;
}): Promise<BaseResponse>;
/**
* Modify isolated position margin
*/
modifyPositionMargin(params: {
symbol: string;
positionSide?: string;
amount: string;
type: number;
}): Promise<BaseResponse>;
/**
* Get position margin change history
*/
getPositionMarginHistory(params: {
symbol: string;
type?: number;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<any[]>;
/**
* Get current position information
*/
positionRisk(params?: {
symbol?: string;
}): Promise<PositionRisk[]>;
/**
* Get trades for a specific account and symbol
*/
userTrades(params: {
symbol: string;
startTime?: number;
endTime?: number;
fromId?: number;
limit?: number;
}): Promise<Trade[]>;
/**
* Get income history
*/
getIncomeHistory(params?: {
symbol?: string;
incomeType?: string;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<Income[]>;
/**
* Notional and Leverage Brackets
*/
leverageBracket(params?: {
symbol?: string;
}): Promise<LeverageBracket | LeverageBracket[]>;
/**
* Position ADL Quantile Estimation
*/
adlQuantile(params?: {
symbol?: string;
}): Promise<AdlQuantile[]>;
/**
* User's Force Orders
*/
forceOrders(params?: {
symbol?: string;
autoCloseType?: string;
startTime?: number;
endTime?: number;
limit?: number;
}): Promise<ForceOrder[]>;
/**
* User API Trading Quantitative Rules Indicators
*/
apiTradingStatus(): Promise<ApiTradingStatus>;
/**
* Start a new user data stream
*/
createListenKey(): Promise<ListenKeyResponse>;
/**
* Keepalive a user data stream to prevent a time out
*/
keepaliveListenKey(params: {
listenKey: string;
}): Promise<BaseResponse>;
/**
* Close out a user data stream
*/
closeListenKey(params: {
listenKey: string;
}): Promise<BaseResponse>;
}
//# sourceMappingURL=client.d.ts.map