UNPKG

bybit-api

Version:

Complete & robust Node.js SDK for Bybit's REST APIs and WebSockets, with TypeScript & strong end to end tests.

173 lines (172 loc) 4.88 kB
import WebSocket from 'isomorphic-ws'; import { CategoryV5, ExecTypeV5, OCOTriggerTypeV5, OrderCancelTypeV5, OrderCreateTypeV5, OrderRejectReasonV5, OrderSMPTypeV5, OrderSideV5, OrderStatusV5, OrderTimeInForceV5, OrderTriggerByV5, OrderTypeV5, PositionIdx, PositionSideV5, PositionStatusV5, StopOrderTypeV5, TPSLModeV5, TradeModeV5 } from '../shared-v5'; import { WsKey } from './ws-general'; export interface MessageEventLike { target: WebSocket; type: 'message'; data: string; } export declare function isMessageEvent(msg: unknown): msg is MessageEventLike; export interface WSPublicTopicEventV5<TTopic extends string, TType, TData> { id?: string; topic: TTopic; type: TType; /** Cross sequence */ cs?: number; /** Event timestamp */ ts: number; data: TData; /** * matching engine timestamp (correlated with T from public trade channel) */ cts: number; /** * Internal reference, can be used to determine if this is spot/linear/inverse/etc */ wsKey: WsKey; } export interface WSPrivateTopicEventV5<TTopic extends string, TData> { id?: string; topic: TTopic; creationTime: number; data: TData; wsKey: WsKey; } export interface WSOrderbookV5 { /** Symbol */ s: string; /** [price, qty][] */ b: [string, string][]; /** [price, qty][] */ a: [string, string][]; /** Update ID */ u: number; /** Cross sequence */ seq: number; } export type WSOrderbookEventV5 = WSPublicTopicEventV5<string, 'delta' | 'snapshot', WSOrderbookV5>; export interface WSPositionV5 { category: string; symbol: string; side: PositionSideV5; size: string; positionIdx: PositionIdx; tradeMode: TradeModeV5; positionValue: string; riskId: number; riskLimitValue: string; entryPrice: string; markPrice: string; leverage: string; positionBalance: string; autoAddMargin: number; positionMM: string; positionIM: string; liqPrice: string; bustPrice: string; tpslMode: string; takeProfit: string; stopLoss: string; trailingStop: string; unrealisedPnl: string; curRealisedPnl: string; sessionAvgPrice: string; delta: string; gamma: string; vega: string; theta: string; cumRealisedPnl: string; positionStatus: PositionStatusV5; adlRankIndicator: number; isReduceOnly: boolean; mmrSysUpdatedTime: string; leverageSysUpdatedTime: string; createdTime: string; updatedTime: string; seq: number; } export type WSPositionEventV5 = WSPrivateTopicEventV5<'position', WSPositionV5[]>; export interface WSAccountOrderV5 { category: CategoryV5; orderId: string; orderLinkId: string; isLeverage: string; blockTradeId: string; symbol: string; price: string; qty: string; side: OrderSideV5; positionIdx: PositionIdx; orderStatus: OrderStatusV5; createType: OrderCreateTypeV5; cancelType: OrderCancelTypeV5; rejectReason?: OrderRejectReasonV5; avgPrice?: string; leavesQty?: string; leavesValue?: string; cumExecQty: string; cumExecValue: string; cumExecFee: string; closedPnl: string; feeCurrency: string; timeInForce: OrderTimeInForceV5; orderType: OrderTypeV5; stopOrderType: StopOrderTypeV5; ocoTriggerType?: OCOTriggerTypeV5; orderIv: string; marketUnit?: 'baseCoin' | 'quoteCoin'; triggerPrice: string; takeProfit: string; stopLoss: string; tpslMode?: TPSLModeV5; tpLimitPrice?: string; slLimitPrice?: string; tpTriggerBy: string; slTriggerBy: string; triggerDirection: number; triggerBy: OrderTriggerByV5; lastPriceOnCreated: string; reduceOnly: boolean; closeOnTrigger: boolean; placeType: string; smpType: OrderSMPTypeV5; smpGroup: number; smpOrderId: string; createdTime: string; updatedTime: string; } export type WSAccountOrderEventV5 = WSPrivateTopicEventV5<'order', WSAccountOrderV5[]>; export interface WSExecutionV5 { category: CategoryV5; symbol: string; isLeverage: string; orderId: string; orderLinkId: string; side: OrderSideV5; orderPrice: string; orderQty: string; leavesQty: string; createType: OrderCreateTypeV5; orderType: OrderTypeV5; stopOrderType: StopOrderTypeV5; execFee: string; execId: string; execPrice: string; execQty: string; execPnl: string; execType: ExecTypeV5; execValue: string; execTime: string; isMaker: boolean; feeRate: string; tradeIv: string; markIv: string; markPrice: string; indexPrice: string; underlyingPrice: string; blockTradeId: string; closedSize: string; seq: number; marketUnit: string; } export type WSExecutionEventV5 = WSPrivateTopicEventV5<'execution', WSExecutionV5[]>;