@0xmonaco/core 0.2.2 → 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.
- package/dist/api/market/api.d.ts +2 -2
- package/dist/api/market/api.d.ts.map +1 -1
- package/dist/api/market/api.js.map +1 -1
- package/dist/api/trading/api.d.ts +19 -2
- package/dist/api/trading/api.d.ts.map +1 -1
- package/dist/api/trading/api.js +20 -3
- package/dist/api/trading/api.js.map +1 -1
- package/dist/api/vault/api.d.ts +0 -17
- package/dist/api/vault/api.d.ts.map +1 -1
- package/dist/api/vault/api.js +0 -39
- package/dist/api/vault/api.js.map +1 -1
- package/dist/api/websocket/base-ws-client.d.ts +8 -0
- package/dist/api/websocket/base-ws-client.d.ts.map +1 -1
- package/dist/api/websocket/base-ws-client.js +25 -6
- package/dist/api/websocket/base-ws-client.js.map +1 -1
- package/dist/api/websocket/{ohlcv-ws-client.d.ts → clients/ohlcv-ws-client.d.ts} +18 -13
- package/dist/api/websocket/clients/ohlcv-ws-client.d.ts.map +1 -0
- package/dist/api/websocket/clients/ohlcv-ws-client.js +126 -0
- package/dist/api/websocket/clients/ohlcv-ws-client.js.map +1 -0
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts +46 -0
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts.map +1 -0
- package/dist/api/websocket/clients/orderbook-ws-client.js +131 -0
- package/dist/api/websocket/clients/orderbook-ws-client.js.map +1 -0
- package/dist/api/websocket/{orders-ws-client.d.ts → clients/orders-ws-client.d.ts} +17 -13
- package/dist/api/websocket/clients/orders-ws-client.d.ts.map +1 -0
- package/dist/api/websocket/clients/orders-ws-client.js +124 -0
- package/dist/api/websocket/clients/orders-ws-client.js.map +1 -0
- package/dist/api/websocket/index.d.ts +4 -3
- package/dist/api/websocket/index.d.ts.map +1 -1
- package/dist/api/websocket/index.js +4 -3
- package/dist/api/websocket/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/sdk.d.ts +2 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +6 -1
- package/dist/sdk.js.map +1 -1
- package/package.json +2 -2
- package/dist/api/websocket/ohlcv-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/ohlcv-ws-client.js +0 -123
- package/dist/api/websocket/ohlcv-ws-client.js.map +0 -1
- package/dist/api/websocket/orders-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/orders-ws-client.js +0 -131
- package/dist/api/websocket/orders-ws-client.js.map +0 -1
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { BaseWebSocketClientImpl } from "./base-ws-client";
|
|
2
|
-
/**
|
|
3
|
-
* OHLCV-specific WebSocket client implementation
|
|
4
|
-
*/
|
|
5
|
-
export class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
6
|
-
constructor(config) {
|
|
7
|
-
super(config);
|
|
8
|
-
this.ohlcvHandlers = new Map();
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Subscribe to OHLCV (candlestick) updates for a specific trading pair, mode, and interval.
|
|
12
|
-
*
|
|
13
|
-
* @param symbol - Trading pair symbol (e.g., "BTC-USDC")
|
|
14
|
-
* @param tradingMode - Trading mode ("SPOT" or "MARGIN")
|
|
15
|
-
* @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
|
|
16
|
-
* @param callback - Function to handle incoming OHLCV events
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* ohlcvWS.subscribeToOHLCV("BTC-USDC", "SPOT", "1m", (event) => {
|
|
21
|
-
* console.log("New OHLCV data:", event.candlestick);
|
|
22
|
-
* });
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
subscribeToOHLCV(symbol, tradingMode, interval, callback) {
|
|
26
|
-
const channel = `ohlcv:${symbol.toUpperCase()}:${tradingMode.toUpperCase()}:${interval.toLowerCase()}`;
|
|
27
|
-
const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
|
|
28
|
-
this.ohlcvHandlers.set(subscriptionKey, callback);
|
|
29
|
-
// Send subscription message using the backend's channel format
|
|
30
|
-
this.send({
|
|
31
|
-
type: "Subscribe",
|
|
32
|
-
channels: [channel],
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Unsubscribe from OHLCV (candlestick) updates.
|
|
37
|
-
*
|
|
38
|
-
* @param symbol - Trading pair symbol (e.g., "BTC-USDC")
|
|
39
|
-
* @param tradingMode - Trading mode ("SPOT" or "MARGIN")
|
|
40
|
-
* @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
|
|
41
|
-
*/
|
|
42
|
-
unsubscribeFromOHLCV(symbol, tradingMode, interval) {
|
|
43
|
-
const channel = `ohlcv:${symbol.toUpperCase()}:${tradingMode.toUpperCase()}:${interval.toLowerCase()}`;
|
|
44
|
-
const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
|
|
45
|
-
this.ohlcvHandlers.delete(subscriptionKey);
|
|
46
|
-
// Send unsubscription message
|
|
47
|
-
this.send({
|
|
48
|
-
type: "Unsubscribe",
|
|
49
|
-
channels: [channel],
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
/** Handle incoming WebSocket messages with OHLCV-specific logic */
|
|
53
|
-
handleMessage(message) {
|
|
54
|
-
// Handle base messages first (PONG, etc.)
|
|
55
|
-
super.handleMessage(message);
|
|
56
|
-
// Handle OHLCV-specific Event messages
|
|
57
|
-
if (this.isOHLCVEvent(message)) {
|
|
58
|
-
this.handleOHLCVEvent(message);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/** Check if message is an OHLCV event from the backend */
|
|
62
|
-
isOHLCVEvent(message) {
|
|
63
|
-
if (!message || typeof message !== "object") {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
// Backend sends: { type: "Event", channel: "ohlcv:...", data: {...} }
|
|
67
|
-
return (message.type === "Event" &&
|
|
68
|
-
message.channel &&
|
|
69
|
-
typeof message.channel === "string" &&
|
|
70
|
-
message.channel.startsWith("ohlcv:") &&
|
|
71
|
-
message.data &&
|
|
72
|
-
typeof message.data === "object");
|
|
73
|
-
}
|
|
74
|
-
/** Handle OHLCV-specific events from the backend */
|
|
75
|
-
handleOHLCVEvent(event) {
|
|
76
|
-
try {
|
|
77
|
-
// Parse channel: "ohlcv:BTC-USDC:SPOT:1m"
|
|
78
|
-
const channelParts = event.channel.split(":");
|
|
79
|
-
if (channelParts.length !== 4) {
|
|
80
|
-
console.warn("Invalid OHLCV channel format:", event.channel);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
const [, symbol, tradingMode, interval] = channelParts;
|
|
84
|
-
const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
|
|
85
|
-
const handler = this.ohlcvHandlers.get(subscriptionKey);
|
|
86
|
-
if (handler) {
|
|
87
|
-
// Backend OHLCVUpdateEvent structure
|
|
88
|
-
const ohlcvData = event.data.data || event.data;
|
|
89
|
-
// Transform to match OHLCVEvent interface
|
|
90
|
-
const ohlcvEvent = {
|
|
91
|
-
symbol: ohlcvData.pair || symbol,
|
|
92
|
-
interval: ohlcvData.interval || interval,
|
|
93
|
-
tradingMode: ohlcvData.trading_mode || tradingMode,
|
|
94
|
-
candlestick: {
|
|
95
|
-
t: ohlcvData.period_start || 0,
|
|
96
|
-
T: ohlcvData.period_end || 0,
|
|
97
|
-
o: ohlcvData.open || "0",
|
|
98
|
-
h: ohlcvData.high || "0",
|
|
99
|
-
l: ohlcvData.low || "0",
|
|
100
|
-
c: ohlcvData.close || "0",
|
|
101
|
-
v: ohlcvData.volume || "0",
|
|
102
|
-
s: ohlcvData.pair || symbol,
|
|
103
|
-
i: ohlcvData.interval || interval,
|
|
104
|
-
n: ohlcvData.trades_count || 0,
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
handler(ohlcvEvent);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
console.debug(`No handler registered for OHLCV subscription: ${subscriptionKey}`);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
console.error("Error handling OHLCV event:", error, event);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/** Clean up OHLCV handlers on disconnect */
|
|
118
|
-
disconnect() {
|
|
119
|
-
this.ohlcvHandlers.clear();
|
|
120
|
-
super.disconnect();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=ohlcv-ws-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ohlcv-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/ohlcv-ws-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orders-ws-client.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/orders-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,qBAAa,yBACX,SAAQ,uBACR,YAAW,qBAAqB;IAEhC,OAAO,CAAC,aAAa,CACT;gBAEA,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;OAaG;IACH,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GACpC,IAAI;IAaP;;;;;OAKG;IACH,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAarE,mEAAmE;IACnE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAU3C,0DAA0D;IAC1D,OAAO,CAAC,YAAY;IAgBpB,oDAAoD;IACpD,OAAO,CAAC,gBAAgB;IAwDxB,kDAAkD;IAClD,UAAU,IAAI,IAAI;CAInB"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { BaseWebSocketClientImpl } from "./base-ws-client";
|
|
2
|
-
/**
|
|
3
|
-
* Orders-specific WebSocket client implementation
|
|
4
|
-
*/
|
|
5
|
-
export class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
6
|
-
constructor(config) {
|
|
7
|
-
super(config);
|
|
8
|
-
this.orderHandlers = new Map();
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Subscribe to order events for a specific market and trading mode.
|
|
12
|
-
*
|
|
13
|
-
* @param market - Trading pair symbol (e.g., "BTC-USDC")
|
|
14
|
-
* @param tradingMode - Trading mode ("SPOT" or "MARGIN")
|
|
15
|
-
* @param callback - Function to handle incoming order events
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* ordersWS.subscribeToOrderEvents("BTC-USDC", "SPOT", (event) => {
|
|
20
|
-
* console.log("Order event:", event.eventType);
|
|
21
|
-
* });
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
subscribeToOrderEvents(market, tradingMode, callback) {
|
|
25
|
-
const channel = `orders:${market.toUpperCase()}:${tradingMode.toUpperCase()}`;
|
|
26
|
-
const subscriptionKey = `${market.toUpperCase()}-${tradingMode.toUpperCase()}`;
|
|
27
|
-
this.orderHandlers.set(subscriptionKey, callback);
|
|
28
|
-
// Send subscription message using backend's channel format
|
|
29
|
-
this.send({
|
|
30
|
-
type: "Subscribe",
|
|
31
|
-
channels: [channel],
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Unsubscribe from order events for a specific market and trading mode.
|
|
36
|
-
*
|
|
37
|
-
* @param market - Trading pair symbol (e.g., "BTC-USDC")
|
|
38
|
-
* @param tradingMode - Trading mode ("SPOT" or "MARGIN")
|
|
39
|
-
*/
|
|
40
|
-
unsubscribeFromOrderEvents(market, tradingMode) {
|
|
41
|
-
const channel = `orders:${market.toUpperCase()}:${tradingMode.toUpperCase()}`;
|
|
42
|
-
const subscriptionKey = `${market.toUpperCase()}-${tradingMode.toUpperCase()}`;
|
|
43
|
-
this.orderHandlers.delete(subscriptionKey);
|
|
44
|
-
// Send unsubscription message
|
|
45
|
-
this.send({
|
|
46
|
-
type: "Unsubscribe",
|
|
47
|
-
channels: [channel],
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
/** Handle incoming WebSocket messages with order-specific logic */
|
|
51
|
-
handleMessage(message) {
|
|
52
|
-
// Handle base messages first (PONG, etc.)
|
|
53
|
-
super.handleMessage(message);
|
|
54
|
-
// Handle order-specific Event messages
|
|
55
|
-
if (this.isOrderEvent(message)) {
|
|
56
|
-
this.handleOrderEvent(message);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/** Check if message is an order event from the backend */
|
|
60
|
-
isOrderEvent(message) {
|
|
61
|
-
if (!message || typeof message !== "object") {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
// Backend sends: { type: "Event", channel: "orders:...", data: {...} }
|
|
65
|
-
return (message.type === "Event" &&
|
|
66
|
-
message.channel &&
|
|
67
|
-
typeof message.channel === "string" &&
|
|
68
|
-
message.channel.startsWith("orders:") &&
|
|
69
|
-
message.data &&
|
|
70
|
-
typeof message.data === "object");
|
|
71
|
-
}
|
|
72
|
-
/** Handle order-specific events from the backend */
|
|
73
|
-
handleOrderEvent(event) {
|
|
74
|
-
try {
|
|
75
|
-
// Parse channel: "orders:BTC-USDC:SPOT" or just "orders"
|
|
76
|
-
const channelParts = event.channel.split(":");
|
|
77
|
-
let subscriptionKey;
|
|
78
|
-
if (channelParts.length === 3) {
|
|
79
|
-
// Specific market and mode: "orders:BTC-USDC:SPOT"
|
|
80
|
-
const [, market, tradingMode] = channelParts;
|
|
81
|
-
subscriptionKey = `${market.toUpperCase()}-${tradingMode.toUpperCase()}`;
|
|
82
|
-
}
|
|
83
|
-
else if (channelParts.length === 1) {
|
|
84
|
-
// All orders: "orders"
|
|
85
|
-
subscriptionKey = "all";
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
console.warn("Invalid orders channel format:", event.channel);
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const handler = this.orderHandlers.get(subscriptionKey);
|
|
92
|
-
if (handler) {
|
|
93
|
-
// Backend order event structure (matching matching_engine::types::OrderEvent)
|
|
94
|
-
const orderData = event.data;
|
|
95
|
-
// Transform to match OrderEvent interface
|
|
96
|
-
const transformedEvent = {
|
|
97
|
-
orderId: orderData.order_id,
|
|
98
|
-
eventType: orderData.event_type,
|
|
99
|
-
details: {
|
|
100
|
-
userId: orderData.data?.user_id,
|
|
101
|
-
applicationId: orderData.data?.application_id,
|
|
102
|
-
orderType: orderData.data?.order_type,
|
|
103
|
-
price: orderData.data?.price,
|
|
104
|
-
quantity: orderData.data?.quantity,
|
|
105
|
-
side: orderData.data?.side,
|
|
106
|
-
tradingMode: orderData.data?.trading_mode,
|
|
107
|
-
tradingPair: orderData.data?.trading_pair,
|
|
108
|
-
tradingPairId: orderData.data?.trading_pair_id,
|
|
109
|
-
cancelledAt: orderData.data?.cancelled_at,
|
|
110
|
-
filledQuantity: orderData.data?.filled_quantity,
|
|
111
|
-
remainingQuantity: orderData.data?.remaining_quantity,
|
|
112
|
-
reason: orderData.data?.reason,
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
handler(transformedEvent);
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
console.debug(`No handler registered for orders subscription: ${subscriptionKey}`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
console.error("Error handling order event:", error, event);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/** Clean up order event handlers on disconnect */
|
|
126
|
-
disconnect() {
|
|
127
|
-
this.orderHandlers.clear();
|
|
128
|
-
super.disconnect();
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=orders-ws-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orders-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/orders-ws-client.ts"],"names":[],"mappings":"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"}
|