Skip to content

Commit d7fea65

Browse files
authored
Merge pull request #371 from t0chk/master
Update websockets
2 parents 0b84823 + 0c933e9 commit d7fea65

File tree

6 files changed

+69
-4
lines changed

6 files changed

+69
-4
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "binance",
3-
"version": "2.8.11",
3+
"version": "2.8.12",
44
"description": "Node.js & JavaScript SDK for Binance REST APIs & WebSockets, with TypeScript & end-to-end tests.",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",

src/types/futures.ts

+1
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,7 @@ export interface FuturesSymbolExchangeInfo {
305305
timeInForce: OrderTimeInForce[];
306306
liquidationFee: numberInString;
307307
marketTakeBound: numberInString;
308+
contractSize?:number;
308309
}
309310

310311
export interface FuturesExchangeInfo {

src/types/websockets.ts

+30-3
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,17 @@ export type WsMessageFuturesUserDataEventRaw =
4848
| WsMessageFuturesUserDataListenKeyExpiredRaw
4949
| WsMessageFuturesUserDataMarginCallRaw
5050
| WsMessageFuturesUserDataOrderTradeUpdateEventRaw
51-
| WsMessageFuturesUserDataAccountConfigUpdateEventRaw;
51+
| WsMessageFuturesUserDataAccountConfigUpdateEventRaw
52+
| WsMessageFuturesUserDataCondOrderTriggerRejectEventRaw;
5253

5354
// TODO: consistent across USDM vs COINM?
5455
export type WsMessageFuturesUserDataEventFormatted =
5556
| WsMessageFuturesUserDataAccountUpdateFormatted
5657
| WsMessageFuturesUserDataListenKeyExpiredFormatted
5758
| WsMessageFuturesUserDataMarginCallFormatted
5859
| WsMessageFuturesUserDataTradeUpdateEventFormatted
59-
| WsMessageFuturesUserDataAccountConfigUpdateEventFormatted;
60+
| WsMessageFuturesUserDataAccountConfigUpdateEventFormatted
61+
| WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted;
6062

6163
export type WsRawMessage =
6264
| WsMessageKlineRaw
@@ -75,7 +77,8 @@ export type WsRawMessage =
7577
| WsMessageFuturesUserDataListenKeyExpiredRaw
7678
| WsMessageFuturesUserDataMarginCallRaw
7779
| WsMessageFuturesUserDataOrderTradeUpdateEventRaw
78-
| WsMessageFuturesUserDataAccountConfigUpdateEventRaw;
80+
| WsMessageFuturesUserDataAccountConfigUpdateEventRaw
81+
| WsMessageFuturesUserDataCondOrderTriggerRejectEventRaw;
7982

8083
export type WsFormattedMessage =
8184
| WsUserDataEvents
@@ -681,6 +684,30 @@ export interface WsMessageFuturesUserDataAccountUpdateFormatted
681684
};
682685
}
683686

687+
export interface WsMessageFuturesUserDataCondOrderTriggerRejectEventRaw
688+
extends WsSharedBase {
689+
e: 'CONDITIONAL_ORDER_TRIGGER_REJECT';
690+
E: number;
691+
T: number;
692+
or: {
693+
s: string;
694+
i: number;
695+
r: string;
696+
}
697+
}
698+
699+
export interface WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted
700+
extends WsSharedBase {
701+
eventType: 'CONDITIONAL_ORDER_TRIGGER_REJECT';
702+
eventTime: number;
703+
transactionTime: number;
704+
order: {
705+
symbol: string;
706+
orderId: number;
707+
reason: string;
708+
}
709+
}
710+
684711
export interface WsMessageFuturesUserDataOrderTradeUpdateEventRaw
685712
extends WsSharedBase {
686713
e: 'ORDER_TRADE_UPDATE';

src/util/beautifier-maps.ts

+9
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,15 @@ export const BEAUTIFIER_EVENT_MAP = {
220220
T: 'transactionTime',
221221
o: 'order',
222222
},
223+
CONDITIONAL_ORDER_TRIGGER_REJECTEvent: {
224+
e: 'eventType',
225+
E: 'eventTime',
226+
T: 'transactionTime',
227+
or: 'order',
228+
s: 'symbol',
229+
i: 'orderId',
230+
r: 'reason',
231+
},
223232
order: {
224233
s: 'symbol',
225234
c: 'clientOrderId',

src/util/typeGuards.ts

+10
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
WsMessageFuturesUserDataAccountConfigUpdateEventRaw,
99
WsMessageFuturesUserDataAccountUpdateFormatted,
1010
WsMessageFuturesUserDataAccountUpdateRaw,
11+
WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted,
1112
WsMessageFuturesUserDataEventFormatted,
1213
WsMessageFuturesUserDataListenKeyExpiredFormatted,
1314
WsMessageFuturesUserDataMarginCallFormatted,
@@ -193,6 +194,15 @@ export function isWsFormattedFuturesUserDataTradeUpdateEvent(
193194
);
194195
}
195196

197+
export function isWsFormattedFuturesUserDataCondOrderTriggerRejectEvent(
198+
data: WsFormattedMessage,
199+
): data is WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted {
200+
return (
201+
isWsFormattedFuturesUserDataEvent(data) &&
202+
data.eventType === 'CONDITIONAL_ORDER_TRIGGER_REJECT'
203+
);
204+
}
205+
196206
export function isWsFormattedFuturesUserDataAccountConfigUpdateEvent(
197207
data: WsFormattedMessage,
198208
): data is WsMessageFuturesUserDataAccountConfigUpdateEventFormatted {

src/websocket-client.ts

+18
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@ export class WebsocketClient extends EventEmitter {
413413
'ACCOUNT_UPDATE',
414414
'MARGIN_CALL',
415415
'ORDER_TRADE_UPDATE',
416+
'CONDITIONAL_ORDER_TRIGGER_REJECT'
416417
].includes(eventType)
417418
) {
418419
this.emit('formattedUserDataMessage', beautifiedMessage);
@@ -1135,6 +1136,23 @@ export class WebsocketClient extends EventEmitter {
11351136
* --------------------------
11361137
**/
11371138

1139+
/**
1140+
* Subscribe to a universal market websocket stream
1141+
*/
1142+
1143+
public subscribeEndpoint(
1144+
endpoint: string,
1145+
market: 'spot' | 'usdm' | 'coinm',
1146+
forceNewConnection?: boolean,
1147+
): WebSocket {
1148+
const wsKey = getWsKeyWithContext(market, endpoint);
1149+
return this.connectToWsUrl(
1150+
this.getWsBaseUrl(market, wsKey) + `/ws/${endpoint}`,
1151+
wsKey,
1152+
forceNewConnection,
1153+
);
1154+
}
1155+
11381156
/**
11391157
* Subscribe to aggregate trades for a symbol in a market category
11401158
*/

0 commit comments

Comments
 (0)