UNPKG

bybit-api

Version:

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

101 lines (100 loc) 3.38 kB
import { APIID, WS_KEY_MAP } from '../../util'; import { AmendOrderParamsV5, BatchAmendOrderParamsV5, BatchCancelOrderParamsV5, BatchOrderParamsV5, CancelOrderParamsV5, OrderParamsV5 } from '../request'; import { BatchAmendOrderResultV5, BatchCancelOrderResultV5, BatchCreateOrderResultV5, BatchOrdersRetExtInfoV5, OrderResultV5 } from '../response'; import { WsKey } from './ws-general'; export type WSAPIOperation = 'order.create' | 'order.amend' | 'order.cancel' | 'order.create-batch' | 'order.amend-batch' | 'order.cancel-batch'; export declare const WS_API_Operations: WSAPIOperation[]; export type WsOperation = 'subscribe' | 'unsubscribe' | 'auth' | 'ping' | 'pong'; export interface WsRequestOperationBybit<TWSTopic extends string> { req_id: string; op: WsOperation; args?: (TWSTopic | string | number)[]; } export interface WSAPIRequest<TRequestParams = undefined, TWSOperation extends WSAPIOperation = any> { reqId: string; op: TWSOperation; header: { 'X-BAPI-TIMESTAMP': string; 'X-BAPI-RECV-WINDOW': string; Referer: typeof APIID; }; args: [TRequestParams]; } export interface WSAPIResponse<TResponseData extends object = object, TOperation extends WSAPIOperation = WSAPIOperation> { wsKey: WsKey; /** Auto-generated */ reqId: string; retCode: 0 | number; retMsg: 'OK' | string; op: TOperation; data: TResponseData; header?: { 'X-Bapi-Limit': string; 'X-Bapi-Limit-Status': string; 'X-Bapi-Limit-Reset-Timestamp': string; Traceid: string; Timenow: string; }; connId: string; } export type Exact<T> = { [K: string]: never; } & { [K in keyof T]: T[K]; }; /** * List of operations supported for this WsKey (connection) */ export interface WsAPIWsKeyTopicMap { [WS_KEY_MAP.v5PrivateTrade]: WSAPIOperation; } /** * Request parameters expected per operation */ export interface WsAPITopicRequestParamMap { 'order.create': OrderParamsV5; 'order.amend': AmendOrderParamsV5; 'order.cancel': CancelOrderParamsV5; 'order.create-batch': { category: 'option' | 'linear'; request: BatchOrderParamsV5[]; }; 'order.amend-batch': { category: 'option' | 'linear'; request: BatchAmendOrderParamsV5[]; }; 'order.cancel-batch': { category: 'option' | 'linear'; request: BatchCancelOrderParamsV5[]; }; } /** * Response structure expected for each operation */ export interface WsAPIOperationResponseMap { 'order.create': WSAPIResponse<OrderResultV5, 'order.create'>; 'order.amend': WSAPIResponse<OrderResultV5, 'order.amend'>; 'order.cancel': WSAPIResponse<OrderResultV5, 'order.cancel'>; 'order.create-batch': WSAPIResponse<{ list: BatchCreateOrderResultV5[]; }, 'order.create-batch'> & { retExtInfo: BatchOrdersRetExtInfoV5; }; 'order.amend-batch': WSAPIResponse<{ list: BatchAmendOrderResultV5[]; }, 'order.amend-batch'> & { retExtInfo: BatchOrdersRetExtInfoV5; }; 'order.cancel-batch': WSAPIResponse<{ list: BatchCancelOrderResultV5[]; }, 'order.cancel-batch'> & { retExtInfo: BatchOrdersRetExtInfoV5; }; ping: { retCode: 0 | number; retMsg: 'OK' | string; op: 'pong'; data: [string]; connId: string; }; }