bybit-api 2.4.0-beta.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +73 -41
  2. package/lib/index.d.ts +1 -1
  3. package/lib/index.js +1 -1
  4. package/lib/index.js.map +1 -1
  5. package/lib/inverse-client.d.ts +18 -126
  6. package/lib/inverse-client.js.map +1 -1
  7. package/lib/linear-client.d.ts +20 -142
  8. package/lib/linear-client.js.map +1 -1
  9. package/lib/spot-client-v3.d.ts +2 -6
  10. package/lib/spot-client-v3.js.map +1 -1
  11. package/lib/spot-client.js +1 -1
  12. package/lib/spot-client.js.map +1 -1
  13. package/lib/types/request/index.d.ts +2 -1
  14. package/lib/types/request/index.js +2 -1
  15. package/lib/types/request/index.js.map +1 -1
  16. package/lib/types/request/inverse.d.ts +120 -0
  17. package/lib/types/request/{usdt-perp.js → inverse.js} +1 -1
  18. package/lib/types/request/inverse.js.map +1 -0
  19. package/lib/types/request/linear.d.ts +160 -0
  20. package/lib/types/request/linear.js +3 -0
  21. package/lib/types/request/linear.js.map +1 -0
  22. package/lib/types/request/spot.d.ts +5 -0
  23. package/lib/types/shared.d.ts +4 -1
  24. package/lib/types/websockets.d.ts +6 -5
  25. package/lib/util/BaseRestClient.d.ts +4 -8
  26. package/lib/util/BaseRestClient.js +16 -23
  27. package/lib/util/BaseRestClient.js.map +1 -1
  28. package/lib/util/WsStore.d.ts +19 -16
  29. package/lib/util/WsStore.js +1 -0
  30. package/lib/util/WsStore.js.map +1 -1
  31. package/lib/util/node-support.d.ts +1 -0
  32. package/lib/util/node-support.js +1 -0
  33. package/lib/util/node-support.js.map +1 -1
  34. package/lib/util/requestUtils.d.ts +9 -5
  35. package/lib/util/requestUtils.js +21 -12
  36. package/lib/util/requestUtils.js.map +1 -1
  37. package/lib/util/websocket-util.d.ts +38 -8
  38. package/lib/util/websocket-util.js +252 -32
  39. package/lib/util/websocket-util.js.map +1 -1
  40. package/lib/websocket-client.d.ts +63 -30
  41. package/lib/websocket-client.js +343 -206
  42. package/lib/websocket-client.js.map +1 -1
  43. package/package.json +2 -2
  44. package/lib/types/request/usdt-perp.d.ts +0 -20
  45. package/lib/types/request/usdt-perp.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import WebSocket from 'isomorphic-ws';
2
+ import { WsKey } from '../types';
2
3
  import { DefaultLogger } from './logger';
3
4
  export declare enum WsConnectionStateEnum {
4
5
  INITIAL = 0,
@@ -11,7 +12,7 @@ export declare enum WsConnectionStateEnum {
11
12
  declare type WsTopic = string;
12
13
  /**
13
14
  * A "Set" is used to ensure we only subscribe to a topic once (tracking a list of unique topics we're expected to be connected to)
14
- * TODO: do any WS topics allow parameters? If so, we need a way to track those (see FTX implementation)
15
+ * Note: Accurate duplicate tracking only works for plaintext topics. E.g. JSON objects may not be seen as duplicates if keys are in different orders. If that's needed, check the FTX implementation.
15
16
  */
16
17
  declare type WsTopicList = Set<WsTopic>;
17
18
  interface WsStoredState {
@@ -23,6 +24,8 @@ interface WsStoredState {
23
24
  activePingTimer?: ReturnType<typeof setTimeout> | undefined;
24
25
  /** A timer tracking that an upstream heartbeat was sent, expecting a reply before it expires */
25
26
  activePongTimer?: ReturnType<typeof setTimeout> | undefined;
27
+ /** If a reconnection is in progress, this will have the timer for the delayed reconnect */
28
+ activeReconnectTimer?: ReturnType<typeof setTimeout> | undefined;
26
29
  /**
27
30
  * All the topics we are expected to be subscribed to (and we automatically resubscribe to if the connection drops)
28
31
  */
@@ -33,21 +36,21 @@ export default class WsStore {
33
36
  private logger;
34
37
  constructor(logger: typeof DefaultLogger);
35
38
  /** Get WS stored state for key, optionally create if missing */
36
- get(key: string, createIfMissing?: true): WsStoredState;
37
- get(key: string, createIfMissing?: false): WsStoredState | undefined;
38
- getKeys(): string[];
39
- create(key: string): WsStoredState | undefined;
40
- delete(key: string): void;
41
- hasExistingActiveConnection(key: string): boolean;
42
- getWs(key: string): WebSocket | undefined;
43
- setWs(key: string, wsConnection: WebSocket): WebSocket;
44
- isWsOpen(key: string): boolean;
45
- getConnectionState(key: string): WsConnectionStateEnum;
46
- setConnectionState(key: string, state: WsConnectionStateEnum): void;
47
- isConnectionState(key: string, state: WsConnectionStateEnum): boolean;
48
- getTopics(key: string): WsTopicList;
39
+ get(key: WsKey, createIfMissing?: true): WsStoredState;
40
+ get(key: WsKey, createIfMissing?: false): WsStoredState | undefined;
41
+ getKeys(): WsKey[];
42
+ create(key: WsKey): WsStoredState | undefined;
43
+ delete(key: WsKey): void;
44
+ hasExistingActiveConnection(key: WsKey): boolean;
45
+ getWs(key: WsKey): WebSocket | undefined;
46
+ setWs(key: WsKey, wsConnection: WebSocket): WebSocket;
47
+ isWsOpen(key: WsKey): boolean;
48
+ getConnectionState(key: WsKey): WsConnectionStateEnum;
49
+ setConnectionState(key: WsKey, state: WsConnectionStateEnum): void;
50
+ isConnectionState(key: WsKey, state: WsConnectionStateEnum): boolean;
51
+ getTopics(key: WsKey): WsTopicList;
49
52
  getTopicsByKey(): Record<string, WsTopicList>;
50
- addTopic(key: string, topic: WsTopic): WsTopicList;
51
- deleteTopic(key: string, topic: WsTopic): boolean;
53
+ addTopic(key: WsKey, topic: WsTopic): WsTopicList;
54
+ deleteTopic(key: WsKey, topic: WsTopic): boolean;
52
55
  }
53
56
  export {};
@@ -9,6 +9,7 @@ var WsConnectionStateEnum;
9
9
  WsConnectionStateEnum[WsConnectionStateEnum["CONNECTED"] = 2] = "CONNECTED";
10
10
  WsConnectionStateEnum[WsConnectionStateEnum["CLOSING"] = 3] = "CLOSING";
11
11
  WsConnectionStateEnum[WsConnectionStateEnum["RECONNECTING"] = 4] = "RECONNECTING";
12
+ // ERROR = 5,
12
13
  })(WsConnectionStateEnum = exports.WsConnectionStateEnum || (exports.WsConnectionStateEnum = {}));
13
14
  class WsStore {
14
15
  constructor(logger) {
@@ -1 +1 @@
1
- {"version":3,"file":"WsStore.js","sourceRoot":"","sources":["../../src/util/WsStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WsStore.js","sourceRoot":"","sources":["../../src/util/WsStore.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ /** This is async because the browser version uses a promise (browser-support) */
1
2
  export declare function signMessage(message: string, secret: string): Promise<string>;
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.signMessage = void 0;
13
13
  const crypto_1 = require("crypto");
14
+ /** This is async because the browser version uses a promise (browser-support) */
14
15
  function signMessage(message, secret) {
15
16
  return __awaiter(this, void 0, void 0, function* () {
16
17
  return crypto_1.createHmac('sha256', secret).update(message).digest('hex');
@@ -1 +1 @@
1
- {"version":3,"file":"node-support.js","sourceRoot":"","sources":["../../src/util/node-support.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAoC;AAEpC,SAAsB,WAAW,CAC/B,OAAe,EACf,MAAc;;QAEd,OAAO,mBAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;CAAA;AALD,kCAKC"}
1
+ {"version":3,"file":"node-support.js","sourceRoot":"","sources":["../../src/util/node-support.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAoC;AAEpC,iFAAiF;AACjF,SAAsB,WAAW,CAC/B,OAAe,EACf,MAAc;;QAEd,OAAO,mBAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;CAAA;AALD,kCAKC"}
@@ -1,8 +1,12 @@
1
1
  export interface RestClientOptions {
2
+ /** Your API key */
3
+ key?: string;
4
+ /** Your API secret */
5
+ secret?: string;
6
+ /** Set to `true` to connect to testnet. Uses the live environment by default. */
7
+ testnet?: boolean;
2
8
  /** Override the max size of the request window (in ms) */
3
9
  recv_window?: number;
4
- /** @deprecated Time sync is now disabled by default. To re-enable it, use enable_time_sync instead. */
5
- disable_time_sync?: boolean;
6
10
  /** Disabled by default. This can help on machines with consistent latency problems. */
7
11
  enable_time_sync?: boolean;
8
12
  /** How often to sync time drift with bybit servers */
@@ -18,9 +22,9 @@ export interface RestClientOptions {
18
22
  parse_exceptions?: boolean;
19
23
  }
20
24
  export declare function serializeParams(params?: object, strict_validation?: boolean): string;
21
- export declare function getRestBaseUrl(useLivenet: boolean, restInverseOptions: RestClientOptions): string;
22
- export declare function isWsPong(response: any): any;
23
- export declare const agentSource = "bybitapinode";
25
+ export declare function getRestBaseUrl(useTestnet: boolean, restInverseOptions: RestClientOptions): string;
26
+ export declare function isWsPong(msg: any): boolean;
27
+ export declare const APIID = "bybitapinode";
24
28
  /**
25
29
  * Used to switch how authentication/requests work under the hood (primarily for SPOT since it's different there)
26
30
  */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REST_CLIENT_TYPE_ENUM = exports.agentSource = exports.isWsPong = exports.getRestBaseUrl = exports.serializeParams = void 0;
3
+ exports.REST_CLIENT_TYPE_ENUM = exports.APIID = exports.isWsPong = exports.getRestBaseUrl = exports.serializeParams = void 0;
4
4
  function serializeParams(params = {}, strict_validation = false) {
5
5
  return Object.keys(params)
6
6
  .sort()
@@ -14,7 +14,7 @@ function serializeParams(params = {}, strict_validation = false) {
14
14
  .join('&');
15
15
  }
16
16
  exports.serializeParams = serializeParams;
17
- function getRestBaseUrl(useLivenet, restInverseOptions) {
17
+ function getRestBaseUrl(useTestnet, restInverseOptions) {
18
18
  const exchangeBaseUrls = {
19
19
  livenet: 'https://api.bybit.com',
20
20
  testnet: 'https://api-testnet.bybit.com',
@@ -22,23 +22,32 @@ function getRestBaseUrl(useLivenet, restInverseOptions) {
22
22
  if (restInverseOptions.baseUrl) {
23
23
  return restInverseOptions.baseUrl;
24
24
  }
25
- if (useLivenet === true) {
26
- return exchangeBaseUrls.livenet;
25
+ if (useTestnet) {
26
+ return exchangeBaseUrls.testnet;
27
27
  }
28
- return exchangeBaseUrls.testnet;
28
+ return exchangeBaseUrls.livenet;
29
29
  }
30
30
  exports.getRestBaseUrl = getRestBaseUrl;
31
- function isWsPong(response) {
32
- if (response.pong || response.ping) {
31
+ function isWsPong(msg) {
32
+ if (!msg) {
33
+ return false;
34
+ }
35
+ if (msg.pong || msg.ping) {
36
+ return true;
37
+ }
38
+ if (msg['op'] === 'pong') {
39
+ return true;
40
+ }
41
+ if (msg['ret_msg'] === 'pong') {
33
42
  return true;
34
43
  }
35
- return (response.request &&
36
- response.request.op === 'ping' &&
37
- response.ret_msg === 'pong' &&
38
- response.success === true);
44
+ return (msg.request &&
45
+ msg.request.op === 'ping' &&
46
+ msg.ret_msg === 'pong' &&
47
+ msg.success === true);
39
48
  }
40
49
  exports.isWsPong = isWsPong;
41
- exports.agentSource = 'bybitapinode';
50
+ exports.APIID = 'bybitapinode';
42
51
  /**
43
52
  * Used to switch how authentication/requests work under the hood (primarily for SPOT since it's different there)
44
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../src/util/requestUtils.ts"],"names":[],"mappings":";;;AA0BA,SAAgB,eAAe,CAC7B,SAAiB,EAAE,EACnB,iBAAiB,GAAG,KAAK;IAEzB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACvB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAC9D,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;SACH;QACD,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAhBD,0CAgBC;AAED,SAAgB,cAAc,CAC5B,UAAmB,EACnB,kBAAqC;IAErC,MAAM,gBAAgB,GAAG;QACvB,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,+BAA+B;KACzC,CAAC;IAEF,IAAI,kBAAkB,CAAC,OAAO,EAAE;QAC9B,OAAO,kBAAkB,CAAC,OAAO,CAAC;KACnC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE;QACvB,OAAO,gBAAgB,CAAC,OAAO,CAAC;KACjC;IACD,OAAO,gBAAgB,CAAC,OAAO,CAAC;AAClC,CAAC;AAjBD,wCAiBC;AAED,SAAgB,QAAQ,CAAC,QAAa;IACpC,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;QAClC,OAAO,IAAI,CAAC;KACb;IACD,OAAO,CACL,QAAQ,CAAC,OAAO;QAChB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM;QAC9B,QAAQ,CAAC,OAAO,KAAK,MAAM;QAC3B,QAAQ,CAAC,OAAO,KAAK,IAAI,CAC1B,CAAC;AACJ,CAAC;AAVD,4BAUC;AAEY,QAAA,WAAW,GAAG,cAAc,CAAC;AAE1C;;GAEG;AACU,QAAA,qBAAqB,GAAG;IACnC,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,gBAAgB;IAChC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;CACA,CAAC"}
1
+ {"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../src/util/requestUtils.ts"],"names":[],"mappings":";;;AAgCA,SAAgB,eAAe,CAC7B,SAAiB,EAAE,EACnB,iBAAiB,GAAG,KAAK;IAEzB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACvB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAC9D,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;SACH;QACD,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAhBD,0CAgBC;AAED,SAAgB,cAAc,CAC5B,UAAmB,EACnB,kBAAqC;IAErC,MAAM,gBAAgB,GAAG;QACvB,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,+BAA+B;KACzC,CAAC;IAEF,IAAI,kBAAkB,CAAC,OAAO,EAAE;QAC9B,OAAO,kBAAkB,CAAC,OAAO,CAAC;KACnC;IAED,IAAI,UAAU,EAAE;QACd,OAAO,gBAAgB,CAAC,OAAO,CAAC;KACjC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC;AAClC,CAAC;AAlBD,wCAkBC;AAED,SAAgB,QAAQ,CAAC,GAAQ;IAC/B,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,GAAG,CAAC,OAAO;QACX,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM;QACzB,GAAG,CAAC,OAAO,KAAK,MAAM;QACtB,GAAG,CAAC,OAAO,KAAK,IAAI,CACrB,CAAC;AACJ,CAAC;AAtBD,4BAsBC;AAEY,QAAA,KAAK,GAAG,cAAc,CAAC;AAEpC;;GAEG;AACU,QAAA,qBAAqB,GAAG;IACnC,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,gBAAgB;IAChC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;CACA,CAAC"}
@@ -1,8 +1,38 @@
1
- import { WsKey } from '../types';
2
- export declare const wsKeyInverse = "inverse";
3
- export declare const wsKeyLinearPrivate = "linearPrivate";
4
- export declare const wsKeyLinearPublic = "linearPublic";
5
- export declare const wsKeySpotPrivate = "spotPrivate";
6
- export declare const wsKeySpotPublic = "spotPublic";
7
- export declare function getLinearWsKeyForTopic(topic: string): WsKey;
8
- export declare function getSpotWsKeyForTopic(topic: string): WsKey;
1
+ import { APIMarket, WsKey } from '../types';
2
+ interface NetworkMapV3 {
3
+ livenet: string;
4
+ livenet2?: string;
5
+ testnet: string;
6
+ testnet2?: string;
7
+ }
8
+ declare type PublicPrivateNetwork = 'public' | 'private';
9
+ export declare const WS_BASE_URL_MAP: Record<APIMarket | 'unifiedPerpUSDT' | 'unifiedPerpUSDC', Record<PublicPrivateNetwork, NetworkMapV3>>;
10
+ export declare const WS_KEY_MAP: {
11
+ readonly inverse: "inverse";
12
+ readonly linearPrivate: "linearPrivate";
13
+ readonly linearPublic: "linearPublic";
14
+ readonly spotPrivate: "spotPrivate";
15
+ readonly spotPublic: "spotPublic";
16
+ readonly spotV3Private: "spotV3Private";
17
+ readonly spotV3Public: "spotV3Public";
18
+ readonly usdcOptionPrivate: "usdcOptionPrivate";
19
+ readonly usdcOptionPublic: "usdcOptionPublic";
20
+ readonly usdcPerpPrivate: "usdcPerpPrivate";
21
+ readonly usdcPerpPublic: "usdcPerpPublic";
22
+ readonly unifiedPrivate: "unifiedPrivate";
23
+ readonly unifiedOptionPublic: "unifiedOptionPublic";
24
+ readonly unifiedPerpUSDTPublic: "unifiedPerpUSDTPublic";
25
+ readonly unifiedPerpUSDCPublic: "unifiedPerpUSDCPublic";
26
+ };
27
+ export declare const WS_AUTH_ON_CONNECT_KEYS: WsKey[];
28
+ export declare const PUBLIC_WS_KEYS: string[];
29
+ export declare function getWsKeyForTopic(market: APIMarket, topic: string, isPrivate?: boolean): WsKey;
30
+ export declare function getUsdcWsKeyForTopic(topic: string, subGroup: 'option' | 'perp'): WsKey;
31
+ export declare const WS_ERROR_ENUM: {
32
+ NOT_AUTHENTICATED_SPOT_V3: string;
33
+ API_ERROR_GENERIC: string;
34
+ API_SIGN_AUTH_FAILED: string;
35
+ USDC_OPTION_AUTH_FAILED: string;
36
+ };
37
+ export declare function neverGuard(x: never, msg: string): Error;
38
+ export {};
@@ -1,39 +1,259 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSpotWsKeyForTopic = exports.getLinearWsKeyForTopic = exports.wsKeySpotPublic = exports.wsKeySpotPrivate = exports.wsKeyLinearPublic = exports.wsKeyLinearPrivate = exports.wsKeyInverse = void 0;
4
- exports.wsKeyInverse = 'inverse';
5
- exports.wsKeyLinearPrivate = 'linearPrivate';
6
- exports.wsKeyLinearPublic = 'linearPublic';
7
- exports.wsKeySpotPrivate = 'spotPrivate';
8
- exports.wsKeySpotPublic = 'spotPublic';
9
- function getLinearWsKeyForTopic(topic) {
10
- const privateLinearTopics = [
11
- 'position',
12
- 'execution',
13
- 'order',
14
- 'stop_order',
15
- 'wallet',
16
- ];
17
- if (privateLinearTopics.includes(topic)) {
18
- return exports.wsKeyLinearPrivate;
3
+ exports.neverGuard = exports.WS_ERROR_ENUM = exports.getUsdcWsKeyForTopic = exports.getWsKeyForTopic = exports.PUBLIC_WS_KEYS = exports.WS_AUTH_ON_CONNECT_KEYS = exports.WS_KEY_MAP = exports.WS_BASE_URL_MAP = void 0;
4
+ exports.WS_BASE_URL_MAP = {
5
+ inverse: {
6
+ public: {
7
+ livenet: 'wss://stream.bybit.com/realtime',
8
+ testnet: 'wss://stream-testnet.bybit.com/realtime',
9
+ },
10
+ private: {
11
+ livenet: 'wss://stream.bybit.com/realtime',
12
+ testnet: 'wss://stream-testnet.bybit.com/realtime',
13
+ },
14
+ },
15
+ linear: {
16
+ public: {
17
+ livenet: 'wss://stream.bybit.com/realtime_public',
18
+ livenet2: 'wss://stream.bytick.com/realtime_public',
19
+ testnet: 'wss://stream-testnet.bybit.com/realtime_public',
20
+ },
21
+ private: {
22
+ livenet: 'wss://stream.bybit.com/realtime_private',
23
+ livenet2: 'wss://stream.bytick.com/realtime_private',
24
+ testnet: 'wss://stream-testnet.bybit.com/realtime_private',
25
+ },
26
+ },
27
+ spot: {
28
+ public: {
29
+ livenet: 'wss://stream.bybit.com/spot/quote/ws/v1',
30
+ livenet2: 'wss://stream.bybit.com/spot/quote/ws/v2',
31
+ testnet: 'wss://stream-testnet.bybit.com/spot/quote/ws/v1',
32
+ testnet2: 'wss://stream-testnet.bybit.com/spot/quote/ws/v2',
33
+ },
34
+ private: {
35
+ livenet: 'wss://stream.bybit.com/spot/ws',
36
+ testnet: 'wss://stream-testnet.bybit.com/spot/ws',
37
+ },
38
+ },
39
+ spotv3: {
40
+ public: {
41
+ livenet: 'wss://stream.bybit.com/spot/public/v3',
42
+ testnet: 'wss://stream-testnet.bybit.com/spot/public/v3',
43
+ },
44
+ private: {
45
+ livenet: 'wss://stream.bybit.com/spot/private/v3',
46
+ testnet: 'wss://stream-testnet.bybit.com/spot/private/v3',
47
+ },
48
+ },
49
+ usdcOption: {
50
+ public: {
51
+ livenet: 'wss://stream.bybit.com/trade/option/usdc/public/v1',
52
+ livenet2: 'wss://stream.bytick.com/trade/option/usdc/public/v1',
53
+ testnet: 'wss://stream-testnet.bybit.com/trade/option/usdc/public/v1',
54
+ },
55
+ private: {
56
+ livenet: 'wss://stream.bybit.com/trade/option/usdc/private/v1',
57
+ livenet2: 'wss://stream.bytick.com/trade/option/usdc/private/v1',
58
+ testnet: 'wss://stream-testnet.bybit.com/trade/option/usdc/private/v1',
59
+ },
60
+ },
61
+ usdcPerp: {
62
+ public: {
63
+ livenet: 'wss://stream.bybit.com/perpetual/ws/v1/realtime_public',
64
+ livenet2: 'wss://stream.bytick.com/perpetual/ws/v1/realtime_public',
65
+ testnet: 'wss://stream-testnet.bybit.com/perpetual/ws/v1/realtime_public',
66
+ },
67
+ private: {
68
+ livenet: 'wss://stream.bybit.com/trade/option/usdc/private/v1',
69
+ livenet2: 'wss://stream.bytick.com/trade/option/usdc/private/v1',
70
+ testnet: 'wss://stream-testnet.bybit.com/trade/option/usdc/private/v1',
71
+ },
72
+ },
73
+ unifiedOption: {
74
+ public: {
75
+ livenet: 'wss://stream.bybit.com/option/usdc/public/v3',
76
+ testnet: 'wss://stream-testnet.bybit.com/option/usdc/public/v3',
77
+ },
78
+ private: {
79
+ livenet: 'wss://stream.bybit.com/unified/private/v3',
80
+ testnet: 'wss://stream-testnet.bybit.com/unified/private/v3',
81
+ },
82
+ },
83
+ unifiedPerp: {
84
+ public: {
85
+ livenet: 'useBaseSpecificEndpoint',
86
+ testnet: 'useBaseSpecificEndpoint',
87
+ },
88
+ private: {
89
+ livenet: 'wss://stream.bybit.com/unified/private/v3',
90
+ testnet: 'wss://stream-testnet.bybit.com/unified/private/v3',
91
+ },
92
+ },
93
+ unifiedPerpUSDT: {
94
+ public: {
95
+ livenet: 'wss://stream.bybit.com/contract/usdt/public/v3',
96
+ testnet: 'wss://stream-testnet.bybit.com/contract/usdt/public/v3',
97
+ },
98
+ private: {
99
+ livenet: 'useUnifiedEndpoint',
100
+ testnet: 'useUnifiedEndpoint',
101
+ },
102
+ },
103
+ unifiedPerpUSDC: {
104
+ public: {
105
+ livenet: 'wss://stream.bybit.com/contract/usdc/public/v3',
106
+ testnet: 'wss://stream-testnet.bybit.com/contract/usdc/public/v3',
107
+ },
108
+ private: {
109
+ livenet: 'useUnifiedEndpoint',
110
+ testnet: 'useUnifiedEndpoint',
111
+ },
112
+ },
113
+ };
114
+ exports.WS_KEY_MAP = {
115
+ inverse: 'inverse',
116
+ linearPrivate: 'linearPrivate',
117
+ linearPublic: 'linearPublic',
118
+ spotPrivate: 'spotPrivate',
119
+ spotPublic: 'spotPublic',
120
+ spotV3Private: 'spotV3Private',
121
+ spotV3Public: 'spotV3Public',
122
+ usdcOptionPrivate: 'usdcOptionPrivate',
123
+ usdcOptionPublic: 'usdcOptionPublic',
124
+ usdcPerpPrivate: 'usdcPerpPrivate',
125
+ usdcPerpPublic: 'usdcPerpPublic',
126
+ unifiedPrivate: 'unifiedPrivate',
127
+ unifiedOptionPublic: 'unifiedOptionPublic',
128
+ unifiedPerpUSDTPublic: 'unifiedPerpUSDTPublic',
129
+ unifiedPerpUSDCPublic: 'unifiedPerpUSDCPublic',
130
+ };
131
+ exports.WS_AUTH_ON_CONNECT_KEYS = [
132
+ exports.WS_KEY_MAP.spotV3Private,
133
+ exports.WS_KEY_MAP.usdcOptionPrivate,
134
+ exports.WS_KEY_MAP.usdcPerpPrivate,
135
+ ];
136
+ exports.PUBLIC_WS_KEYS = [
137
+ exports.WS_KEY_MAP.linearPublic,
138
+ exports.WS_KEY_MAP.spotPublic,
139
+ exports.WS_KEY_MAP.spotV3Public,
140
+ exports.WS_KEY_MAP.usdcOptionPublic,
141
+ exports.WS_KEY_MAP.usdcPerpPublic,
142
+ exports.WS_KEY_MAP.unifiedOptionPublic,
143
+ exports.WS_KEY_MAP.unifiedPerpUSDTPublic,
144
+ exports.WS_KEY_MAP.unifiedPerpUSDCPublic,
145
+ ];
146
+ /** Used to automatically determine if a sub request should be to the public or private ws (when there's two) */
147
+ const PRIVATE_TOPICS = [
148
+ 'position',
149
+ 'execution',
150
+ 'order',
151
+ 'stop_order',
152
+ 'wallet',
153
+ 'outboundAccountInfo',
154
+ 'executionReport',
155
+ 'ticketInfo',
156
+ // copy trading apis
157
+ 'copyTradePosition',
158
+ 'copyTradeOrder',
159
+ 'copyTradeExecution',
160
+ 'copyTradeWallet',
161
+ // usdc options
162
+ 'user.openapi.option.position',
163
+ 'user.openapi.option.trade',
164
+ 'user.order',
165
+ 'user.openapi.option.order',
166
+ 'user.service',
167
+ 'user.openapi.greeks',
168
+ 'user.mmp.event',
169
+ // usdc perps
170
+ 'user.openapi.perp.position',
171
+ 'user.openapi.perp.trade',
172
+ 'user.openapi.perp.order',
173
+ 'user.service',
174
+ // unified margin
175
+ 'user.position.unifiedAccount',
176
+ 'user.execution.unifiedAccount',
177
+ 'user.order.unifiedAccount',
178
+ 'user.wallet.unifiedAccount',
179
+ 'user.greeks.unifiedAccount',
180
+ ];
181
+ function getWsKeyForTopic(market, topic, isPrivate) {
182
+ const isPrivateTopic = isPrivate === true || PRIVATE_TOPICS.includes(topic);
183
+ switch (market) {
184
+ case 'inverse': {
185
+ return exports.WS_KEY_MAP.inverse;
186
+ }
187
+ case 'linear': {
188
+ return isPrivateTopic
189
+ ? exports.WS_KEY_MAP.linearPrivate
190
+ : exports.WS_KEY_MAP.linearPublic;
191
+ }
192
+ case 'spot': {
193
+ return isPrivateTopic ? exports.WS_KEY_MAP.spotPrivate : exports.WS_KEY_MAP.spotPublic;
194
+ }
195
+ case 'spotv3': {
196
+ return isPrivateTopic
197
+ ? exports.WS_KEY_MAP.spotV3Private
198
+ : exports.WS_KEY_MAP.spotV3Public;
199
+ }
200
+ case 'usdcOption': {
201
+ return isPrivateTopic
202
+ ? exports.WS_KEY_MAP.usdcOptionPrivate
203
+ : exports.WS_KEY_MAP.usdcOptionPublic;
204
+ }
205
+ case 'usdcPerp': {
206
+ return isPrivateTopic
207
+ ? exports.WS_KEY_MAP.usdcPerpPrivate
208
+ : exports.WS_KEY_MAP.usdcPerpPublic;
209
+ }
210
+ case 'unifiedOption': {
211
+ return isPrivateTopic
212
+ ? exports.WS_KEY_MAP.unifiedPrivate
213
+ : exports.WS_KEY_MAP.unifiedOptionPublic;
214
+ }
215
+ case 'unifiedPerp': {
216
+ if (isPrivateTopic) {
217
+ return exports.WS_KEY_MAP.unifiedPrivate;
218
+ }
219
+ const upperTopic = topic.toUpperCase();
220
+ if (upperTopic.indexOf('USDT') !== -1) {
221
+ return exports.WS_KEY_MAP.unifiedPerpUSDTPublic;
222
+ }
223
+ if (upperTopic.indexOf('USDC') !== -1) {
224
+ return exports.WS_KEY_MAP.unifiedPerpUSDCPublic;
225
+ }
226
+ throw new Error(`Failed to determine wskey for unified perps topic: "${topic}`);
227
+ }
228
+ default: {
229
+ throw neverGuard(market, `getWsKeyForTopic(): Unhandled market`);
230
+ }
19
231
  }
20
- return exports.wsKeyLinearPublic;
21
232
  }
22
- exports.getLinearWsKeyForTopic = getLinearWsKeyForTopic;
23
- function getSpotWsKeyForTopic(topic) {
24
- const privateLinearTopics = [
25
- 'position',
26
- 'execution',
27
- 'order',
28
- 'stop_order',
29
- 'outboundAccountInfo',
30
- 'executionReport',
31
- 'ticketInfo',
32
- ];
33
- if (privateLinearTopics.includes(topic)) {
34
- return exports.wsKeySpotPrivate;
233
+ exports.getWsKeyForTopic = getWsKeyForTopic;
234
+ function getUsdcWsKeyForTopic(topic, subGroup) {
235
+ const isPrivateTopic = PRIVATE_TOPICS.includes(topic);
236
+ if (subGroup === 'option') {
237
+ return isPrivateTopic
238
+ ? exports.WS_KEY_MAP.usdcOptionPrivate
239
+ : exports.WS_KEY_MAP.usdcOptionPublic;
35
240
  }
36
- return exports.wsKeySpotPublic;
241
+ return isPrivateTopic
242
+ ? exports.WS_KEY_MAP.usdcOptionPrivate
243
+ : exports.WS_KEY_MAP.usdcOptionPublic;
244
+ // return isPrivateTopic
245
+ // ? WS_KEY_MAP.usdcPerpPrivate
246
+ // : WS_KEY_MAP.usdcPerpPublic;
37
247
  }
38
- exports.getSpotWsKeyForTopic = getSpotWsKeyForTopic;
248
+ exports.getUsdcWsKeyForTopic = getUsdcWsKeyForTopic;
249
+ exports.WS_ERROR_ENUM = {
250
+ NOT_AUTHENTICATED_SPOT_V3: '-1004',
251
+ API_ERROR_GENERIC: '10001',
252
+ API_SIGN_AUTH_FAILED: '10003',
253
+ USDC_OPTION_AUTH_FAILED: '3303006',
254
+ };
255
+ function neverGuard(x, msg) {
256
+ return new Error(`Unhandled value exception "x", ${msg}`);
257
+ }
258
+ exports.neverGuard = neverGuard;
39
259
  //# sourceMappingURL=websocket-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-util.js","sourceRoot":"","sources":["../../src/util/websocket-util.ts"],"names":[],"mappings":";;;AAEa,QAAA,YAAY,GAAG,SAAS,CAAC;AACzB,QAAA,kBAAkB,GAAG,eAAe,CAAC;AACrC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AACnC,QAAA,gBAAgB,GAAG,aAAa,CAAC;AACjC,QAAA,eAAe,GAAG,YAAY,CAAC;AAE5C,SAAgB,sBAAsB,CAAC,KAAa;IAClD,MAAM,mBAAmB,GAAG;QAC1B,UAAU;QACV,WAAW;QACX,OAAO;QACP,YAAY;QACZ,QAAQ;KACT,CAAC;IACF,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACvC,OAAO,0BAAkB,CAAC;KAC3B;IAED,OAAO,yBAAiB,CAAC;AAC3B,CAAC;AAbD,wDAaC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAChD,MAAM,mBAAmB,GAAG;QAC1B,UAAU;QACV,WAAW;QACX,OAAO;QACP,YAAY;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,YAAY;KACb,CAAC;IAEF,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACvC,OAAO,wBAAgB,CAAC;KACzB;IAED,OAAO,uBAAe,CAAC;AACzB,CAAC;AAhBD,oDAgBC"}
1
+ {"version":3,"file":"websocket-util.js","sourceRoot":"","sources":["../../src/util/websocket-util.ts"],"names":[],"mappings":"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"}