UNPKG

bitget-api

Version:

Complete Node.js & JavaScript SDK for Bitget V1-V3 REST APIs & WebSockets, with TypeScript & end-to-end tests.

92 lines (90 loc) 2.76 kB
import { WS_KEY_MAP } from '../../util/websocket-util.js'; import { CancelOrderRequestV3 } from '../request/v3/trade.js'; import { CancelOrderResponseV3 } from '../response/v3/trade.js'; import { WSAPIPlaceOrderRequestV3 } from './ws-api-request.js'; import { WSAPIPlaceOrderResponseV3 } from './ws-api-response.js'; import { BitgetInstTypeV3, WsKey } from './ws-general.js'; export type WSOperation = 'subscribe' | 'unsubscribe' | 'login'; export type WSAPIOperation = 'place-order' | 'batch-place' | 'cancel-order' | 'batch-cancel'; export declare const WS_API_Operations: WSAPIOperation[]; export interface WSOperationLoginParams { apiKey: string; passphrase: string; timestamp: number; sign: string; } export interface WSAPIRequestBitgetV3<TWSParams> { op: 'trade'; id: string; category: BitgetInstTypeV3; topic: WSAPIOperation; args: TWSParams | TWSParams[]; } export interface WSAPIRequestFlags { /** If true, will skip auth requirement for WS API connection */ authIsOptional?: boolean | undefined; } export type Exact<T> = { [K: string]: never; } & { [K in keyof T]: T[K]; }; /** /** * V2 request looks like this: { "op":"subscribe", "args":[ { "instType":"SPOT", "channel":"ticker", "instId":"BTCUSDT" }, { "instType":"SPOT", "channel":"candle5m", "instId":"BTCUSDT" } ] } */ export interface WsRequestOperationBitget<TWSRequestArg> { op: WSOperation; args?: (TWSRequestArg | string | number)[]; } export interface WSAPIResponse<TResponseData extends object = object, TOperation extends WSAPIOperation = WSAPIOperation> { wsKey: WsKey; /** Auto-generated */ id: string; event: 'trade'; category: BitgetInstTypeV3; topic: TOperation; args: TResponseData; code: '0' | string; msg: 'success' | string; ts: string; } /** * List of operations supported for this WsKey (connection) */ export interface WsAPIWsKeyTopicMap { [WS_KEY_MAP.v3Private]: WSAPIOperation; } /** * Request parameters expected per operation */ export interface WsAPITopicRequestParamMap { 'place-order': WSAPIPlaceOrderRequestV3; 'batch-place': WSAPIPlaceOrderRequestV3[]; 'cancel-order': CancelOrderRequestV3; 'batch-cancel': CancelOrderRequestV3[]; } /** * Response structure expected for each operation */ export interface WsAPIOperationResponseMap { 'place-order': WSAPIResponse<[WSAPIPlaceOrderResponseV3], 'place-order'>; 'batch-place': WSAPIResponse<WSAPIPlaceOrderResponseV3[], 'batch-place'>; 'cancel-order': WSAPIResponse<[CancelOrderResponseV3], 'cancel-order'>; 'batch-cancel': WSAPIResponse<CancelOrderResponseV3[], 'batch-cancel'>; }