UNPKG

binance-futures-wrapper

Version:

A comprehensive TypeScript wrapper for Binance USDT-M Futures API with full REST and WebSocket support

191 lines 5.73 kB
/** * Main Binance Futures Client */ import { EventEmitter } from 'events'; import { BinanceConfig, ExchangeInfo, OrderBook, MarketTrade, Kline, Ticker24hr, PriceTickerData, BookTicker, AccountInfo, AccountPosition, Order, PositionRisk, ServerTimeResponse, BaseResponse } from './types'; import { RestClient } from './rest'; import { WebSocketClient } from './websocket'; export interface BinanceFuturesClientConfig extends BinanceConfig { autoConnectUserStream?: boolean; wsConfig?: { reconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number; keepAlive?: boolean; keepAliveInterval?: number; }; } export declare class BinanceFuturesClient extends EventEmitter { private config; private logger; rest: RestClient; ws: WebSocketClient; private listenKey; private keepAliveInterval; constructor(config: BinanceFuturesClientConfig); private setupEventHandlers; /** * Initialize the client - connect WebSocket streams if configured */ initialize(): Promise<void>; /** * Connect to user data stream */ connectUserStream(): Promise<void>; /** * Connect to market data stream */ connectMarketStream(): Promise<void>; /** * Disconnect all streams and cleanup */ disconnect(): Promise<void>; /** * Get client status */ getStatus(): { connected: { market: boolean; user: boolean; }; subscriptions: string[]; listenKey: string | null; }; /** * Get current server time */ getServerTime(): Promise<ServerTimeResponse>; /** * Get exchange information */ getExchangeInfo(): Promise<ExchangeInfo>; /** * Get order book */ getOrderBook(symbol: string, limit?: number): Promise<OrderBook>; /** * Get recent trades */ getRecentTrades(symbol: string, limit?: number): Promise<MarketTrade[]>; /** * Get klines/candlestick data */ getKlines(symbol: string, interval: string, limit?: number, startTime?: number, endTime?: number): Promise<Kline[]>; /** * Get 24hr ticker statistics */ get24hrTicker(symbol?: string): Promise<Ticker24hr | Ticker24hr[]>; /** * Get latest price */ getPrice(symbol?: string): Promise<PriceTickerData | PriceTickerData[]>; /** * Get best price/qty on order book */ getBookTicker(symbol?: string): Promise<BookTicker | BookTicker[]>; /** * Get account information */ getAccount(): Promise<AccountInfo>; /** * Get account balance */ getBalance(): Promise<AccountPosition[]>; /** * Get position information */ getPositions(symbol?: string): Promise<PositionRisk[]>; /** * Place a new order */ createOrder(params: { symbol: string; side: 'BUY' | 'SELL'; type: 'LIMIT' | 'MARKET' | 'STOP' | 'STOP_MARKET' | 'TAKE_PROFIT' | 'TAKE_PROFIT_MARKET' | 'TRAILING_STOP_MARKET'; quantity?: string; price?: string; timeInForce?: 'GTC' | 'IOC' | 'FOK' | 'GTX' | 'GTD'; reduceOnly?: boolean; newClientOrderId?: string; stopPrice?: string; closePosition?: boolean; activationPrice?: string; callbackRate?: string; workingType?: 'MARK_PRICE' | 'CONTRACT_PRICE'; priceProtect?: boolean; positionSide?: 'BOTH' | 'LONG' | 'SHORT'; newOrderRespType?: 'ACK' | 'RESULT'; priceMatch?: 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20'; selfTradePreventionMode?: 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'; goodTillDate?: number; recvWindow?: number; timestamp?: number; }): Promise<Order>; /** * Cancel an order */ cancelOrder(params: { symbol: string; orderId?: number; origClientOrderId?: string; }): Promise<Order>; /** * Cancel all orders for a symbol */ cancelAllOrders(symbol: string): Promise<BaseResponse>; /** * Get order status */ getOrder(params: { symbol: string; orderId?: number; origClientOrderId?: string; }): Promise<Order>; /** * Get all open orders */ getOpenOrders(symbol?: string): Promise<Order[]>; /** * Get all orders (active, canceled, filled) */ getAllOrders(params: { symbol: string; orderId?: number; startTime?: number; endTime?: number; limit?: number; }): Promise<Order[]>; /** * Change leverage for a symbol */ changeleverage(symbol: string, leverage: number): Promise<BaseResponse>; /** * Change margin type */ changeMarginType(symbol: string, marginType: 'ISOLATED' | 'CROSSED'): Promise<BaseResponse>; /** * Subscribe to aggregate trades */ subscribeAggTrades(symbol: string): Promise<void>; /** * Subscribe to klines */ subscribeKlines(symbol: string, interval: string): Promise<void>; /** * Subscribe to 24hr ticker */ subscribeTicker(symbol?: string): Promise<void>; /** * Subscribe to book ticker */ subscribeBookTicker(symbol?: string): Promise<void>; /** * Subscribe to partial book depth */ subscribeDepth(symbol: string, levels: 5 | 10 | 20, updateSpeed?: '100ms' | '250ms' | '500ms'): Promise<void>; /** * Subscribe to mark price updates */ subscribeMarkPrice(symbol?: string, updateSpeed?: '1s' | '3s'): Promise<void>; } //# sourceMappingURL=client.d.ts.map