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
TypeScript
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'>;
}