@0xmonaco/core 0.4.2 → 0.5.1

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.
Files changed (77) hide show
  1. package/README.md +34 -16
  2. package/dist/api/applications/index.d.ts +0 -1
  3. package/dist/api/applications/index.d.ts.map +1 -1
  4. package/dist/api/applications/index.js.map +1 -1
  5. package/dist/api/auth/index.d.ts +0 -1
  6. package/dist/api/auth/index.d.ts.map +1 -1
  7. package/dist/api/auth/index.js.map +1 -1
  8. package/dist/api/base.d.ts +26 -1
  9. package/dist/api/base.d.ts.map +1 -1
  10. package/dist/api/base.js +172 -42
  11. package/dist/api/base.js.map +1 -1
  12. package/dist/api/fees/api.js +3 -3
  13. package/dist/api/fees/api.js.map +1 -1
  14. package/dist/api/market/api.d.ts.map +1 -1
  15. package/dist/api/market/api.js +11 -2
  16. package/dist/api/market/api.js.map +1 -1
  17. package/dist/api/market/index.d.ts +0 -1
  18. package/dist/api/market/index.d.ts.map +1 -1
  19. package/dist/api/market/index.js.map +1 -1
  20. package/dist/api/orderbook/api.d.ts.map +1 -1
  21. package/dist/api/orderbook/api.js.map +1 -1
  22. package/dist/api/profile/api.d.ts +9 -10
  23. package/dist/api/profile/api.d.ts.map +1 -1
  24. package/dist/api/profile/api.js +16 -10
  25. package/dist/api/profile/api.js.map +1 -1
  26. package/dist/api/trades/api.d.ts +1 -1
  27. package/dist/api/trades/api.d.ts.map +1 -1
  28. package/dist/api/trades/api.js.map +1 -1
  29. package/dist/api/trading/api.d.ts +0 -1
  30. package/dist/api/trading/api.d.ts.map +1 -1
  31. package/dist/api/trading/api.js +9 -1
  32. package/dist/api/trading/api.js.map +1 -1
  33. package/dist/api/trading/index.d.ts +0 -1
  34. package/dist/api/trading/index.d.ts.map +1 -1
  35. package/dist/api/trading/index.js.map +1 -1
  36. package/dist/api/vault/api.d.ts +16 -18
  37. package/dist/api/vault/api.d.ts.map +1 -1
  38. package/dist/api/vault/api.js +56 -44
  39. package/dist/api/vault/api.js.map +1 -1
  40. package/dist/api/vault/index.d.ts +0 -1
  41. package/dist/api/vault/index.d.ts.map +1 -1
  42. package/dist/api/vault/index.js.map +1 -1
  43. package/dist/api/websocket/types.d.ts.map +1 -1
  44. package/dist/api/websocket/websocket.d.ts.map +1 -1
  45. package/dist/api/websocket/websocket.js +1 -6
  46. package/dist/api/websocket/websocket.js.map +1 -1
  47. package/dist/errors/errors.d.ts +382 -0
  48. package/dist/errors/errors.d.ts.map +1 -0
  49. package/dist/errors/errors.js +801 -0
  50. package/dist/errors/errors.js.map +1 -0
  51. package/dist/errors/index.d.ts +2 -0
  52. package/dist/errors/index.d.ts.map +1 -0
  53. package/dist/errors/index.js +2 -0
  54. package/dist/errors/index.js.map +1 -0
  55. package/dist/index.d.ts +2 -9
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +2 -17
  58. package/dist/index.js.map +1 -1
  59. package/dist/networks/index.d.ts +2 -0
  60. package/dist/networks/index.d.ts.map +1 -0
  61. package/dist/networks/index.js +2 -0
  62. package/dist/networks/index.js.map +1 -0
  63. package/dist/networks/networks.d.ts.map +1 -0
  64. package/dist/{networks.js → networks/networks.js} +8 -3
  65. package/dist/networks/networks.js.map +1 -0
  66. package/dist/sdk.d.ts +4 -3
  67. package/dist/sdk.d.ts.map +1 -1
  68. package/dist/sdk.js +41 -52
  69. package/dist/sdk.js.map +1 -1
  70. package/package.json +5 -7
  71. package/dist/errors.d.ts +0 -103
  72. package/dist/errors.d.ts.map +0 -1
  73. package/dist/errors.js +0 -108
  74. package/dist/errors.js.map +0 -1
  75. package/dist/networks.d.ts.map +0 -1
  76. package/dist/networks.js.map +0 -1
  77. /package/dist/{networks.d.ts → networks/networks.d.ts} +0 -0
package/README.md CHANGED
@@ -127,23 +127,47 @@ If you see an error about `TEST_PRIVATE_KEY` not being set:
127
127
 
128
128
  ## Network Support
129
129
 
130
- The SDK supports both Sei mainnet (pacific-1) and testnet (atlantic-2) networks. You configure the network by providing the `network` and `seiRpcUrl` parameters:
130
+ The SDK supports multiple preset networks and custom API URLs. Configure the network by providing the `network` and `seiRpcUrl` parameters:
131
+
132
+ **Preset Networks:**
133
+ - `"development"` - Development environment (https://develop.apimonaco.xyz)
134
+ - `"staging"` - Staging environment (https://staging.apimonaco.xyz)
135
+ - `"mainnet"` - Production environment (https://api.monaco.xyz)
136
+ - `"local"` - Local development (http://localhost:8080)
131
137
 
132
138
  ```typescript
133
139
  import { MonacoSDK } from "@0xmonaco/core";
134
140
 
135
- // Testnet configuration
136
- const testnetSdk = new MonacoSDK({
141
+ // Development configuration
142
+ const devSdk = new MonacoSDK({
143
+ walletClient,
144
+ network: "development",
145
+ seiRpcUrl: "https://evm-rpc-testnet.sei-apis.com", // Atlantic-2 testnet
146
+ wsUrl: "wss://develop.apimonaco.xyz/ws"
147
+ });
148
+
149
+ // Staging configuration
150
+ const stagingSdk = new MonacoSDK({
137
151
  walletClient,
138
- network: "testnet",
139
- seiRpcUrl: "https://evm-rpc-testnet.sei-apis.com" // Atlantic-2 testnet
152
+ network: "staging",
153
+ seiRpcUrl: "https://evm-rpc-testnet.sei-apis.com", // Atlantic-2 testnet
154
+ wsUrl: "wss://staging.apimonaco.xyz/ws"
140
155
  });
141
156
 
142
157
  // Mainnet configuration
143
158
  const mainnetSdk = new MonacoSDK({
144
159
  walletClient,
145
160
  network: "mainnet",
146
- seiRpcUrl: "https://evm-rpc.sei-apis.com" // Pacific-1 mainnet
161
+ seiRpcUrl: "https://evm-rpc.sei-apis.com", // Pacific-1 mainnet
162
+ wsUrl: "wss://api.monaco.xyz/ws"
163
+ });
164
+
165
+ // Custom API URL
166
+ const customSdk = new MonacoSDK({
167
+ walletClient,
168
+ network: "https://my-custom-api.com",
169
+ seiRpcUrl: "https://evm-rpc-testnet.sei-apis.com",
170
+ wsUrl: "wss://my-custom-api.com/ws"
147
171
  });
148
172
  ```
149
173
 
@@ -164,8 +188,9 @@ const walletClient = createWalletClient({
164
188
 
165
189
  const monaco = new MonacoSDK({
166
190
  walletClient,
167
- network: "mainnet", // or "testnet"
168
- seiRpcUrl: "https://evm-rpc.sei-apis.com" // or https://evm-rpc-testnet.sei-apis.com for testnet
191
+ network: "development", // or "staging", "mainnet"
192
+ seiRpcUrl: "https://evm-rpc-testnet.sei-apis.com", // or https://evm-rpc.sei-apis.com for mainnet
193
+ wsUrl: "wss://develop.apimonaco.xyz/ws" // or wss://staging.apimonaco.xyz/ws, wss://api.monaco.xyz/ws
169
194
  });
170
195
 
171
196
  // Authentication
@@ -525,7 +550,7 @@ monaco.websocket.orders.subscribeToOrderEvents("BTC/USDC", "SPOT", (event) => {
525
550
  The SDK uses structured error classes for comprehensive error handling:
526
551
 
527
552
  ```typescript
528
- import { APIError, ContractError, TransactionError, OrderError } from "@0xmonaco/core";
553
+ import { APIError, ContractError } from "@0xmonaco/core";
529
554
 
530
555
  try {
531
556
  await sdk.vault.deposit(token, amount);
@@ -536,11 +561,6 @@ try {
536
561
  } else if (error instanceof APIError) {
537
562
  console.error("API error:", error.message);
538
563
  console.error("Status:", error.status);
539
- } else if (error instanceof TransactionError) {
540
- console.error("Transaction error:", error.message);
541
- } else if (error instanceof OrderError) {
542
- console.error("Order error:", error.message);
543
- console.error("Market:", error.market);
544
564
  }
545
565
  }
546
566
  ```
@@ -549,8 +569,6 @@ try {
549
569
  - `MonacoCoreError`: Base error class for all SDK errors
550
570
  - `APIError`: API request failures and communication errors
551
571
  - `ContractError`: Smart contract operation errors
552
- - `TransactionError`: Blockchain transaction errors
553
- - `OrderError`: Trading order specific errors
554
572
  - `InvalidConfigError`: Configuration validation errors
555
573
  - `InvalidStateError`: Invalid state or operation errors
556
574
 
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Applications API Module
3
3
  */
4
- export type { ApplicationsAPI } from "@0xmonaco/types";
5
4
  export { ApplicationsAPIImpl } from "./api";
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/applications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/applications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/applications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/applications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC"}
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Auth API Module
3
3
  */
4
- export type { AuthAPI } from "@0xmonaco/types";
5
4
  export { AuthAPIImpl } from "./api";
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
@@ -20,15 +20,21 @@
20
20
  * }
21
21
  * ```
22
22
  */
23
+ export interface RetryOptions {
24
+ maxRetries?: number;
25
+ baseDelayMs?: number;
26
+ }
23
27
  export declare abstract class BaseAPI {
24
28
  protected readonly apiUrl: string;
25
29
  protected accessToken?: string;
30
+ protected retryOptions: Required<RetryOptions>;
26
31
  /**
27
32
  * Creates a new BaseAPI instance.
28
33
  *
29
34
  * @param apiUrl - The base URL for the Monaco API Gateway
35
+ * @param retryOptions - Configuration for retry behavior on network failures
30
36
  */
31
- constructor(apiUrl: string);
37
+ constructor(apiUrl: string, retryOptions?: RetryOptions);
32
38
  /**
33
39
  * Set the access token for authenticated requests.
34
40
  *
@@ -41,6 +47,25 @@ export declare abstract class BaseAPI {
41
47
  * @returns The current access token or undefined if not set
42
48
  */
43
49
  protected getAccessToken(): string | undefined;
50
+ /**
51
+ * Parse request body for error logging
52
+ *
53
+ * Attempts to extract meaningful data from various BodyInit types for debugging.
54
+ * Note: Binary data (Blob, ArrayBuffer, ReadableStream) is logged as metadata only
55
+ * to avoid performance issues and maintain log readability.
56
+ *
57
+ * @param body - Request body from fetch options
58
+ * @returns Parsed body for logging, or metadata for binary types
59
+ */
60
+ private parseRequestBody;
61
+ /**
62
+ * Extract metadata from response headers
63
+ */
64
+ private extractResponseMetadata;
65
+ /**
66
+ * Execute HTTP request with error handling
67
+ */
68
+ private executeRequest;
44
69
  /**
45
70
  * Makes an authenticated API request with automatic token handling.
46
71
  *
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,8BAAsB,OAAO;IAQf,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAP7C,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;gBAC4B,MAAM,EAAE,MAAM;IAE7C;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,SAAS,CAAC,cAAc,IAAI,MAAM,GAAG,SAAS;IAI9C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;cACa,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAqCpG;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;cACa,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;CA6B9F"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8BAAsB,OAAO;IAWzB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAVnC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE/C;;;;;OAKG;gBAEkB,MAAM,EAAE,MAAM,EACjC,YAAY,CAAC,EAAE,YAAY;IAQ7B;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,SAAS,CAAC,cAAc,IAAI,MAAM,GAAG,SAAS;IAI9C;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;YACW,cAAc;IA8E5B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;cACa,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IA0BpG;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;cACa,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;CAiB9F"}
package/dist/api/base.js CHANGED
@@ -21,14 +21,20 @@
21
21
  * ```
22
22
  */
23
23
  import { APIError } from "../errors";
24
+ import { StatusCodes } from "http-status-codes";
24
25
  export class BaseAPI {
25
26
  /**
26
27
  * Creates a new BaseAPI instance.
27
28
  *
28
29
  * @param apiUrl - The base URL for the Monaco API Gateway
30
+ * @param retryOptions - Configuration for retry behavior on network failures
29
31
  */
30
- constructor(apiUrl) {
32
+ constructor(apiUrl, retryOptions) {
31
33
  this.apiUrl = apiUrl;
34
+ this.retryOptions = {
35
+ maxRetries: retryOptions?.maxRetries ?? 3,
36
+ baseDelayMs: retryOptions?.baseDelayMs ?? 1000,
37
+ };
32
38
  }
33
39
  /**
34
40
  * Set the access token for authenticated requests.
@@ -46,6 +52,149 @@ export class BaseAPI {
46
52
  getAccessToken() {
47
53
  return this.accessToken;
48
54
  }
55
+ /**
56
+ * Parse request body for error logging
57
+ *
58
+ * Attempts to extract meaningful data from various BodyInit types for debugging.
59
+ * Note: Binary data (Blob, ArrayBuffer, ReadableStream) is logged as metadata only
60
+ * to avoid performance issues and maintain log readability.
61
+ *
62
+ * @param body - Request body from fetch options
63
+ * @returns Parsed body for logging, or metadata for binary types
64
+ */
65
+ parseRequestBody(body) {
66
+ if (!body)
67
+ return undefined;
68
+ // String bodies (most common case) - parse as JSON if possible
69
+ if (typeof body === "string") {
70
+ try {
71
+ return JSON.parse(body);
72
+ }
73
+ catch {
74
+ return body; // Return as-is if not valid JSON
75
+ }
76
+ }
77
+ // FormData - convert to object for logging
78
+ if (body instanceof FormData) {
79
+ const formObject = {};
80
+ body.forEach((value, key) => {
81
+ formObject[key] = value instanceof File ? `[File: ${value.name}]` : value;
82
+ });
83
+ return formObject;
84
+ }
85
+ // URLSearchParams - convert to object
86
+ if (body instanceof URLSearchParams) {
87
+ const params = {};
88
+ body.forEach((value, key) => {
89
+ params[key] = value;
90
+ });
91
+ return params;
92
+ }
93
+ // Blob - log metadata only (avoid reading binary data)
94
+ if (body instanceof Blob) {
95
+ return { type: "[Blob]", size: body.size, contentType: body.type };
96
+ }
97
+ // ArrayBuffer/ArrayBufferView - log metadata only
98
+ if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {
99
+ const size = body instanceof ArrayBuffer ? body.byteLength : body.byteLength;
100
+ return { type: "[ArrayBuffer]", size };
101
+ }
102
+ // ReadableStream - log metadata only (cannot read without consuming)
103
+ if (typeof ReadableStream !== "undefined" && body instanceof ReadableStream) {
104
+ return { type: "[ReadableStream]", note: "Stream body not captured for logging" };
105
+ }
106
+ // Fallback for unknown types
107
+ return { type: "[Unknown]", bodyType: typeof body };
108
+ }
109
+ /**
110
+ * Extract metadata from response headers
111
+ */
112
+ extractResponseMetadata(headers) {
113
+ if (!headers)
114
+ return {};
115
+ const requestId = headers.get("x-request-id") || headers.get("request-id") || headers.get("x-correlation-id") || undefined;
116
+ // Parse Retry-After header with validation
117
+ const retryAfterHeader = headers.get("retry-after");
118
+ let retryAfter;
119
+ if (retryAfterHeader !== null) {
120
+ const parsed = Number.parseInt(retryAfterHeader, 10);
121
+ retryAfter = Number.isNaN(parsed) ? undefined : parsed;
122
+ }
123
+ return { requestId, retryAfter };
124
+ }
125
+ /**
126
+ * Execute HTTP request with error handling
127
+ */
128
+ async executeRequest(url, endpoint, options, requestBody) {
129
+ let response;
130
+ try {
131
+ response = await fetch(url, options);
132
+ }
133
+ catch (error) {
134
+ throw new APIError(`Network request failed for ${endpoint}`, {
135
+ endpoint: url,
136
+ cause: error instanceof Error ? error : new Error(String(error)),
137
+ requestBody,
138
+ });
139
+ }
140
+ // Parse response body with error handling for non-JSON responses
141
+ let responseBody;
142
+ const contentType = response.headers?.get("content-type") || "unknown";
143
+ // Clone the response to avoid consuming the body stream twice (if clone method exists)
144
+ const responseClone = response.clone ? response.clone() : response;
145
+ try {
146
+ responseBody = await response.json();
147
+ }
148
+ catch (parseError) {
149
+ // If JSON parsing fails, try to get response as text for better error messages
150
+ let responseText;
151
+ try {
152
+ responseText = await responseClone.text();
153
+ }
154
+ catch {
155
+ responseText = "[Unable to read response body]";
156
+ }
157
+ // If response is not OK and we can't parse JSON, it's likely an error page (HTML, plain text, etc.)
158
+ if (!response.ok) {
159
+ const errorMessage = `API request failed: ${response.status}. Response is not JSON (Content-Type: ${contentType})`;
160
+ const { requestId, retryAfter } = this.extractResponseMetadata(response.headers);
161
+ throw new APIError(errorMessage, {
162
+ endpoint: url,
163
+ statusCode: response.status,
164
+ responseBody: {
165
+ rawResponse: responseText.substring(0, 500), // Limit to 500 chars to avoid huge error logs
166
+ contentType,
167
+ parseError: parseError instanceof Error ? parseError.message : String(parseError),
168
+ },
169
+ cause: parseError instanceof Error ? parseError : undefined,
170
+ requestBody,
171
+ requestId,
172
+ retryAfter,
173
+ });
174
+ }
175
+ // If response is OK but not JSON, throw a more specific error
176
+ throw new APIError(`Expected JSON response but received ${contentType}`, {
177
+ endpoint: url,
178
+ statusCode: response.status,
179
+ responseBody: { rawResponse: responseText.substring(0, 500), contentType },
180
+ cause: parseError instanceof Error ? parseError : undefined,
181
+ requestBody,
182
+ });
183
+ }
184
+ if (!response.ok) {
185
+ const errorMessage = responseBody?.message || responseBody?.error || `API request failed: ${response.status}`;
186
+ const { requestId, retryAfter } = this.extractResponseMetadata(response.headers);
187
+ throw new APIError(errorMessage, {
188
+ endpoint: url,
189
+ statusCode: response.status,
190
+ responseBody,
191
+ requestBody,
192
+ requestId,
193
+ retryAfter,
194
+ });
195
+ }
196
+ return responseBody;
197
+ }
49
198
  /**
50
199
  * Makes an authenticated API request with automatic token handling.
51
200
  *
@@ -74,30 +223,21 @@ export class BaseAPI {
74
223
  */
75
224
  async makeAuthenticatedRequest(endpoint, options = {}) {
76
225
  if (!this.accessToken) {
77
- throw new APIError("Access token not set. Call setAccessToken() first.", `${this.apiUrl}${endpoint}`, 401);
78
- }
79
- let response;
80
- try {
81
- response = await fetch(`${this.apiUrl}${endpoint}`, {
82
- headers: {
83
- "Content-Type": "application/json",
84
- Authorization: `Bearer ${this.accessToken}`,
85
- ...options.headers,
86
- },
87
- ...options,
226
+ throw new APIError("Access token not set. Call setAccessToken() first.", {
227
+ endpoint: `${this.apiUrl}${endpoint}`,
228
+ statusCode: StatusCodes.UNAUTHORIZED,
88
229
  });
89
230
  }
90
- catch (error) {
91
- // Network error - couldn't reach server
92
- throw new APIError(`Network request failed for ${endpoint}`, `${this.apiUrl}${endpoint}`, undefined, undefined, error instanceof Error ? error : new Error(String(error)));
93
- }
94
- // Parse response body
95
- const responseBody = await response.json();
96
- if (!response.ok) {
97
- const errorMessage = responseBody?.message || responseBody?.error || `API request failed: ${response.status}`;
98
- throw new APIError(errorMessage, `${this.apiUrl}${endpoint}`, response.status, responseBody);
99
- }
100
- return responseBody;
231
+ const url = `${this.apiUrl}${endpoint}`;
232
+ const requestBody = this.parseRequestBody(options.body);
233
+ return this.executeRequest(url, endpoint, {
234
+ ...options,
235
+ headers: {
236
+ "Content-Type": "application/json",
237
+ Authorization: `Bearer ${this.accessToken}`,
238
+ ...options.headers,
239
+ },
240
+ }, requestBody);
101
241
  }
102
242
  /**
103
243
  * Makes an unauthenticated API request.
@@ -126,25 +266,15 @@ export class BaseAPI {
126
266
  * ```
127
267
  */
128
268
  async makePublicRequest(endpoint, options = {}) {
129
- let response;
130
- try {
131
- response = await fetch(`${this.apiUrl}${endpoint}`, {
132
- headers: {
133
- "Content-Type": "application/json",
134
- ...options.headers,
135
- },
136
- ...options,
137
- });
138
- }
139
- catch (error) {
140
- throw new APIError(`Network request failed for ${endpoint}`, `${this.apiUrl}${endpoint}`, undefined, undefined, error instanceof Error ? error : new Error(String(error)));
141
- }
142
- const responseBody = await response.json();
143
- if (!response.ok) {
144
- const errorMessage = responseBody?.message || responseBody?.error || `API request failed: ${response.status}`;
145
- throw new APIError(errorMessage, `${this.apiUrl}${endpoint}`, response.status, responseBody);
146
- }
147
- return responseBody;
269
+ const url = `${this.apiUrl}${endpoint}`;
270
+ const requestBody = this.parseRequestBody(options.body);
271
+ return this.executeRequest(url, endpoint, {
272
+ ...options,
273
+ headers: {
274
+ "Content-Type": "application/json",
275
+ ...options.headers,
276
+ },
277
+ }, requestBody);
148
278
  }
149
279
  }
150
280
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@
21
21
  * });
22
22
  * ```
23
23
  */
24
- import { SimulateFeeParamsSchema } from "@0xmonaco/types";
24
+ import { SimulateFeeParamsSchema, validate } from "@0xmonaco/types";
25
25
  import { BaseAPI } from "../base";
26
26
  export class FeesAPIImpl extends BaseAPI {
27
27
  /**
@@ -67,8 +67,8 @@ export class FeesAPIImpl extends BaseAPI {
67
67
  * ```
68
68
  */
69
69
  async simulateFees(params) {
70
- // Validate parameters using Zod schema
71
- const validatedParams = SimulateFeeParamsSchema.parse(params);
70
+ // Validate parameters using the validate helper
71
+ const validatedParams = validate(SimulateFeeParamsSchema, params);
72
72
  const searchParams = new URLSearchParams();
73
73
  searchParams.append("trading_pair_id", validatedParams.trading_pair_id);
74
74
  searchParams.append("side", validatedParams.side);
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/fees/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,WAAY,SAAQ,OAAO;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC1C,uCAAuC;QACvC,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;QACxE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QACpD,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,yBAAyB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QAEpE,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAsB,QAAQ,EAAE;YACxE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/fees/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,WAAY,SAAQ,OAAO;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC1C,gDAAgD;QAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;QACxE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QACpD,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,yBAAyB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QAEpE,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAsB,QAAQ,EAAE;YACxE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAGX,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,WAAW,EACZ,MAAM,iBAAiB,CAAC;AACzB,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;CAYtH"}
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"}
@@ -1,3 +1,4 @@
1
+ import { GetCandlesticksBySymbolSchema, validate } from "@0xmonaco/types";
1
2
  import { BaseAPI } from "../base";
2
3
  /**
3
4
  * Market API Implementation
@@ -30,10 +31,18 @@ export class MarketAPIImpl extends BaseAPI {
30
31
  return await this.makePublicRequest(url);
31
32
  }
32
33
  async getTradingPairBySymbol(symbol) {
33
- const response = await this.makePublicRequest(`/api/v1/market/pairs/${encodeURIComponent(symbol)}`);
34
- return response.data;
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":"AAUA,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,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAyB,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE5H,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,QAAkB,EAAE,SAAiB,EAAE,OAAe;QAC1F,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
+ {"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,3 +1,2 @@
1
- export type { MarketAPI } from "@0xmonaco/types";
2
1
  export { MarketAPIImpl } from "./api";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +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"}
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"}
@@ -1 +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"}
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"}
@@ -18,7 +18,6 @@
18
18
  * ```
19
19
  */
20
20
  import type { AccountBalance, GetPaginatedUserMovementsResponse, GetUserBalancesParams, GetUserBalancesResponse, GetUserMovementsParams, ProfileAPI, UserProfile } from "@0xmonaco/types";
21
- import type { Address } from "viem";
22
21
  import { BaseAPI } from "../base";
23
22
  export declare class ProfileAPIImpl extends BaseAPI implements ProfileAPI {
24
23
  /**
@@ -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 token.
99
+ * Get the current user's balance for a specific asset.
101
100
  *
102
- * Fetches the user's balance for a specific token from the /api/v1/accounts/balances/{token} endpoint.
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 token - The token address (0x format)
106
- * @returns Promise resolving to the token balance
107
- * @throws {APIError} When the request fails, user is not authenticated, or balance not found (404)
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 token
112
- * const balance = await profileAPI.getUserBalanceByToken('0x6a86da986797d59a839d136db490292cd560c131');
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
- getUserBalanceByToken(token: Address): Promise<AccountBalance>;
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;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,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,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;CAIrE"}
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"}