@0xmonaco/core 0.2.10 → 0.2.12
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/README.md +69 -3
- package/dist/api/fees/api.d.ts +71 -0
- package/dist/api/fees/api.d.ts.map +1 -0
- package/dist/api/fees/api.js +83 -0
- package/dist/api/fees/api.js.map +1 -0
- package/dist/api/fees/index.d.ts +7 -0
- package/dist/api/fees/index.d.ts.map +1 -0
- package/dist/api/fees/index.js +7 -0
- package/dist/api/fees/index.js.map +1 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/websocket/base-ws-client.d.ts +24 -6
- package/dist/api/websocket/base-ws-client.d.ts.map +1 -1
- package/dist/api/websocket/base-ws-client.js +49 -20
- package/dist/api/websocket/base-ws-client.js.map +1 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.d.ts +6 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.d.ts.map +1 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.js +6 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.js.map +1 -1
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts +6 -1
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts.map +1 -1
- package/dist/api/websocket/clients/orderbook-ws-client.js +6 -1
- package/dist/api/websocket/clients/orderbook-ws-client.js.map +1 -1
- package/dist/api/websocket/clients/orders-ws-client.d.ts +15 -4
- package/dist/api/websocket/clients/orders-ws-client.d.ts.map +1 -1
- package/dist/api/websocket/clients/orders-ws-client.js +21 -4
- package/dist/api/websocket/clients/orders-ws-client.js.map +1 -1
- package/dist/sdk.d.ts +18 -6
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +34 -5
- package/dist/sdk.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -140,18 +140,24 @@ const monaco = new MonacoSDK({
|
|
|
140
140
|
|
|
141
141
|
// Authentication
|
|
142
142
|
async function authExample() {
|
|
143
|
-
// Login with client ID
|
|
144
|
-
const authState = await monaco.login("your-client-id");
|
|
143
|
+
// Login with client ID and auto-connect authenticated WebSocket channels (Orders)
|
|
144
|
+
const authState = await monaco.login("your-client-id", { connectWebSocket: true });
|
|
145
145
|
console.log("Authenticated:", authState.user);
|
|
146
146
|
console.log("Tokens:", {
|
|
147
147
|
accessToken: authState.accessToken,
|
|
148
148
|
refreshToken: authState.refreshToken, // Use this for revokeToken()
|
|
149
149
|
});
|
|
150
150
|
|
|
151
|
+
// Authenticated WebSocket channels are now connected - start receiving real-time updates
|
|
152
|
+
// Currently this includes: Orders (personal order updates)
|
|
153
|
+
monaco.websocket.orders.subscribeToOrderEvents("BTC/USDC", "SPOT", (event) => {
|
|
154
|
+
console.log("Order event:", event.eventType);
|
|
155
|
+
});
|
|
156
|
+
|
|
151
157
|
// Check authentication status
|
|
152
158
|
console.log("Is authenticated:", monaco.isAuthenticated());
|
|
153
159
|
|
|
154
|
-
// Logout (revokes the refresh token)
|
|
160
|
+
// Logout (revokes the refresh token and disconnects authenticated WebSockets)
|
|
155
161
|
await monaco.logout();
|
|
156
162
|
|
|
157
163
|
// Or manually revoke the token
|
|
@@ -421,6 +427,66 @@ interface MarketAPI extends BaseAPI {
|
|
|
421
427
|
}
|
|
422
428
|
```
|
|
423
429
|
|
|
430
|
+
### WebSocket Authentication
|
|
431
|
+
|
|
432
|
+
The SDK provides three WebSocket clients with different authentication requirements:
|
|
433
|
+
|
|
434
|
+
#### Public WebSockets (OHLCV and Orderbook)
|
|
435
|
+
|
|
436
|
+
No authentication required. Provide public market data. You always connect manually:
|
|
437
|
+
|
|
438
|
+
```typescript
|
|
439
|
+
// Step 1: Establish WebSocket connection (no authentication needed)
|
|
440
|
+
await monaco.websocket.ohlcv.connect();
|
|
441
|
+
await monaco.websocket.orderbook.connect();
|
|
442
|
+
|
|
443
|
+
// Step 2: Subscribe to public market data
|
|
444
|
+
monaco.websocket.ohlcv.subscribeToOHLCV("BTC/USDC", "SPOT", "1m", (event) => {
|
|
445
|
+
console.log("OHLCV data:", event.candlestick);
|
|
446
|
+
});
|
|
447
|
+
|
|
448
|
+
monaco.websocket.orderbook.subscribeToOrderbookEvents("BTC/USDC", "SPOT", (event) => {
|
|
449
|
+
console.log("Orderbook update:", event.bids.length, "bids");
|
|
450
|
+
});
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
#### Authenticated WebSockets (Orders)
|
|
454
|
+
|
|
455
|
+
Requires JWT authentication for personal order updates. You can either auto-connect during login or connect manually:
|
|
456
|
+
|
|
457
|
+
**Option 1: Auto-connect (recommended for authenticated channels)**
|
|
458
|
+
```typescript
|
|
459
|
+
// Login and auto-connect all authenticated WebSocket channels
|
|
460
|
+
// Currently includes: Orders (personal order updates)
|
|
461
|
+
await monaco.login(clientId, { connectWebSocket: true });
|
|
462
|
+
|
|
463
|
+
// Subscribe to personal order events (already connected)
|
|
464
|
+
monaco.websocket.orders.subscribeToOrderEvents("BTC/USDC", "SPOT", (event) => {
|
|
465
|
+
console.log("Personal order event:", event.eventType);
|
|
466
|
+
});
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
**Option 2: Manual connection (required for public channels, optional for authenticated)**
|
|
470
|
+
```typescript
|
|
471
|
+
// Public channels like OHLCV always require manual connection (no auth needed)
|
|
472
|
+
await monaco.websocket.ohlcv.connect();
|
|
473
|
+
|
|
474
|
+
monaco.websocket.ohlcv.subscribeToOHLCV("BTC/USDC", "SPOT", "1m", (event) => {
|
|
475
|
+
console.log("OHLCV data:", event.candlestick);
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
// For authenticated channels, you can also connect manually for more control
|
|
479
|
+
await monaco.login(clientId);
|
|
480
|
+
await monaco.websocket.orders.connect();
|
|
481
|
+
monaco.websocket.orders.subscribeToOrderEvents("BTC/USDC", "SPOT", (event) => {
|
|
482
|
+
console.log("Personal order event:", event.eventType);
|
|
483
|
+
});
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
**Note:**
|
|
487
|
+
- The `connectWebSocket: true` option automatically connects all authenticated WebSocket channels (currently Orders).
|
|
488
|
+
- Public WebSocket clients (OHLCV, Orderbook) always require calling `connect()` explicitly as they don't require authentication.
|
|
489
|
+
|
|
424
490
|
### Error Handling
|
|
425
491
|
|
|
426
492
|
The SDK uses structured error classes for comprehensive error handling:
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fees API Implementation
|
|
3
|
+
*
|
|
4
|
+
* Handles fee simulation and calculation operations.
|
|
5
|
+
* All operations use JWT authentication and go through the API Gateway.
|
|
6
|
+
*
|
|
7
|
+
* This class provides a complete interface for fee-related operations on the Monaco protocol,
|
|
8
|
+
* including simulating fees before placing orders.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const feesAPI = new FeesAPIImpl(apiUrl);
|
|
13
|
+
* feesAPI.setAccessToken(jwtToken);
|
|
14
|
+
*
|
|
15
|
+
* // Simulate fees for an order
|
|
16
|
+
* const feeDetails = await feesAPI.simulateFees({
|
|
17
|
+
* trading_pair_id: "123e4567-e89b-12d3-a456-426614174000",
|
|
18
|
+
* side: "BUY",
|
|
19
|
+
* price: "40000.00",
|
|
20
|
+
* quantity: "0.5"
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import type { FeesAPI, SimulateFeeParams, SimulateFeeResponse } from "@0xmonaco/types";
|
|
25
|
+
import { BaseAPI } from "../base";
|
|
26
|
+
export declare class FeesAPIImpl extends BaseAPI implements FeesAPI {
|
|
27
|
+
/**
|
|
28
|
+
* Simulate fees for an order before placing it.
|
|
29
|
+
*
|
|
30
|
+
* Returns exact fees for that specific order including Monaco protocol fees,
|
|
31
|
+
* application fees, and total amounts the taker must pay or maker will receive.
|
|
32
|
+
*
|
|
33
|
+
* @param params - Parameters for fee simulation
|
|
34
|
+
* @param params.trading_pair_id - The trading pair UUID
|
|
35
|
+
* @param params.side - The order side ("BUY" or "SELL")
|
|
36
|
+
* @param params.price - The price per unit as string
|
|
37
|
+
* @param params.quantity - The quantity to trade as string
|
|
38
|
+
* @returns Promise resolving to SimulateFeeResponse with fee breakdown
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Simulate fees for a buy order
|
|
43
|
+
* const buyFees = await feesAPI.simulateFees({
|
|
44
|
+
* trading_pair_id: "123e4567-e89b-12d3-a456-426614174000",
|
|
45
|
+
* side: "BUY",
|
|
46
|
+
* price: "40000.00",
|
|
47
|
+
* quantity: "0.5"
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* console.log(`Notional value: ${buyFees.notional}`);
|
|
51
|
+
* console.log(`Monaco taker fee: ${buyFees.monaco_taker_fee}`);
|
|
52
|
+
* console.log(`Application taker fee: ${buyFees.application_taker_fee}`);
|
|
53
|
+
* console.log(`Total taker fees: ${buyFees.total_taker_fees}`);
|
|
54
|
+
* console.log(`Total payment required: ${buyFees.taker_total_payment}`);
|
|
55
|
+
* console.log(`Lock amount for BUY: ${buyFees.buy_order_lock_amount}`);
|
|
56
|
+
*
|
|
57
|
+
* // Simulate fees for a sell order
|
|
58
|
+
* const sellFees = await feesAPI.simulateFees({
|
|
59
|
+
* trading_pair_id: "123e4567-e89b-12d3-a456-426614174000",
|
|
60
|
+
* side: "SELL",
|
|
61
|
+
* price: "40000.00",
|
|
62
|
+
* quantity: "0.5"
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* console.log(`Maker rebate: ${sellFees.monaco_maker_rebate}`);
|
|
66
|
+
* console.log(`Maker total receipt: ${sellFees.maker_total_receipt}`);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
simulateFees(params: SimulateFeeParams): Promise<SimulateFeeResponse>;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/fees/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,WAAY,SAAQ,OAAQ,YAAW,OAAO;IACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACG,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAgB5E"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fees API Implementation
|
|
3
|
+
*
|
|
4
|
+
* Handles fee simulation and calculation operations.
|
|
5
|
+
* All operations use JWT authentication and go through the API Gateway.
|
|
6
|
+
*
|
|
7
|
+
* This class provides a complete interface for fee-related operations on the Monaco protocol,
|
|
8
|
+
* including simulating fees before placing orders.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const feesAPI = new FeesAPIImpl(apiUrl);
|
|
13
|
+
* feesAPI.setAccessToken(jwtToken);
|
|
14
|
+
*
|
|
15
|
+
* // Simulate fees for an order
|
|
16
|
+
* const feeDetails = await feesAPI.simulateFees({
|
|
17
|
+
* trading_pair_id: "123e4567-e89b-12d3-a456-426614174000",
|
|
18
|
+
* side: "BUY",
|
|
19
|
+
* price: "40000.00",
|
|
20
|
+
* quantity: "0.5"
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import { SimulateFeeParamsSchema } from "@0xmonaco/types";
|
|
25
|
+
import { BaseAPI } from "../base";
|
|
26
|
+
export class FeesAPIImpl extends BaseAPI {
|
|
27
|
+
/**
|
|
28
|
+
* Simulate fees for an order before placing it.
|
|
29
|
+
*
|
|
30
|
+
* Returns exact fees for that specific order including Monaco protocol fees,
|
|
31
|
+
* application fees, and total amounts the taker must pay or maker will receive.
|
|
32
|
+
*
|
|
33
|
+
* @param params - Parameters for fee simulation
|
|
34
|
+
* @param params.trading_pair_id - The trading pair UUID
|
|
35
|
+
* @param params.side - The order side ("BUY" or "SELL")
|
|
36
|
+
* @param params.price - The price per unit as string
|
|
37
|
+
* @param params.quantity - The quantity to trade as string
|
|
38
|
+
* @returns Promise resolving to SimulateFeeResponse with fee breakdown
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Simulate fees for a buy order
|
|
43
|
+
* const buyFees = await feesAPI.simulateFees({
|
|
44
|
+
* trading_pair_id: "123e4567-e89b-12d3-a456-426614174000",
|
|
45
|
+
* side: "BUY",
|
|
46
|
+
* price: "40000.00",
|
|
47
|
+
* quantity: "0.5"
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* console.log(`Notional value: ${buyFees.notional}`);
|
|
51
|
+
* console.log(`Monaco taker fee: ${buyFees.monaco_taker_fee}`);
|
|
52
|
+
* console.log(`Application taker fee: ${buyFees.application_taker_fee}`);
|
|
53
|
+
* console.log(`Total taker fees: ${buyFees.total_taker_fees}`);
|
|
54
|
+
* console.log(`Total payment required: ${buyFees.taker_total_payment}`);
|
|
55
|
+
* console.log(`Lock amount for BUY: ${buyFees.buy_order_lock_amount}`);
|
|
56
|
+
*
|
|
57
|
+
* // Simulate fees for a sell order
|
|
58
|
+
* const sellFees = await feesAPI.simulateFees({
|
|
59
|
+
* trading_pair_id: "123e4567-e89b-12d3-a456-426614174000",
|
|
60
|
+
* side: "SELL",
|
|
61
|
+
* price: "40000.00",
|
|
62
|
+
* quantity: "0.5"
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* console.log(`Maker rebate: ${sellFees.monaco_maker_rebate}`);
|
|
66
|
+
* console.log(`Maker total receipt: ${sellFees.maker_total_receipt}`);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
async simulateFees(params) {
|
|
70
|
+
// Validate parameters using Zod schema
|
|
71
|
+
const validatedParams = SimulateFeeParamsSchema.parse(params);
|
|
72
|
+
const searchParams = new URLSearchParams();
|
|
73
|
+
searchParams.append("trading_pair_id", validatedParams.trading_pair_id);
|
|
74
|
+
searchParams.append("side", validatedParams.side);
|
|
75
|
+
searchParams.append("price", validatedParams.price);
|
|
76
|
+
searchParams.append("quantity", validatedParams.quantity);
|
|
77
|
+
const endpoint = `/api/v1/fees/simulate?${searchParams.toString()}`;
|
|
78
|
+
return await this.makeAuthenticatedRequest(endpoint, {
|
|
79
|
+
method: "GET",
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/fees/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,WAAY,SAAQ,OAAO;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC1C,uCAAuC;QACvC,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;QACxE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QACpD,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,yBAAyB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QAEpE,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAsB,QAAQ,EAAE;YACxE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/fees/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/fees/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/api/index.d.ts
CHANGED
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
package/dist/api/index.js
CHANGED
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -6,12 +6,17 @@
|
|
|
6
6
|
* - Heartbeat/ping-pong for connection health
|
|
7
7
|
* - Exponential backoff reconnection
|
|
8
8
|
* - Event-driven error handling
|
|
9
|
-
* - JWT authentication via query parameters
|
|
9
|
+
* - Optional JWT authentication via query parameters (only added if accessToken is provided)
|
|
10
|
+
*
|
|
11
|
+
* Supports both public channels (no authentication) and private channels (requires JWT).
|
|
10
12
|
*/
|
|
11
|
-
import type
|
|
12
|
-
import { WebSocketChannel } from "@0xmonaco/types";
|
|
13
|
+
import { type BaseWebSocketClient, type ConnectionStatus, type WebSocketChannel, type WebSocketConfig } from "@0xmonaco/types";
|
|
13
14
|
/**
|
|
14
15
|
* Base WebSocket client implementation for Monaco Protocol
|
|
16
|
+
*
|
|
17
|
+
* This client supports both authenticated and unauthenticated connections.
|
|
18
|
+
* If an accessToken is provided in the config, it will be included as a query parameter.
|
|
19
|
+
* If no accessToken is provided, the connection will be made without authentication (public channels).
|
|
15
20
|
*/
|
|
16
21
|
export declare class BaseWebSocketClientImpl implements BaseWebSocketClient {
|
|
17
22
|
protected static readonly CONNECTION_TIMEOUT = 10000;
|
|
@@ -28,7 +33,11 @@ export declare class BaseWebSocketClientImpl implements BaseWebSocketClient {
|
|
|
28
33
|
protected heartbeatInterval: NodeJS.Timeout | null;
|
|
29
34
|
protected lastPong: number;
|
|
30
35
|
constructor(config: WebSocketConfig);
|
|
31
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Connect to the WebSocket server.
|
|
38
|
+
* For public channels (OHLCV, Orderbook), authentication is optional.
|
|
39
|
+
* For private channels (Orders), authentication is required - call setAccessToken() first.
|
|
40
|
+
*/
|
|
32
41
|
connect(): Promise<void>;
|
|
33
42
|
/** Disconnect from the WebSocket server */
|
|
34
43
|
disconnect(): void;
|
|
@@ -38,7 +47,11 @@ export declare class BaseWebSocketClientImpl implements BaseWebSocketClient {
|
|
|
38
47
|
isConnected(): boolean;
|
|
39
48
|
/** Set the access token for authentication */
|
|
40
49
|
setAccessToken(token: string): void;
|
|
41
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Send message (queues if not connected).
|
|
52
|
+
* Messages are queued if the WebSocket is not in OPEN state, regardless of authentication.
|
|
53
|
+
* This allows both authenticated and public channels to queue messages until connected.
|
|
54
|
+
*/
|
|
42
55
|
send(data: any): void;
|
|
43
56
|
/** Flush all queued messages */
|
|
44
57
|
protected flushMessageQueue(): void;
|
|
@@ -57,7 +70,12 @@ export declare class BaseWebSocketClientImpl implements BaseWebSocketClient {
|
|
|
57
70
|
* @returns True if the message is a valid event with the specified channel type
|
|
58
71
|
*/
|
|
59
72
|
protected isEventMessage(message: any, channelType: WebSocketChannel): boolean;
|
|
60
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Create WebSocket connection with event handlers.
|
|
75
|
+
*
|
|
76
|
+
* If accessToken is provided in config, it will be appended as a query parameter.
|
|
77
|
+
* If no accessToken is provided, connection will be made without authentication (public channels).
|
|
78
|
+
*/
|
|
61
79
|
protected createConnection(): Promise<void>;
|
|
62
80
|
/** Schedule reconnect with exponential backoff */
|
|
63
81
|
protected scheduleReconnect(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-ws-client.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"base-ws-client.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAErB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAEjE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,SAAS;IACrD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,SAAS;IACrD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IACpD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAAS;IAGtD,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAgC;IAG5E,SAAS,CAAC,iBAAiB,SAAK;IAChC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAGvD,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,CAAM;IACnC,SAAS,CAAC,eAAe,UAAS;IAGlC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAC1D,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAc;gBAE5B,MAAM,EAAE,eAAe;IAUnC;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B,2CAA2C;IAC3C,UAAU,IAAI,IAAI;IAclB,oCAAoC;IACpC,mBAAmB,IAAI,gBAAgB;IAIvC,mCAAmC;IACnC,WAAW,IAAI,OAAO;IAItB,8CAA8C;IAC9C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAQrB,gCAAgC;IAChC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAOnC,gCAAgC;IAChC,SAAS,CAAC,cAAc,IAAI,IAAI;IAWhC,8BAA8B;IAC9B,SAAS,CAAC,aAAa,IAAI,IAAI;IAO/B,4CAA4C;IAC5C,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAOjD,2EAA2E;IAC3E,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAO3C;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,GAAG,OAAO;IAe9E;;;;;OAKG;cACa,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DjD,kDAAkD;IAClD,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAuBnC,8BAA8B;IAC9B,SAAS,CAAC,kBAAkB,IAAI,IAAI;CAMrC"}
|
|
@@ -1,11 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base WebSocket Client
|
|
3
|
+
*
|
|
4
|
+
* Production-ready WebSocket client with:
|
|
5
|
+
* - Message queuing and retry logic
|
|
6
|
+
* - Heartbeat/ping-pong for connection health
|
|
7
|
+
* - Exponential backoff reconnection
|
|
8
|
+
* - Event-driven error handling
|
|
9
|
+
* - Optional JWT authentication via query parameters (only added if accessToken is provided)
|
|
10
|
+
*
|
|
11
|
+
* Supports both public channels (no authentication) and private channels (requires JWT).
|
|
12
|
+
*/
|
|
13
|
+
import { WebSocketStatus, } from "@0xmonaco/types";
|
|
1
14
|
/**
|
|
2
15
|
* Base WebSocket client implementation for Monaco Protocol
|
|
16
|
+
*
|
|
17
|
+
* This client supports both authenticated and unauthenticated connections.
|
|
18
|
+
* If an accessToken is provided in the config, it will be included as a query parameter.
|
|
19
|
+
* If no accessToken is provided, the connection will be made without authentication (public channels).
|
|
3
20
|
*/
|
|
4
21
|
export class BaseWebSocketClientImpl {
|
|
5
22
|
constructor(config) {
|
|
6
23
|
// Core WebSocket properties
|
|
7
24
|
this.ws = null;
|
|
8
|
-
this.connectionStatus =
|
|
25
|
+
this.connectionStatus = WebSocketStatus.Disconnected;
|
|
9
26
|
// Reconnection management
|
|
10
27
|
this.reconnectAttempts = 0;
|
|
11
28
|
this.reconnectTimer = null;
|
|
@@ -23,20 +40,24 @@ export class BaseWebSocketClientImpl {
|
|
|
23
40
|
...config,
|
|
24
41
|
};
|
|
25
42
|
}
|
|
26
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Connect to the WebSocket server.
|
|
45
|
+
* For public channels (OHLCV, Orderbook), authentication is optional.
|
|
46
|
+
* For private channels (Orders), authentication is required - call setAccessToken() first.
|
|
47
|
+
*/
|
|
27
48
|
async connect() {
|
|
28
49
|
try {
|
|
29
50
|
if (this.ws) {
|
|
30
51
|
this.ws.close(1000, "Reconnecting");
|
|
31
52
|
this.ws = null;
|
|
32
53
|
}
|
|
33
|
-
if (this.connectionStatus ===
|
|
54
|
+
if (this.connectionStatus === WebSocketStatus.Connecting || this.connectionStatus === WebSocketStatus.Connected) {
|
|
34
55
|
return;
|
|
35
56
|
}
|
|
36
|
-
if
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.connectionStatus =
|
|
57
|
+
// No validation here - let each specific client decide if auth is required
|
|
58
|
+
// Public channels (OHLCV, Orderbook) work without authentication
|
|
59
|
+
// Private channels (Orders) should validate in their own implementation if needed
|
|
60
|
+
this.connectionStatus = WebSocketStatus.Connecting;
|
|
40
61
|
await this.createConnection();
|
|
41
62
|
}
|
|
42
63
|
catch (error) {
|
|
@@ -53,7 +74,7 @@ export class BaseWebSocketClientImpl {
|
|
|
53
74
|
this.ws.close();
|
|
54
75
|
this.ws = null;
|
|
55
76
|
}
|
|
56
|
-
this.connectionStatus =
|
|
77
|
+
this.connectionStatus = WebSocketStatus.Disconnected;
|
|
57
78
|
this.isAuthenticated = false;
|
|
58
79
|
}
|
|
59
80
|
/** Get current connection status */
|
|
@@ -68,9 +89,13 @@ export class BaseWebSocketClientImpl {
|
|
|
68
89
|
setAccessToken(token) {
|
|
69
90
|
this.config.accessToken = token;
|
|
70
91
|
}
|
|
71
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* Send message (queues if not connected).
|
|
94
|
+
* Messages are queued if the WebSocket is not in OPEN state, regardless of authentication.
|
|
95
|
+
* This allows both authenticated and public channels to queue messages until connected.
|
|
96
|
+
*/
|
|
72
97
|
send(data) {
|
|
73
|
-
if (
|
|
98
|
+
if (this.ws?.readyState !== WebSocket.OPEN) {
|
|
74
99
|
this.messageQueue.push(data);
|
|
75
100
|
return;
|
|
76
101
|
}
|
|
@@ -102,7 +127,7 @@ export class BaseWebSocketClientImpl {
|
|
|
102
127
|
}
|
|
103
128
|
/** Handle connection errors with cleanup */
|
|
104
129
|
handleConnectionError(error) {
|
|
105
|
-
this.connectionStatus =
|
|
130
|
+
this.connectionStatus = WebSocketStatus.Disconnected;
|
|
106
131
|
this.isAuthenticated = false;
|
|
107
132
|
this.stopHeartbeat();
|
|
108
133
|
console.warn("WebSocket connection error:", error?.message || error);
|
|
@@ -113,8 +138,6 @@ export class BaseWebSocketClientImpl {
|
|
|
113
138
|
this.lastPong = Date.now();
|
|
114
139
|
return;
|
|
115
140
|
}
|
|
116
|
-
// Basic message handling - extend in subclasses
|
|
117
|
-
console.log("WebSocket message received:", message);
|
|
118
141
|
}
|
|
119
142
|
/**
|
|
120
143
|
* Helper method to validate WebSocket event messages using WebSocketChannel enum
|
|
@@ -133,11 +156,17 @@ export class BaseWebSocketClientImpl {
|
|
|
133
156
|
message.data &&
|
|
134
157
|
typeof message.data === "object");
|
|
135
158
|
}
|
|
136
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Create WebSocket connection with event handlers.
|
|
161
|
+
*
|
|
162
|
+
* If accessToken is provided in config, it will be appended as a query parameter.
|
|
163
|
+
* If no accessToken is provided, connection will be made without authentication (public channels).
|
|
164
|
+
*/
|
|
137
165
|
async createConnection() {
|
|
138
166
|
return new Promise((resolve, reject) => {
|
|
139
167
|
try {
|
|
140
168
|
const url = new URL(this.config.wsUrl);
|
|
169
|
+
// Only add authentication token if provided (optional for public channels)
|
|
141
170
|
if (this.config.accessToken) {
|
|
142
171
|
url.searchParams.set("token", this.config.accessToken);
|
|
143
172
|
}
|
|
@@ -150,9 +179,9 @@ export class BaseWebSocketClientImpl {
|
|
|
150
179
|
}, BaseWebSocketClientImpl.CONNECTION_TIMEOUT);
|
|
151
180
|
this.ws.onopen = () => {
|
|
152
181
|
clearTimeout(connectionTimeout);
|
|
153
|
-
this.connectionStatus =
|
|
182
|
+
this.connectionStatus = WebSocketStatus.Connected;
|
|
154
183
|
this.reconnectAttempts = 0;
|
|
155
|
-
this.isAuthenticated =
|
|
184
|
+
this.isAuthenticated = !!this.config.accessToken;
|
|
156
185
|
this.lastPong = Date.now();
|
|
157
186
|
this.startHeartbeat();
|
|
158
187
|
this.flushMessageQueue();
|
|
@@ -169,7 +198,7 @@ export class BaseWebSocketClientImpl {
|
|
|
169
198
|
};
|
|
170
199
|
this.ws.onclose = (event) => {
|
|
171
200
|
clearTimeout(connectionTimeout);
|
|
172
|
-
this.connectionStatus =
|
|
201
|
+
this.connectionStatus = WebSocketStatus.Disconnected;
|
|
173
202
|
this.isAuthenticated = false;
|
|
174
203
|
this.stopHeartbeat();
|
|
175
204
|
if (this.config.autoReconnect && this.reconnectAttempts < (this.config.maxReconnectAttempts || 5) && event.code !== 1000) {
|
|
@@ -184,17 +213,17 @@ export class BaseWebSocketClientImpl {
|
|
|
184
213
|
};
|
|
185
214
|
}
|
|
186
215
|
catch (error) {
|
|
187
|
-
this.connectionStatus =
|
|
216
|
+
this.connectionStatus = WebSocketStatus.Disconnected;
|
|
188
217
|
reject(error);
|
|
189
218
|
}
|
|
190
219
|
});
|
|
191
220
|
}
|
|
192
221
|
/** Schedule reconnect with exponential backoff */
|
|
193
222
|
scheduleReconnect() {
|
|
194
|
-
this.connectionStatus =
|
|
223
|
+
this.connectionStatus = WebSocketStatus.Reconnecting;
|
|
195
224
|
this.reconnectAttempts++;
|
|
196
225
|
const baseDelay = this.config.reconnectDelay || 5000;
|
|
197
|
-
const exponentialDelay = Math.min(baseDelay *
|
|
226
|
+
const exponentialDelay = Math.min(baseDelay * 2 ** (this.reconnectAttempts - 1), BaseWebSocketClientImpl.MAX_RECONNECT_DELAY);
|
|
198
227
|
this.reconnectTimer = setTimeout(async () => {
|
|
199
228
|
try {
|
|
200
229
|
if (!this.config.accessToken?.trim()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OHLCV WebSocket Client Implementation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* PUBLIC WebSocket client for OHLCV (Open, High, Low, Close, Volume) candlestick data events.
|
|
5
|
+
* No authentication required - provides public market candlestick data.
|
|
5
6
|
* Extends the base WebSocket client with OHLCV-specific functionality.
|
|
6
7
|
*/
|
|
7
8
|
import { OHLCVWebSocketClient, WebSocketConfig, TradingMode, OHLCVEvent, Interval } from "@0xmonaco/types";
|
|
@@ -14,6 +15,7 @@ export declare class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl im
|
|
|
14
15
|
constructor(config: WebSocketConfig);
|
|
15
16
|
/**
|
|
16
17
|
* Subscribe to OHLCV (candlestick) updates for a specific trading pair, mode, and interval.
|
|
18
|
+
* No authentication required - provides public market data.
|
|
17
19
|
*
|
|
18
20
|
* @param symbol - Trading pair symbol (e.g., "BTC/USDC")
|
|
19
21
|
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
@@ -22,6 +24,9 @@ export declare class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl im
|
|
|
22
24
|
*
|
|
23
25
|
* @example
|
|
24
26
|
* ```typescript
|
|
27
|
+
* // No authentication required
|
|
28
|
+
* await ohlcvWS.connect();
|
|
29
|
+
*
|
|
25
30
|
* ohlcvWS.subscribeToOHLCV("BTC/USDC", TradingMode.SPOT, "1m", (event) => {
|
|
26
31
|
* console.log("New OHLCV data:", event.candlestick.o, event.candlestick.c);
|
|
27
32
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlcv-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ohlcv-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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;;;;;;;;;;;;;;;;;;OAkBG;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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OHLCV WebSocket Client Implementation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* PUBLIC WebSocket client for OHLCV (Open, High, Low, Close, Volume) candlestick data events.
|
|
5
|
+
* No authentication required - provides public market candlestick data.
|
|
5
6
|
* Extends the base WebSocket client with OHLCV-specific functionality.
|
|
6
7
|
*/
|
|
7
8
|
import { WebSocketChannel, } from "@0xmonaco/types";
|
|
@@ -17,6 +18,7 @@ export class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* Subscribe to OHLCV (candlestick) updates for a specific trading pair, mode, and interval.
|
|
21
|
+
* No authentication required - provides public market data.
|
|
20
22
|
*
|
|
21
23
|
* @param symbol - Trading pair symbol (e.g., "BTC/USDC")
|
|
22
24
|
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
@@ -25,6 +27,9 @@ export class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
|
25
27
|
*
|
|
26
28
|
* @example
|
|
27
29
|
* ```typescript
|
|
30
|
+
* // No authentication required
|
|
31
|
+
* await ohlcvWS.connect();
|
|
32
|
+
*
|
|
28
33
|
* ohlcvWS.subscribeToOHLCV("BTC/USDC", TradingMode.SPOT, "1m", (event) => {
|
|
29
34
|
* console.log("New OHLCV data:", event.candlestick.o, event.candlestick.c);
|
|
30
35
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlcv-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ohlcv-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAGL,gBAAgB,GAIjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,wBACX,SAAQ,uBAAuB;IAM/B,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QAJhB,wDAAwD;QAChD,kBAAa,GAAG,IAAI,GAAG,EAAuC,CAAC;IAIvE,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CACd,MAAc,EACd,WAAwB,EACxB,QAAkB,EAClB,QAAqC;QAErC,MAAM,OAAO,GAAG,SAAS,MAAM,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC7D,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAEzG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAElD,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,MAAc,EACd,WAAwB,EACxB,QAAkB;QAElB,MAAM,OAAO,GAAG,SAAS,MAAM,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC7D,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAEzG,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,OAAY;QAClC,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,OAAY;QAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,oDAAoD;IAC5C,gBAAgB,CAAC,KAAU;QACjC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,4CAA4C;YAC7E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,sCAAsC;YAE3E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC;YAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;YAEvC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAEzG,+BAA+B;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE,CAAC;gBACZ,oDAAoD;gBACpD,MAAM,UAAU,GAAe;oBAC7B,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,WAA0B;oBACvC,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE;wBACX,CAAC,EAAE,SAAS,CAAC,YAAY,IAAI,CAAC,EAAE,yBAAyB;wBACzD,CAAC,EAAE,SAAS,CAAC,UAAU,IAAI,CAAC,EAAE,uBAAuB;wBACrD,CAAC,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,aAAa;wBACvC,CAAC,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,aAAa;wBACvC,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,EAAE,YAAY;wBACrC,CAAC,EAAE,SAAS,CAAC,KAAK,IAAI,GAAG,EAAE,cAAc;wBACzC,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,EAAE,sBAAsB;wBAClD,CAAC,EAAE,MAAM,EAAE,2BAA2B;wBACtC,CAAC,EAAE,QAAQ,EAAE,6BAA6B;wBAC1C,CAAC,EAAE,SAAS,CAAC,YAAY,IAAI,CAAC,EAAE,mBAAmB;qBACpD;iBACF,CAAC;gBAEF,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CACV,qCAAqC,eAAe,EAAE,EACtD,KAAK,CACN,CAAC;YACJ,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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Orderbook WebSocket Client Implementation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* PUBLIC WebSocket client for orderbook-related events and operations.
|
|
5
|
+
* No authentication required - provides public orderbook market data.
|
|
5
6
|
* Extends the base WebSocket client with orderbook-specific functionality.
|
|
6
7
|
*/
|
|
7
8
|
import { OrderbookWebSocketClient, WebSocketConfig, TradingMode, OrderbookEvent } from "@0xmonaco/types";
|
|
@@ -14,6 +15,7 @@ export declare class OrderbookWebSocketClientImpl extends BaseWebSocketClientImp
|
|
|
14
15
|
constructor(config: WebSocketConfig);
|
|
15
16
|
/**
|
|
16
17
|
* Subscribe to orderbook events for a specific market and trading mode.
|
|
18
|
+
* No authentication required - provides public orderbook data.
|
|
17
19
|
*
|
|
18
20
|
* @param market - Trading pair symbol (e.g., "BTC/USDC")
|
|
19
21
|
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
@@ -21,6 +23,9 @@ export declare class OrderbookWebSocketClientImpl extends BaseWebSocketClientImp
|
|
|
21
23
|
*
|
|
22
24
|
* @example
|
|
23
25
|
* ```typescript
|
|
26
|
+
* // No authentication required
|
|
27
|
+
* await orderbookWS.connect();
|
|
28
|
+
*
|
|
24
29
|
* orderbookWS.subscribeToOrderbookEvents("BTC/USDC", TradingMode.SPOT, (event) => {
|
|
25
30
|
* console.log("Orderbook update:", event.bids.length, "bids", event.asks.length, "asks");
|
|
26
31
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderbook-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orderbook-ws-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"orderbook-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orderbook-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAoB,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3H,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,uBAAwB,YAAW,wBAAwB;IAC3G,OAAO,CAAC,iBAAiB,CAA2D;gBAExE,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;;;;;OAiBG;IACH,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI;IAarH;;;;;OAKG;IACH,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAa9E,uEAAuE;IACvE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAU3C,8DAA8D;IAC9D,OAAO,CAAC,gBAAgB;IAIxB,wDAAwD;IACxD,OAAO,CAAC,oBAAoB;IA4D5B,4CAA4C;IAC5C,SAAS,CAAC,OAAO,IAAI,IAAI;CAG1B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Orderbook WebSocket Client Implementation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* PUBLIC WebSocket client for orderbook-related events and operations.
|
|
5
|
+
* No authentication required - provides public orderbook market data.
|
|
5
6
|
* Extends the base WebSocket client with orderbook-specific functionality.
|
|
6
7
|
*/
|
|
7
8
|
import { WebSocketChannel } from "@0xmonaco/types";
|
|
@@ -16,6 +17,7 @@ export class OrderbookWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* Subscribe to orderbook events for a specific market and trading mode.
|
|
20
|
+
* No authentication required - provides public orderbook data.
|
|
19
21
|
*
|
|
20
22
|
* @param market - Trading pair symbol (e.g., "BTC/USDC")
|
|
21
23
|
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
@@ -23,6 +25,9 @@ export class OrderbookWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
|
23
25
|
*
|
|
24
26
|
* @example
|
|
25
27
|
* ```typescript
|
|
28
|
+
* // No authentication required
|
|
29
|
+
* await orderbookWS.connect();
|
|
30
|
+
*
|
|
26
31
|
* orderbookWS.subscribeToOrderbookEvents("BTC/USDC", TradingMode.SPOT, (event) => {
|
|
27
32
|
* console.log("Orderbook update:", event.bids.length, "bids", event.asks.length, "asks");
|
|
28
33
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderbook-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orderbook-ws-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"orderbook-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orderbook-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAA6C,gBAAgB,EAA+B,MAAM,iBAAiB,CAAC;AAC3H,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,uBAAuB;IAGvE,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHR,sBAAiB,GAAiD,IAAI,GAAG,EAAE,CAAC;IAIpF,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,0BAA0B,CAAC,MAAc,EAAE,WAAwB,EAAE,QAAyC;QAC5G,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,CAAC,MAAc,EAAE,WAAwB;QACrE,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,CAAC,kCAAkC;YACnE,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,gCAAgC;YAEzE,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,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,KAAK;4BACpE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,KAAK;yBACjE;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,CAAC,qDAAqD,eAAe,EAAE,CAAC,CAAC;YACxF,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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Orders WebSocket Client Implementation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* AUTHENTICATED WebSocket client for personal order-related events.
|
|
5
|
+
* Requires JWT authentication via access token.
|
|
6
|
+
* Shows user-specific order updates and events.
|
|
6
7
|
*/
|
|
7
8
|
import { type OrderEvent, type OrdersWebSocketClient, type TradingMode, type WebSocketConfig } from "@0xmonaco/types";
|
|
8
9
|
import { BaseWebSocketClientImpl } from "../base-ws-client";
|
|
@@ -13,7 +14,13 @@ export declare class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl i
|
|
|
13
14
|
private orderHandlers;
|
|
14
15
|
constructor(config: WebSocketConfig);
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
+
* Override connect to enforce authentication requirement for Orders channel.
|
|
18
|
+
* Orders WebSocket requires JWT authentication for personal order updates.
|
|
19
|
+
*/
|
|
20
|
+
connect(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Subscribe to personal order events for a specific market and trading mode.
|
|
23
|
+
* Requires authentication - call setAccessToken() before connecting.
|
|
17
24
|
*
|
|
18
25
|
* @param market - Trading pair symbol (e.g., "BTC/USDC")
|
|
19
26
|
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
@@ -21,8 +28,12 @@ export declare class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl i
|
|
|
21
28
|
*
|
|
22
29
|
* @example
|
|
23
30
|
* ```typescript
|
|
31
|
+
* // Set authentication token first
|
|
32
|
+
* ordersWS.setAccessToken(authState.accessToken);
|
|
33
|
+
* await ordersWS.connect();
|
|
34
|
+
*
|
|
24
35
|
* ordersWS.subscribeToOrderEvents("BTC/USDC", TradingMode.SPOT, (event) => {
|
|
25
|
-
* console.log("
|
|
36
|
+
* console.log("Personal order event:", event.eventType);
|
|
26
37
|
* });
|
|
27
38
|
* ```
|
|
28
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orders-ws-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"orders-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orders-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;;;;;;;;;;;;;;;;;OAkBG;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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Orders WebSocket Client Implementation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* AUTHENTICATED WebSocket client for personal order-related events.
|
|
5
|
+
* Requires JWT authentication via access token.
|
|
6
|
+
* Shows user-specific order updates and events.
|
|
6
7
|
*/
|
|
7
8
|
import { WebSocketChannel, } from "@0xmonaco/types";
|
|
8
9
|
import { BaseWebSocketClientImpl } from "../base-ws-client";
|
|
@@ -39,7 +40,19 @@ export class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
|
39
40
|
this.orderHandlers = new Map();
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
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.
|
|
43
56
|
*
|
|
44
57
|
* @param market - Trading pair symbol (e.g., "BTC/USDC")
|
|
45
58
|
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
@@ -47,8 +60,12 @@ export class OrdersWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
|
47
60
|
*
|
|
48
61
|
* @example
|
|
49
62
|
* ```typescript
|
|
63
|
+
* // Set authentication token first
|
|
64
|
+
* ordersWS.setAccessToken(authState.accessToken);
|
|
65
|
+
* await ordersWS.connect();
|
|
66
|
+
*
|
|
50
67
|
* ordersWS.subscribeToOrderEvents("BTC/USDC", TradingMode.SPOT, (event) => {
|
|
51
|
-
* console.log("
|
|
68
|
+
* console.log("Personal order event:", event.eventType);
|
|
52
69
|
* });
|
|
53
70
|
* ```
|
|
54
71
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/orders-ws-client.ts"],"names":[],"mappings":"AAAA
|
|
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/dist/sdk.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Monaco SDK Implementation
|
|
3
3
|
*/
|
|
4
|
-
import type { ApplicationsAPI, AuthAPI, AuthState, MarketAPI, MonacoSDK, Network, OHLCVWebSocketClient, OrderbookWebSocketClient, OrdersWebSocketClient, ProfileAPI, SDKConfig, TradingAPI, VaultAPI } from "@0xmonaco/types";
|
|
4
|
+
import type { ApplicationsAPI, AuthAPI, AuthState, FeesAPI, MarketAPI, MonacoSDK, Network, OHLCVWebSocketClient, OrderbookWebSocketClient, OrdersWebSocketClient, ProfileAPI, SDKConfig, TradingAPI, VaultAPI } from "@0xmonaco/types";
|
|
5
5
|
import { type PublicClient, type TransactionReceipt, type WalletClient } from "viem";
|
|
6
6
|
export declare class MonacoSDKImpl implements MonacoSDK {
|
|
7
7
|
auth: AuthAPI;
|
|
8
8
|
applications: ApplicationsAPI;
|
|
9
|
+
fees: FeesAPI;
|
|
9
10
|
vault: VaultAPI;
|
|
10
11
|
trading: TradingAPI;
|
|
11
12
|
market: MarketAPI;
|
|
@@ -34,20 +35,30 @@ export declare class MonacoSDKImpl implements MonacoSDK {
|
|
|
34
35
|
* when calling `auth.revokeToken()` or just call `sdk.logout()`.
|
|
35
36
|
*
|
|
36
37
|
* @param clientId - The client ID for authentication
|
|
38
|
+
* @param options - Optional configuration
|
|
39
|
+
* @param options.connectWebSocket - Auto-connect all authenticated WebSocket channels after login (currently Orders) (default: false)
|
|
37
40
|
* @returns The authentication state with accessToken, refreshToken, user info, etc.
|
|
38
41
|
*
|
|
39
42
|
* @example
|
|
40
43
|
* ```typescript
|
|
44
|
+
* // Simple login (manual WebSocket connection)
|
|
41
45
|
* const authState = await sdk.login(clientId);
|
|
42
|
-
*
|
|
46
|
+
* await sdk.websocket.orders.connect();
|
|
47
|
+
*
|
|
48
|
+
* // Auto-connect authenticated WebSocket channels (currently Orders)
|
|
49
|
+
* const authState = await sdk.login(clientId, { connectWebSocket: true });
|
|
50
|
+
* // Orders WebSocket is now connected and ready
|
|
51
|
+
* sdk.websocket.orders.subscribeToOrderEvents("BTC/USDC", "SPOT", callback);
|
|
43
52
|
*
|
|
44
53
|
* // Later, to revoke:
|
|
45
54
|
* await sdk.auth.revokeToken(authState.refreshToken); // ✅
|
|
46
55
|
* // Or simply:
|
|
47
|
-
* await sdk.logout(); // ✅ Calls revokeToken internally
|
|
56
|
+
* await sdk.logout(); // ✅ Calls revokeToken internally and disconnects WebSockets
|
|
48
57
|
* ```
|
|
49
58
|
*/
|
|
50
|
-
login(clientId: string
|
|
59
|
+
login(clientId: string, options?: {
|
|
60
|
+
connectWebSocket?: boolean;
|
|
61
|
+
}): Promise<AuthState>;
|
|
51
62
|
/**
|
|
52
63
|
* Get the current authentication state
|
|
53
64
|
*
|
|
@@ -57,13 +68,14 @@ export declare class MonacoSDKImpl implements MonacoSDK {
|
|
|
57
68
|
/**
|
|
58
69
|
* Logout the user
|
|
59
70
|
*
|
|
60
|
-
* This method revokes the refresh token (if available)
|
|
71
|
+
* This method revokes the refresh token (if available), disconnects all authenticated
|
|
72
|
+
* WebSocket channels, and clears the local auth state.
|
|
61
73
|
* It internally calls `auth.revokeToken(refreshToken)` to invalidate the token on the server.
|
|
62
74
|
*
|
|
63
75
|
* @example
|
|
64
76
|
* ```typescript
|
|
65
77
|
* await sdk.logout();
|
|
66
|
-
* // Token is revoked and local state cleared
|
|
78
|
+
* // Token is revoked, authenticated WebSockets disconnected, and local state cleared
|
|
67
79
|
* ```
|
|
68
80
|
*/
|
|
69
81
|
logout(): Promise<void>;
|
package/dist/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAkD,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAkD,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAgBrI,qBAAa,aAAc,YAAW,SAAS;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE;QAChB,MAAM,EAAE,qBAAqB,CAAC;QAC9B,KAAK,EAAE,oBAAoB,CAAC;QAC5B,SAAS,EAAE,wBAAwB,CAAC;KACrC,CAAC;IAEK,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAElC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;gBAET,GAAG,EAAE,SAAS;IA2D1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAgC3F;;;;OAIG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC;;;;;;;;;;;;OAYG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB7B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;IAsCvC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAO3B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;;;OAMG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAO9G;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAE5D"}
|
package/dist/sdk.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createPublicClient, http } from "viem";
|
|
|
2
2
|
import { sei, seiTestnet } from "viem/chains";
|
|
3
3
|
import { ApplicationsAPIImpl } from "./api/applications";
|
|
4
4
|
import { AuthAPIImpl } from "./api/auth";
|
|
5
|
+
import { FeesAPIImpl } from "./api/fees";
|
|
5
6
|
import { MarketAPIImpl } from "./api/market";
|
|
6
7
|
import { ProfileAPIImpl } from "./api/profile";
|
|
7
8
|
import { TradingAPIImpl } from "./api/trading";
|
|
@@ -39,19 +40,26 @@ export class MonacoSDKImpl {
|
|
|
39
40
|
this.applications = new ApplicationsAPIImpl(endpoints.apiUrl);
|
|
40
41
|
this.market = new MarketAPIImpl(endpoints.apiUrl);
|
|
41
42
|
this.auth = new AuthAPIImpl(this.walletClient, this.chain, endpoints.apiUrl);
|
|
43
|
+
this.fees = new FeesAPIImpl(endpoints.apiUrl);
|
|
42
44
|
this.vault = new VaultAPIImpl(this.publicClient, this.walletClient, this.chain, this.market, this.applications, endpoints.apiUrl);
|
|
43
45
|
this.trading = new TradingAPIImpl(this.market, endpoints.apiUrl);
|
|
44
46
|
this.profile = new ProfileAPIImpl(endpoints.apiUrl);
|
|
45
47
|
// Instantiate WebSocket clients
|
|
46
48
|
this.websocket = {
|
|
49
|
+
// Orders WebSocket - REQUIRES AUTHENTICATION (this will serve Order Event updates for the authenticated user)
|
|
47
50
|
orders: new OrdersWebSocketClientImpl({
|
|
48
51
|
wsUrl: endpoints.apiUrl + "/ws",
|
|
52
|
+
// accessToken will be set after login via setAccessToken() to authenticate the user
|
|
49
53
|
}),
|
|
54
|
+
// OHLCV WebSocket - PUBLIC (this will serve OHLCV Event updates for a specific market)
|
|
50
55
|
ohlcv: new OHLCVWebSocketClientImpl({
|
|
51
56
|
wsUrl: endpoints.apiUrl + "/ws",
|
|
57
|
+
// No accessToken required to be set - public access
|
|
52
58
|
}),
|
|
59
|
+
// Orderbook WebSocket - PUBLIC (this will serve Orderbook Event updates for a specific market)
|
|
53
60
|
orderbook: new OrderbookWebSocketClientImpl({
|
|
54
61
|
wsUrl: endpoints.apiUrl + "/ws",
|
|
62
|
+
// No accessToken required to be set - public access
|
|
55
63
|
}),
|
|
56
64
|
};
|
|
57
65
|
}
|
|
@@ -71,20 +79,28 @@ export class MonacoSDKImpl {
|
|
|
71
79
|
* when calling `auth.revokeToken()` or just call `sdk.logout()`.
|
|
72
80
|
*
|
|
73
81
|
* @param clientId - The client ID for authentication
|
|
82
|
+
* @param options - Optional configuration
|
|
83
|
+
* @param options.connectWebSocket - Auto-connect all authenticated WebSocket channels after login (currently Orders) (default: false)
|
|
74
84
|
* @returns The authentication state with accessToken, refreshToken, user info, etc.
|
|
75
85
|
*
|
|
76
86
|
* @example
|
|
77
87
|
* ```typescript
|
|
88
|
+
* // Simple login (manual WebSocket connection)
|
|
78
89
|
* const authState = await sdk.login(clientId);
|
|
79
|
-
*
|
|
90
|
+
* await sdk.websocket.orders.connect();
|
|
91
|
+
*
|
|
92
|
+
* // Auto-connect authenticated WebSocket channels (currently Orders)
|
|
93
|
+
* const authState = await sdk.login(clientId, { connectWebSocket: true });
|
|
94
|
+
* // Orders WebSocket is now connected and ready
|
|
95
|
+
* sdk.websocket.orders.subscribeToOrderEvents("BTC/USDC", "SPOT", callback);
|
|
80
96
|
*
|
|
81
97
|
* // Later, to revoke:
|
|
82
98
|
* await sdk.auth.revokeToken(authState.refreshToken); // ✅
|
|
83
99
|
* // Or simply:
|
|
84
|
-
* await sdk.logout(); // ✅ Calls revokeToken internally
|
|
100
|
+
* await sdk.logout(); // ✅ Calls revokeToken internally and disconnects WebSockets
|
|
85
101
|
* ```
|
|
86
102
|
*/
|
|
87
|
-
async login(clientId) {
|
|
103
|
+
async login(clientId, options) {
|
|
88
104
|
const response = await this.auth.authenticate(clientId);
|
|
89
105
|
this.authState = {
|
|
90
106
|
accessToken: response.accessToken,
|
|
@@ -94,6 +110,7 @@ export class MonacoSDKImpl {
|
|
|
94
110
|
};
|
|
95
111
|
// Set access tokens for APIs
|
|
96
112
|
this.applications.setAccessToken(this.authState.accessToken);
|
|
113
|
+
this.fees.setAccessToken(this.authState.accessToken);
|
|
97
114
|
this.vault.setAccessToken(this.authState.accessToken);
|
|
98
115
|
this.trading.setAccessToken(this.authState.accessToken);
|
|
99
116
|
this.market.setAccessToken(this.authState.accessToken);
|
|
@@ -102,6 +119,11 @@ export class MonacoSDKImpl {
|
|
|
102
119
|
this.websocket.orders.setAccessToken(this.authState.accessToken);
|
|
103
120
|
this.websocket.ohlcv.setAccessToken(this.authState.accessToken);
|
|
104
121
|
this.websocket.orderbook.setAccessToken(this.authState.accessToken);
|
|
122
|
+
// Optionally auto-connect authenticated WebSocket channels
|
|
123
|
+
// Currently includes: Orders (personal order updates)
|
|
124
|
+
if (options?.connectWebSocket) {
|
|
125
|
+
await this.websocket.orders.connect();
|
|
126
|
+
}
|
|
105
127
|
return this.authState;
|
|
106
128
|
}
|
|
107
129
|
/**
|
|
@@ -115,13 +137,14 @@ export class MonacoSDKImpl {
|
|
|
115
137
|
/**
|
|
116
138
|
* Logout the user
|
|
117
139
|
*
|
|
118
|
-
* This method revokes the refresh token (if available)
|
|
140
|
+
* This method revokes the refresh token (if available), disconnects all authenticated
|
|
141
|
+
* WebSocket channels, and clears the local auth state.
|
|
119
142
|
* It internally calls `auth.revokeToken(refreshToken)` to invalidate the token on the server.
|
|
120
143
|
*
|
|
121
144
|
* @example
|
|
122
145
|
* ```typescript
|
|
123
146
|
* await sdk.logout();
|
|
124
|
-
* // Token is revoked and local state cleared
|
|
147
|
+
* // Token is revoked, authenticated WebSockets disconnected, and local state cleared
|
|
125
148
|
* ```
|
|
126
149
|
*/
|
|
127
150
|
async logout() {
|
|
@@ -134,6 +157,11 @@ export class MonacoSDKImpl {
|
|
|
134
157
|
console.warn("Failed to revoke token on logout:", error);
|
|
135
158
|
}
|
|
136
159
|
}
|
|
160
|
+
// Disconnect authenticated WebSocket channels if connected
|
|
161
|
+
// Currently includes: Orders (personal order updates)
|
|
162
|
+
if (this.websocket.orders.isConnected()) {
|
|
163
|
+
this.websocket.orders.disconnect();
|
|
164
|
+
}
|
|
137
165
|
this.authState = undefined;
|
|
138
166
|
}
|
|
139
167
|
/**
|
|
@@ -152,6 +180,7 @@ export class MonacoSDKImpl {
|
|
|
152
180
|
expiresAt: response.expiresAt,
|
|
153
181
|
};
|
|
154
182
|
// Set new access tokens for APIs
|
|
183
|
+
this.fees.setAccessToken(this.authState.accessToken);
|
|
155
184
|
this.vault.setAccessToken(this.authState.accessToken);
|
|
156
185
|
this.trading.setAccessToken(this.authState.accessToken);
|
|
157
186
|
this.market.setAccessToken(this.authState.accessToken);
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.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.12",
|
|
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.11"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@types/node": "^20.11.30",
|