@0xmonaco/core 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/api/applications/api.d.ts +0 -1
- package/dist/api/applications/api.d.ts.map +1 -1
- package/dist/api/applications/api.js +0 -1
- package/dist/api/applications/api.js.map +1 -1
- package/dist/api/index.d.ts +3 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +3 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/orderbook/api.d.ts +16 -0
- package/dist/api/orderbook/api.d.ts.map +1 -0
- package/dist/api/orderbook/api.js +38 -0
- package/dist/api/orderbook/api.js.map +1 -0
- package/dist/api/orderbook/index.d.ts +2 -0
- package/dist/api/orderbook/index.d.ts.map +1 -0
- package/dist/api/orderbook/index.js +2 -0
- package/dist/api/orderbook/index.js.map +1 -0
- package/dist/api/trades/api.d.ts +45 -0
- package/dist/api/trades/api.d.ts.map +1 -0
- package/dist/api/trades/api.js +43 -0
- package/dist/api/trades/api.js.map +1 -0
- package/dist/api/trades/index.d.ts +2 -0
- package/dist/api/trades/index.d.ts.map +1 -0
- package/dist/api/trades/index.js +2 -0
- package/dist/api/trades/index.js.map +1 -0
- package/dist/api/websocket/index.d.ts +3 -9
- package/dist/api/websocket/index.d.ts.map +1 -1
- package/dist/api/websocket/index.js +3 -9
- package/dist/api/websocket/index.js.map +1 -1
- package/dist/api/websocket/types.d.ts +34 -0
- package/dist/api/websocket/types.d.ts.map +1 -0
- package/dist/api/websocket/types.js +2 -0
- package/dist/api/websocket/types.js.map +1 -0
- package/dist/api/websocket/utils.d.ts +9 -0
- package/dist/api/websocket/utils.d.ts.map +1 -0
- package/dist/api/websocket/utils.js +23 -0
- package/dist/api/websocket/utils.js.map +1 -0
- package/dist/api/websocket/websocket.d.ts +6 -0
- package/dist/api/websocket/websocket.d.ts.map +1 -0
- package/dist/api/websocket/websocket.js +314 -0
- package/dist/api/websocket/websocket.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/networks.d.ts +1 -1
- package/dist/networks.js +3 -3
- package/dist/networks.js.map +1 -1
- package/dist/sdk.d.ts +15 -24
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +40 -59
- package/dist/sdk.js.map +1 -1
- package/package.json +3 -3
- package/dist/api/websocket/base-ws-client.d.ts +0 -85
- package/dist/api/websocket/base-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/base-ws-client.js +0 -256
- package/dist/api/websocket/base-ws-client.js.map +0 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.d.ts +0 -57
- package/dist/api/websocket/clients/ohlcv-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.js +0 -132
- package/dist/api/websocket/clients/ohlcv-ws-client.js.map +0 -1
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts +0 -70
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/clients/orderbook-ws-client.js +0 -197
- package/dist/api/websocket/clients/orderbook-ws-client.js.map +0 -1
- package/dist/api/websocket/clients/orders-ws-client.d.ts +0 -61
- package/dist/api/websocket/clients/orders-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/clients/orders-ws-client.js +0 -150
- package/dist/api/websocket/clients/orders-ws-client.js.map +0 -1
package/README.md
CHANGED
|
@@ -19,6 +19,28 @@ Core SDK implementation for interacting with Monaco Protocol. This SDK provides
|
|
|
19
19
|
npm install @0xmonaco/core
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
+
**Required Peer Dependencies:**
|
|
23
|
+
```bash
|
|
24
|
+
npm install viem@^2.31.7
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### TypeScript Configuration
|
|
28
|
+
|
|
29
|
+
For best results, use these TypeScript settings in your `tsconfig.json`:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"compilerOptions": {
|
|
34
|
+
"target": "ES2020",
|
|
35
|
+
"module": "nodenext",
|
|
36
|
+
"moduleResolution": "nodenext",
|
|
37
|
+
"strict": true,
|
|
38
|
+
"esModuleInterop": true,
|
|
39
|
+
"resolveJsonModule": true
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
22
44
|
## Features
|
|
23
45
|
|
|
24
46
|
### 🔐 **Authentication**
|
|
@@ -34,7 +34,6 @@ export declare class ApplicationsAPIImpl extends BaseAPI implements Applications
|
|
|
34
34
|
* const config = await applicationsAPI.getApplicationConfig();
|
|
35
35
|
* console.log(`Application: ${config.name}`);
|
|
36
36
|
* console.log(`ID: ${config.id}`);
|
|
37
|
-
* console.log(`Allowed origins: ${config.allowedOrigins.join(', ')}`);
|
|
38
37
|
* if (config.webhookUrl) {
|
|
39
38
|
* console.log(`Webhook: ${config.webhookUrl}`);
|
|
40
39
|
* }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/applications/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,mBAAoB,SAAQ,OAAQ,YAAW,eAAe;IACzE
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/applications/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,mBAAoB,SAAQ,OAAQ,YAAW,eAAe;IACzE;;;;;;;;;;;;;;;;;;OAkBG;IACG,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,CAAC;CAkBjE"}
|
|
@@ -33,7 +33,6 @@ export class ApplicationsAPIImpl extends BaseAPI {
|
|
|
33
33
|
* const config = await applicationsAPI.getApplicationConfig();
|
|
34
34
|
* console.log(`Application: ${config.name}`);
|
|
35
35
|
* console.log(`ID: ${config.id}`);
|
|
36
|
-
* console.log(`Allowed origins: ${config.allowedOrigins.join(', ')}`);
|
|
37
36
|
* if (config.webhookUrl) {
|
|
38
37
|
* console.log(`Webhook: ${config.webhookUrl}`);
|
|
39
38
|
* }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/applications/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,mBAAoB,SAAQ,OAAO;IAC9C
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/applications/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,mBAAoB,SAAQ,OAAO;IAC9C;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAM7C,6BAA6B,EAAE;YAChC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;SAClD,CAAC;IACJ,CAAC;CACF"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module exports the new simplified APIs for the Monaco SDK.
|
|
5
5
|
*/
|
|
6
|
-
export * from "./applications";
|
|
6
|
+
export * from "./applications/index";
|
|
7
7
|
export * from "./base";
|
|
8
8
|
export * from "./fees";
|
|
9
9
|
export * from "./market";
|
|
10
|
+
export * from "./orderbook";
|
|
10
11
|
export * from "./profile";
|
|
12
|
+
export * from "./trades";
|
|
11
13
|
export * from "./trading";
|
|
12
14
|
export * from "./vault";
|
|
13
15
|
export * from "./websocket";
|
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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
package/dist/api/index.js
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module exports the new simplified APIs for the Monaco SDK.
|
|
5
5
|
*/
|
|
6
|
-
export * from "./applications";
|
|
6
|
+
export * from "./applications/index";
|
|
7
7
|
export * from "./base";
|
|
8
8
|
export * from "./fees";
|
|
9
9
|
export * from "./market";
|
|
10
|
+
export * from "./orderbook";
|
|
10
11
|
export * from "./profile";
|
|
12
|
+
export * from "./trades";
|
|
11
13
|
export * from "./trading";
|
|
12
14
|
export * from "./vault";
|
|
13
15
|
export * from "./websocket";
|
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { OrderbookEvent, OrderbookQuotationMode, TradingMode } from "@0xmonaco/types";
|
|
2
|
+
import { BaseAPI } from "../base";
|
|
3
|
+
export interface GetOrderbookOptions {
|
|
4
|
+
/** Number of price levels to return (max 100). Defaults to 10. */
|
|
5
|
+
depth?: number;
|
|
6
|
+
/** Trading mode: 'Spot' or 'Margin'. Defaults to 'Spot'. */
|
|
7
|
+
tradingMode?: TradingMode;
|
|
8
|
+
/** Price grouping magnitude. Valid values: 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000. */
|
|
9
|
+
magnitude?: number;
|
|
10
|
+
/** Quantity denomination: 'BASE' or 'QUOTE'. When 'QUOTE', quantities are multiplied by price. */
|
|
11
|
+
denomination?: OrderbookQuotationMode;
|
|
12
|
+
}
|
|
13
|
+
export declare class OrderbookAPIImpl extends BaseAPI {
|
|
14
|
+
getOrderbook(tradingPairId: string, options?: GetOrderbookOptions): Promise<OrderbookEvent>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/orderbook/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAmBlC,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kGAAkG;IAClG,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC;AAED,qBAAa,gBAAiB,SAAQ,OAAO;IACrC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;CAoCtG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseAPI } from "../base";
|
|
2
|
+
export class OrderbookAPIImpl extends BaseAPI {
|
|
3
|
+
async getOrderbook(tradingPairId, options = {}) {
|
|
4
|
+
const { depth = 10, tradingMode, magnitude, denomination } = options;
|
|
5
|
+
const params = new URLSearchParams();
|
|
6
|
+
params.set("levels", String(depth));
|
|
7
|
+
if (tradingMode)
|
|
8
|
+
params.set("trading_mode", tradingMode);
|
|
9
|
+
if (magnitude !== undefined)
|
|
10
|
+
params.set("magnitude", String(magnitude));
|
|
11
|
+
if (denomination)
|
|
12
|
+
params.set("denomination", denomination.toLowerCase());
|
|
13
|
+
const response = await this.makePublicRequest(`/api/v1/orderbook/${encodeURIComponent(tradingPairId)}?${params.toString()}`);
|
|
14
|
+
return {
|
|
15
|
+
symbol: response.pair,
|
|
16
|
+
tradingMode: response.trading_mode,
|
|
17
|
+
bids: response.data.bids.map((level) => ({
|
|
18
|
+
price: level.price,
|
|
19
|
+
quantity: level.quantity,
|
|
20
|
+
orderCount: level.order_count,
|
|
21
|
+
})),
|
|
22
|
+
asks: response.data.asks.map((level) => ({
|
|
23
|
+
price: level.price,
|
|
24
|
+
quantity: level.quantity,
|
|
25
|
+
orderCount: level.order_count,
|
|
26
|
+
})),
|
|
27
|
+
bestBid: response.data.best_bid,
|
|
28
|
+
bestAsk: response.data.best_ask,
|
|
29
|
+
bidVolume: response.data.bid_volume,
|
|
30
|
+
askVolume: response.data.ask_volume,
|
|
31
|
+
baseDecimals: response.base_decimals,
|
|
32
|
+
quoteDecimals: response.quote_decimals,
|
|
33
|
+
timestamp: response.timestamp,
|
|
34
|
+
sequence: response.sequence_number,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/orderbook/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA8BlC,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IAC3C,KAAK,CAAC,YAAY,CAAC,aAAqB,EAAE,UAA+B,EAAE;QACzE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAErE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,IAAI,WAAW;YAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,IAAI,YAAY;YAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC3C,qBAAqB,kBAAkB,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAC9E,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,IAAI;YACrB,WAAW,EAAE,QAAQ,CAAC,YAA2B;YACjD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,WAAW;aAC9B,CAAC,CAAC;YACH,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,WAAW;aAC9B,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;YAC/B,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;YAC/B,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;YACnC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;YACnC,YAAY,EAAE,QAAQ,CAAC,aAAa;YACpC,aAAa,EAAE,QAAQ,CAAC,cAAc;YACtC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,QAAQ,EAAE,QAAQ,CAAC,eAAe;SACnC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/orderbook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/orderbook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,gBAAgB,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { TradeEvent } from "@0xmonaco/types";
|
|
2
|
+
import { BaseAPI } from "../base";
|
|
3
|
+
/**
|
|
4
|
+
* Raw trade event from the API (snake_case) - matches websocket structure
|
|
5
|
+
*/
|
|
6
|
+
interface RawTradeEvent {
|
|
7
|
+
event_type: string;
|
|
8
|
+
pair_id: string;
|
|
9
|
+
trading_mode: string;
|
|
10
|
+
data: {
|
|
11
|
+
trade_id: string;
|
|
12
|
+
price: string;
|
|
13
|
+
quantity: string;
|
|
14
|
+
maker_side: string;
|
|
15
|
+
executed_at: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Convert a raw trade event (snake_case) to a TradeEvent (camelCase)
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseRawTradeEvent(raw: RawTradeEvent): TradeEvent;
|
|
22
|
+
export type { TradeEvent as TradeRecord } from "@0xmonaco/types";
|
|
23
|
+
/**
|
|
24
|
+
* Options for fetching trades
|
|
25
|
+
*/
|
|
26
|
+
export interface GetTradesOptions {
|
|
27
|
+
/** Number of records to skip (default: 0) */
|
|
28
|
+
skip?: number;
|
|
29
|
+
/** Maximum number of records to return (default: 25, max: 100) */
|
|
30
|
+
limit?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Trades API for fetching historical trade data
|
|
34
|
+
*/
|
|
35
|
+
export declare class TradesAPIImpl extends BaseAPI {
|
|
36
|
+
/**
|
|
37
|
+
* Get historical trades for a trading pair
|
|
38
|
+
*
|
|
39
|
+
* @param tradingPairId - The trading pair UUID
|
|
40
|
+
* @param options - Pagination options
|
|
41
|
+
* @returns Array of TradeEvent records sorted by executed_at descending (newest first)
|
|
42
|
+
*/
|
|
43
|
+
getTrades(tradingPairId: string, options?: GetTradesOptions): Promise<TradeEvent[]>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/trades/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAcD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,UAAU,CAajE;AAGD,YAAY,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC;;;;;;OAMG;IACG,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAiB9F"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BaseAPI } from "../base";
|
|
2
|
+
/**
|
|
3
|
+
* Convert a raw trade event (snake_case) to a TradeEvent (camelCase)
|
|
4
|
+
*/
|
|
5
|
+
export function parseRawTradeEvent(raw) {
|
|
6
|
+
return {
|
|
7
|
+
eventType: "trade",
|
|
8
|
+
pairId: raw.pair_id,
|
|
9
|
+
tradingMode: raw.trading_mode.toUpperCase(),
|
|
10
|
+
data: {
|
|
11
|
+
tradeId: raw.data.trade_id,
|
|
12
|
+
price: raw.data.price,
|
|
13
|
+
quantity: raw.data.quantity,
|
|
14
|
+
makerSide: raw.data.maker_side.toUpperCase(),
|
|
15
|
+
executedAt: raw.data.executed_at,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Trades API for fetching historical trade data
|
|
21
|
+
*/
|
|
22
|
+
export class TradesAPIImpl extends BaseAPI {
|
|
23
|
+
/**
|
|
24
|
+
* Get historical trades for a trading pair
|
|
25
|
+
*
|
|
26
|
+
* @param tradingPairId - The trading pair UUID
|
|
27
|
+
* @param options - Pagination options
|
|
28
|
+
* @returns Array of TradeEvent records sorted by executed_at descending (newest first)
|
|
29
|
+
*/
|
|
30
|
+
async getTrades(tradingPairId, options = {}) {
|
|
31
|
+
const { skip = 0 } = options;
|
|
32
|
+
// Ensure limit is a positive number between 1 and 100, defaulting to 25
|
|
33
|
+
const limit = options.limit != null && options.limit > 0 ? Math.min(options.limit, 100) : 25;
|
|
34
|
+
const params = new URLSearchParams();
|
|
35
|
+
if (skip > 0) {
|
|
36
|
+
params.set("skip", String(skip));
|
|
37
|
+
}
|
|
38
|
+
params.set("limit", String(limit));
|
|
39
|
+
const response = await this.makePublicRequest(`/api/v1/trades/${encodeURIComponent(tradingPairId)}?${params.toString()}`);
|
|
40
|
+
return response.data.trades.map(parseRawTradeEvent);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/trades/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA8BlC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAkB;IACnD,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,WAAW,EAA+B;QACxE,IAAI,EAAE;YACJ,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC1B,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;YACrB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC3B,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAqC;YAC/E,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW;SACjC;KACF,CAAC;AACJ,CAAC;AAeD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,aAAqB,EAAE,UAA4B,EAAE;QACnE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;QAC7B,wEAAwE;QACxE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7F,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC3C,kBAAkB,kBAAkB,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAC3E,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/trades/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/trades/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Exports Base WebSocket client implementation + Orders WebSocket client implementation + OHLCV WebSocket client implementation + Orderbook WebSocket client implementation
|
|
5
|
-
*/
|
|
6
|
-
export { BaseWebSocketClientImpl } from "./base-ws-client";
|
|
7
|
-
export { OHLCVWebSocketClientImpl } from "./clients/ohlcv-ws-client";
|
|
8
|
-
export { OrderbookWebSocketClientImpl } from "./clients/orderbook-ws-client";
|
|
9
|
-
export { OrdersWebSocketClientImpl } from "./clients/orders-ws-client";
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./utils";
|
|
3
|
+
export * from "./websocket";
|
|
10
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Exports Base WebSocket client implementation + Orders WebSocket client implementation + OHLCV WebSocket client implementation + Orderbook WebSocket client implementation
|
|
5
|
-
*/
|
|
6
|
-
export { BaseWebSocketClientImpl } from "./base-ws-client";
|
|
7
|
-
export { OHLCVWebSocketClientImpl } from "./clients/ohlcv-ws-client";
|
|
8
|
-
export { OrderbookWebSocketClientImpl } from "./clients/orderbook-ws-client";
|
|
9
|
-
export { OrdersWebSocketClientImpl } from "./clients/orders-ws-client";
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./utils";
|
|
3
|
+
export * from "./websocket";
|
|
10
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Interval, OHLCVEvent, OrderbookEvent, OrderbookQuotationMode, OrderEvent, TradeEvent, TradingMode, WebSocketStatus } from "@0xmonaco/types";
|
|
2
|
+
export type StatusHandler = (status: WebSocketStatus) => void;
|
|
3
|
+
export type MessageHandler<T> = (data: T) => void;
|
|
4
|
+
export interface MonacoWebSocketOptions {
|
|
5
|
+
/** JWT access token for authenticated channels (orders) */
|
|
6
|
+
token?: string;
|
|
7
|
+
/** Enable auto-reconnect on disconnect (default: true) */
|
|
8
|
+
autoReconnect?: boolean;
|
|
9
|
+
/** Maximum reconnection attempts (default: 5) */
|
|
10
|
+
maxReconnectAttempts?: number;
|
|
11
|
+
/** Callback for connection status changes */
|
|
12
|
+
onStatusChange?: StatusHandler;
|
|
13
|
+
}
|
|
14
|
+
export interface MonacoWebSocket {
|
|
15
|
+
/** Connect to the WebSocket server */
|
|
16
|
+
connect: () => Promise<void>;
|
|
17
|
+
/** Disconnect from the WebSocket server */
|
|
18
|
+
disconnect: () => void;
|
|
19
|
+
/** Check if currently connected */
|
|
20
|
+
isConnected: () => boolean;
|
|
21
|
+
/** Get current websocket connection status */
|
|
22
|
+
getStatus: () => WebSocketStatus;
|
|
23
|
+
/** Update the access token (for re-auth) */
|
|
24
|
+
setToken: (token: string) => void;
|
|
25
|
+
/** Subscribe to order events (requires authentication) */
|
|
26
|
+
orders: (market: string, tradingMode: TradingMode, handler: MessageHandler<OrderEvent>) => () => void;
|
|
27
|
+
/** Subscribe to orderbook events (public) */
|
|
28
|
+
orderbook: (market: string, tradingMode: TradingMode, magnitude: number, quotationMode: OrderbookQuotationMode, handler: MessageHandler<OrderbookEvent>) => () => void;
|
|
29
|
+
/** Subscribe to OHLCV candlestick events (public) */
|
|
30
|
+
ohlcv: (symbol: string, tradingMode: TradingMode, interval: Interval, handler: MessageHandler<OHLCVEvent>) => () => void;
|
|
31
|
+
/** Subscribe to trade events (public) */
|
|
32
|
+
trades: (tradingPairId: string, handler: MessageHandler<TradeEvent>) => () => void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;AAC9D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,0DAA0D;IAC1D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC;IAEtG,6CAA6C;IAC7C,SAAS,EAAE,CACT,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,sBAAsB,EACrC,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,KACpC,MAAM,IAAI,CAAC;IAEhB,qDAAqD;IACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC;IAEzH,yCAAyC;IACzC,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC;CACpF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/websocket/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert snake_case to camelCase
|
|
3
|
+
*/
|
|
4
|
+
export declare function toCamelCase(str: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Recursively convert object keys from snake_case to camelCase
|
|
7
|
+
*/
|
|
8
|
+
export declare function keysToCamelCase<T>(obj: unknown): T;
|
|
9
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,CAUlD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert snake_case to camelCase
|
|
3
|
+
*/
|
|
4
|
+
export function toCamelCase(str) {
|
|
5
|
+
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Recursively convert object keys from snake_case to camelCase
|
|
9
|
+
*/
|
|
10
|
+
export function keysToCamelCase(obj) {
|
|
11
|
+
if (obj === null || obj === undefined)
|
|
12
|
+
return obj;
|
|
13
|
+
if (typeof obj !== "object")
|
|
14
|
+
return obj;
|
|
15
|
+
if (Array.isArray(obj))
|
|
16
|
+
return obj.map((item) => keysToCamelCase(item));
|
|
17
|
+
const result = {};
|
|
18
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
19
|
+
result[toCamelCase(key)] = typeof value === "object" && value !== null ? keysToCamelCase(value) : value;
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/api/websocket/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAI,GAAY;IAC7C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAQ,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAQ,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAM,CAAC;IAE7E,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1G,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MonacoWebSocket, MonacoWebSocketOptions } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Create a Monaco WebSocket client
|
|
4
|
+
*/
|
|
5
|
+
export declare function createMonacoWebSocket(baseUrl: string, options?: MonacoWebSocketOptions): MonacoWebSocket;
|
|
6
|
+
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/websocket.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAkB,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAQvF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,eAAe,CA2V5G"}
|