@0xmonaco/core 0.4.1 → 0.4.2

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 (127) hide show
  1. package/README.md +22 -0
  2. package/dist/api/applications/api.d.ts +1 -2
  3. package/dist/api/applications/api.d.ts.map +1 -1
  4. package/dist/api/applications/api.js +1 -2
  5. package/dist/api/applications/api.js.map +1 -1
  6. package/dist/api/applications/index.d.ts +1 -1
  7. package/dist/api/applications/index.d.ts.map +1 -1
  8. package/dist/api/applications/index.js +1 -1
  9. package/dist/api/applications/index.js.map +1 -1
  10. package/dist/api/auth/api.d.ts +1 -1
  11. package/dist/api/auth/api.d.ts.map +1 -1
  12. package/dist/api/auth/api.js +2 -2
  13. package/dist/api/auth/api.js.map +1 -1
  14. package/dist/api/auth/index.d.ts +1 -1
  15. package/dist/api/auth/index.d.ts.map +1 -1
  16. package/dist/api/auth/index.js +1 -1
  17. package/dist/api/auth/index.js.map +1 -1
  18. package/dist/api/base.js +1 -1
  19. package/dist/api/base.js.map +1 -1
  20. package/dist/api/fees/api.d.ts +1 -1
  21. package/dist/api/fees/api.d.ts.map +1 -1
  22. package/dist/api/fees/api.js +1 -1
  23. package/dist/api/fees/api.js.map +1 -1
  24. package/dist/api/fees/index.d.ts +1 -1
  25. package/dist/api/fees/index.d.ts.map +1 -1
  26. package/dist/api/fees/index.js +1 -1
  27. package/dist/api/fees/index.js.map +1 -1
  28. package/dist/api/index.d.ts +10 -8
  29. package/dist/api/index.d.ts.map +1 -1
  30. package/dist/api/index.js +10 -8
  31. package/dist/api/index.js.map +1 -1
  32. package/dist/api/market/api.d.ts +1 -1
  33. package/dist/api/market/api.d.ts.map +1 -1
  34. package/dist/api/market/api.js +1 -1
  35. package/dist/api/market/api.js.map +1 -1
  36. package/dist/api/market/index.d.ts +1 -1
  37. package/dist/api/market/index.d.ts.map +1 -1
  38. package/dist/api/market/index.js +1 -1
  39. package/dist/api/market/index.js.map +1 -1
  40. package/dist/api/orderbook/api.d.ts +16 -0
  41. package/dist/api/orderbook/api.d.ts.map +1 -0
  42. package/dist/api/orderbook/api.js +38 -0
  43. package/dist/api/orderbook/api.js.map +1 -0
  44. package/dist/api/orderbook/index.d.ts +2 -0
  45. package/dist/api/orderbook/index.d.ts.map +1 -0
  46. package/dist/api/orderbook/index.js +2 -0
  47. package/dist/api/orderbook/index.js.map +1 -0
  48. package/dist/api/profile/api.d.ts +1 -1
  49. package/dist/api/profile/api.d.ts.map +1 -1
  50. package/dist/api/profile/api.js +1 -1
  51. package/dist/api/profile/api.js.map +1 -1
  52. package/dist/api/profile/index.d.ts +1 -1
  53. package/dist/api/profile/index.d.ts.map +1 -1
  54. package/dist/api/profile/index.js +1 -1
  55. package/dist/api/profile/index.js.map +1 -1
  56. package/dist/api/trades/api.d.ts +45 -0
  57. package/dist/api/trades/api.d.ts.map +1 -0
  58. package/dist/api/trades/api.js +43 -0
  59. package/dist/api/trades/api.js.map +1 -0
  60. package/dist/api/trades/index.d.ts +2 -0
  61. package/dist/api/trades/index.d.ts.map +1 -0
  62. package/dist/api/trades/index.js +2 -0
  63. package/dist/api/trades/index.js.map +1 -0
  64. package/dist/api/trading/api.d.ts +1 -1
  65. package/dist/api/trading/api.d.ts.map +1 -1
  66. package/dist/api/trading/api.js +1 -1
  67. package/dist/api/trading/api.js.map +1 -1
  68. package/dist/api/trading/index.d.ts +1 -1
  69. package/dist/api/trading/index.d.ts.map +1 -1
  70. package/dist/api/trading/index.js +1 -1
  71. package/dist/api/trading/index.js.map +1 -1
  72. package/dist/api/vault/api.d.ts +1 -1
  73. package/dist/api/vault/api.d.ts.map +1 -1
  74. package/dist/api/vault/api.js +2 -2
  75. package/dist/api/vault/api.js.map +1 -1
  76. package/dist/api/vault/index.d.ts +1 -1
  77. package/dist/api/vault/index.d.ts.map +1 -1
  78. package/dist/api/vault/index.js +1 -1
  79. package/dist/api/vault/index.js.map +1 -1
  80. package/dist/api/websocket/index.d.ts +3 -9
  81. package/dist/api/websocket/index.d.ts.map +1 -1
  82. package/dist/api/websocket/index.js +3 -9
  83. package/dist/api/websocket/index.js.map +1 -1
  84. package/dist/api/websocket/types.d.ts +34 -0
  85. package/dist/api/websocket/types.d.ts.map +1 -0
  86. package/dist/api/websocket/types.js +2 -0
  87. package/dist/api/websocket/types.js.map +1 -0
  88. package/dist/api/websocket/utils.d.ts +9 -0
  89. package/dist/api/websocket/utils.d.ts.map +1 -0
  90. package/dist/api/websocket/utils.js +23 -0
  91. package/dist/api/websocket/utils.js.map +1 -0
  92. package/dist/api/websocket/websocket.d.ts +6 -0
  93. package/dist/api/websocket/websocket.d.ts.map +1 -0
  94. package/dist/api/websocket/websocket.js +314 -0
  95. package/dist/api/websocket/websocket.js.map +1 -0
  96. package/dist/index.d.ts +6 -5
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +5 -7
  99. package/dist/index.js.map +1 -1
  100. package/dist/networks.d.ts +1 -1
  101. package/dist/networks.js +3 -3
  102. package/dist/networks.js.map +1 -1
  103. package/dist/sdk.d.ts +15 -24
  104. package/dist/sdk.d.ts.map +1 -1
  105. package/dist/sdk.js +48 -67
  106. package/dist/sdk.js.map +1 -1
  107. package/dist/utils/index.d.ts +1 -1
  108. package/dist/utils/index.d.ts.map +1 -1
  109. package/dist/utils/index.js +1 -1
  110. package/dist/utils/index.js.map +1 -1
  111. package/package.json +3 -3
  112. package/dist/api/websocket/base-ws-client.d.ts +0 -85
  113. package/dist/api/websocket/base-ws-client.d.ts.map +0 -1
  114. package/dist/api/websocket/base-ws-client.js +0 -256
  115. package/dist/api/websocket/base-ws-client.js.map +0 -1
  116. package/dist/api/websocket/clients/ohlcv-ws-client.d.ts +0 -57
  117. package/dist/api/websocket/clients/ohlcv-ws-client.d.ts.map +0 -1
  118. package/dist/api/websocket/clients/ohlcv-ws-client.js +0 -132
  119. package/dist/api/websocket/clients/ohlcv-ws-client.js.map +0 -1
  120. package/dist/api/websocket/clients/orderbook-ws-client.d.ts +0 -70
  121. package/dist/api/websocket/clients/orderbook-ws-client.d.ts.map +0 -1
  122. package/dist/api/websocket/clients/orderbook-ws-client.js +0 -197
  123. package/dist/api/websocket/clients/orderbook-ws-client.js.map +0 -1
  124. package/dist/api/websocket/clients/orders-ws-client.d.ts +0 -61
  125. package/dist/api/websocket/clients/orders-ws-client.d.ts.map +0 -1
  126. package/dist/api/websocket/clients/orders-ws-client.js +0 -150
  127. package/dist/api/websocket/clients/orders-ws-client.js.map +0 -1
@@ -1,150 +0,0 @@
1
- /**
2
- * Orders WebSocket Client Implementation
3
- *
4
- * AUTHENTICATED WebSocket client for personal order-related events.
5
- * Requires JWT authentication via access token.
6
- * Shows user-specific order updates and events.
7
- */
8
- import { WebSocketChannel, } from "@0xmonaco/types";
9
- import { BaseWebSocketClientImpl } from "../index.js";
10
- /**
11
- * Convert snake_case keys to camelCase
12
- */
13
- function toCamelCase(str) {
14
- return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
15
- }
16
- /**
17
- * Convert an object's keys from snake_case to camelCase
18
- */
19
- function keysToCamelCase(obj) {
20
- if (obj === null || obj === undefined)
21
- return obj;
22
- if (typeof obj !== "object")
23
- return obj;
24
- if (Array.isArray(obj))
25
- return obj.map((item) => keysToCamelCase(item));
26
- const result = {};
27
- for (const [key, value] of Object.entries(obj)) {
28
- const camelKey = toCamelCase(key);
29
- result[camelKey] = typeof value === "object" && value !== null ? keysToCamelCase(value) : value;
30
- }
31
- return result;
32
- }
33
- /**
34
- * Orders-specific WebSocket client implementation
35
- */
36
- export class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl {
37
- constructor() {
38
- super(...arguments);
39
- // Map to store order event handlers by subscription key
40
- this.orderHandlers = new Map();
41
- }
42
- /**
43
- * Override connect to enforce authentication requirement for Orders channel.
44
- * Orders WebSocket requires JWT authentication for personal order updates.
45
- */
46
- async connect() {
47
- if (!this.config.accessToken?.trim()) {
48
- throw new Error("Authentication required: Orders WebSocket requires a JWT access token. " +
49
- "Call setAccessToken() before connecting or sdk.login() to authenticate.");
50
- }
51
- return super.connect();
52
- }
53
- /**
54
- * Subscribe to personal order events for a specific market and trading mode.
55
- * Requires authentication - call setAccessToken() before connecting.
56
- *
57
- * @param market - Trading pair symbol (e.g., "BTC/USDC")
58
- * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
59
- * @param callback - Function to handle incoming order events
60
- *
61
- * @example
62
- * ```typescript
63
- * // Set authentication token first
64
- * ordersWS.setAccessToken(authState.accessToken);
65
- * await ordersWS.connect();
66
- *
67
- * ordersWS.subscribeToOrderEvents("BTC/USDC", TradingMode.SPOT, (event) => {
68
- * console.log("Personal order event:", event.eventType);
69
- * });
70
- * ```
71
- */
72
- subscribeToOrderEvents(market, tradingMode, callback) {
73
- const channel = `orders:${market}:${tradingMode}`;
74
- const subscriptionKey = `${market.toUpperCase()}-${tradingMode.toUpperCase()}`;
75
- this.orderHandlers.set(subscriptionKey, callback);
76
- // Send subscription message using backend's channel format
77
- this.send({
78
- type: "Subscribe",
79
- channels: [channel],
80
- });
81
- }
82
- /**
83
- * Unsubscribe from order events for a specific market and trading mode.
84
- *
85
- * @param market - Trading pair symbol (e.g., "BTC/USDC")
86
- * @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
87
- *
88
- * @example
89
- * ```typescript
90
- * ordersWS.unsubscribeFromOrderEvents("BTC/USDC", TradingMode.SPOT);
91
- * ```
92
- */
93
- unsubscribeFromOrderEvents(market, tradingMode) {
94
- const channel = `orders:${market}:${tradingMode}`;
95
- const subscriptionKey = `${market.toUpperCase()}-${tradingMode.toUpperCase()}`;
96
- this.orderHandlers.delete(subscriptionKey);
97
- // Send unsubscription message
98
- this.send({
99
- type: "Unsubscribe",
100
- channels: [channel],
101
- });
102
- }
103
- /** Override message handling to process order-specific events */
104
- handleMessage(message) {
105
- super.handleMessage(message);
106
- // Handle order-specific Event messages
107
- if (this.isOrderEvent(message)) {
108
- this.handleOrderEvent(message);
109
- }
110
- }
111
- /** Check if message is an order event from the backend */
112
- isOrderEvent(message) {
113
- return this.isEventMessage(message, WebSocketChannel.Orders);
114
- }
115
- /** Handle order-specific events from the backend */
116
- handleOrderEvent(event) {
117
- try {
118
- const snakeCaseEventData = event.data;
119
- const snakeCaseOrderEventData = snakeCaseEventData?.data;
120
- const tradingPair = snakeCaseOrderEventData?.trading_pair;
121
- const tradingMode = snakeCaseOrderEventData?.trading_mode;
122
- if (!tradingPair || !tradingMode) {
123
- console.warn("Missing required order event data (trading_pair or trading_mode):", event);
124
- return;
125
- }
126
- const subscriptionKey = `${tradingPair.toUpperCase()}-${tradingMode.toUpperCase()}`;
127
- const handler = this.orderHandlers.get(subscriptionKey);
128
- if (handler) {
129
- const camelCaseOrderEvent = {
130
- orderId: snakeCaseEventData.order_id,
131
- eventType: snakeCaseEventData.event_type,
132
- timestamp: snakeCaseEventData.timestamp,
133
- data: keysToCamelCase(snakeCaseOrderEventData),
134
- };
135
- handler(camelCaseOrderEvent);
136
- }
137
- else {
138
- console.warn(`No handler found for order event: ${subscriptionKey}`, event);
139
- }
140
- }
141
- catch (error) {
142
- console.error("Error handling order event:", error, event);
143
- }
144
- }
145
- /** Clean up resources when disconnecting */
146
- cleanup() {
147
- this.orderHandlers.clear();
148
- }
149
- }
150
- //# sourceMappingURL=orders-ws-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orders-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orders-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAKL,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAI,GAAY;IACtC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAQ,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAQ,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAU,IAA+B,CAAC,CAAM,CAAC;IAEjH,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAU,KAAgC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtI,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,uBAAuB;IAAtE;;QACE,wDAAwD;QAChD,kBAAa,GAAG,IAAI,GAAG,EAAuC,CAAC;IA6HzE,CAAC;IA3HC;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,yEAAyE;gBACvE,yEAAyE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,CAAC,MAAc,EAAE,WAAwB,EAAE,QAAqC;QACpG,MAAM,OAAO,GAAG,UAAU,MAAM,IAAI,WAAW,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;QAE/E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAElD,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,MAAc,EAAE,WAAwB;QACjE,MAAM,OAAO,GAAG,UAAU,MAAM,IAAI,WAAW,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;QAE/E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAE3C,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IACvD,aAAa,CAAC,OAA6B;QACnD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE7B,uCAAuC;QACvC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,0DAA0D;IAClD,YAAY,CAAC,OAA6B;QAChD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,oDAAoD;IAC5C,gBAAgB,CAAC,KAA2B;QAClD,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC;YACtC,MAAM,uBAAuB,GAAG,kBAAkB,EAAE,IAAI,CAAC;YAEzD,MAAM,WAAW,GAAG,uBAAuB,EAAE,YAAY,CAAC;YAC1D,MAAM,WAAW,GAAG,uBAAuB,EAAE,YAAY,CAAC;YAE1D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,mEAAmE,EAAE,KAAK,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAEpF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,mBAAmB,GAAe;oBACtC,OAAO,EAAE,kBAAkB,CAAC,QAAQ;oBACpC,SAAS,EAAE,kBAAkB,CAAC,UAAU;oBACxC,SAAS,EAAE,kBAAkB,CAAC,SAAS;oBACvC,IAAI,EAAE,eAAe,CAAC,uBAAuB,CAAC;iBAC/C,CAAC;gBAEF,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,qCAAqC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,4CAA4C;IAClC,OAAO;QACf,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}