@0xmonaco/core 0.2.1 → 0.2.3

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 (44) hide show
  1. package/dist/api/market/api.d.ts +2 -2
  2. package/dist/api/market/api.d.ts.map +1 -1
  3. package/dist/api/market/api.js.map +1 -1
  4. package/dist/api/trading/api.d.ts +19 -2
  5. package/dist/api/trading/api.d.ts.map +1 -1
  6. package/dist/api/trading/api.js +20 -3
  7. package/dist/api/trading/api.js.map +1 -1
  8. package/dist/api/vault/api.d.ts +25 -42
  9. package/dist/api/vault/api.d.ts.map +1 -1
  10. package/dist/api/vault/api.js +65 -211
  11. package/dist/api/vault/api.js.map +1 -1
  12. package/dist/api/websocket/base-ws-client.d.ts +8 -0
  13. package/dist/api/websocket/base-ws-client.d.ts.map +1 -1
  14. package/dist/api/websocket/base-ws-client.js +25 -6
  15. package/dist/api/websocket/base-ws-client.js.map +1 -1
  16. package/dist/api/websocket/{ohlcv-ws-client.d.ts → clients/ohlcv-ws-client.d.ts} +18 -13
  17. package/dist/api/websocket/clients/ohlcv-ws-client.d.ts.map +1 -0
  18. package/dist/api/websocket/clients/ohlcv-ws-client.js +126 -0
  19. package/dist/api/websocket/clients/ohlcv-ws-client.js.map +1 -0
  20. package/dist/api/websocket/clients/orderbook-ws-client.d.ts +46 -0
  21. package/dist/api/websocket/clients/orderbook-ws-client.d.ts.map +1 -0
  22. package/dist/api/websocket/clients/orderbook-ws-client.js +131 -0
  23. package/dist/api/websocket/clients/orderbook-ws-client.js.map +1 -0
  24. package/dist/api/websocket/{orders-ws-client.d.ts → clients/orders-ws-client.d.ts} +17 -13
  25. package/dist/api/websocket/clients/orders-ws-client.d.ts.map +1 -0
  26. package/dist/api/websocket/clients/orders-ws-client.js +124 -0
  27. package/dist/api/websocket/clients/orders-ws-client.js.map +1 -0
  28. package/dist/api/websocket/index.d.ts +4 -3
  29. package/dist/api/websocket/index.d.ts.map +1 -1
  30. package/dist/api/websocket/index.js +4 -3
  31. package/dist/api/websocket/index.js.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/sdk.d.ts +2 -1
  35. package/dist/sdk.d.ts.map +1 -1
  36. package/dist/sdk.js +6 -1
  37. package/dist/sdk.js.map +1 -1
  38. package/package.json +5 -5
  39. package/dist/api/websocket/ohlcv-ws-client.d.ts.map +0 -1
  40. package/dist/api/websocket/ohlcv-ws-client.js +0 -123
  41. package/dist/api/websocket/ohlcv-ws-client.js.map +0 -1
  42. package/dist/api/websocket/orders-ws-client.d.ts.map +0 -1
  43. package/dist/api/websocket/orders-ws-client.js +0 -131
  44. package/dist/api/websocket/orders-ws-client.js.map +0 -1
@@ -27,10 +27,11 @@ export class BaseWebSocketClientImpl {
27
27
  async connect() {
28
28
  try {
29
29
  if (this.ws) {
30
- this.ws.close(1000, 'Reconnecting');
30
+ this.ws.close(1000, "Reconnecting");
31
31
  this.ws = null;
32
32
  }
33
- if (this.connectionStatus === "connecting" || this.connectionStatus === "connected") {
33
+ if (this.connectionStatus === "connecting" ||
34
+ this.connectionStatus === "connected") {
34
35
  return;
35
36
  }
36
37
  if (!this.config.accessToken?.trim()) {
@@ -86,11 +87,12 @@ export class BaseWebSocketClientImpl {
86
87
  /** Start heartbeat ping/pong */
87
88
  startHeartbeat() {
88
89
  this.heartbeatInterval = setInterval(() => {
89
- if (Date.now() - this.lastPong > BaseWebSocketClientImpl.HEARTBEAT_TIMEOUT) {
90
+ if (Date.now() - this.lastPong >
91
+ BaseWebSocketClientImpl.HEARTBEAT_TIMEOUT) {
90
92
  this.ws?.close();
91
93
  return;
92
94
  }
93
- this.ws?.send(JSON.stringify({ type: 'Ping' }));
95
+ this.ws?.send(JSON.stringify({ type: "Ping" }));
94
96
  }, BaseWebSocketClientImpl.HEARTBEAT_INTERVAL);
95
97
  }
96
98
  /** Stop heartbeat interval */
@@ -109,20 +111,37 @@ export class BaseWebSocketClientImpl {
109
111
  }
110
112
  /** Handle incoming WebSocket messages - can be overridden by subclasses */
111
113
  handleMessage(message) {
112
- if (message.type === 'Pong') {
114
+ if (message.type === "Pong") {
113
115
  this.lastPong = Date.now();
114
116
  return;
115
117
  }
116
118
  // Basic message handling - extend in subclasses
117
119
  console.log("WebSocket message received:", message);
118
120
  }
121
+ /**
122
+ * Helper method to validate WebSocket event messages using WebSocketChannel enum
123
+ * @param message - The message to validate
124
+ * @param channelType - The expected channel type (WebSocketChannel.Orders, WebSocketChannel.Orderbook, etc.)
125
+ * @returns True if the message is a valid event with the specified channel type
126
+ */
127
+ isEventMessage(message, channelType) {
128
+ if (!message || typeof message !== "object") {
129
+ return false;
130
+ }
131
+ return (message.type === "Event" &&
132
+ message.channel &&
133
+ typeof message.channel === "string" &&
134
+ message.channel.startsWith(`${channelType}:`) &&
135
+ message.data &&
136
+ typeof message.data === "object");
137
+ }
119
138
  /** Create WebSocket connection with event handlers */
120
139
  async createConnection() {
121
140
  return new Promise((resolve, reject) => {
122
141
  try {
123
142
  const url = new URL(this.config.wsUrl);
124
143
  if (this.config.accessToken) {
125
- url.searchParams.set('token', this.config.accessToken);
144
+ url.searchParams.set("token", this.config.accessToken);
126
145
  }
127
146
  this.ws = new WebSocket(url.toString());
128
147
  const connectionTimeout = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"base-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAyBlC,YAAY,MAAuB;QAlBnC,4BAA4B;QAClB,OAAE,GAAqB,IAAI,CAAC;QAE5B,qBAAgB,GAAqB,cAAc,CAAC;QAE9D,0BAA0B;QAChB,sBAAiB,GAAG,CAAC,CAAC;QACtB,mBAAc,GAA0B,IAAI,CAAC;QAEvD,mBAAmB;QACT,iBAAY,GAAU,EAAE,CAAC;QACzB,oBAAe,GAAG,KAAK,CAAC;QAElC,uBAAuB;QACb,sBAAiB,GAA0B,IAAI,CAAC;QAChD,aAAQ,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAItC,IAAI,CAAC,MAAM,GAAG;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,CAAC;YACvB,WAAW,EAAE,EAAE;YACf,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;gBACpF,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;YAC3G,CAAC;YAED,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;YACrC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEhC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,oCAAoC;IACpC,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,mCAAmC;IACnC,WAAW;QACT,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC;IAC/C,CAAC;IAED,8CAA8C;IAC9C,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,IAAS;QACZ,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,gCAAgC;IACtB,iBAAiB;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,gCAAgC;IACtB,cAAc;QACtB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,iBAAiB,EAAE,CAAC;gBAC3E,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC;IAED,8BAA8B;IACpB,aAAa;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED,4CAA4C;IAClC,qBAAqB,CAAC,KAAU;QACxC,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,2EAA2E;IACjE,aAAa,CAAC,OAAY;QAClC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,sDAAsD;IAC5C,KAAK,CAAC,gBAAgB;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzD,CAAC;gBAED,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAExC,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;wBAC3D,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;gBAE/C,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;oBACpB,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;oBACpC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC9B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC1B,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;oBACvC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;oBAErB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;wBACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC;wBAChE,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;wBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;oBACrB,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;wBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC,CAAC;YAEJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IACxC,iBAAiB;QACzB,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,EACnD,uBAAuB,CAAC,mBAAmB,CAC5C,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;oBACrC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAEvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC;oBACtE,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvB,CAAC;IAED,8BAA8B;IACpB,kBAAkB;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;;AApPD,uBAAuB;AACG,0CAAkB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa;AACzC,0CAAkB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa;AACzC,yCAAiB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa;AACxC,2CAAmB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa"}
1
+ {"version":3,"file":"base-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAwBlC,YAAY,MAAuB;QAjBnC,4BAA4B;QAClB,OAAE,GAAqB,IAAI,CAAC;QAE5B,qBAAgB,GAAqB,cAAc,CAAC;QAE9D,0BAA0B;QAChB,sBAAiB,GAAG,CAAC,CAAC;QACtB,mBAAc,GAA0B,IAAI,CAAC;QAEvD,mBAAmB;QACT,iBAAY,GAAU,EAAE,CAAC;QACzB,oBAAe,GAAG,KAAK,CAAC;QAElC,uBAAuB;QACb,sBAAiB,GAA0B,IAAI,CAAC;QAChD,aAAQ,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAGtC,IAAI,CAAC,MAAM,GAAG;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,CAAC;YACvB,WAAW,EAAE,EAAE;YACf,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,IACE,IAAI,CAAC,gBAAgB,KAAK,YAAY;gBACtC,IAAI,CAAC,gBAAgB,KAAK,WAAW,EACrC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;YACrC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,oCAAoC;IACpC,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,mCAAmC;IACnC,WAAW;QACT,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC;IAC/C,CAAC;IAED,8CAA8C;IAC9C,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,IAAS;QACZ,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,gCAAgC;IACtB,iBAAiB;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,gCAAgC;IACtB,cAAc;QACtB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,IACE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ;gBAC1B,uBAAuB,CAAC,iBAAiB,EACzC,CAAC;gBACD,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC;IAED,8BAA8B;IACpB,aAAa;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED,4CAA4C;IAClC,qBAAqB,CAAC,KAAU;QACxC,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,2EAA2E;IACjE,aAAa,CAAC,OAAY;QAClC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACO,cAAc,CACtB,OAAY,EACZ,WAA6B;QAE7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,OAAO;YACxB,OAAO,CAAC,OAAO;YACf,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YACnC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC;YAC7C,OAAO,CAAC,IAAI;YACZ,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CACjC,CAAC;IACJ,CAAC;IAED,sDAAsD;IAC5C,KAAK,CAAC,gBAAgB;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzD,CAAC;gBAED,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAExC,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;wBAC3D,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;gBAE/C,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;oBACpB,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;oBACpC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC9B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC1B,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;oBACvC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;oBAErB,IACE,IAAI,CAAC,MAAM,CAAC,aAAa;wBACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC;wBAChE,KAAK,CAAC,IAAI,KAAK,IAAI,EACnB,CAAC;wBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;oBACrB,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;wBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IACxC,iBAAiB;QACzB,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,EACnD,uBAAuB,CAAC,mBAAmB,CAC5C,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;oBACrC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC;oBACtE,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvB,CAAC;IAED,8BAA8B;IACpB,kBAAkB;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;;AAlRD,uBAAuB;AACG,0CAAkB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa;AACzC,0CAAkB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa;AACzC,yCAAiB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa;AACxC,2CAAmB,GAAG,KAAK,AAAR,CAAS,CAAC,aAAa"}
@@ -4,8 +4,8 @@
4
4
  * Specialized WebSocket client for OHLCV (Open, High, Low, Close, Volume) candlestick data events.
5
5
  * Extends the base WebSocket client with OHLCV-specific functionality.
6
6
  */
7
- import type { OHLCVWebSocketClient, WebSocketConfig, OHLCVEvent } from "@0xmonaco/types";
8
- import { BaseWebSocketClientImpl } from "./base-ws-client";
7
+ import { OHLCVWebSocketClient, WebSocketConfig, TradingMode, OHLCVEvent, Interval } from "@0xmonaco/types";
8
+ import { BaseWebSocketClientImpl } from "../base-ws-client";
9
9
  /**
10
10
  * OHLCV-specific WebSocket client implementation
11
11
  */
@@ -15,34 +15,39 @@ export declare class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl im
15
15
  /**
16
16
  * Subscribe to OHLCV (candlestick) updates for a specific trading pair, mode, and interval.
17
17
  *
18
- * @param symbol - Trading pair symbol (e.g., "BTC-USDC")
19
- * @param tradingMode - Trading mode ("SPOT" or "MARGIN")
18
+ * @param symbol - Trading pair symbol (e.g., "BTC/USDC")
19
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
20
20
  * @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
21
21
  * @param callback - Function to handle incoming OHLCV events
22
22
  *
23
23
  * @example
24
24
  * ```typescript
25
- * ohlcvWS.subscribeToOHLCV("BTC-USDC", "SPOT", "1m", (event) => {
26
- * console.log("New OHLCV data:", event.candlestick);
25
+ * ohlcvWS.subscribeToOHLCV("BTC/USDC", TradingMode.SPOT, "1m", (event) => {
26
+ * console.log("New OHLCV data:", event.candlestick.o, event.candlestick.c);
27
27
  * });
28
28
  * ```
29
29
  */
30
- subscribeToOHLCV(symbol: string, tradingMode: string, interval: string, callback: (event: OHLCVEvent) => void): void;
30
+ subscribeToOHLCV(symbol: string, tradingMode: TradingMode, interval: Interval, callback: (event: OHLCVEvent) => void): void;
31
31
  /**
32
32
  * Unsubscribe from OHLCV (candlestick) updates.
33
33
  *
34
- * @param symbol - Trading pair symbol (e.g., "BTC-USDC")
35
- * @param tradingMode - Trading mode ("SPOT" or "MARGIN")
34
+ * @param symbol - Trading pair symbol (e.g., "BTC/USDC")
35
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
36
36
  * @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * ohlcvWS.unsubscribeFromOHLCV("BTC/USDC", TradingMode.SPOT, "1m");
41
+ * ```
37
42
  */
38
- unsubscribeFromOHLCV(symbol: string, tradingMode: string, interval: string): void;
39
- /** Handle incoming WebSocket messages with OHLCV-specific logic */
43
+ unsubscribeFromOHLCV(symbol: string, tradingMode: TradingMode, interval: Interval): void;
44
+ /** Override message handling to process OHLCV-specific events */
40
45
  protected handleMessage(message: any): void;
41
46
  /** Check if message is an OHLCV event from the backend */
42
47
  private isOHLCVEvent;
43
48
  /** Handle OHLCV-specific events from the backend */
44
49
  private handleOHLCVEvent;
45
- /** Clean up OHLCV handlers on disconnect */
46
- disconnect(): void;
50
+ /** Clean up resources when disconnecting */
51
+ protected cleanup(): void;
47
52
  }
48
53
  //# sourceMappingURL=ohlcv-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlcv-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,oBAAoB,EACpB,eAAe,EAEf,WAAW,EACX,UAAU,EACV,QAAQ,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,qBAAa,wBACX,SAAQ,uBACR,YAAW,oBAAoB;IAG/B,OAAO,CAAC,aAAa,CAAkD;gBAE3D,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GACpC,IAAI;IAaP;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,IAAI;IAaP,iEAAiE;IACjE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAS3C,0DAA0D;IAC1D,OAAO,CAAC,YAAY;IAIpB,oDAAoD;IACpD,OAAO,CAAC,gBAAgB;IAkDxB,4CAA4C;IAC5C,SAAS,CAAC,OAAO,IAAI,IAAI;CAG1B"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * OHLCV WebSocket Client Implementation
3
+ *
4
+ * Specialized WebSocket client for OHLCV (Open, High, Low, Close, Volume) candlestick data events.
5
+ * Extends the base WebSocket client with OHLCV-specific functionality.
6
+ */
7
+ import { WebSocketChannel, } from "@0xmonaco/types";
8
+ import { BaseWebSocketClientImpl } from "../base-ws-client";
9
+ /**
10
+ * OHLCV-specific WebSocket client implementation
11
+ */
12
+ export class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl {
13
+ constructor(config) {
14
+ super(config);
15
+ // Map to store OHLCV event handlers by subscription key
16
+ this.ohlcvHandlers = new Map();
17
+ }
18
+ /**
19
+ * Subscribe to OHLCV (candlestick) updates for a specific trading pair, mode, and interval.
20
+ *
21
+ * @param symbol - Trading pair symbol (e.g., "BTC/USDC")
22
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
23
+ * @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
24
+ * @param callback - Function to handle incoming OHLCV events
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * ohlcvWS.subscribeToOHLCV("BTC/USDC", TradingMode.SPOT, "1m", (event) => {
29
+ * console.log("New OHLCV data:", event.candlestick.o, event.candlestick.c);
30
+ * });
31
+ * ```
32
+ */
33
+ subscribeToOHLCV(symbol, tradingMode, interval, callback) {
34
+ const channel = `ohlcv:${symbol}:${tradingMode}:${interval}`;
35
+ const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
36
+ this.ohlcvHandlers.set(subscriptionKey, callback);
37
+ // Send subscription message using the backend's channel format
38
+ this.send({
39
+ type: "Subscribe",
40
+ channels: [channel],
41
+ });
42
+ }
43
+ /**
44
+ * Unsubscribe from OHLCV (candlestick) updates.
45
+ *
46
+ * @param symbol - Trading pair symbol (e.g., "BTC/USDC")
47
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
48
+ * @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * ohlcvWS.unsubscribeFromOHLCV("BTC/USDC", TradingMode.SPOT, "1m");
53
+ * ```
54
+ */
55
+ unsubscribeFromOHLCV(symbol, tradingMode, interval) {
56
+ const channel = `ohlcv:${symbol}:${tradingMode}:${interval}`;
57
+ const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
58
+ this.ohlcvHandlers.delete(subscriptionKey);
59
+ // Send unsubscription message
60
+ this.send({
61
+ type: "Unsubscribe",
62
+ channels: [channel],
63
+ });
64
+ }
65
+ /** Override message handling to process OHLCV-specific events */
66
+ handleMessage(message) {
67
+ super.handleMessage(message);
68
+ // Handle OHLCV-specific Event messages
69
+ if (this.isOHLCVEvent(message)) {
70
+ this.handleOHLCVEvent(message);
71
+ }
72
+ }
73
+ /** Check if message is an OHLCV event from the backend */
74
+ isOHLCVEvent(message) {
75
+ return this.isEventMessage(message, WebSocketChannel.OHLCV);
76
+ }
77
+ /** Handle OHLCV-specific events from the backend */
78
+ handleOHLCVEvent(event) {
79
+ try {
80
+ const backendEvent = event.data; // Parent (has pair, interval, trading_mode)
81
+ const ohlcvData = backendEvent.data; // Nested (has open, high, low, close)
82
+ const symbol = backendEvent.pair;
83
+ const tradingMode = backendEvent.trading_mode;
84
+ const interval = backendEvent.interval;
85
+ if (!symbol || !tradingMode || !interval) {
86
+ console.warn("Missing required OHLCV event data:", backendEvent);
87
+ return;
88
+ }
89
+ const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
90
+ // Find the appropriate handler
91
+ const handler = this.ohlcvHandlers.get(subscriptionKey);
92
+ if (handler) {
93
+ // WebSocket events should match the same structure as REST API responses
94
+ const ohlcvEvent = {
95
+ symbol: symbol,
96
+ tradingMode: tradingMode,
97
+ interval: interval,
98
+ candlestick: {
99
+ T: ohlcvData.T || 0, // Candle start time (ms)
100
+ t: ohlcvData.t || 0, // Last trade time (ms)
101
+ o: ohlcvData.o || "0", // Open price
102
+ h: ohlcvData.h || "0", // High price
103
+ l: ohlcvData.l || "0", // Low price
104
+ c: ohlcvData.c || "0", // Close price
105
+ v: ohlcvData.v || "0", // Volume (base token)
106
+ s: symbol, // Symbol from backend data
107
+ i: interval, // Interval from backend data
108
+ n: ohlcvData.n || 0, // Number of trades
109
+ },
110
+ };
111
+ handler(ohlcvEvent);
112
+ }
113
+ else {
114
+ console.warn(`No handler found for OHLCV event: ${subscriptionKey}`, event);
115
+ }
116
+ }
117
+ catch (error) {
118
+ console.error("Error handling OHLCV event:", error, event);
119
+ }
120
+ }
121
+ /** Clean up resources when disconnecting */
122
+ cleanup() {
123
+ this.ohlcvHandlers.clear();
124
+ }
125
+ }
126
+ //# sourceMappingURL=ohlcv-ws-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlcv-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Orderbook WebSocket Client Implementation
3
+ *
4
+ * Specialized WebSocket client for orderbook-related events and operations.
5
+ * Extends the base WebSocket client with orderbook-specific functionality.
6
+ */
7
+ import { OrderbookWebSocketClient, WebSocketConfig, TradingMode, OrderbookEvent } from "@0xmonaco/types";
8
+ import { BaseWebSocketClientImpl } from "../base-ws-client";
9
+ /**
10
+ * Orderbook-specific WebSocket client implementation
11
+ */
12
+ export declare class OrderbookWebSocketClientImpl extends BaseWebSocketClientImpl implements OrderbookWebSocketClient {
13
+ private orderbookHandlers;
14
+ constructor(config: WebSocketConfig);
15
+ /**
16
+ * Subscribe to orderbook events for a specific market and trading mode.
17
+ *
18
+ * @param market - Trading pair symbol (e.g., "BTC/USDC")
19
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
20
+ * @param callback - Function to handle incoming orderbook events
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * orderbookWS.subscribeToOrderbookEvents("BTC/USDC", TradingMode.SPOT, (event) => {
25
+ * console.log("Orderbook update:", event.bids.length, "bids", event.asks.length, "asks");
26
+ * });
27
+ * ```
28
+ */
29
+ subscribeToOrderbookEvents(market: string, tradingMode: TradingMode, callback: (event: OrderbookEvent) => void): void;
30
+ /**
31
+ * Unsubscribe from orderbook events for a specific market and trading mode.
32
+ *
33
+ * @param market - Trading pair symbol (e.g., "BTC/USDC")
34
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
35
+ */
36
+ unsubscribeFromOrderbookEvents(market: string, tradingMode: TradingMode): void;
37
+ /** Handle incoming WebSocket messages with orderbook-specific logic */
38
+ protected handleMessage(message: any): void;
39
+ /** Check if message is an orderbook event from the backend */
40
+ private isOrderbookEvent;
41
+ /** Handle orderbook-specific events from the backend */
42
+ private handleOrderbookEvent;
43
+ /** Clean up resources when disconnecting */
44
+ protected cleanup(): void;
45
+ }
46
+ //# sourceMappingURL=orderbook-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderbook-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orderbook-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,wBAAwB,EACxB,eAAe,EAEf,WAAW,EACX,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,qBAAa,4BACX,SAAQ,uBACR,YAAW,wBAAwB;IAEnC,OAAO,CAAC,iBAAiB,CACb;gBAEA,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;OAaG;IACH,0BAA0B,CACxB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GACxC,IAAI;IAaP;;;;;OAKG;IACH,8BAA8B,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,IAAI;IAaP,uEAAuE;IACvE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAU3C,8DAA8D;IAC9D,OAAO,CAAC,gBAAgB;IAIxB,wDAAwD;IACxD,OAAO,CAAC,oBAAoB;IAgE5B,4CAA4C;IAC5C,SAAS,CAAC,OAAO,IAAI,IAAI;CAG1B"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Orderbook WebSocket Client Implementation
3
+ *
4
+ * Specialized WebSocket client for orderbook-related events and operations.
5
+ * Extends the base WebSocket client with orderbook-specific functionality.
6
+ */
7
+ import { WebSocketChannel, } from "@0xmonaco/types";
8
+ import { BaseWebSocketClientImpl } from "../base-ws-client";
9
+ /**
10
+ * Orderbook-specific WebSocket client implementation
11
+ */
12
+ export class OrderbookWebSocketClientImpl extends BaseWebSocketClientImpl {
13
+ constructor(config) {
14
+ super(config);
15
+ this.orderbookHandlers = new Map();
16
+ }
17
+ /**
18
+ * Subscribe to orderbook events for a specific market and trading mode.
19
+ *
20
+ * @param market - Trading pair symbol (e.g., "BTC/USDC")
21
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
22
+ * @param callback - Function to handle incoming orderbook events
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * orderbookWS.subscribeToOrderbookEvents("BTC/USDC", TradingMode.SPOT, (event) => {
27
+ * console.log("Orderbook update:", event.bids.length, "bids", event.asks.length, "asks");
28
+ * });
29
+ * ```
30
+ */
31
+ subscribeToOrderbookEvents(market, tradingMode, callback) {
32
+ const channel = `orderbook:${market}:${tradingMode}`;
33
+ const subscriptionKey = `${market.toUpperCase()}-${tradingMode.toUpperCase()}`;
34
+ this.orderbookHandlers.set(subscriptionKey, callback);
35
+ // Send subscription message using backend's channel format
36
+ this.send({
37
+ type: "Subscribe",
38
+ channels: [channel],
39
+ });
40
+ }
41
+ /**
42
+ * Unsubscribe from orderbook events for a specific market and trading mode.
43
+ *
44
+ * @param market - Trading pair symbol (e.g., "BTC/USDC")
45
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
46
+ */
47
+ unsubscribeFromOrderbookEvents(market, tradingMode) {
48
+ const channel = `orderbook:${market}:${tradingMode}`;
49
+ const subscriptionKey = `${market.toUpperCase()}-${tradingMode.toUpperCase()}`;
50
+ this.orderbookHandlers.delete(subscriptionKey);
51
+ // Send unsubscription message
52
+ this.send({
53
+ type: "Unsubscribe",
54
+ channels: [channel],
55
+ });
56
+ }
57
+ /** Handle incoming WebSocket messages with orderbook-specific logic */
58
+ handleMessage(message) {
59
+ // Handle base messages first (PONG, etc.)
60
+ super.handleMessage(message);
61
+ // Handle orderbook-specific Event messages
62
+ if (this.isOrderbookEvent(message)) {
63
+ this.handleOrderbookEvent(message);
64
+ }
65
+ }
66
+ /** Check if message is an orderbook event from the backend */
67
+ isOrderbookEvent(message) {
68
+ return this.isEventMessage(message, WebSocketChannel.Orderbook);
69
+ }
70
+ /** Handle orderbook-specific events from the backend */
71
+ handleOrderbookEvent(event) {
72
+ try {
73
+ const backendEvent = event.data; // Parent (has pair, trading_mode)
74
+ const orderbookData = backendEvent.data; // Nested (has bids, asks, etc.)
75
+ const symbol = backendEvent.pair;
76
+ const tradingMode = backendEvent.trading_mode;
77
+ if (!symbol || !tradingMode) {
78
+ console.warn("Missing required orderbook event data:", backendEvent);
79
+ return;
80
+ }
81
+ const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}`;
82
+ const handler = this.orderbookHandlers.get(subscriptionKey);
83
+ if (handler) {
84
+ // Backend orderbook event structure (matching matching_engine::types::OrderbookUpdateEvent)
85
+ const transformedEvent = {
86
+ symbol: symbol,
87
+ tradingMode: tradingMode,
88
+ bids: (orderbookData?.bids || []).map((level) => ({
89
+ price: level.price,
90
+ quantity: level.quantity,
91
+ orderCount: level.order_count || 0,
92
+ })),
93
+ asks: (orderbookData?.asks || []).map((level) => ({
94
+ price: level.price,
95
+ quantity: level.quantity,
96
+ orderCount: level.order_count || 0,
97
+ })),
98
+ bestBid: orderbookData?.best_bid,
99
+ bestAsk: orderbookData?.best_ask,
100
+ bidVolume: orderbookData?.bid_volume || "0",
101
+ askVolume: orderbookData?.ask_volume || "0",
102
+ priceChange: orderbookData?.price_change
103
+ ? {
104
+ side: orderbookData.data.price_change.side,
105
+ oldPrice: orderbookData.data.price_change.old_price,
106
+ newPrice: orderbookData.data.price_change.new_price,
107
+ levelRemoved: orderbookData.data.price_change.level_removed || false,
108
+ levelAdded: orderbookData.data.price_change.level_added || false,
109
+ }
110
+ : undefined,
111
+ baseDecimals: backendEvent.base_decimals || 0,
112
+ quoteDecimals: backendEvent.quote_decimals || 0,
113
+ timestamp: backendEvent.timestamp || new Date().toISOString(),
114
+ sequence: backendEvent.sequence_number || 0,
115
+ };
116
+ handler(transformedEvent);
117
+ }
118
+ else {
119
+ console.debug(`No handler registered for orderbook subscription: ${subscriptionKey}`);
120
+ }
121
+ }
122
+ catch (error) {
123
+ console.error("Error handling orderbook event:", error, event);
124
+ }
125
+ }
126
+ /** Clean up resources when disconnecting */
127
+ cleanup() {
128
+ this.orderbookHandlers.clear();
129
+ }
130
+ }
131
+ //# sourceMappingURL=orderbook-ws-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderbook-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orderbook-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAGL,gBAAgB,GAGjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,4BACX,SAAQ,uBAAuB;IAM/B,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QAJR,sBAAiB,GACvB,IAAI,GAAG,EAAE,CAAC;IAIZ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,0BAA0B,CACxB,MAAc,EACd,WAAwB,EACxB,QAAyC;QAEzC,MAAM,OAAO,GAAG,aAAa,MAAM,IAAI,WAAW,EAAE,CAAC;QACrD,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;QAE/E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEtD,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,8BAA8B,CAC5B,MAAc,EACd,WAAwB;QAExB,MAAM,OAAO,GAAG,aAAa,MAAM,IAAI,WAAW,EAAE,CAAC;QACrD,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;QAE/E,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAE/C,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAED,uEAAuE;IAC7D,aAAa,CAAC,OAAY;QAClC,0CAA0C;QAC1C,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE7B,2CAA2C;QAC3C,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,8DAA8D;IACtD,gBAAgB,CAAC,OAAY;QACnC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,wDAAwD;IAChD,oBAAoB,CAAC,KAAU;QACrC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAM,kCAAkC;YACxE,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAE,gCAAgC;YAE1E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC;YAE9C,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,YAAY,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAE/E,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAE5D,IAAI,OAAO,EAAE,CAAC;gBACZ,4FAA4F;gBAC5F,MAAM,gBAAgB,GAAmB;oBACvC,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,WAA0B;oBACvC,IAAI,EAAE,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;wBACrD,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,UAAU,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC;qBACnC,CAAC,CAAC;oBACH,IAAI,EAAE,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;wBACrD,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,UAAU,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC;qBACnC,CAAC,CAAC;oBACH,OAAO,EAAE,aAAa,EAAE,QAAQ;oBAChC,OAAO,EAAE,aAAa,EAAE,QAAQ;oBAChC,SAAS,EAAE,aAAa,EAAE,UAAU,IAAI,GAAG;oBAC3C,SAAS,EAAE,aAAa,EAAE,UAAU,IAAI,GAAG;oBAC3C,WAAW,EAAE,aAAa,EAAE,YAAY;wBACtC,CAAC,CAAC;4BACE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI;4BAC1C,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS;4BACnD,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS;4BACnD,YAAY,EACV,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,KAAK;4BACxD,UAAU,EACR,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,KAAK;yBACvD;wBACH,CAAC,CAAC,SAAS;oBACb,YAAY,EAAE,YAAY,CAAC,aAAa,IAAI,CAAC;oBAC7C,aAAa,EAAE,YAAY,CAAC,cAAc,IAAI,CAAC;oBAC/C,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC7D,QAAQ,EAAE,YAAY,CAAC,eAAe,IAAI,CAAC;iBAC5C,CAAC;gBAEF,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,qDAAqD,eAAe,EAAE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,4CAA4C;IAClC,OAAO;QACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -4,9 +4,8 @@
4
4
  * Specialized WebSocket client for order-related events and operations.
5
5
  * Extends the base WebSocket client with order-specific functionality.
6
6
  */
7
- import type { OrdersWebSocketClient, WebSocketConfig } from "@0xmonaco/types";
8
- import { BaseWebSocketClientImpl } from "./base-ws-client";
9
- import type { OrderEvent } from "@0xmonaco/types";
7
+ import { OrdersWebSocketClient, WebSocketConfig, TradingMode, OrderEvent } from "@0xmonaco/types";
8
+ import { BaseWebSocketClientImpl } from "../base-ws-client";
10
9
  /**
11
10
  * Orders-specific WebSocket client implementation
12
11
  */
@@ -16,32 +15,37 @@ export declare class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl i
16
15
  /**
17
16
  * Subscribe to order events for a specific market and trading mode.
18
17
  *
19
- * @param market - Trading pair symbol (e.g., "BTC-USDC")
20
- * @param tradingMode - Trading mode ("SPOT" or "MARGIN")
18
+ * @param market - Trading pair symbol (e.g., "BTC/USDC")
19
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
21
20
  * @param callback - Function to handle incoming order events
22
21
  *
23
22
  * @example
24
23
  * ```typescript
25
- * ordersWS.subscribeToOrderEvents("BTC-USDC", "SPOT", (event) => {
24
+ * ordersWS.subscribeToOrderEvents("BTC/USDC", TradingMode.SPOT, (event) => {
26
25
  * console.log("Order event:", event.eventType);
27
26
  * });
28
27
  * ```
29
28
  */
30
- subscribeToOrderEvents(market: string, tradingMode: string, callback: (event: OrderEvent) => void): void;
29
+ subscribeToOrderEvents(market: string, tradingMode: TradingMode, callback: (event: OrderEvent) => void): void;
31
30
  /**
32
31
  * Unsubscribe from order events for a specific market and trading mode.
33
32
  *
34
- * @param market - Trading pair symbol (e.g., "BTC-USDC")
35
- * @param tradingMode - Trading mode ("SPOT" or "MARGIN")
33
+ * @param market - Trading pair symbol (e.g., "BTC/USDC")
34
+ * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * ordersWS.unsubscribeFromOrderEvents("BTC/USDC", TradingMode.SPOT);
39
+ * ```
36
40
  */
37
- unsubscribeFromOrderEvents(market: string, tradingMode: string): void;
38
- /** Handle incoming WebSocket messages with order-specific logic */
41
+ unsubscribeFromOrderEvents(market: string, tradingMode: TradingMode): void;
42
+ /** Override message handling to process order-specific events */
39
43
  protected handleMessage(message: any): void;
40
44
  /** Check if message is an order event from the backend */
41
45
  private isOrderEvent;
42
46
  /** Handle order-specific events from the backend */
43
47
  private handleOrderEvent;
44
- /** Clean up order event handlers on disconnect */
45
- disconnect(): void;
48
+ /** Clean up resources when disconnecting */
49
+ protected cleanup(): void;
46
50
  }
47
51
  //# sourceMappingURL=orders-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orders-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,qBAAqB,EACrB,eAAe,EAEf,WAAW,EACX,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,qBAAa,yBACX,SAAQ,uBACR,YAAW,qBAAqB;IAGhC,OAAO,CAAC,aAAa,CAAkD;gBAE3D,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;OAaG;IACH,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GACpC,IAAI;IAaP;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAa1E,iEAAiE;IACjE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAS3C,0DAA0D;IAC1D,OAAO,CAAC,YAAY;IAIpB,oDAAoD;IACpD,OAAO,CAAC,gBAAgB;IAkDxB,4CAA4C;IAC5C,SAAS,CAAC,OAAO,IAAI,IAAI;CAG1B"}