@0xmonaco/core 0.2.9 → 0.2.10
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.
|
@@ -4,7 +4,7 @@
|
|
|
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 {
|
|
7
|
+
import { type OrderEvent, type OrdersWebSocketClient, type TradingMode, type WebSocketConfig } from "@0xmonaco/types";
|
|
8
8
|
import { BaseWebSocketClientImpl } from "../base-ws-client";
|
|
9
9
|
/**
|
|
10
10
|
* Orders-specific WebSocket client implementation
|
|
@@ -1 +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,
|
|
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,EAEL,KAAK,UAAU,EAQf,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAEhB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAyB5D;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,uBAAwB,YAAW,qBAAqB;IAErG,OAAO,CAAC,aAAa,CAAkD;gBAE3D,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;OAaG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAa7G;;;;;;;;;;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;IAuExB,4CAA4C;IAC5C,SAAS,CAAC,OAAO,IAAI,IAAI;CAG1B"}
|
|
@@ -4,8 +4,31 @@
|
|
|
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 { WebSocketChannel } from "@0xmonaco/types";
|
|
7
|
+
import { WebSocketChannel, } from "@0xmonaco/types";
|
|
8
8
|
import { BaseWebSocketClientImpl } from "../base-ws-client";
|
|
9
|
+
/**
|
|
10
|
+
* Convert snake_case keys to camelCase
|
|
11
|
+
*/
|
|
12
|
+
function toCamelCase(str) {
|
|
13
|
+
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Convert an object's keys from snake_case to camelCase
|
|
17
|
+
*/
|
|
18
|
+
function keysToCamelCase(obj) {
|
|
19
|
+
if (obj === null || obj === undefined)
|
|
20
|
+
return obj;
|
|
21
|
+
if (typeof obj !== "object")
|
|
22
|
+
return obj;
|
|
23
|
+
if (Array.isArray(obj))
|
|
24
|
+
return obj.map((item) => keysToCamelCase(item));
|
|
25
|
+
const result = {};
|
|
26
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
27
|
+
const camelKey = toCamelCase(key);
|
|
28
|
+
result[camelKey] = typeof value === "object" && value !== null ? keysToCamelCase(value) : value;
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
9
32
|
/**
|
|
10
33
|
* Orders-specific WebSocket client implementation
|
|
11
34
|
*/
|
|
@@ -76,35 +99,50 @@ export class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
|
76
99
|
handleOrderEvent(event) {
|
|
77
100
|
try {
|
|
78
101
|
const backendEvent = event.data; // Parent (has order_id, event_type, etc.)
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
|
|
102
|
+
const orderData = backendEvent.data; // Nested (has bids, asks, etc.)
|
|
103
|
+
const tradingPair = orderData.trading_pair;
|
|
104
|
+
const tradingMode = orderData.trading_mode;
|
|
105
|
+
if (!tradingPair || !tradingMode) {
|
|
82
106
|
console.warn("Missing required order event data:", backendEvent);
|
|
83
107
|
return;
|
|
84
108
|
}
|
|
85
|
-
const subscriptionKey = `${
|
|
109
|
+
const subscriptionKey = `${tradingPair.toUpperCase()}-${tradingMode.toUpperCase()}`;
|
|
86
110
|
// Find the appropriate handler
|
|
87
111
|
const handler = this.orderHandlers.get(subscriptionKey);
|
|
88
112
|
if (handler) {
|
|
89
|
-
//
|
|
113
|
+
// Convert backend data from snake_case to camelCase and cast to specific type
|
|
114
|
+
let eventData;
|
|
115
|
+
switch (backendEvent.event_type) {
|
|
116
|
+
case "OrderPlaced":
|
|
117
|
+
eventData = keysToCamelCase(orderData);
|
|
118
|
+
break;
|
|
119
|
+
case "OrderMatched":
|
|
120
|
+
eventData = keysToCamelCase(orderData);
|
|
121
|
+
break;
|
|
122
|
+
case "OrderPartiallyFilled":
|
|
123
|
+
eventData = keysToCamelCase(orderData);
|
|
124
|
+
break;
|
|
125
|
+
case "OrderFilled":
|
|
126
|
+
eventData = keysToCamelCase(orderData);
|
|
127
|
+
break;
|
|
128
|
+
case "OrderCancelled":
|
|
129
|
+
eventData = keysToCamelCase(orderData);
|
|
130
|
+
break;
|
|
131
|
+
case "OrderRejected":
|
|
132
|
+
eventData = keysToCamelCase(orderData);
|
|
133
|
+
break;
|
|
134
|
+
case "OrderExpired":
|
|
135
|
+
eventData = keysToCamelCase(orderData);
|
|
136
|
+
break;
|
|
137
|
+
default:
|
|
138
|
+
console.warn("Unknown order event type:", backendEvent.event_type);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
90
141
|
const orderEvent = {
|
|
91
142
|
orderId: backendEvent.order_id,
|
|
92
|
-
eventType: backendEvent.event_type
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
orderType: backendEvent.order_type,
|
|
96
|
-
price: backendEvent.price,
|
|
97
|
-
quantity: backendEvent.quantity,
|
|
98
|
-
side: backendEvent.side,
|
|
99
|
-
tradingMode: tradingMode,
|
|
100
|
-
tradingPair: market,
|
|
101
|
-
tradingPairId: backendEvent.trading_pair_id,
|
|
102
|
-
userId: backendEvent.user_id,
|
|
103
|
-
cancelledAt: backendEvent.cancelled_at,
|
|
104
|
-
filledQuantity: backendEvent.filled_quantity,
|
|
105
|
-
remainingQuantity: backendEvent.remaining_quantity,
|
|
106
|
-
reason: backendEvent.reason,
|
|
107
|
-
},
|
|
143
|
+
eventType: backendEvent.event_type,
|
|
144
|
+
timestamp: backendEvent.timestamp,
|
|
145
|
+
data: eventData,
|
|
108
146
|
};
|
|
109
147
|
handler(orderEvent);
|
|
110
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orders-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"orders-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orders-ws-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xmonaco/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@0xmonaco/contracts": "0.1.8",
|
|
16
|
-
"@0xmonaco/types": "0.2.
|
|
16
|
+
"@0xmonaco/types": "0.2.9"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@types/node": "^20.11.30",
|