@0xmonaco/core 0.1.6 → 0.2.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.
Files changed (52) hide show
  1. package/README.md +183 -108
  2. package/dist/api/auth/api.d.ts +10 -10
  3. package/dist/api/auth/api.d.ts.map +1 -1
  4. package/dist/api/auth/api.js +20 -12
  5. package/dist/api/auth/api.js.map +1 -1
  6. package/dist/api/index.d.ts +1 -0
  7. package/dist/api/index.d.ts.map +1 -1
  8. package/dist/api/index.js +1 -0
  9. package/dist/api/index.js.map +1 -1
  10. package/dist/api/market/api.d.ts +13 -0
  11. package/dist/api/market/api.d.ts.map +1 -0
  12. package/dist/api/market/api.js +46 -0
  13. package/dist/api/market/api.js.map +1 -0
  14. package/dist/api/market/index.d.ts +3 -0
  15. package/dist/api/market/index.d.ts.map +1 -0
  16. package/dist/api/market/index.js +2 -0
  17. package/dist/api/market/index.js.map +1 -0
  18. package/dist/api/trading/api.d.ts +23 -30
  19. package/dist/api/trading/api.d.ts.map +1 -1
  20. package/dist/api/trading/api.js +42 -43
  21. package/dist/api/trading/api.js.map +1 -1
  22. package/dist/api/vault/api.d.ts +86 -36
  23. package/dist/api/vault/api.d.ts.map +1 -1
  24. package/dist/api/vault/api.js +206 -98
  25. package/dist/api/vault/api.js.map +1 -1
  26. package/dist/api/websocket/base-ws-client.d.ts +59 -0
  27. package/dist/api/websocket/base-ws-client.d.ts.map +1 -0
  28. package/dist/api/websocket/{client.js → base-ws-client.js} +21 -17
  29. package/dist/api/websocket/base-ws-client.js.map +1 -0
  30. package/dist/api/websocket/index.d.ts +4 -2
  31. package/dist/api/websocket/index.d.ts.map +1 -1
  32. package/dist/api/websocket/index.js +4 -2
  33. package/dist/api/websocket/index.js.map +1 -1
  34. package/dist/api/websocket/ohlcv-ws-client.d.ts +48 -0
  35. package/dist/api/websocket/ohlcv-ws-client.d.ts.map +1 -0
  36. package/dist/api/websocket/ohlcv-ws-client.js +123 -0
  37. package/dist/api/websocket/ohlcv-ws-client.js.map +1 -0
  38. package/dist/api/websocket/orders-ws-client.d.ts +47 -0
  39. package/dist/api/websocket/orders-ws-client.d.ts.map +1 -0
  40. package/dist/api/websocket/orders-ws-client.js +131 -0
  41. package/dist/api/websocket/orders-ws-client.js.map +1 -0
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/sdk.d.ts +6 -2
  46. package/dist/sdk.d.ts.map +1 -1
  47. package/dist/sdk.js +23 -15
  48. package/dist/sdk.js.map +1 -1
  49. package/package.json +16 -6
  50. package/dist/api/websocket/client.d.ts +0 -57
  51. package/dist/api/websocket/client.d.ts.map +0 -1
  52. package/dist/api/websocket/client.js.map +0 -1
package/README.md CHANGED
@@ -11,7 +11,7 @@ This package is currently in **early development** (v0.1.0).
11
11
 
12
12
  ---
13
13
 
14
- Core SDK implementation for interacting with Monaco Protocol. This SDK provides a comprehensive implementation with Vault and Trading APIs, featuring EIP-712 intent signatures and secure API Gateway integration.
14
+ Core SDK implementation for interacting with Monaco Protocol. This SDK provides a comprehensive implementation with Authentication, Vault, Trading, Market, and Profile APIs, featuring JWT authentication and secure API Gateway integration.
15
15
 
16
16
  ## Installation
17
17
 
@@ -21,25 +21,38 @@ npm install @0xmonaco/core
21
21
 
22
22
  ## Features
23
23
 
24
+ ### 🔐 **Authentication**
25
+ - **JWT-based Authentication**: Secure token-based authentication
26
+ - **Wallet Signature Verification**: EIP-712 signature-based login
27
+ - **Token Refresh**: Automatic token refresh and management
28
+ - **Session Management**: Secure session handling
29
+
24
30
  ### 🏦 **Vault Operations**
25
31
  - **Token Approvals**: ERC20 token approvals for vault usage
26
- - **Deposits**: Secure token deposits with EIP-712 signatures
32
+ - **Deposits**: Secure token deposits with signature validation
27
33
  - **Withdrawals**: Token withdrawals with cryptographic validation
28
34
  - **Balance Queries**: Real-time vault balance tracking
29
- - **Allowance Management**: Efficient approval checking and management
30
35
 
31
36
  ### 📈 **Trading Operations**
32
- - **Order Types**: Limit (with timeInForce: GTC/IOC/FOK), Market, Post-Only orders
33
- - **Order Management**: Place, replace (cancel + new), and cancel orders
34
- - **Position Management**: Close positions with slippage control
35
- - **Order Queries**: Open orders, order history, and individual order details
36
- - **Real-time Updates**: Live order status and execution tracking
37
+ - **Order Types**: Limit and Market orders
38
+ - **Order Management**: Place, replace, and cancel orders
39
+ - **Order Queries**: Paginated orders, order history, and individual order details
40
+ - **Real-time Updates**: WebSocket support for live order updates
41
+
42
+ ### 📊 **Market Data**
43
+ - **Trading Pairs**: Complete trading pair metadata
44
+ - **Market Information**: Fees, tick sizes, order limits
45
+ - **Pair Discovery**: Search and filter available markets
46
+
47
+ ### 👤 **Profile Management**
48
+ - **User Profiles**: Account information and settings
49
+ - **Sub-accounts**: Multi-account management
50
+ - **Balance Tracking**: Cross-platform balance monitoring
37
51
 
38
52
  ### 🔐 **Security Features**
39
- - **EIP-712 Signatures**: Type-safe, structured data signing
40
- - **Intent-Based Authorization**: Every action explicitly authorized
53
+ - **JWT Authentication**: Secure API access with token validation
54
+ - **EIP-712 Signatures**: Type-safe, structured data signing for authentication
41
55
  - **API Gateway Integration**: Secure communication with Monaco backend
42
- - **Nonce Protection**: Replay attack prevention
43
56
  - **TLS Encryption**: Secure API communications
44
57
 
45
58
  ## Test Setup
@@ -110,80 +123,103 @@ const testnetConfig = NETWORK_ENDPOINTS.testnet; // Atlantic-2 testnet
110
123
 
111
124
  ```typescript
112
125
  import { MonacoSDK } from "@0xmonaco/core";
126
+ import { createWalletClient, http } from "viem";
127
+ import { privateKeyToAccount } from "viem/accounts";
128
+
129
+ // Initialize the SDK with wallet client
130
+ const account = privateKeyToAccount("0x...");
131
+ const walletClient = createWalletClient({
132
+ account,
133
+ transport: http()
134
+ });
113
135
 
114
- // Initialize the SDK with private key
115
136
  const monaco = new MonacoSDK({
116
- privateKey: "0x...", // Your private key
137
+ walletClient,
117
138
  network: "mainnet", // or "testnet"
118
139
  });
119
140
 
141
+ // Authentication
142
+ async function authExample() {
143
+ // Login with client ID
144
+ const authState = await monaco.login("your-client-id");
145
+ console.log("Authenticated:", authState.user);
146
+
147
+ // Check authentication status
148
+ console.log("Is authenticated:", monaco.isAuthenticated());
149
+ }
150
+
151
+ // Market Data
152
+ async function marketExample() {
153
+ // Get all trading pairs
154
+ const pairs = await monaco.market.getTradingPairs();
155
+ console.log("Available pairs:", pairs.length);
156
+
157
+ // Get specific trading pair
158
+ const btcPair = await monaco.market.getTradingPairBySymbol("BTC/USDC");
159
+ console.log("BTC pair:", btcPair?.symbol, btcPair?.maker_fee_bps);
160
+ }
161
+
120
162
  // Vault Operations
121
163
  async function vaultExample() {
122
164
  // Check vault balance
123
165
  const balance = await monaco.vault.getBalance("0x..."); // token address
124
166
  console.log("Vault balance:", balance.formatted, balance.symbol);
125
167
 
126
- // Check if approval is needed
127
- const needsApproval = await monaco.vault.needsApproval("0x...", parseEther("100"));
128
- if (needsApproval) {
129
- // Approve vault to spend tokens
130
- const approval = await monaco.vault.approve("0x...", parseEther("1000"));
131
- console.log("Approval transaction:", approval.hash);
132
- }
168
+ // Approve vault to spend tokens
169
+ const approval = await monaco.vault.approve("0x...", parseEther("1000"));
170
+ console.log("Approval transaction:", approval.hash);
133
171
 
134
172
  // Deposit tokens
135
173
  const result = await monaco.vault.deposit("0x...", parseEther("100"));
136
174
  console.log("Deposit transaction:", result.hash);
175
+
176
+ // Withdraw tokens
177
+ const withdrawal = await monaco.vault.withdraw("0x...", parseEther("50"));
178
+ console.log("Withdrawal transaction:", withdrawal.hash);
137
179
  }
138
180
 
139
181
  // Trading Operations
140
182
  async function tradingExample() {
141
183
  // Place a limit order
142
184
  const order = await monaco.trading.placeLimitOrder(
143
- "ETH-USDC", // market
144
- "buy", // side
145
- parseEther("1.0"), // size (1 ETH)
146
- parseUnits("2000", 6) // price (2000 USDC)
185
+ "BTC/USDC", // market
186
+ "BUY", // side
187
+ "0.001", // quantity
188
+ "50000" // price
147
189
  );
148
- console.log("Order placed:", order.orderId);
190
+ console.log("Order placed:", order.order_id);
149
191
 
150
- // Place a market order with slippage protection
192
+ // Place a market order
151
193
  const marketOrder = await monaco.trading.placeMarketOrder(
152
- "ETH-USDC",
153
- "sell",
154
- parseEther("0.5"),
155
- { slippageToleranceBps: 50 } // 0.5% max slippage (50 basis points)
156
- );
157
- console.log("Market order placed:", marketOrder.orderId);
158
-
159
- // Place a limit order with IOC time in force
160
- const iocOrder = await monaco.trading.placeLimitOrder(
161
- "ETH-USDC",
162
- "buy",
163
- parseEther("1.0"),
164
- parseUnits("2000", 6),
165
- { timeInForce: "IOC" } // Immediate-or-Cancel
194
+ "BTC/USDC",
195
+ "SELL",
196
+ "0.001"
166
197
  );
167
- console.log("IOC order placed:", iocOrder.orderId);
168
-
169
- // Get open orders
170
- const openOrders = await monaco.trading.getOpenOrders({ market: "ETH-USDC" });
171
- console.log("Open orders:", openOrders.length);
198
+ console.log("Market order placed:", marketOrder.order_id);
199
+
200
+ // Get paginated orders
201
+ const orders = await monaco.trading.getPaginatedOrders({
202
+ status: "PENDING",
203
+ trading_pair: "BTC/USDC",
204
+ page: 1,
205
+ page_size: 10
206
+ });
207
+ console.log("Orders:", orders.data.length);
172
208
 
173
- // Replace an order (cancel + new)
209
+ // Replace an order
174
210
  const replaceResult = await monaco.trading.replaceOrder("order-id", {
175
- market: "ETH-USDC",
176
- side: "buy",
177
- size: parseEther("2.0"),
178
- price: parseUnits("2100", 6),
179
- type: "limit",
180
- timeInForce: "FOK" // Fill-or-Kill
211
+ quantity: "0.002",
212
+ price: "51000"
181
213
  });
182
- console.log("Order replaced:", replaceResult.orderId);
214
+ console.log("Order replaced:", replaceResult.order_id);
183
215
 
184
216
  // Cancel an order
185
217
  const cancelResult = await monaco.trading.cancelOrder("order-id");
186
218
  console.log("Order cancelled:", cancelResult.status);
219
+
220
+ // Get specific order
221
+ const orderDetails = await monaco.trading.getOrder("order-id");
222
+ console.log("Order details:", orderDetails.order);
187
223
  }
188
224
  ```
189
225
 
@@ -195,12 +231,34 @@ The main SDK class that provides access to all protocol features.
195
231
 
196
232
  ```typescript
197
233
  class MonacoSDK {
234
+ readonly applications: ApplicationsAPI;
235
+ readonly auth: AuthAPI;
198
236
  readonly vault: VaultAPI;
199
237
  readonly trading: TradingAPI;
238
+ readonly market: MarketAPI;
239
+ readonly profile: ProfileAPI;
240
+ readonly websocket: {
241
+ orders: OrdersWebSocketClient;
242
+ ohlcv: OHLCVWebSocketClient;
243
+ };
200
244
  readonly walletClient: WalletClient;
201
245
  readonly publicClient: PublicClient;
202
246
 
203
247
  constructor(config: SDKConfig);
248
+
249
+ // Authentication
250
+ login(clientId: string): Promise<AuthState>;
251
+ logout(): Promise<void>;
252
+ refreshAuth(): Promise<AuthState>;
253
+ getAuthState(): AuthState | undefined;
254
+ isAuthenticated(): boolean;
255
+
256
+ // Network utilities
257
+ isConnected(): boolean;
258
+ getAccountAddress(): string;
259
+ getNetwork(): Network;
260
+ getChainId(): number;
261
+ waitForTransaction(hash: string, confirmations?: number, timeout?: number): Promise<TransactionReceipt>;
204
262
  }
205
263
  ```
206
264
 
@@ -208,17 +266,14 @@ class MonacoSDK {
208
266
 
209
267
  ```typescript
210
268
  interface SDKConfig {
211
- /** Private key as hex string (0x-prefixed) */
212
- privateKey?: Hex;
213
-
214
- /** Viem Account for advanced account management */
215
- signer?: PrivateKeyAccount;
216
-
217
- /** Custom Account implementation (overrides privateKey/signer) */
218
- account?: Account;
269
+ /** Wallet client for signing operations */
270
+ walletClient: WalletClient;
219
271
 
220
272
  /** Optional network override (defaults to 'mainnet') */
221
273
  network?: Network;
274
+
275
+ /** Optional transport for the public client */
276
+ transport?: Transport;
222
277
  }
223
278
  ```
224
279
 
@@ -227,58 +282,73 @@ interface SDKConfig {
227
282
  The vault API provides secure token management operations:
228
283
 
229
284
  ```typescript
230
- interface VaultAPI {
231
- // Token approvals
232
- approve(token: string, amount: bigint): Promise<TransactionResult>;
285
+ interface VaultAPI extends BaseAPI {
286
+ // Vault address management
287
+ setVaultAddress(vaultAddress: Address): void;
288
+ getVaultAddress(): Address | undefined;
233
289
 
234
- // Deposit and withdrawal
235
- deposit(token: string, amount: bigint): Promise<TransactionResult>;
236
- withdraw(token: string, amount: bigint): Promise<TransactionResult>;
290
+ // Token operations
291
+ approve(token: string, amount: bigint, autoWait?: boolean): Promise<TransactionResult>;
292
+ deposit(token: string, amount: bigint, autoWait?: boolean): Promise<TransactionResult>;
293
+ withdraw(token: string, amount: bigint, autoWait?: boolean): Promise<TransactionResult>;
237
294
 
238
- // Balance and allowance queries
295
+ // Balance queries
239
296
  getBalance(token: string): Promise<Balance>;
240
- getAllowance(token: string): Promise<bigint>;
241
- needsApproval(token: string, amount: bigint): Promise<boolean>;
242
297
  }
243
298
  ```
244
299
 
245
300
  ### Trading API
246
301
 
247
- The trading API provides comprehensive order management with support for different execution policies:
248
-
249
- #### Order Types and Execution Policies
250
-
251
- - **Limit Orders**: Standard limit orders with optional `timeInForce` parameter
252
- - `GTC` (Good Till Cancelled): Default behavior, order stays active until filled or cancelled
253
- - `IOC` (Immediate or Cancel): Order fills what it can immediately, then cancels the rest
254
- - `FOK` (Fill or Kill): Order must fill completely or not at all
255
-
256
- - **Market Orders**: Immediate execution with optional slippage protection
257
- - **Post-Only Orders**: Limit orders that never execute immediately, only add liquidity
258
-
259
- #### Order Management
260
-
261
- - **Replace Orders**: Cancel existing order and place a new one (atomic operation)
262
- - **Cancel Orders**: Cancel any open order by ID
302
+ The trading API provides comprehensive order management:
263
303
 
264
304
  ```typescript
265
- interface TradingAPI {
305
+ interface TradingAPI extends BaseAPI {
266
306
  // Order placement
267
- placeLimitOrder(market: string, side: OrderSide, size: bigint, price: bigint, options?: { timeInForce?: TimeInForce }): Promise<OrderResponse>;
268
- placeMarketOrder(market: string, side: OrderSide, size: bigint, options?: { slippageToleranceBps?: number }): Promise<OrderResponse>;
269
- placePostOnlyOrder(market: string, side: OrderSide, size: bigint, price: bigint): Promise<OrderResponse>;
307
+ placeLimitOrder(
308
+ market: string,
309
+ side: OrderSide,
310
+ quantity: string,
311
+ price: string,
312
+ options?: {
313
+ tradingMode?: string;
314
+ useMasterBalance?: boolean;
315
+ expirationDate?: string;
316
+ }
317
+ ): Promise<CreateOrderResponse>;
318
+
319
+ placeMarketOrder(
320
+ market: string,
321
+ side: OrderSide,
322
+ quantity: string,
323
+ options?: { tradingMode?: string; }
324
+ ): Promise<CreateOrderResponse>;
270
325
 
271
326
  // Order management
272
- replaceOrder(originalOrderId: string, newOrder: { market: string; side: OrderSide; size: bigint; price?: bigint; type: OrderType; timeInForce?: TimeInForce }): Promise<OrderResponse>;
273
327
  cancelOrder(orderId: string): Promise<CancelOrderResponse>;
274
-
275
- // Position management
276
- closePosition(market: string, options?: { maxSlippage?: number }): Promise<ClosePositionResponse>;
328
+ replaceOrder(
329
+ orderId: string,
330
+ newOrder: {
331
+ price?: string;
332
+ quantity: string;
333
+ useMasterBalance?: boolean;
334
+ }
335
+ ): Promise<ReplaceOrderResponse>;
277
336
 
278
337
  // Order queries
279
- getOrder(orderId: string): Promise<Order>;
280
- getOpenOrders(params?: GetOpenOrdersParams): Promise<Order[]>;
281
- getOrderHistory(params: OrderHistoryParams): Promise<PaginatedOrders>;
338
+ getPaginatedOrders(params?: GetPaginatedOrdersParams): Promise<GetPaginatedOrdersResponse>;
339
+ getOrder(orderId: string): Promise<GetOrderResponse>;
340
+ }
341
+ ```
342
+
343
+ ### Market API
344
+
345
+ The market API provides access to trading pair metadata:
346
+
347
+ ```typescript
348
+ interface MarketAPI extends BaseAPI {
349
+ // Market data
350
+ getTradingPairs(): Promise<TradingPair[]>;
351
+ getTradingPairBySymbol(symbol: string): Promise<TradingPair | undefined>;
282
352
  }
283
353
  ```
284
354
 
@@ -322,11 +392,16 @@ try {
322
392
  packages/core/
323
393
  ├── src/ # Source code
324
394
  │ ├── api/ # API implementations
395
+ │ │ ├── applications/ # Applications API
396
+ │ │ ├── auth/ # Authentication API
397
+ │ │ ├── base.ts # Base API class
398
+ │ │ ├── market/ # Market data API
399
+ │ │ ├── profile/ # Profile management API
400
+ │ │ ├── trading/ # Trading operations API
325
401
  │ │ ├── vault/ # Vault operations API
326
- │ │ │ └── api.ts # Vault API implementation with comprehensive docs
327
- │ │ └── trading/ # Trading operations API
328
- │ └── api.ts # Trading API implementation with comprehensive docs
329
- │ ├── chains.ts # Chain definitions (Sei mainnet/testnet)
402
+ │ │ ├── websocket/ # WebSocket client
403
+ │ │ └── index.ts # API exports
404
+ ├── constants/ # Constants and configurations
330
405
  │ ├── errors.ts # Error classes and codes
331
406
  │ ├── networks.ts # Network endpoint configurations
332
407
  │ ├── sdk.ts # Main SDK implementation
@@ -371,22 +446,22 @@ pnpm lint --filter @0xmonaco/core
371
446
 
372
447
  ## Security Features
373
448
 
374
- ### EIP-712 Intent Signatures
375
- - **Type-safe signing**: Structured data with domain separation
376
- - **Intent-based authorization**: Every action explicitly authorized
377
- - **Nonce protection**: Prevents replay attacks
378
- - **Domain validation**: Ensures signatures are valid for specific contracts
449
+ ### JWT Authentication
450
+ - **Token-based security**: Secure JWT tokens for API access
451
+ - **EIP-712 login**: Wallet signature-based authentication
452
+ - **Automatic refresh**: Seamless token renewal
453
+ - **Session management**: Secure session handling
379
454
 
380
455
  ### API Gateway Integration
381
456
  - **Secure communication**: TLS encryption for all API calls
382
- - **Signature validation**: Backend validates all signed intents
457
+ - **Token validation**: Backend validates all JWT tokens
383
458
  - **Rate limiting**: Protection against abuse
384
459
  - **Audit logging**: Complete transaction history
385
460
 
386
461
  ### On-chain Security
387
462
  - **Smart contract validation**: All operations validated on-chain
463
+ - **Signature verification**: EIP-712 signatures for authentication
388
464
  - **Multi-signature support**: Advanced security for institutional users
389
- - **Emergency stops**: Circuit breakers for critical situations
390
465
 
391
466
  ## Performance Considerations
392
467
 
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * @example
11
11
  * ```typescript
12
- * const authAPI = new AuthAPIImpl(walletClient, apiUrl, chain);
12
+ * const authAPI = new AuthAPIImpl(walletClient, chain, apiUrl);
13
13
  *
14
14
  * // Complete authentication flow
15
15
  * const authResult = await authAPI.authenticate(clientId);
@@ -30,18 +30,18 @@
30
30
  */
31
31
  import type { AuthAPI, BackendAuthResponse, ChallengeResponse, TokenRefreshResponse, VerifyResponse } from "@0xmonaco/types";
32
32
  import type { Chain, WalletClient } from "viem";
33
- export declare class AuthAPIImpl implements AuthAPI {
33
+ import { BaseAPI } from "../base";
34
+ export declare class AuthAPIImpl extends BaseAPI implements AuthAPI {
34
35
  private readonly walletClient;
35
- private readonly apiUrl;
36
36
  private readonly chain;
37
37
  /**
38
38
  * Creates a new AuthAPI instance.
39
39
  *
40
40
  * @param walletClient - The viem wallet client for signing operations
41
- * @param apiUrl - The base URL for the Monaco API Gateway
42
41
  * @param chain - The blockchain network configuration
42
+ * @param apiUrl - The base URL for the Monaco API Gateway
43
43
  */
44
- constructor(walletClient: WalletClient, apiUrl: string, chain: Chain);
44
+ constructor(walletClient: WalletClient, chain: Chain, apiUrl: string);
45
45
  /**
46
46
  * Complete authentication flow for frontend applications.
47
47
  *
@@ -177,22 +177,22 @@ export declare class AuthAPIImpl implements AuthAPI {
177
177
  */
178
178
  refreshToken(refreshToken: string): Promise<TokenRefreshResponse>;
179
179
  /**
180
- * Revokes a session token.
180
+ * Revokes a refresh token.
181
181
  *
182
- * Invalidates a session token, preventing it from being used to obtain
182
+ * Invalidates a refresh token, preventing it from being used to obtain
183
183
  * new access tokens. This is useful for logout functionality or when
184
184
  * a token has been compromised.
185
185
  *
186
- * @param sessionId - The session id to revoke
186
+ * @param refreshToken - The refresh token to revoke
187
187
  * @returns Promise resolving when the token is revoked
188
188
  * @throws {APIError} When token revocation fails
189
189
  *
190
190
  * @example
191
191
  * ```typescript
192
- * await authAPI.revokeToken(sessionId);
192
+ * await authAPI.revokeToken(refreshToken);
193
193
  * console.log("Token revoked successfully");
194
194
  * ```
195
195
  */
196
- revokeToken(sessionId: string): Promise<void>;
196
+ revokeToken(refreshToken: string): Promise<void>;
197
197
  }
198
198
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/auth/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACX,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGhD,qBAAa,WAAY,YAAW,OAAO;IASzC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAVvB;;;;;;OAMG;gBAEe,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK;IAG9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgC7D;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BrD;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAqC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC;IA4C1B;;;;;;;;;;;;;;;;OAgBG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwC1E;;;;;;;;;;;;;;;;;OAiBG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkCvE;;;;;;;;;;;;;;;;OAgBG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BnD"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/auth/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACX,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,WAAY,SAAQ,OAAQ,YAAW,OAAO;IASzD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IATvB;;;;;;OAMG;gBAEe,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EAC7B,MAAM,EAAE,MAAM;IAKf;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgC7D;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BrD;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAqC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC;IA4C1B;;;;;;;;;;;;;;;;OAgBG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwC1E;;;;;;;;;;;;;;;;;OAiBG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkCvE;;;;;;;;;;;;;;;;OAgBG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAuCtD"}
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * @example
11
11
  * ```typescript
12
- * const authAPI = new AuthAPIImpl(walletClient, apiUrl, chain);
12
+ * const authAPI = new AuthAPIImpl(walletClient, chain, apiUrl);
13
13
  *
14
14
  * // Complete authentication flow
15
15
  * const authResult = await authAPI.authenticate(clientId);
@@ -29,17 +29,18 @@
29
29
  * ```
30
30
  */
31
31
  import { APIError, InvalidConfigError } from "../../errors";
32
- export class AuthAPIImpl {
32
+ import { BaseAPI } from "../base";
33
+ export class AuthAPIImpl extends BaseAPI {
33
34
  /**
34
35
  * Creates a new AuthAPI instance.
35
36
  *
36
37
  * @param walletClient - The viem wallet client for signing operations
37
- * @param apiUrl - The base URL for the Monaco API Gateway
38
38
  * @param chain - The blockchain network configuration
39
+ * @param apiUrl - The base URL for the Monaco API Gateway
39
40
  */
40
- constructor(walletClient, apiUrl, chain) {
41
+ constructor(walletClient, chain, apiUrl) {
42
+ super(apiUrl);
41
43
  this.walletClient = walletClient;
42
- this.apiUrl = apiUrl;
43
44
  this.chain = chain;
44
45
  }
45
46
  /**
@@ -320,31 +321,36 @@ export class AuthAPIImpl {
320
321
  }
321
322
  }
322
323
  /**
323
- * Revokes a session token.
324
+ * Revokes a refresh token.
324
325
  *
325
- * Invalidates a session token, preventing it from being used to obtain
326
+ * Invalidates a refresh token, preventing it from being used to obtain
326
327
  * new access tokens. This is useful for logout functionality or when
327
328
  * a token has been compromised.
328
329
  *
329
- * @param sessionId - The session id to revoke
330
+ * @param refreshToken - The refresh token to revoke
330
331
  * @returns Promise resolving when the token is revoked
331
332
  * @throws {APIError} When token revocation fails
332
333
  *
333
334
  * @example
334
335
  * ```typescript
335
- * await authAPI.revokeToken(sessionId);
336
+ * await authAPI.revokeToken(refreshToken);
336
337
  * console.log("Token revoked successfully");
337
338
  * ```
338
339
  */
339
- async revokeToken(sessionId) {
340
+ async revokeToken(refreshToken) {
341
+ const accessToken = this.getAccessToken();
342
+ if (!accessToken) {
343
+ throw new APIError("Access token not set. Cannot revoke token without authentication.", `${this.apiUrl}/api/v1/auth/revoke`, 401);
344
+ }
340
345
  try {
341
346
  const response = await fetch(`${this.apiUrl}/api/v1/auth/revoke`, {
342
347
  method: "POST",
343
348
  headers: {
344
349
  "Content-Type": "application/json",
350
+ "Authorization": `Bearer ${accessToken}`,
345
351
  },
346
352
  body: JSON.stringify({
347
- session_id: sessionId,
353
+ refresh_token: refreshToken,
348
354
  }),
349
355
  });
350
356
  if (!response.ok) {
@@ -352,7 +358,9 @@ export class AuthAPIImpl {
352
358
  }
353
359
  }
354
360
  catch (error) {
355
- throw new APIError("Failed to revoke token", `${this.apiUrl}/api/v1/auth/revoke`, undefined);
361
+ // For other errors (network, etc.), provide more context
362
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
363
+ throw new APIError(`Failed to revoke token: ${errorMessage}`, `${this.apiUrl}/api/v1/auth/revoke`, undefined);
356
364
  }
357
365
  }
358
366
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/auth/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/auth/api.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export * from "./applications";
7
7
  export * from "./base";
8
8
  export * from "./profile";
9
9
  export * from "./trading";
10
+ export * from "./market";
10
11
  export * from "./vault";
11
12
  export * from "./websocket";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
package/dist/api/index.js CHANGED
@@ -7,6 +7,7 @@ export * from "./applications";
7
7
  export * from "./base";
8
8
  export * from "./profile";
9
9
  export * from "./trading";
10
+ export * from "./market";
10
11
  export * from "./vault";
11
12
  export * from "./websocket";
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { MarketAPI, TradingPair, Candlestick, CandlestickInterval } from "@0xmonaco/types";
2
+ import { BaseAPI } from "../base";
3
+ /**
4
+ * Market API Implementation
5
+ *
6
+ * Provides read-only market metadata endpoints such as trading pair listings.
7
+ */
8
+ export declare class MarketAPIImpl extends BaseAPI implements MarketAPI {
9
+ getTradingPairs(): Promise<TradingPair[]>;
10
+ getTradingPairBySymbol(symbol: string): Promise<TradingPair | undefined>;
11
+ getCandlesticks(symbol: string, interval: CandlestickInterval, startTime: number, endTime: number): Promise<Candlestick[]>;
12
+ }
13
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/market/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EAGX,WAAW,EACX,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,OAAQ,YAAW,SAAS;IACvD,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAczC,sBAAsB,CAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAc7B,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;CAyB1B"}