@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
package/dist/api/market/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MarketAPI, TradingPair, Candlestick,
|
|
1
|
+
import type { MarketAPI, TradingPair, Candlestick, Interval } from "@0xmonaco/types";
|
|
2
2
|
import { BaseAPI } from "../base";
|
|
3
3
|
/**
|
|
4
4
|
* Market API Implementation
|
|
@@ -8,6 +8,6 @@ import { BaseAPI } from "../base";
|
|
|
8
8
|
export declare class MarketAPIImpl extends BaseAPI implements MarketAPI {
|
|
9
9
|
getTradingPairs(): Promise<TradingPair[]>;
|
|
10
10
|
getTradingPairBySymbol(symbol: string): Promise<TradingPair | undefined>;
|
|
11
|
-
getCandlesticks(symbol: string, interval:
|
|
11
|
+
getCandlesticks(symbol: string, interval: Interval, startTime: number, endTime: number): Promise<Candlestick[]>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EAGX,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EAGX,WAAW,EACX,QAAQ,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,OAAQ,YAAW,SAAS;IACvD,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAczC,sBAAsB,CAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAc7B,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;CAyB1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC3C,sBAAsB,CACvB,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sEAAsE;YACtE,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,MAAc;QAEd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC3C,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CACrD,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC5C,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC3C,sBAAsB,CACvB,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sEAAsE;YACtE,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,MAAc;QAEd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC3C,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CACrD,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC5C,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,QAAkB,EAClB,SAAiB,EACjB,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,2CAA2C,kBAAkB,CACvE,MAAM,CACP,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAG1C,GAAG,CAAC,CAAC;YAER,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,oCAAoC,MAAM,IAAI,QAAQ,GAAG,EACzD,KAAK,CACN,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -107,17 +107,34 @@ export declare class TradingAPIImpl extends BaseAPI implements TradingAPI {
|
|
|
107
107
|
* @param quantity - The order quantity as string
|
|
108
108
|
* @param options - Optional parameters for the market order
|
|
109
109
|
* @param options.tradingMode - Trading mode (e.g., "SPOT")
|
|
110
|
-
* @param options.slippageTolerance - Slippage tolerance as decimal (e.g., 0.01 for 1%,
|
|
110
|
+
* @param options.slippageTolerance - Slippage tolerance as decimal (e.g., 0.01 for 1%, 0 for best price only, undefined for unlimited slippage)
|
|
111
111
|
* @returns Promise resolving to CreateOrderResponse with order details
|
|
112
112
|
*
|
|
113
113
|
* @example
|
|
114
114
|
* ```typescript
|
|
115
|
-
*
|
|
115
|
+
* // Market order with 1% slippage tolerance
|
|
116
|
+
* const order1 = await tradingAPI.placeMarketOrder(
|
|
116
117
|
* "ETH-USD",
|
|
117
118
|
* "SELL",
|
|
118
119
|
* "0.5",
|
|
119
120
|
* { tradingMode: "SPOT", slippageTolerance: 0.01 } // 1% slippage
|
|
120
121
|
* );
|
|
122
|
+
*
|
|
123
|
+
* // Market order with zero slippage (only execute at best price)
|
|
124
|
+
* const order2 = await tradingAPI.placeMarketOrder(
|
|
125
|
+
* "ETH-USD",
|
|
126
|
+
* "BUY",
|
|
127
|
+
* "1.0",
|
|
128
|
+
* { slippageTolerance: 0 } // Only execute at best ask price
|
|
129
|
+
* );
|
|
130
|
+
*
|
|
131
|
+
* // Market order with unlimited slippage
|
|
132
|
+
* const order3 = await tradingAPI.placeMarketOrder(
|
|
133
|
+
* "ETH-USD",
|
|
134
|
+
* "BUY",
|
|
135
|
+
* "1.0"
|
|
136
|
+
* // No slippageTolerance specified = unlimited slippage
|
|
137
|
+
* );
|
|
121
138
|
* ```
|
|
122
139
|
*/
|
|
123
140
|
placeMarketOrder(market: string, side: OrderSide, quantity: string, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EAET,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,cAAe,SAAQ,OAAQ,YAAW,UAAU;IAC/D,OAAO,CAAC,SAAS,CAAY;IAE9B;;;;;OAKG;gBACS,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAK/C;;;;;;;;;;;;;;OAcG;YACW,cAAc;IAW5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,OAAO,CAAC,mBAAmB,CAAC;IAuC/B
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EAET,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,cAAe,SAAQ,OAAQ,YAAW,UAAU;IAC/D,OAAO,CAAC,SAAS,CAAY;IAE9B;;;;;OAKG;gBACS,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAK/C;;;;;;;;;;;;;;OAcG;YACW,cAAc;IAW5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,OAAO,CAAC,mBAAmB,CAAC;IAuC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GACA,OAAO,CAAC,mBAAmB,CAAC;IAsC/B;;;;;;;;;;;;;;;;OAgBG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuB1D,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GACA,OAAO,CAAC,oBAAoB,CAAC;IA+BhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,kBAAkB,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAmChG;;;;;;;;;;;;;;;;;OAiBG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgB3D"}
|
package/dist/api/trading/api.js
CHANGED
|
@@ -140,17 +140,34 @@ export class TradingAPIImpl extends BaseAPI {
|
|
|
140
140
|
* @param quantity - The order quantity as string
|
|
141
141
|
* @param options - Optional parameters for the market order
|
|
142
142
|
* @param options.tradingMode - Trading mode (e.g., "SPOT")
|
|
143
|
-
* @param options.slippageTolerance - Slippage tolerance as decimal (e.g., 0.01 for 1%,
|
|
143
|
+
* @param options.slippageTolerance - Slippage tolerance as decimal (e.g., 0.01 for 1%, 0 for best price only, undefined for unlimited slippage)
|
|
144
144
|
* @returns Promise resolving to CreateOrderResponse with order details
|
|
145
145
|
*
|
|
146
146
|
* @example
|
|
147
147
|
* ```typescript
|
|
148
|
-
*
|
|
148
|
+
* // Market order with 1% slippage tolerance
|
|
149
|
+
* const order1 = await tradingAPI.placeMarketOrder(
|
|
149
150
|
* "ETH-USD",
|
|
150
151
|
* "SELL",
|
|
151
152
|
* "0.5",
|
|
152
153
|
* { tradingMode: "SPOT", slippageTolerance: 0.01 } // 1% slippage
|
|
153
154
|
* );
|
|
155
|
+
*
|
|
156
|
+
* // Market order with zero slippage (only execute at best price)
|
|
157
|
+
* const order2 = await tradingAPI.placeMarketOrder(
|
|
158
|
+
* "ETH-USD",
|
|
159
|
+
* "BUY",
|
|
160
|
+
* "1.0",
|
|
161
|
+
* { slippageTolerance: 0 } // Only execute at best ask price
|
|
162
|
+
* );
|
|
163
|
+
*
|
|
164
|
+
* // Market order with unlimited slippage
|
|
165
|
+
* const order3 = await tradingAPI.placeMarketOrder(
|
|
166
|
+
* "ETH-USD",
|
|
167
|
+
* "BUY",
|
|
168
|
+
* "1.0"
|
|
169
|
+
* // No slippageTolerance specified = unlimited slippage
|
|
170
|
+
* );
|
|
154
171
|
* ```
|
|
155
172
|
*/
|
|
156
173
|
async placeMarketOrder(market, side, quantity, options) {
|
|
@@ -164,7 +181,7 @@ export class TradingAPIImpl extends BaseAPI {
|
|
|
164
181
|
trading_pair: market,
|
|
165
182
|
order_type: "MARKET",
|
|
166
183
|
side,
|
|
167
|
-
slippage_tolerance_bps: options?.slippageTolerance ? Math.round(options.slippageTolerance * 10000) : undefined,
|
|
184
|
+
slippage_tolerance_bps: options?.slippageTolerance !== undefined ? Math.round(options.slippageTolerance * 10000) : undefined,
|
|
168
185
|
price: null, // Market orders don't need price
|
|
169
186
|
quantity,
|
|
170
187
|
trading_mode: options?.tradingMode || "SPOT",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAcH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,cAAe,SAAQ,OAAO;IAG1C;;;;;OAKG;IACH,YAAY,SAAoB,EAAE,MAAc;QAC/C,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAEA;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACxE,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2DAA2D;YAC3D,OAAO,CAAC,IAAI,CAAC,gCAAgC,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC,CAAC,gDAAgD;QAC/D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,IAAe,EACf,QAAgB,EAChB,KAAa,EACb,OAIC;QAED,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,UAAU,CAClB,qCAAqC,MAAM,EAAE,EAC7C,SAAS,EACT,MAAM,CACP,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG;gBAClB,YAAY,EAAE,MAAM;gBACpB,UAAU,EAAE,OAAoB;gBAChC,IAAI;gBACJ,KAAK;gBACL,QAAQ;gBACR,YAAY,EAAE,OAAO,EAAE,WAAW,IAAI,MAAM;gBAC5C,kBAAkB,EAAE,OAAO,EAAE,gBAAgB;gBAC7C,eAAe,EAAE,OAAO,EAAE,cAAc;aACzC,CAAC;YAEF,OAAO,MAAM,IAAI,CAAC,wBAAwB,CACxC,gBAAgB,EAChB;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAC1F,SAAS,EACT,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api/vault/api.d.ts
CHANGED
|
@@ -55,23 +55,6 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
55
55
|
* @private
|
|
56
56
|
*/
|
|
57
57
|
getVaultAddress(): Promise<Address>;
|
|
58
|
-
/**
|
|
59
|
-
* Maps a token symbol to its contract address.
|
|
60
|
-
*
|
|
61
|
-
* Looks up the token symbol in active trading pairs to find the corresponding
|
|
62
|
-
* contract address. Supports both base and quote token symbols.
|
|
63
|
-
*
|
|
64
|
-
* @param tokenSymbol - The token symbol to map (e.g., "USDC", "ETH", "MockUSDC")
|
|
65
|
-
* @returns Promise mapping to the token contract address
|
|
66
|
-
* @throws {APIError} When token symbol is not found or not supported
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```typescript
|
|
70
|
-
* const address = await vaultAPI.mapTokenSymbolToAddress("USDC");
|
|
71
|
-
* console.log(address); // "0x6A86dA986797D59A839D136dB490292Cd560C131"
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
private mapTokenSymbolToAddress;
|
|
75
58
|
/**
|
|
76
59
|
* Approves the vault contract to spend tokens on behalf of the user.
|
|
77
60
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAC,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACtG,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,YAAY,EACjB,KAAK,YAAY,EACpB,MAAM,MAAM,CAAC;AAEd,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAEhC,qBAAa,YAAa,SAAQ,OAAQ,YAAW,QAAQ;IAe3D,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhBvB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAkB;IAEzC;;;;;;;;;OASG;gBAEe,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EAC7B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM;IAOf;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAazC
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAC,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACtG,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,YAAY,EACjB,KAAK,YAAY,EACpB,MAAM,MAAM,CAAC;AAEd,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAEhC,qBAAa,YAAa,SAAQ,OAAQ,YAAW,QAAQ;IAe3D,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhBvB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAkB;IAEzC;;;;;;;;;OASG;gBAEe,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EAC7B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM;IAOf;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAazC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyC1G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0D1G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgD3G;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CzD;;;;;;;;;;;;;;;OAeG;IACG,YAAY,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB1D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa5E;;;;;;;;;;;;;OAaG;YACW,mBAAmB;IAwCjC;;;;;;;;;;;;;OAaG;YACW,oBAAoB;YAoCpB,kBAAkB;CA8BhC"}
|
package/dist/api/vault/api.js
CHANGED
|
@@ -66,45 +66,6 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
66
66
|
throw new APIError("Failed to get vault contract address from applications API", "/api/v1/applications/config", undefined);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
/**
|
|
70
|
-
* Maps a token symbol to its contract address.
|
|
71
|
-
*
|
|
72
|
-
* Looks up the token symbol in active trading pairs to find the corresponding
|
|
73
|
-
* contract address. Supports both base and quote token symbols.
|
|
74
|
-
*
|
|
75
|
-
* @param tokenSymbol - The token symbol to map (e.g., "USDC", "ETH", "MockUSDC")
|
|
76
|
-
* @returns Promise mapping to the token contract address
|
|
77
|
-
* @throws {APIError} When token symbol is not found or not supported
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```typescript
|
|
81
|
-
* const address = await vaultAPI.mapTokenSymbolToAddress("USDC");
|
|
82
|
-
* console.log(address); // "0x6A86dA986797D59A839D136dB490292Cd560C131"
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
async mapTokenSymbolToAddress(tokenSymbol) {
|
|
86
|
-
try {
|
|
87
|
-
const tradingPairs = await this.marketAPI.getTradingPairs();
|
|
88
|
-
// Look for the token symbol in base or quote tokens of active pairs
|
|
89
|
-
for (const pair of tradingPairs) {
|
|
90
|
-
if (!pair.is_active)
|
|
91
|
-
continue;
|
|
92
|
-
if (pair.base_token.toLowerCase() === tokenSymbol.toLowerCase()) {
|
|
93
|
-
return pair.base_token_contract;
|
|
94
|
-
}
|
|
95
|
-
if (pair.quote_token.toLowerCase() === tokenSymbol.toLowerCase()) {
|
|
96
|
-
return pair.quote_token_contract;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
throw new APIError(`Token symbol "${tokenSymbol}" not found in active trading pairs`, "/api/v1/market/pairs", 404);
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
if (error instanceof APIError) {
|
|
103
|
-
throw error;
|
|
104
|
-
}
|
|
105
|
-
throw new APIError(`Failed to resolve token symbol "${tokenSymbol}": ${error instanceof Error ? error.message : "Unknown error"}`, "/api/v1/market/pairs", undefined);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
69
|
/**
|
|
109
70
|
* Approves the vault contract to spend tokens on behalf of the user.
|
|
110
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAGH,QAAQ,EACR,WAAW,EACX,WAAW,GAId,MAAM,MAAM,CAAC;AACd,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAEhC,MAAM,OAAO,YAAa,SAAQ,OAAO;IAIxC;;;;;;;;;OASG;IACH,YACkB,YAA0B,EAC1B,YAA0B,EAC1B,KAAY,EAC7B,SAAoB,EACpB,eAAgC,EAChC,MAAc;QAEd,KAAK,CAAC,MAAM,CAAC,CAAC;QAPG,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAO;QAM7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe;QACpB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC,oBAA+B,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,QAAQ,CACjB,4DAA4D,EAC5D,6BAA6B,EAC7B,SAAS,CACT,CAAC;QACH,CAAC;IACF,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* - JWT authentication via query parameters
|
|
10
10
|
*/
|
|
11
11
|
import type { BaseWebSocketClient, WebSocketConfig, ConnectionStatus } from "@0xmonaco/types";
|
|
12
|
+
import { WebSocketChannel } from "@0xmonaco/types";
|
|
12
13
|
/**
|
|
13
14
|
* Base WebSocket client implementation for Monaco Protocol
|
|
14
15
|
*/
|
|
@@ -49,6 +50,13 @@ export declare class BaseWebSocketClientImpl implements BaseWebSocketClient {
|
|
|
49
50
|
protected handleConnectionError(error: any): void;
|
|
50
51
|
/** Handle incoming WebSocket messages - can be overridden by subclasses */
|
|
51
52
|
protected handleMessage(message: any): void;
|
|
53
|
+
/**
|
|
54
|
+
* Helper method to validate WebSocket event messages using WebSocketChannel enum
|
|
55
|
+
* @param message - The message to validate
|
|
56
|
+
* @param channelType - The expected channel type (WebSocketChannel.Orders, WebSocketChannel.Orderbook, etc.)
|
|
57
|
+
* @returns True if the message is a valid event with the specified channel type
|
|
58
|
+
*/
|
|
59
|
+
protected isEventMessage(message: any, channelType: WebSocketChannel): boolean;
|
|
52
60
|
/** Create WebSocket connection with event handlers */
|
|
53
61
|
protected createConnection(): Promise<void>;
|
|
54
62
|
/** Schedule reconnect with exponential backoff */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-ws-client.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-ws-client.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;GAEG;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,CAAkB;IAG9D,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,sCAAsC;IAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B9B,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,2DAA2D;IAC3D,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAQrB,gCAAgC;IAChC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAOnC,gCAAgC;IAChC,SAAS,CAAC,cAAc,IAAI,IAAI;IAchC,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;IAU3C;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CACtB,OAAO,EAAE,GAAG,EACZ,WAAW,EAAE,gBAAgB,GAC5B,OAAO;IAeV,sDAAsD;cACtC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEjD,kDAAkD;IAClD,SAAS,CAAC,iBAAiB,IAAI,IAAI;IA0BnC,8BAA8B;IAC9B,SAAS,CAAC,kBAAkB,IAAI,IAAI;CAMrC"}
|
|
@@ -27,10 +27,11 @@ export class BaseWebSocketClientImpl {
|
|
|
27
27
|
async connect() {
|
|
28
28
|
try {
|
|
29
29
|
if (this.ws) {
|
|
30
|
-
this.ws.close(1000,
|
|
30
|
+
this.ws.close(1000, "Reconnecting");
|
|
31
31
|
this.ws = null;
|
|
32
32
|
}
|
|
33
|
-
if (this.connectionStatus === "connecting" ||
|
|
33
|
+
if (this.connectionStatus === "connecting" ||
|
|
34
|
+
this.connectionStatus === "connected") {
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
37
|
if (!this.config.accessToken?.trim()) {
|
|
@@ -86,11 +87,12 @@ export class BaseWebSocketClientImpl {
|
|
|
86
87
|
/** Start heartbeat ping/pong */
|
|
87
88
|
startHeartbeat() {
|
|
88
89
|
this.heartbeatInterval = setInterval(() => {
|
|
89
|
-
if (Date.now() - this.lastPong >
|
|
90
|
+
if (Date.now() - this.lastPong >
|
|
91
|
+
BaseWebSocketClientImpl.HEARTBEAT_TIMEOUT) {
|
|
90
92
|
this.ws?.close();
|
|
91
93
|
return;
|
|
92
94
|
}
|
|
93
|
-
this.ws?.send(JSON.stringify({ type:
|
|
95
|
+
this.ws?.send(JSON.stringify({ type: "Ping" }));
|
|
94
96
|
}, BaseWebSocketClientImpl.HEARTBEAT_INTERVAL);
|
|
95
97
|
}
|
|
96
98
|
/** Stop heartbeat interval */
|
|
@@ -109,20 +111,37 @@ export class BaseWebSocketClientImpl {
|
|
|
109
111
|
}
|
|
110
112
|
/** Handle incoming WebSocket messages - can be overridden by subclasses */
|
|
111
113
|
handleMessage(message) {
|
|
112
|
-
if (message.type ===
|
|
114
|
+
if (message.type === "Pong") {
|
|
113
115
|
this.lastPong = Date.now();
|
|
114
116
|
return;
|
|
115
117
|
}
|
|
116
118
|
// Basic message handling - extend in subclasses
|
|
117
119
|
console.log("WebSocket message received:", message);
|
|
118
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Helper method to validate WebSocket event messages using WebSocketChannel enum
|
|
123
|
+
* @param message - The message to validate
|
|
124
|
+
* @param channelType - The expected channel type (WebSocketChannel.Orders, WebSocketChannel.Orderbook, etc.)
|
|
125
|
+
* @returns True if the message is a valid event with the specified channel type
|
|
126
|
+
*/
|
|
127
|
+
isEventMessage(message, channelType) {
|
|
128
|
+
if (!message || typeof message !== "object") {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
return (message.type === "Event" &&
|
|
132
|
+
message.channel &&
|
|
133
|
+
typeof message.channel === "string" &&
|
|
134
|
+
message.channel.startsWith(`${channelType}:`) &&
|
|
135
|
+
message.data &&
|
|
136
|
+
typeof message.data === "object");
|
|
137
|
+
}
|
|
119
138
|
/** Create WebSocket connection with event handlers */
|
|
120
139
|
async createConnection() {
|
|
121
140
|
return new Promise((resolve, reject) => {
|
|
122
141
|
try {
|
|
123
142
|
const url = new URL(this.config.wsUrl);
|
|
124
143
|
if (this.config.accessToken) {
|
|
125
|
-
url.searchParams.set(
|
|
144
|
+
url.searchParams.set("token", this.config.accessToken);
|
|
126
145
|
}
|
|
127
146
|
this.ws = new WebSocket(url.toString());
|
|
128
147
|
const connectionTimeout = setTimeout(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-ws-client.js","sourceRoot":"","sources":["../../../src/api/websocket/base-ws-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Specialized WebSocket client for OHLCV (Open, High, Low, Close, Volume) candlestick data events.
|
|
5
5
|
* Extends the base WebSocket client with OHLCV-specific functionality.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
8
|
-
import { BaseWebSocketClientImpl } from "
|
|
7
|
+
import { OHLCVWebSocketClient, WebSocketConfig, TradingMode, OHLCVEvent, Interval } from "@0xmonaco/types";
|
|
8
|
+
import { BaseWebSocketClientImpl } from "../base-ws-client";
|
|
9
9
|
/**
|
|
10
10
|
* OHLCV-specific WebSocket client implementation
|
|
11
11
|
*/
|
|
@@ -15,34 +15,39 @@ export declare class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl im
|
|
|
15
15
|
/**
|
|
16
16
|
* Subscribe to OHLCV (candlestick) updates for a specific trading pair, mode, and interval.
|
|
17
17
|
*
|
|
18
|
-
* @param symbol - Trading pair symbol (e.g., "BTC
|
|
19
|
-
* @param tradingMode - Trading mode (
|
|
18
|
+
* @param symbol - Trading pair symbol (e.g., "BTC/USDC")
|
|
19
|
+
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
20
20
|
* @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
|
|
21
21
|
* @param callback - Function to handle incoming OHLCV events
|
|
22
22
|
*
|
|
23
23
|
* @example
|
|
24
24
|
* ```typescript
|
|
25
|
-
* ohlcvWS.subscribeToOHLCV("BTC
|
|
26
|
-
* console.log("New OHLCV data:", event.candlestick);
|
|
25
|
+
* ohlcvWS.subscribeToOHLCV("BTC/USDC", TradingMode.SPOT, "1m", (event) => {
|
|
26
|
+
* console.log("New OHLCV data:", event.candlestick.o, event.candlestick.c);
|
|
27
27
|
* });
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
subscribeToOHLCV(symbol: string, tradingMode:
|
|
30
|
+
subscribeToOHLCV(symbol: string, tradingMode: TradingMode, interval: Interval, callback: (event: OHLCVEvent) => void): void;
|
|
31
31
|
/**
|
|
32
32
|
* Unsubscribe from OHLCV (candlestick) updates.
|
|
33
33
|
*
|
|
34
|
-
* @param symbol - Trading pair symbol (e.g., "BTC
|
|
35
|
-
* @param tradingMode - Trading mode (
|
|
34
|
+
* @param symbol - Trading pair symbol (e.g., "BTC/USDC")
|
|
35
|
+
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
36
36
|
* @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* ohlcvWS.unsubscribeFromOHLCV("BTC/USDC", TradingMode.SPOT, "1m");
|
|
41
|
+
* ```
|
|
37
42
|
*/
|
|
38
|
-
unsubscribeFromOHLCV(symbol: string, tradingMode:
|
|
39
|
-
/**
|
|
43
|
+
unsubscribeFromOHLCV(symbol: string, tradingMode: TradingMode, interval: Interval): void;
|
|
44
|
+
/** Override message handling to process OHLCV-specific events */
|
|
40
45
|
protected handleMessage(message: any): void;
|
|
41
46
|
/** Check if message is an OHLCV event from the backend */
|
|
42
47
|
private isOHLCVEvent;
|
|
43
48
|
/** Handle OHLCV-specific events from the backend */
|
|
44
49
|
private handleOHLCVEvent;
|
|
45
|
-
/** Clean up
|
|
46
|
-
|
|
50
|
+
/** Clean up resources when disconnecting */
|
|
51
|
+
protected cleanup(): void;
|
|
47
52
|
}
|
|
48
53
|
//# sourceMappingURL=ohlcv-ws-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ohlcv-ws-client.d.ts","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,oBAAoB,EACpB,eAAe,EAEf,WAAW,EACX,UAAU,EACV,QAAQ,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,qBAAa,wBACX,SAAQ,uBACR,YAAW,oBAAoB;IAG/B,OAAO,CAAC,aAAa,CAAkD;gBAE3D,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GACpC,IAAI;IAaP;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,IAAI;IAaP,iEAAiE;IACjE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAS3C,0DAA0D;IAC1D,OAAO,CAAC,YAAY;IAIpB,oDAAoD;IACpD,OAAO,CAAC,gBAAgB;IAkDxB,4CAA4C;IAC5C,SAAS,CAAC,OAAO,IAAI,IAAI;CAG1B"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OHLCV WebSocket Client Implementation
|
|
3
|
+
*
|
|
4
|
+
* Specialized WebSocket client for OHLCV (Open, High, Low, Close, Volume) candlestick data events.
|
|
5
|
+
* Extends the base WebSocket client with OHLCV-specific functionality.
|
|
6
|
+
*/
|
|
7
|
+
import { WebSocketChannel, } from "@0xmonaco/types";
|
|
8
|
+
import { BaseWebSocketClientImpl } from "../base-ws-client";
|
|
9
|
+
/**
|
|
10
|
+
* OHLCV-specific WebSocket client implementation
|
|
11
|
+
*/
|
|
12
|
+
export class OHLCVWebSocketClientImpl extends BaseWebSocketClientImpl {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
super(config);
|
|
15
|
+
// Map to store OHLCV event handlers by subscription key
|
|
16
|
+
this.ohlcvHandlers = new Map();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Subscribe to OHLCV (candlestick) updates for a specific trading pair, mode, and interval.
|
|
20
|
+
*
|
|
21
|
+
* @param symbol - Trading pair symbol (e.g., "BTC/USDC")
|
|
22
|
+
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
23
|
+
* @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
|
|
24
|
+
* @param callback - Function to handle incoming OHLCV events
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* ohlcvWS.subscribeToOHLCV("BTC/USDC", TradingMode.SPOT, "1m", (event) => {
|
|
29
|
+
* console.log("New OHLCV data:", event.candlestick.o, event.candlestick.c);
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
subscribeToOHLCV(symbol, tradingMode, interval, callback) {
|
|
34
|
+
const channel = `ohlcv:${symbol}:${tradingMode}:${interval}`;
|
|
35
|
+
const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
|
|
36
|
+
this.ohlcvHandlers.set(subscriptionKey, callback);
|
|
37
|
+
// Send subscription message using the backend's channel format
|
|
38
|
+
this.send({
|
|
39
|
+
type: "Subscribe",
|
|
40
|
+
channels: [channel],
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Unsubscribe from OHLCV (candlestick) updates.
|
|
45
|
+
*
|
|
46
|
+
* @param symbol - Trading pair symbol (e.g., "BTC/USDC")
|
|
47
|
+
* @param tradingMode - Trading mode (TradingMode.SPOT or TradingMode.MARGIN)
|
|
48
|
+
* @param interval - Candlestick interval (e.g., "1m", "5m", "1h", "1d")
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* ohlcvWS.unsubscribeFromOHLCV("BTC/USDC", TradingMode.SPOT, "1m");
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
unsubscribeFromOHLCV(symbol, tradingMode, interval) {
|
|
56
|
+
const channel = `ohlcv:${symbol}:${tradingMode}:${interval}`;
|
|
57
|
+
const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
|
|
58
|
+
this.ohlcvHandlers.delete(subscriptionKey);
|
|
59
|
+
// Send unsubscription message
|
|
60
|
+
this.send({
|
|
61
|
+
type: "Unsubscribe",
|
|
62
|
+
channels: [channel],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** Override message handling to process OHLCV-specific events */
|
|
66
|
+
handleMessage(message) {
|
|
67
|
+
super.handleMessage(message);
|
|
68
|
+
// Handle OHLCV-specific Event messages
|
|
69
|
+
if (this.isOHLCVEvent(message)) {
|
|
70
|
+
this.handleOHLCVEvent(message);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Check if message is an OHLCV event from the backend */
|
|
74
|
+
isOHLCVEvent(message) {
|
|
75
|
+
return this.isEventMessage(message, WebSocketChannel.OHLCV);
|
|
76
|
+
}
|
|
77
|
+
/** Handle OHLCV-specific events from the backend */
|
|
78
|
+
handleOHLCVEvent(event) {
|
|
79
|
+
try {
|
|
80
|
+
const backendEvent = event.data; // Parent (has pair, interval, trading_mode)
|
|
81
|
+
const ohlcvData = backendEvent.data; // Nested (has open, high, low, close)
|
|
82
|
+
const symbol = backendEvent.pair;
|
|
83
|
+
const tradingMode = backendEvent.trading_mode;
|
|
84
|
+
const interval = backendEvent.interval;
|
|
85
|
+
if (!symbol || !tradingMode || !interval) {
|
|
86
|
+
console.warn("Missing required OHLCV event data:", backendEvent);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const subscriptionKey = `${symbol.toUpperCase()}-${tradingMode.toUpperCase()}-${interval.toLowerCase()}`;
|
|
90
|
+
// Find the appropriate handler
|
|
91
|
+
const handler = this.ohlcvHandlers.get(subscriptionKey);
|
|
92
|
+
if (handler) {
|
|
93
|
+
// WebSocket events should match the same structure as REST API responses
|
|
94
|
+
const ohlcvEvent = {
|
|
95
|
+
symbol: symbol,
|
|
96
|
+
tradingMode: tradingMode,
|
|
97
|
+
interval: interval,
|
|
98
|
+
candlestick: {
|
|
99
|
+
T: ohlcvData.T || 0, // Candle start time (ms)
|
|
100
|
+
t: ohlcvData.t || 0, // Last trade time (ms)
|
|
101
|
+
o: ohlcvData.o || "0", // Open price
|
|
102
|
+
h: ohlcvData.h || "0", // High price
|
|
103
|
+
l: ohlcvData.l || "0", // Low price
|
|
104
|
+
c: ohlcvData.c || "0", // Close price
|
|
105
|
+
v: ohlcvData.v || "0", // Volume (base token)
|
|
106
|
+
s: symbol, // Symbol from backend data
|
|
107
|
+
i: interval, // Interval from backend data
|
|
108
|
+
n: ohlcvData.n || 0, // Number of trades
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
handler(ohlcvEvent);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.warn(`No handler found for OHLCV event: ${subscriptionKey}`, event);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
console.error("Error handling OHLCV event:", error, event);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** Clean up resources when disconnecting */
|
|
122
|
+
cleanup() {
|
|
123
|
+
this.ohlcvHandlers.clear();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=ohlcv-ws-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ohlcv-ws-client.js","sourceRoot":"","sources":["../../../../src/api/websocket/clients/ohlcv-ws-client.ts"],"names":[],"mappings":"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"}
|