@0xmonaco/core 0.4.1 → 0.5.0
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 +23 -8
- package/dist/api/applications/api.d.ts +1 -2
- package/dist/api/applications/api.d.ts.map +1 -1
- package/dist/api/applications/api.js +1 -2
- package/dist/api/applications/api.js.map +1 -1
- package/dist/api/applications/index.d.ts +1 -2
- package/dist/api/applications/index.d.ts.map +1 -1
- package/dist/api/applications/index.js +1 -1
- package/dist/api/applications/index.js.map +1 -1
- package/dist/api/auth/api.d.ts +1 -1
- package/dist/api/auth/api.d.ts.map +1 -1
- package/dist/api/auth/api.js +2 -2
- package/dist/api/auth/api.js.map +1 -1
- package/dist/api/auth/index.d.ts +1 -2
- package/dist/api/auth/index.d.ts.map +1 -1
- package/dist/api/auth/index.js +1 -1
- package/dist/api/auth/index.js.map +1 -1
- package/dist/api/base.d.ts +26 -1
- package/dist/api/base.d.ts.map +1 -1
- package/dist/api/base.js +173 -43
- package/dist/api/base.js.map +1 -1
- package/dist/api/fees/api.d.ts +1 -1
- package/dist/api/fees/api.d.ts.map +1 -1
- package/dist/api/fees/api.js +4 -4
- package/dist/api/fees/api.js.map +1 -1
- package/dist/api/fees/index.d.ts +1 -1
- package/dist/api/fees/index.d.ts.map +1 -1
- package/dist/api/fees/index.js +1 -1
- package/dist/api/fees/index.js.map +1 -1
- package/dist/api/index.d.ts +10 -8
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +10 -8
- package/dist/api/index.js.map +1 -1
- package/dist/api/market/api.d.ts +1 -1
- package/dist/api/market/api.d.ts.map +1 -1
- package/dist/api/market/api.js +12 -3
- package/dist/api/market/api.js.map +1 -1
- package/dist/api/market/index.d.ts +1 -2
- package/dist/api/market/index.d.ts.map +1 -1
- package/dist/api/market/index.js +1 -1
- package/dist/api/market/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/profile/api.d.ts +10 -11
- package/dist/api/profile/api.d.ts.map +1 -1
- package/dist/api/profile/api.js +17 -11
- package/dist/api/profile/api.js.map +1 -1
- package/dist/api/profile/index.d.ts +1 -1
- package/dist/api/profile/index.d.ts.map +1 -1
- package/dist/api/profile/index.js +1 -1
- package/dist/api/profile/index.js.map +1 -1
- 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/trading/api.d.ts +1 -2
- package/dist/api/trading/api.d.ts.map +1 -1
- package/dist/api/trading/api.js +10 -2
- package/dist/api/trading/api.js.map +1 -1
- package/dist/api/trading/index.d.ts +1 -2
- package/dist/api/trading/index.d.ts.map +1 -1
- package/dist/api/trading/index.js +1 -1
- package/dist/api/trading/index.js.map +1 -1
- package/dist/api/vault/api.d.ts +17 -19
- package/dist/api/vault/api.d.ts.map +1 -1
- package/dist/api/vault/api.js +58 -46
- package/dist/api/vault/api.js.map +1 -1
- package/dist/api/vault/index.d.ts +1 -2
- package/dist/api/vault/index.d.ts.map +1 -1
- package/dist/api/vault/index.js +1 -1
- package/dist/api/vault/index.js.map +1 -1
- 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 +309 -0
- package/dist/api/websocket/websocket.js.map +1 -0
- package/dist/errors/errors.d.ts +382 -0
- package/dist/errors/errors.d.ts.map +1 -0
- package/dist/errors/errors.js +801 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -22
- package/dist/index.js.map +1 -1
- package/dist/networks/index.d.ts +2 -0
- package/dist/networks/index.d.ts.map +1 -0
- package/dist/networks/index.js +2 -0
- package/dist/networks/index.js.map +1 -0
- package/dist/{networks.d.ts → networks/networks.d.ts} +1 -1
- package/dist/networks/networks.d.ts.map +1 -0
- package/dist/{networks.js → networks/networks.js} +4 -3
- package/dist/networks/networks.js.map +1 -0
- package/dist/sdk.d.ts +19 -27
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +77 -107
- package/dist/sdk.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +5 -7
- 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/dist/errors.d.ts +0 -103
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -108
- package/dist/errors.js.map +0 -1
- package/dist/networks.d.ts.map +0 -1
- package/dist/networks.js.map +0 -1
package/dist/api/index.d.ts
CHANGED
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module exports the new simplified APIs for the Monaco SDK.
|
|
5
5
|
*/
|
|
6
|
-
export * from "./applications/index
|
|
7
|
-
export * from "./base
|
|
8
|
-
export * from "./fees
|
|
9
|
-
export * from "./market
|
|
10
|
-
export * from "./
|
|
11
|
-
export * from "./
|
|
12
|
-
export * from "./
|
|
13
|
-
export * from "./
|
|
6
|
+
export * from "./applications/index";
|
|
7
|
+
export * from "./base";
|
|
8
|
+
export * from "./fees";
|
|
9
|
+
export * from "./market";
|
|
10
|
+
export * from "./orderbook";
|
|
11
|
+
export * from "./profile";
|
|
12
|
+
export * from "./trades";
|
|
13
|
+
export * from "./trading";
|
|
14
|
+
export * from "./vault";
|
|
15
|
+
export * from "./websocket";
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
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,12 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module exports the new simplified APIs for the Monaco SDK.
|
|
5
5
|
*/
|
|
6
|
-
export * from "./applications/index
|
|
7
|
-
export * from "./base
|
|
8
|
-
export * from "./fees
|
|
9
|
-
export * from "./market
|
|
10
|
-
export * from "./
|
|
11
|
-
export * from "./
|
|
12
|
-
export * from "./
|
|
13
|
-
export * from "./
|
|
6
|
+
export * from "./applications/index";
|
|
7
|
+
export * from "./base";
|
|
8
|
+
export * from "./fees";
|
|
9
|
+
export * from "./market";
|
|
10
|
+
export * from "./orderbook";
|
|
11
|
+
export * from "./profile";
|
|
12
|
+
export * from "./trades";
|
|
13
|
+
export * from "./trading";
|
|
14
|
+
export * from "./vault";
|
|
15
|
+
export * from "./websocket";
|
|
14
16
|
//# sourceMappingURL=index.js.map
|
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"}
|
package/dist/api/market/api.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA0B,qBAAqB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7J,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,OAAQ,YAAW,SAAS;IACvD,wBAAwB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA4B1F,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAMxE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAoBtH"}
|
package/dist/api/market/api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GetCandlesticksBySymbolSchema, validate } from "@0xmonaco/types";
|
|
2
|
+
import { BaseAPI } from "../base";
|
|
2
3
|
/**
|
|
3
4
|
* Market API Implementation
|
|
4
5
|
*
|
|
@@ -30,10 +31,18 @@ export class MarketAPIImpl extends BaseAPI {
|
|
|
30
31
|
return await this.makePublicRequest(url);
|
|
31
32
|
}
|
|
32
33
|
async getTradingPairBySymbol(symbol) {
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
// Backend endpoint expects UUID, not symbol, so we fetch all pairs and filter
|
|
35
|
+
const response = await this.getPaginatedTradingPairs({ limit: 100 });
|
|
36
|
+
return response.data.data.find((pair) => pair.symbol === symbol);
|
|
35
37
|
}
|
|
36
38
|
async getCandlesticks(symbol, interval, startTime, endTime) {
|
|
39
|
+
// Validate inputs using the symbol-based schema
|
|
40
|
+
validate(GetCandlesticksBySymbolSchema, {
|
|
41
|
+
symbol,
|
|
42
|
+
interval,
|
|
43
|
+
startTime,
|
|
44
|
+
endTime,
|
|
45
|
+
});
|
|
37
46
|
const params = new URLSearchParams();
|
|
38
47
|
params.append("start_time", startTime.toString());
|
|
39
48
|
params.append("end_time", endTime.toString());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC,KAAK,CAAC,wBAAwB,CAAC,MAA8B;QAC3D,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAE3C,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;YACxB,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACvB,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;YACxB,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAEzF,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAA0B,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAc;QACzC,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,QAAkB,EAAE,SAAiB,EAAE,OAAe;QAC1F,gDAAgD;QAChD,QAAQ,CAAC,6BAA6B,EAAE;YACtC,MAAM;YACN,QAAQ;YACR,SAAS;YACT,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,2CAA2C,kBAAkB,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;QAE/G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAyB,GAAG,CAAC,CAAC;QAE3E,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/api/market/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { MarketAPIImpl } from "./api
|
|
1
|
+
export { MarketAPIImpl } from "./api";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,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;CAkCtG"}
|
|
@@ -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,CAAuB,qBAAqB,kBAAkB,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEnJ,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"}
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
import type { AccountBalance, GetPaginatedUserMovementsResponse, GetUserBalancesParams, GetUserBalancesResponse, GetUserMovementsParams, ProfileAPI, UserProfile } from "@0xmonaco/types";
|
|
21
|
-
import
|
|
22
|
-
import { BaseAPI } from "../base.js";
|
|
21
|
+
import { BaseAPI } from "../base";
|
|
23
22
|
export declare class ProfileAPIImpl extends BaseAPI implements ProfileAPI {
|
|
24
23
|
/**
|
|
25
24
|
* Get the current user's profile information.
|
|
@@ -97,24 +96,24 @@ export declare class ProfileAPIImpl extends BaseAPI implements ProfileAPI {
|
|
|
97
96
|
*/
|
|
98
97
|
getUserBalances(params?: GetUserBalancesParams): Promise<GetUserBalancesResponse>;
|
|
99
98
|
/**
|
|
100
|
-
* Get the current user's balance for a specific
|
|
99
|
+
* Get the current user's balance for a specific asset.
|
|
101
100
|
*
|
|
102
|
-
* Fetches the user's balance for a specific
|
|
103
|
-
* Requires a valid access token to be set.
|
|
101
|
+
* Fetches the user's balance for a specific asset from the /api/v1/accounts/balances/{asset_id} endpoint.
|
|
102
|
+
* Requires a valid access token to be set. If no balance exists for a valid asset, returns zero balances.
|
|
104
103
|
*
|
|
105
|
-
* @param
|
|
106
|
-
* @returns Promise resolving to the
|
|
107
|
-
* @throws {APIError} When the request fails, user is not authenticated, or
|
|
104
|
+
* @param assetId - The asset identifier (UUID)
|
|
105
|
+
* @returns Promise resolving to the account balance for the asset
|
|
106
|
+
* @throws {APIError} When the request fails, user is not authenticated, or asset not found (404)
|
|
108
107
|
*
|
|
109
108
|
* @example
|
|
110
109
|
* ```typescript
|
|
111
|
-
* // Get balance for a specific
|
|
112
|
-
* const balance = await profileAPI.
|
|
110
|
+
* // Get balance for a specific asset
|
|
111
|
+
* const balance = await profileAPI.getUserBalanceByAssetId('123e4567-e89b-12d3-a456-426614174000');
|
|
113
112
|
* console.log(`${balance.symbol}: ${balance.available_balance}`);
|
|
114
113
|
* console.log(`Locked: ${balance.locked_balance}`);
|
|
115
114
|
* console.log(`Total: ${balance.total_balance}`);
|
|
116
115
|
* ```
|
|
117
116
|
*/
|
|
118
|
-
|
|
117
|
+
getUserBalanceByAssetId(assetId: string): Promise<AccountBalance>;
|
|
119
118
|
}
|
|
120
119
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/profile/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,WAAW,EACZ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/profile/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,cAAe,SAAQ,OAAQ,YAAW,UAAU;IAC/D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAgBxC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,yBAAyB,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAgB5G;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,eAAe,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBvF;;;;;;;;;;;;;;;;;;OAkBG;IACG,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CASxE"}
|
package/dist/api/profile/api.js
CHANGED
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
* console.log(`User: ${profile.username} (${profile.address})`);
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
import {
|
|
20
|
+
import { APIError } from "../../errors";
|
|
21
|
+
import { BaseAPI } from "../base";
|
|
21
22
|
export class ProfileAPIImpl extends BaseAPI {
|
|
22
23
|
/**
|
|
23
24
|
* Get the current user's profile information.
|
|
@@ -130,26 +131,31 @@ export class ProfileAPIImpl extends BaseAPI {
|
|
|
130
131
|
return await this.makeAuthenticatedRequest(url);
|
|
131
132
|
}
|
|
132
133
|
/**
|
|
133
|
-
* Get the current user's balance for a specific
|
|
134
|
+
* Get the current user's balance for a specific asset.
|
|
134
135
|
*
|
|
135
|
-
* Fetches the user's balance for a specific
|
|
136
|
-
* Requires a valid access token to be set.
|
|
136
|
+
* Fetches the user's balance for a specific asset from the /api/v1/accounts/balances/{asset_id} endpoint.
|
|
137
|
+
* Requires a valid access token to be set. If no balance exists for a valid asset, returns zero balances.
|
|
137
138
|
*
|
|
138
|
-
* @param
|
|
139
|
-
* @returns Promise resolving to the
|
|
140
|
-
* @throws {APIError} When the request fails, user is not authenticated, or
|
|
139
|
+
* @param assetId - The asset identifier (UUID)
|
|
140
|
+
* @returns Promise resolving to the account balance for the asset
|
|
141
|
+
* @throws {APIError} When the request fails, user is not authenticated, or asset not found (404)
|
|
141
142
|
*
|
|
142
143
|
* @example
|
|
143
144
|
* ```typescript
|
|
144
|
-
* // Get balance for a specific
|
|
145
|
-
* const balance = await profileAPI.
|
|
145
|
+
* // Get balance for a specific asset
|
|
146
|
+
* const balance = await profileAPI.getUserBalanceByAssetId('123e4567-e89b-12d3-a456-426614174000');
|
|
146
147
|
* console.log(`${balance.symbol}: ${balance.available_balance}`);
|
|
147
148
|
* console.log(`Locked: ${balance.locked_balance}`);
|
|
148
149
|
* console.log(`Total: ${balance.total_balance}`);
|
|
149
150
|
* ```
|
|
150
151
|
*/
|
|
151
|
-
async
|
|
152
|
-
|
|
152
|
+
async getUserBalanceByAssetId(assetId) {
|
|
153
|
+
if (!assetId || assetId.trim() === "") {
|
|
154
|
+
throw new APIError("assetId is required and cannot be empty", {
|
|
155
|
+
endpoint: "/api/v1/accounts/balances/{asset_id}",
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
const url = `/api/v1/accounts/balances/${assetId}`;
|
|
153
159
|
return await this.makeAuthenticatedRequest(url);
|
|
154
160
|
}
|
|
155
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/profile/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/profile/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/profile/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/profile/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/profile/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/profile/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,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
|
+
/**
|
|
23
|
+
* Options for fetching trades
|
|
24
|
+
*/
|
|
25
|
+
export interface GetTradesOptions {
|
|
26
|
+
/** Number of records to skip (default: 0) */
|
|
27
|
+
skip?: number;
|
|
28
|
+
/** Maximum number of records to return (default: 25, max: 100) */
|
|
29
|
+
limit?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Trades API for fetching historical trade data
|
|
33
|
+
*/
|
|
34
|
+
export declare class TradesAPIImpl extends BaseAPI {
|
|
35
|
+
/**
|
|
36
|
+
* Get historical trades for a trading pair
|
|
37
|
+
*
|
|
38
|
+
* @param tradingPairId - The trading pair UUID
|
|
39
|
+
* @param options - Pagination options
|
|
40
|
+
* @returns Array of TradeEvent records sorted by executed_at descending (newest first)
|
|
41
|
+
*/
|
|
42
|
+
getTrades(tradingPairId: string, options?: GetTradesOptions): Promise<TradeEvent[]>;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
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;AAED;;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;CAe9F"}
|
|
@@ -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;AAYD;;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,CAAoB,kBAAkB,kBAAkB,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE7I,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"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
import type { CancelOrderResponse, CreateOrderResponse, GetOrderResponse, GetPaginatedOrdersParams, GetPaginatedOrdersResponse, OrderSide, ReplaceOrderResponse, TimeInForce, TradingAPI, TradingMode } from "@0xmonaco/types";
|
|
28
|
-
import { BaseAPI } from "../base
|
|
28
|
+
import { BaseAPI } from "../base";
|
|
29
29
|
export declare class TradingAPIImpl extends BaseAPI implements TradingAPI {
|
|
30
30
|
/**
|
|
31
31
|
* Places a limit order on the order book.
|
|
@@ -146,7 +146,6 @@ export declare class TradingAPIImpl extends BaseAPI implements TradingAPI {
|
|
|
146
146
|
*
|
|
147
147
|
* @param orderId - The ID of the order to cancel
|
|
148
148
|
* @returns Promise resolving to CancelOrderResponse with cancellation details
|
|
149
|
-
* @throws {OrderError} When cancellation fails
|
|
150
149
|
* @throws {APIError} When API communication fails
|
|
151
150
|
*
|
|
152
151
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EAET,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,WAAW,EACZ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EAET,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,cAAe,SAAQ,OAAQ,YAAW,UAAU;IAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GACA,OAAO,CAAC,mBAAmB,CAAC;IA4B/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,gBAAgB,CACpB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GACA,OAAO,CAAC,mBAAmB,CAAC;IAkB/B;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAW1D,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GACA,OAAO,CAAC,oBAAoB,CAAC;IAuBhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,kBAAkB,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA2BhG;;;;;;;;;;;;;;;;;OAiBG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAK3D"}
|
package/dist/api/trading/api.js
CHANGED
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
* const openOrders = await tradingAPI.getOpenOrders({ market: "ETH-USD" });
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
import {
|
|
27
|
+
import { PlaceLimitOrderSchema, validate } from "@0xmonaco/types";
|
|
28
|
+
import { BaseAPI } from "../base";
|
|
28
29
|
export class TradingAPIImpl extends BaseAPI {
|
|
29
30
|
/**
|
|
30
31
|
* Places a limit order on the order book.
|
|
@@ -77,6 +78,14 @@ export class TradingAPIImpl extends BaseAPI {
|
|
|
77
78
|
* ```
|
|
78
79
|
*/
|
|
79
80
|
async placeLimitOrder(tradingPairId, side, quantity, price, options) {
|
|
81
|
+
// Validate inputs before making API call
|
|
82
|
+
validate(PlaceLimitOrderSchema, {
|
|
83
|
+
tradingPairId,
|
|
84
|
+
side,
|
|
85
|
+
quantity,
|
|
86
|
+
price,
|
|
87
|
+
options,
|
|
88
|
+
});
|
|
80
89
|
const requestBody = {
|
|
81
90
|
trading_pair_id: tradingPairId,
|
|
82
91
|
order_type: "LIMIT",
|
|
@@ -167,7 +176,6 @@ export class TradingAPIImpl extends BaseAPI {
|
|
|
167
176
|
*
|
|
168
177
|
* @param orderId - The ID of the order to cancel
|
|
169
178
|
* @returns Promise resolving to CancelOrderResponse with cancellation details
|
|
170
|
-
* @throws {OrderError} When cancellation fails
|
|
171
179
|
* @throws {APIError} When API communication fails
|
|
172
180
|
*
|
|
173
181
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAeH,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/trading/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/trading/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/trading/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/trading/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/trading/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC"}
|