UNPKG

binance-futures-wrapper

Version:

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

474 lines 11.1 kB
/** * WebSocket stream types for Binance Futures API */ import { OrderSideType, OrderTypeType, TimeInForceType, PositionSideType, OrderStatusType, WorkingTypeType } from './base'; export interface WebSocketConfig { reconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number; keepAlive?: boolean; keepAliveInterval?: number; } export interface AggTradeStreamData { e: 'aggTrade'; E: number; s: string; a: number; p: string; q: string; f: number; l: number; T: number; m: boolean; } export interface MarkPriceStreamData { e: 'markPriceUpdate'; E: number; s: string; p: string; i: string; P: string; r: string; T: number; } export interface AllMarkPriceStreamData { e: 'markPriceUpdate'; E: number; data: MarkPriceStreamData[]; } export interface KlineStreamData { e: 'kline'; E: number; s: string; k: { t: number; T: number; s: string; i: string; f: number; L: number; o: string; c: string; h: string; l: string; v: string; n: number; x: boolean; q: string; V: string; Q: string; B: string; }; } export interface ContinuousKlineStreamData { e: 'continuous_kline'; E: number; ps: string; ct: string; k: { t: number; T: number; i: string; f: number; L: number; o: string; c: string; h: string; l: string; v: string; n: number; x: boolean; q: string; V: string; Q: string; B: string; }; } export interface MiniTickerStreamData { e: '24hrMiniTicker'; E: number; s: string; c: string; o: string; h: string; l: string; v: string; q: string; } export interface AllMiniTickerStreamData { data: MiniTickerStreamData[]; } export interface TickerStreamData { e: '24hrTicker'; E: number; s: string; p: string; P: string; w: string; c: string; Q: string; o: string; h: string; l: string; v: string; q: string; O: number; C: number; F: number; L: number; n: number; } export interface AllTickerStreamData { data: TickerStreamData[]; } export interface BookTickerStreamData { e: 'bookTicker'; u: number; E: number; T: number; s: string; b: string; B: string; a: string; A: string; } export interface LiquidationOrderStreamData { e: 'forceOrder'; E: number; o: { s: string; S: OrderSideType; o: OrderTypeType; f: TimeInForceType; q: string; p: string; ap: string; X: OrderStatusType; l: string; z: string; T: number; }; } export interface PartialBookDepthStreamData { e: 'depthUpdate'; E: number; T: number; s: string; U: number; u: number; pu: number; b: [string, string][]; a: [string, string][]; } export interface DiffBookDepthStreamData { e: 'depthUpdate'; E: number; T: number; s: string; U: number; u: number; pu: number; b: [string, string][]; a: [string, string][]; } export interface CompositeIndexStreamData { e: 'compositeIndex'; E: number; s: string; p: string; c: { b: string; w: string; W: string; }[]; } export interface ListenKeyResponse { listenKey: string; } export interface AccountUpdateStreamData { e: 'ACCOUNT_UPDATE'; E: number; T: number; a: { m: string; B: AccountBalance[]; P: WsAccountPosition[]; }; } export interface AccountBalance { a: string; wb: string; cw: string; bc: string; } export interface WsAccountPosition { s: string; pa: string; ep: string; cr: string; up: string; mt: string; iw: string; ps: PositionSideType; } export interface OrderTradeUpdateStreamData { e: 'ORDER_TRADE_UPDATE'; E: number; T: number; o: { s: string; c: string; S: OrderSideType; o: OrderTypeType; f: TimeInForceType; q: string; p: string; ap: string; sp: string; x: string; X: OrderStatusType; i: number; l: string; z: string; L: string; N: string; n: string; T: number; t: number; b: string; a: string; m: boolean; R: boolean; wt: WorkingTypeType; ot: OrderTypeType; ps: PositionSideType; cp: boolean; AP: string; cr: string; pP: boolean; si: number; ss: number; rp: string; }; } export interface AccountConfigUpdateStreamData { e: 'ACCOUNT_CONFIG_UPDATE'; E: number; T: number; ac?: { s: string; l: number; }; ai?: { j: boolean; }; } export interface MarginCallStreamData { e: 'MARGIN_CALL'; E: number; cw: string; p: MarginCallPosition[]; } export interface MarginCallPosition { s: string; ps: PositionSideType; pa: string; mt: string; iw: string; mp: string; up: string; mm: string; } export interface StreamSubscription { method: 'SUBSCRIBE' | 'UNSUBSCRIBE'; params: string[]; id: number; } export interface StreamResponse { result: null | string[]; id: number; } export interface StreamError { code: number; msg: string; id: number; } export type MarketStreamEvent = AggTradeStreamData | MarkPriceStreamData | AllMarkPriceStreamData | KlineStreamData | ContinuousKlineStreamData | MiniTickerStreamData | AllMiniTickerStreamData | TickerStreamData | AllTickerStreamData | BookTickerStreamData | LiquidationOrderStreamData | PartialBookDepthStreamData | DiffBookDepthStreamData | CompositeIndexStreamData; export type UserDataStreamEvent = AccountUpdateStreamData | OrderTradeUpdateStreamData | AccountConfigUpdateStreamData | MarginCallStreamData; export interface ProcessedOrderUpdate { eventType: 'ORDER_TRADE_UPDATE'; eventTime: number; transactionTime: number; symbol: string; clientOrderId: string; side: OrderSideType; orderType: OrderTypeType; timeInForce: TimeInForceType; originalQuantity: number; originalPrice: number; averagePrice: number; stopPrice: number; executionType: string; orderStatus: OrderStatusType; orderId: number; lastFilledQuantity: number; totalFilledQuantity: number; lastFilledPrice: number; commissionAsset?: string; commission?: number; orderTradeTime: number; tradeId: number; bidsNotional: number; asksNotional: number; isMakerSide: boolean; isReduceOnly: boolean; stopPriceWorkingType: WorkingTypeType; originalOrderType: OrderTypeType; positionSide: PositionSideType; isCloseAll: boolean; activationPrice?: number; callbackRate?: number; isPriceProtectionOn: boolean; realizedProfit: number; } export interface ProcessedAccountUpdate { eventType: 'ACCOUNT_UPDATE'; eventTime: number; transactionTime: number; eventReasonType: string; balances: ProcessedAccountBalance[]; positions: ProcessedAccountPosition[]; } export interface ProcessedAccountBalance { asset: string; walletBalance: number; crossWalletBalance: number; balanceChange: number; } export interface ProcessedAccountPosition { symbol: string; positionAmount: number; entryPrice: number; accumulatedRealized: number; unrealizedPnL: number; marginType: string; isolatedWallet: number; positionSide: PositionSideType; } export interface ProcessedMarginCall { eventType: 'MARGIN_CALL'; eventTime: number; crossWalletBalance: number; positions: ProcessedMarginCallPosition[]; } export interface ProcessedMarginCallPosition { symbol: string; positionSide: PositionSideType; positionAmount: number; marginType: string; isolatedWallet: number; markPrice: number; unrealizedPnL: number; maintenanceMarginRequired: number; } export interface ProcessedAccountConfigUpdate { eventType: 'ACCOUNT_CONFIG_UPDATE'; eventTime: number; transactionTime: number; leverageUpdate?: { symbol: string; leverage: number; }; multiAssetsMode?: { multiAssetsMode: boolean; }; } export interface ProcessedAggTrade { eventType: 'aggTrade'; eventTime: number; symbol: string; aggregateTradeId: number; price: number; quantity: number; firstTradeId: number; lastTradeId: number; tradeTime: number; isBuyerMaker: boolean; } export interface ProcessedMarkPrice { eventType: 'markPriceUpdate'; eventTime: number; symbol: string; markPrice: number; indexPrice: number; estimatedSettlePrice: number; fundingRate: number; nextFundingTime: number; } export interface ProcessedKline { eventType: 'kline'; eventTime: number; symbol: string; kline: { startTime: number; closeTime: number; symbol: string; interval: string; firstTradeId: number; lastTradeId: number; openPrice: number; closePrice: number; highPrice: number; lowPrice: number; baseAssetVolume: number; numberOfTrades: number; isClosed: boolean; quoteAssetVolume: number; takerBuyBaseAssetVolume: number; takerBuyQuoteAssetVolume: number; }; } export interface ProcessedTicker { eventType: '24hrTicker'; eventTime: number; symbol: string; priceChange: number; priceChangePercent: number; weightedAvgPrice: number; lastPrice: number; lastQuantity: number; openPrice: number; highPrice: number; lowPrice: number; totalTradedBaseAssetVolume: number; totalTradedQuoteAssetVolume: number; statisticOpenTime: number; statisticCloseTime: number; firstTradeId: number; lastTradeId: number; totalNumberOfTrades: number; } export interface ProcessedBookTicker { eventType: 'bookTicker'; updateId: number; eventTime: number; transactionTime: number; symbol: string; bestBidPrice: number; bestBidQuantity: number; bestAskPrice: number; bestAskQuantity: number; } export interface ProcessedPartialBookDepth { eventType: 'depthUpdate'; eventTime: number; transactionTime: number; symbol: string; firstUpdateId: number; finalUpdateId: number; bids: [number, number][]; asks: [number, number][]; } export type ProcessedUserDataEvent = ProcessedOrderUpdate | ProcessedAccountUpdate | ProcessedAccountConfigUpdate | ProcessedMarginCall; export type ProcessedMarketDataEvent = ProcessedAggTrade | ProcessedMarkPrice | ProcessedKline | ProcessedTicker | ProcessedBookTicker | ProcessedPartialBookDepth; //# sourceMappingURL=websocket.d.ts.map