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
TypeScript
/**
* 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