@0xmonaco/react 0.0.0-develop-20260120180031

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 (166) hide show
  1. package/README.md +381 -0
  2. package/dist/hooks/index.d.ts +12 -0
  3. package/dist/hooks/index.d.ts.map +1 -0
  4. package/dist/hooks/index.js +12 -0
  5. package/dist/hooks/index.js.map +1 -0
  6. package/dist/hooks/useAuth/index.d.ts +3 -0
  7. package/dist/hooks/useAuth/index.d.ts.map +1 -0
  8. package/dist/hooks/useAuth/index.js +2 -0
  9. package/dist/hooks/useAuth/index.js.map +1 -0
  10. package/dist/hooks/useAuth/types.d.ts +31 -0
  11. package/dist/hooks/useAuth/types.d.ts.map +1 -0
  12. package/dist/hooks/useAuth/types.js +2 -0
  13. package/dist/hooks/useAuth/types.js.map +1 -0
  14. package/dist/hooks/useAuth/useAuth.d.ts +3 -0
  15. package/dist/hooks/useAuth/useAuth.d.ts.map +1 -0
  16. package/dist/hooks/useAuth/useAuth.js +150 -0
  17. package/dist/hooks/useAuth/useAuth.js.map +1 -0
  18. package/dist/hooks/useFees/index.d.ts +3 -0
  19. package/dist/hooks/useFees/index.d.ts.map +1 -0
  20. package/dist/hooks/useFees/index.js +2 -0
  21. package/dist/hooks/useFees/index.js.map +1 -0
  22. package/dist/hooks/useFees/types.d.ts +6 -0
  23. package/dist/hooks/useFees/types.d.ts.map +1 -0
  24. package/dist/hooks/useFees/types.js +2 -0
  25. package/dist/hooks/useFees/types.js.map +1 -0
  26. package/dist/hooks/useFees/useFees.d.ts +3 -0
  27. package/dist/hooks/useFees/useFees.d.ts.map +1 -0
  28. package/dist/hooks/useFees/useFees.js +15 -0
  29. package/dist/hooks/useFees/useFees.js.map +1 -0
  30. package/dist/hooks/useMarket/index.d.ts +3 -0
  31. package/dist/hooks/useMarket/index.d.ts.map +1 -0
  32. package/dist/hooks/useMarket/index.js +2 -0
  33. package/dist/hooks/useMarket/index.js.map +1 -0
  34. package/dist/hooks/useMarket/types.d.ts +24 -0
  35. package/dist/hooks/useMarket/types.d.ts.map +1 -0
  36. package/dist/hooks/useMarket/types.js +2 -0
  37. package/dist/hooks/useMarket/types.js.map +1 -0
  38. package/dist/hooks/useMarket/useMarket.d.ts +3 -0
  39. package/dist/hooks/useMarket/useMarket.d.ts.map +1 -0
  40. package/dist/hooks/useMarket/useMarket.js +44 -0
  41. package/dist/hooks/useMarket/useMarket.js.map +1 -0
  42. package/dist/hooks/useMonaco/index.d.ts +3 -0
  43. package/dist/hooks/useMonaco/index.d.ts.map +1 -0
  44. package/dist/hooks/useMonaco/index.js +2 -0
  45. package/dist/hooks/useMonaco/index.js.map +1 -0
  46. package/dist/hooks/useMonaco/types.d.ts +14 -0
  47. package/dist/hooks/useMonaco/types.d.ts.map +1 -0
  48. package/dist/hooks/useMonaco/types.js +2 -0
  49. package/dist/hooks/useMonaco/types.js.map +1 -0
  50. package/dist/hooks/useMonaco/useMonaco.d.ts +3 -0
  51. package/dist/hooks/useMonaco/useMonaco.d.ts.map +1 -0
  52. package/dist/hooks/useMonaco/useMonaco.js +14 -0
  53. package/dist/hooks/useMonaco/useMonaco.js.map +1 -0
  54. package/dist/hooks/useOrderbook/index.d.ts +3 -0
  55. package/dist/hooks/useOrderbook/index.d.ts.map +1 -0
  56. package/dist/hooks/useOrderbook/index.js +2 -0
  57. package/dist/hooks/useOrderbook/index.js.map +1 -0
  58. package/dist/hooks/useOrderbook/types.d.ts +28 -0
  59. package/dist/hooks/useOrderbook/types.d.ts.map +1 -0
  60. package/dist/hooks/useOrderbook/types.js +2 -0
  61. package/dist/hooks/useOrderbook/types.js.map +1 -0
  62. package/dist/hooks/useOrderbook/useOrderbook.d.ts +4 -0
  63. package/dist/hooks/useOrderbook/useOrderbook.d.ts.map +1 -0
  64. package/dist/hooks/useOrderbook/useOrderbook.js +32 -0
  65. package/dist/hooks/useOrderbook/useOrderbook.js.map +1 -0
  66. package/dist/hooks/useProfile/index.d.ts +3 -0
  67. package/dist/hooks/useProfile/index.d.ts.map +1 -0
  68. package/dist/hooks/useProfile/index.js +2 -0
  69. package/dist/hooks/useProfile/index.js.map +1 -0
  70. package/dist/hooks/useProfile/types.d.ts +14 -0
  71. package/dist/hooks/useProfile/types.d.ts.map +1 -0
  72. package/dist/hooks/useProfile/types.js +2 -0
  73. package/dist/hooks/useProfile/types.js.map +1 -0
  74. package/dist/hooks/useProfile/useProfile.d.ts +3 -0
  75. package/dist/hooks/useProfile/useProfile.d.ts.map +1 -0
  76. package/dist/hooks/useProfile/useProfile.js +46 -0
  77. package/dist/hooks/useProfile/useProfile.js.map +1 -0
  78. package/dist/hooks/useTokenLifecycle/index.d.ts +3 -0
  79. package/dist/hooks/useTokenLifecycle/index.d.ts.map +1 -0
  80. package/dist/hooks/useTokenLifecycle/index.js +2 -0
  81. package/dist/hooks/useTokenLifecycle/index.js.map +1 -0
  82. package/dist/hooks/useTokenLifecycle/types.d.ts +24 -0
  83. package/dist/hooks/useTokenLifecycle/types.d.ts.map +1 -0
  84. package/dist/hooks/useTokenLifecycle/types.js +2 -0
  85. package/dist/hooks/useTokenLifecycle/types.js.map +1 -0
  86. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.d.ts +21 -0
  87. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.d.ts.map +1 -0
  88. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.js +126 -0
  89. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.js.map +1 -0
  90. package/dist/hooks/useTokenLifecycle/utils.d.ts +8 -0
  91. package/dist/hooks/useTokenLifecycle/utils.d.ts.map +1 -0
  92. package/dist/hooks/useTokenLifecycle/utils.js +16 -0
  93. package/dist/hooks/useTokenLifecycle/utils.js.map +1 -0
  94. package/dist/hooks/useTrade/index.d.ts +3 -0
  95. package/dist/hooks/useTrade/index.d.ts.map +1 -0
  96. package/dist/hooks/useTrade/index.js +2 -0
  97. package/dist/hooks/useTrade/index.js.map +1 -0
  98. package/dist/hooks/useTrade/types.d.ts +29 -0
  99. package/dist/hooks/useTrade/types.d.ts.map +1 -0
  100. package/dist/hooks/useTrade/types.js +2 -0
  101. package/dist/hooks/useTrade/types.js.map +1 -0
  102. package/dist/hooks/useTrade/useTrade.d.ts +3 -0
  103. package/dist/hooks/useTrade/useTrade.d.ts.map +1 -0
  104. package/dist/hooks/useTrade/useTrade.js +89 -0
  105. package/dist/hooks/useTrade/useTrade.js.map +1 -0
  106. package/dist/hooks/useTradeFeed/index.d.ts +3 -0
  107. package/dist/hooks/useTradeFeed/index.d.ts.map +1 -0
  108. package/dist/hooks/useTradeFeed/index.js +3 -0
  109. package/dist/hooks/useTradeFeed/index.js.map +1 -0
  110. package/dist/hooks/useTradeFeed/types.d.ts +15 -0
  111. package/dist/hooks/useTradeFeed/types.d.ts.map +1 -0
  112. package/dist/hooks/useTradeFeed/types.js +2 -0
  113. package/dist/hooks/useTradeFeed/types.js.map +1 -0
  114. package/dist/hooks/useTradeFeed/useTradeFeed.d.ts +9 -0
  115. package/dist/hooks/useTradeFeed/useTradeFeed.d.ts.map +1 -0
  116. package/dist/hooks/useTradeFeed/useTradeFeed.js +47 -0
  117. package/dist/hooks/useTradeFeed/useTradeFeed.js.map +1 -0
  118. package/dist/hooks/useUserMovements/index.d.ts +3 -0
  119. package/dist/hooks/useUserMovements/index.d.ts.map +1 -0
  120. package/dist/hooks/useUserMovements/index.js +3 -0
  121. package/dist/hooks/useUserMovements/index.js.map +1 -0
  122. package/dist/hooks/useUserMovements/types.d.ts +17 -0
  123. package/dist/hooks/useUserMovements/types.d.ts.map +1 -0
  124. package/dist/hooks/useUserMovements/types.js +2 -0
  125. package/dist/hooks/useUserMovements/types.js.map +1 -0
  126. package/dist/hooks/useUserMovements/useUserMovements.d.ts +12 -0
  127. package/dist/hooks/useUserMovements/useUserMovements.d.ts.map +1 -0
  128. package/dist/hooks/useUserMovements/useUserMovements.js +92 -0
  129. package/dist/hooks/useUserMovements/useUserMovements.js.map +1 -0
  130. package/dist/hooks/useVault/index.d.ts +3 -0
  131. package/dist/hooks/useVault/index.d.ts.map +1 -0
  132. package/dist/hooks/useVault/index.js +2 -0
  133. package/dist/hooks/useVault/index.js.map +1 -0
  134. package/dist/hooks/useVault/types.d.ts +16 -0
  135. package/dist/hooks/useVault/types.d.ts.map +1 -0
  136. package/dist/hooks/useVault/types.js +2 -0
  137. package/dist/hooks/useVault/types.js.map +1 -0
  138. package/dist/hooks/useVault/useVault.d.ts +3 -0
  139. package/dist/hooks/useVault/useVault.d.ts.map +1 -0
  140. package/dist/hooks/useVault/useVault.js +66 -0
  141. package/dist/hooks/useVault/useVault.js.map +1 -0
  142. package/dist/index.d.ts +4 -0
  143. package/dist/index.d.ts.map +1 -0
  144. package/dist/index.js +4 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/provider/MonacoProvider.d.ts +4 -0
  147. package/dist/provider/MonacoProvider.d.ts.map +1 -0
  148. package/dist/provider/MonacoProvider.js +103 -0
  149. package/dist/provider/MonacoProvider.js.map +1 -0
  150. package/dist/provider/index.d.ts +3 -0
  151. package/dist/provider/index.d.ts.map +1 -0
  152. package/dist/provider/index.js +3 -0
  153. package/dist/provider/index.js.map +1 -0
  154. package/dist/provider/types.d.ts +46 -0
  155. package/dist/provider/types.d.ts.map +1 -0
  156. package/dist/provider/types.js +10 -0
  157. package/dist/provider/types.js.map +1 -0
  158. package/dist/utils/index.d.ts +2 -0
  159. package/dist/utils/index.d.ts.map +1 -0
  160. package/dist/utils/index.js +2 -0
  161. package/dist/utils/index.js.map +1 -0
  162. package/dist/utils/tokenStorage.d.ts +39 -0
  163. package/dist/utils/tokenStorage.d.ts.map +1 -0
  164. package/dist/utils/tokenStorage.js +103 -0
  165. package/dist/utils/tokenStorage.js.map +1 -0
  166. package/package.json +39 -0
package/README.md ADDED
@@ -0,0 +1,381 @@
1
+ # Monaco React SDK
2
+
3
+ React hooks and components for the Monaco Protocol. Build trading applications with React using type-safe hooks for authentication, trading, market data, and WebSocket connections.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # Install the React SDK and its dependencies
9
+ npm install @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
10
+
11
+ # Or with pnpm
12
+ pnpm add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
13
+
14
+ # Or with yarn
15
+ yarn add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
16
+ ```
17
+
18
+ ## Features
19
+
20
+ - 🎣 **React Hooks**: Type-safe hooks for all Monaco Protocol operations
21
+ - 🔐 **Authentication**: `useAuth` hook for wallet-based login and session management
22
+ - 📈 **Trading**: `useTrade` hook for placing and managing orders
23
+ - 📊 **Market Data**: `useMarket` hook for trading pairs and candlestick data
24
+ - 👤 **Profile**: `useProfile` hook for user account information
25
+ - 🔄 **WebSocket**: Real-time hooks for orders, OHLCV, and orderbook updates
26
+ - 💼 **Vault**: `useVault` hook for token deposits and withdrawals
27
+
28
+ ## Quick Start
29
+
30
+ ### 1. Setup the Monaco Provider
31
+
32
+ Wrap your application with the `MonacoProvider`:
33
+
34
+ ```tsx
35
+ import { MonacoProvider } from "@0xmonaco/react";
36
+ import { WagmiProvider, createConfig, http } from "wagmi";
37
+ import { seiTestnet } from "wagmi/chains";
38
+
39
+ const wagmiConfig = createConfig({
40
+ chains: [seiTestnet],
41
+ transports: {
42
+ [seiTestnet.id]: http("https://evm-rpc-testnet.sei-apis.com"),
43
+ },
44
+ });
45
+
46
+ function App() {
47
+ return (
48
+ <WagmiProvider config={wagmiConfig}>
49
+ <MonacoProvider
50
+ network="testnet"
51
+ seiRpcUrl="https://evm-rpc-testnet.sei-apis.com"
52
+ >
53
+ <YourApp />
54
+ </MonacoProvider>
55
+ </WagmiProvider>
56
+ );
57
+ }
58
+ ```
59
+
60
+ ### 2. Use Monaco Hooks
61
+
62
+ ```tsx
63
+ import { useMonaco, useAuth, useTrade, useMarket } from "@0xmonaco/react";
64
+
65
+ function TradingComponent() {
66
+ const sdk = useMonaco();
67
+ const { login, logout, isAuthenticated } = useAuth();
68
+ const { placeLimitOrder, placeMarketOrder } = useTrade();
69
+ const { tradingPairs, getTradingPairBySymbol } = useMarket();
70
+
71
+ // Login
72
+ const handleLogin = async () => {
73
+ await login("your-client-id", { connectWebSocket: true });
74
+ };
75
+
76
+ // Place an order
77
+ const handlePlaceOrder = async () => {
78
+ const order = await placeLimitOrder(
79
+ "BTC/USDC",
80
+ "BUY",
81
+ "0.001",
82
+ "50000"
83
+ );
84
+ console.log("Order placed:", order.order_id);
85
+ };
86
+
87
+ return (
88
+ <div>
89
+ <button onClick={handleLogin}>
90
+ {isAuthenticated ? "Logout" : "Login"}
91
+ </button>
92
+ <button onClick={handlePlaceOrder}>Place Order</button>
93
+ </div>
94
+ );
95
+ }
96
+ ```
97
+
98
+ ## Available Hooks
99
+
100
+ ### Core Hooks
101
+
102
+ #### `useMonaco()`
103
+ Access the Monaco SDK instance directly.
104
+
105
+ ```tsx
106
+ const sdk = useMonaco();
107
+ const address = sdk.getAccountAddress();
108
+ ```
109
+
110
+ #### `useAuth()`
111
+ Authentication and session management.
112
+
113
+ ```tsx
114
+ const { login, logout, isAuthenticated, authState } = useAuth();
115
+
116
+ // Login with auto-connect WebSocket
117
+ await login(clientId, { connectWebSocket: true });
118
+
119
+ // Check authentication status
120
+ if (isAuthenticated) {
121
+ console.log("User:", authState?.user);
122
+ }
123
+
124
+ // Logout
125
+ await logout();
126
+ ```
127
+
128
+ ### Trading Hooks
129
+
130
+ #### `useTrade()`
131
+ Place and manage orders.
132
+
133
+ ```tsx
134
+ const {
135
+ placeLimitOrder,
136
+ placeMarketOrder,
137
+ cancelOrder,
138
+ replaceOrder,
139
+ getOrder,
140
+ getPaginatedOrders,
141
+ } = useTrade();
142
+
143
+ // Place a limit order
144
+ const order = await placeLimitOrder(
145
+ "BTC/USDC",
146
+ "BUY",
147
+ "0.001",
148
+ "50000",
149
+ { timeInForce: "GTC" }
150
+ );
151
+
152
+ // Place a market order
153
+ const marketOrder = await placeMarketOrder(
154
+ "BTC/USDC",
155
+ "SELL",
156
+ "0.001",
157
+ { slippageTolerance: 0.01 } // 1%
158
+ );
159
+
160
+ // Cancel an order
161
+ await cancelOrder(orderId);
162
+
163
+ // Get orders
164
+ const { data: orders } = await getPaginatedOrders({
165
+ status: "PENDING",
166
+ trading_pair: "BTC/USDC",
167
+ });
168
+ ```
169
+
170
+ ### Market Data Hooks
171
+
172
+ #### `useMarket()`
173
+ Access trading pair metadata and market data.
174
+
175
+ ```tsx
176
+ const { tradingPairs, getTradingPairBySymbol, getCandlestickData } = useMarket();
177
+
178
+ // Get all trading pairs
179
+ const pairs = await tradingPairs();
180
+
181
+ // Get specific pair
182
+ const btcPair = await getTradingPairBySymbol("BTC/USDC");
183
+
184
+ // Get candlestick data
185
+ const candles = await getCandlestickData(
186
+ "BTC/USDC",
187
+ "1h",
188
+ Date.now() - 86400000, // 24h ago
189
+ Date.now()
190
+ );
191
+ ```
192
+
193
+ #### `useTradeFeed()`
194
+ Get recent trades for a trading pair.
195
+
196
+ ```tsx
197
+ const { getTradeFeed } = useTradeFeed();
198
+
199
+ const trades = await getTradeFeed("BTC/USDC", { limit: 50 });
200
+ ```
201
+
202
+ ### Vault Hooks
203
+
204
+ #### `useVault()`
205
+ Manage token deposits and withdrawals using asset IDs.
206
+
207
+ ```tsx
208
+ const { deposit, withdraw, approve, getBalance, needsApproval } = useVault();
209
+
210
+ // Get asset ID from trading pair
211
+ const pair = await getTradingPairBySymbol("USDC/USDT");
212
+ const assetId = pair.base_asset_id;
213
+
214
+ // Check balance
215
+ const balance = await getBalance(assetId);
216
+ console.log(`Balance: ${balance.formatted} ${balance.symbol}`);
217
+
218
+ // Check if approval is needed
219
+ if (await needsApproval(assetId, amount)) {
220
+ await approve(assetId, amount);
221
+ }
222
+
223
+ // Deposit tokens
224
+ await deposit(assetId, amount);
225
+
226
+ // Withdraw tokens
227
+ await withdraw(assetId, amount);
228
+ ```
229
+
230
+ ### Profile Hooks
231
+
232
+ #### `useProfile()`
233
+ Access user profile and account information.
234
+
235
+ ```tsx
236
+ const { getProfile, getUserBalances, getUserMovements } = useProfile();
237
+
238
+ // Get profile
239
+ const profile = await getProfile();
240
+
241
+ // Get balances
242
+ const balances = await getUserBalances({
243
+ page: 1,
244
+ page_size: 10,
245
+ });
246
+
247
+ // Get movements (transaction history)
248
+ const movements = await getUserMovements({
249
+ page: 1,
250
+ page_size: 20,
251
+ });
252
+ ```
253
+
254
+ ### WebSocket Hooks
255
+
256
+ #### `useOrderWebSocket()`
257
+ Subscribe to real-time order updates.
258
+
259
+ ```tsx
260
+ const { subscribe, unsubscribe, connect, disconnect } = useOrderWebSocket();
261
+
262
+ useEffect(() => {
263
+ // Connect and subscribe
264
+ await connect();
265
+
266
+ subscribe("BTC/USDC", "SPOT", (event) => {
267
+ console.log("Order event:", event.eventType);
268
+ if (event.eventType === "ORDER_FILLED") {
269
+ console.log("Order filled:", event.order);
270
+ }
271
+ });
272
+
273
+ return () => {
274
+ unsubscribe("BTC/USDC", "SPOT");
275
+ disconnect();
276
+ };
277
+ }, []);
278
+ ```
279
+
280
+ #### `useOHLCVWebSocket()`
281
+ Subscribe to real-time candlestick data.
282
+
283
+ ```tsx
284
+ const { subscribe, unsubscribe, connect, disconnect } = useOHLCVWebSocket();
285
+
286
+ useEffect(() => {
287
+ await connect();
288
+
289
+ subscribe("BTC/USDC", "SPOT", "1m", (event) => {
290
+ console.log("New candle:", event.candlestick);
291
+ });
292
+
293
+ return () => {
294
+ unsubscribe("BTC/USDC", "SPOT", "1m");
295
+ disconnect();
296
+ };
297
+ }, []);
298
+ ```
299
+
300
+ #### `useOrderbook()`
301
+ Subscribe to real-time orderbook updates.
302
+
303
+ ```tsx
304
+ const { subscribe, unsubscribe, connect, disconnect } = useOrderbook();
305
+
306
+ useEffect(() => {
307
+ await connect();
308
+
309
+ subscribe("BTC/USDC", "SPOT", (event) => {
310
+ console.log("Orderbook:", {
311
+ bids: event.bids.length,
312
+ asks: event.asks.length,
313
+ });
314
+ });
315
+
316
+ return () => {
317
+ unsubscribe("BTC/USDC", "SPOT");
318
+ disconnect();
319
+ };
320
+ }, []);
321
+ ```
322
+
323
+ ## TypeScript Configuration
324
+
325
+ For optimal type inference, use these TypeScript settings:
326
+
327
+ ```json
328
+ {
329
+ "compilerOptions": {
330
+ "target": "ES2020",
331
+ "module": "nodenext",
332
+ "moduleResolution": "nodenext",
333
+ "jsx": "react-jsx",
334
+ "strict": true,
335
+ "esModuleInterop": true,
336
+ "resolveJsonModule": true
337
+ }
338
+ }
339
+ ```
340
+
341
+ ## Examples
342
+
343
+ Check out the [`examples/react-vite-app`](../../examples/react-vite-app) directory for a complete React application using the Monaco SDK.
344
+
345
+ ## Development
346
+
347
+ ### Build
348
+
349
+ ```bash
350
+ pnpm build
351
+ ```
352
+
353
+ ### Watch Mode
354
+
355
+ ```bash
356
+ pnpm dev
357
+ ```
358
+
359
+ ### Lint
360
+
361
+ ```bash
362
+ pnpm lint
363
+ ```
364
+
365
+ ## Contributing
366
+
367
+ We welcome contributions! Please see our [Contributing Guide](../../docs/contributing.mdx) for details.
368
+
369
+ ## License
370
+
371
+ This project is licensed under the MIT License - see the [LICENSE](../../LICENSE) file for details.
372
+
373
+ ## Support
374
+
375
+ For support, please:
376
+
377
+ - Open an issue on GitHub
378
+ - Join our [Discord community](https://discord.gg/monaco)
379
+ - Visit our [documentation site](https://docs.monaco.xyz)
380
+ - Check our [API documentation](../../docs/api-reference.mdx)
381
+
@@ -0,0 +1,12 @@
1
+ export * from "./useAuth";
2
+ export * from "./useFees";
3
+ export * from "./useMarket";
4
+ export * from "./useMonaco";
5
+ export * from "./useOrderbook";
6
+ export * from "./useProfile";
7
+ export * from "./useTokenLifecycle";
8
+ export * from "./useTrade";
9
+ export * from "./useTradeFeed";
10
+ export * from "./useUserMovements";
11
+ export * from "./useVault";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ export * from "./useAuth";
2
+ export * from "./useFees";
3
+ export * from "./useMarket";
4
+ export * from "./useMonaco";
5
+ export * from "./useOrderbook";
6
+ export * from "./useProfile";
7
+ export * from "./useTokenLifecycle";
8
+ export * from "./useTrade";
9
+ export * from "./useTradeFeed";
10
+ export * from "./useUserMovements";
11
+ export * from "./useVault";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type * from "./types";
2
+ export { useAuth } from "./useAuth";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useAuth } from "./useAuth";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { AuthState, ChallengeResponse, TokenRefreshResponse } from "@0xmonaco/types";
2
+ import type { AuthenticationStatus } from "../../provider";
3
+ export interface UseAuthState {
4
+ /** Current authentication status */
5
+ authenticationStatus: AuthenticationStatus;
6
+ }
7
+ export interface UseAuthReturn extends UseAuthState {
8
+ /**
9
+ * Complete authentication flow. Returns AuthState with accessToken and refreshToken.
10
+ * @param options - Optional configuration
11
+ * @param options.connectWebSocket - Auto-connect all authenticated WebSocket channels after login (currently Orders) (default: false)
12
+ */
13
+ login: (options?: {
14
+ connectWebSocket?: boolean;
15
+ }) => Promise<AuthState>;
16
+ /** Logout user and clear state. Revokes the refresh token on the server. */
17
+ logout: () => Promise<void>;
18
+ /** Refresh authentication tokens using the stored refresh token. */
19
+ refreshAuth: () => Promise<AuthState>;
20
+ /** Sign a challenge message with the connected wallet. */
21
+ signChallenge: (message: string) => Promise<string>;
22
+ /** Create authentication challenge for the given address. */
23
+ createChallenge: (address: string) => Promise<ChallengeResponse>;
24
+ /** Complete authentication with signature. Returns tokens. */
25
+ authenticate: () => Promise<AuthState>;
26
+ /** Refresh access token. Pass the refreshToken from authState. */
27
+ refreshToken: (refreshToken: string) => Promise<TokenRefreshResponse>;
28
+ /** Revoke refresh token. Pass authState.refreshToken from authState.login() response. */
29
+ revokeToken: (refreshToken: string) => Promise<void>;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;;;OAIG;IACH,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxE,4EAA4E;IAC5E,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,oEAAoE;IACpE,WAAW,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,0DAA0D;IAC1D,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,6DAA6D;IAC7D,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,8DAA8D;IAC9D,YAAY,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,kEAAkE;IAClE,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtE,yFAAyF;IACzF,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { UseAuthReturn } from "./types";
2
+ export declare const useAuth: () => UseAuthReturn;
3
+ //# sourceMappingURL=useAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aAyK1B,CAAC"}
@@ -0,0 +1,150 @@
1
+ import { useCallback } from "react";
2
+ import { useWalletClient } from "wagmi";
3
+ import { AuthenticationStatus, useMonacoContext } from "../../provider";
4
+ import { useMonacoSDK } from "../useMonaco";
5
+ export const useAuth = () => {
6
+ const { sdk, clientId } = useMonacoSDK();
7
+ const { authenticationStatus, setAuthenticationStatus, tokenLifecycle } = useMonacoContext();
8
+ const { data: walletClient } = useWalletClient();
9
+ const login = useCallback(async () => {
10
+ if (!sdk)
11
+ throw new Error("SDK not available");
12
+ if (!walletClient)
13
+ throw new Error("Wallet not connected");
14
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
15
+ try {
16
+ const authState = await sdk.login(clientId);
17
+ // Initialize token lifecycle management (caching + auto-refresh)
18
+ tokenLifecycle.initializeTokens(authState);
19
+ const authenticated = sdk.isAuthenticated();
20
+ setAuthenticationStatus(authenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
21
+ return authState;
22
+ }
23
+ catch (error) {
24
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
25
+ throw error;
26
+ }
27
+ }, [sdk, walletClient, clientId, setAuthenticationStatus, tokenLifecycle]);
28
+ const logout = useCallback(async () => {
29
+ if (!sdk)
30
+ throw new Error("SDK not available");
31
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
32
+ try {
33
+ await sdk.logout();
34
+ // Clear cached tokens and stop auto-refresh
35
+ tokenLifecycle.clearTokens();
36
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
37
+ }
38
+ catch (error) {
39
+ // Clear tokens even if logout fails
40
+ tokenLifecycle.clearTokens();
41
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
42
+ throw error;
43
+ }
44
+ }, [sdk, setAuthenticationStatus, tokenLifecycle]);
45
+ const refreshAuth = useCallback(async () => {
46
+ if (!sdk)
47
+ throw new Error("SDK not available");
48
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
49
+ try {
50
+ const result = await sdk.refreshAuth();
51
+ // Reinitialize the token lifecycle with new tokens
52
+ tokenLifecycle.initializeTokens(result);
53
+ const authenticated = sdk.isAuthenticated();
54
+ setAuthenticationStatus(authenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
55
+ return result;
56
+ }
57
+ catch (error) {
58
+ tokenLifecycle.clearTokens();
59
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
60
+ throw error;
61
+ }
62
+ }, [sdk, setAuthenticationStatus, tokenLifecycle]);
63
+ const signChallenge = useCallback(async (message) => {
64
+ if (!sdk)
65
+ throw new Error("SDK not available");
66
+ if (!message?.trim())
67
+ throw new Error("Message is required and cannot be empty");
68
+ return await sdk.auth.signChallenge(message);
69
+ }, [sdk]);
70
+ const createChallenge = useCallback(async (address) => {
71
+ if (!sdk)
72
+ throw new Error("SDK not available");
73
+ if (!address?.trim())
74
+ throw new Error("Address is required and cannot be empty");
75
+ if (!clientId?.trim())
76
+ throw new Error("Client ID is required and cannot be empty");
77
+ return await sdk.auth.createChallenge(address, clientId);
78
+ }, [sdk, clientId]);
79
+ const authenticate = useCallback(async () => {
80
+ if (!sdk)
81
+ throw new Error("SDK not available");
82
+ if (!clientId?.trim())
83
+ throw new Error("Client ID is required and cannot be empty");
84
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
85
+ try {
86
+ const result = await sdk.auth.authenticate(clientId);
87
+ const authenticated = sdk.isAuthenticated();
88
+ setAuthenticationStatus(authenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
89
+ return {
90
+ accessToken: result.accessToken,
91
+ refreshToken: result.refreshToken,
92
+ expiresAt: result.expiresAt,
93
+ user: result.user,
94
+ };
95
+ }
96
+ catch (error) {
97
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
98
+ throw error;
99
+ }
100
+ }, [sdk, clientId, setAuthenticationStatus]);
101
+ const refreshToken = useCallback(async (token) => {
102
+ if (!sdk)
103
+ throw new Error("SDK not available");
104
+ if (!token?.trim())
105
+ throw new Error("Refresh token is required and cannot be empty");
106
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
107
+ try {
108
+ const result = await sdk.auth.refreshToken(token);
109
+ const authenticated = sdk.isAuthenticated();
110
+ setAuthenticationStatus(authenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
111
+ return result;
112
+ }
113
+ catch (error) {
114
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
115
+ throw error;
116
+ }
117
+ }, [sdk, setAuthenticationStatus]);
118
+ const revokeToken = useCallback(async (token) => {
119
+ if (!sdk)
120
+ throw new Error("SDK not available");
121
+ if (!token?.trim())
122
+ throw new Error("Refresh token is required and cannot be empty");
123
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
124
+ try {
125
+ await sdk.auth.revokeToken(token);
126
+ const authenticated = sdk.isAuthenticated();
127
+ setAuthenticationStatus(authenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
128
+ }
129
+ catch (error) {
130
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
131
+ throw error;
132
+ }
133
+ }, [sdk, setAuthenticationStatus]);
134
+ return {
135
+ // State
136
+ authenticationStatus,
137
+ // Primary auth actions
138
+ login,
139
+ logout,
140
+ // Token management
141
+ refreshAuth,
142
+ refreshToken,
143
+ revokeToken,
144
+ // Low-level auth functions
145
+ authenticate,
146
+ signChallenge,
147
+ createChallenge,
148
+ };
149
+ };
150
+ //# sourceMappingURL=useAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAkB,EAAE;IACzC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,MAAM,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,cAAc,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC7F,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAEjD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACnC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3D,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAE5C,iEAAiE;YACjE,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAE3C,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC5C,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACnH,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;YAEnB,4CAA4C;YAC5C,cAAc,CAAC,WAAW,EAAE,CAAC;YAE7B,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oCAAoC;YACpC,cAAc,CAAC,WAAW,EAAE,CAAC;YAC7B,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YAEvC,mDAAmD;YACnD,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAExC,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC5C,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACnH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,WAAW,EAAE,CAAC;YAC7B,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnD,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EAAE,OAAe,EAAE,EAAE;QACxB,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEjF,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,OAAe,EAAE,EAAE;QACxB,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAEpF,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,EACD,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChB,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAEpF,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC5C,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAEnH,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,KAAa,EAAE,EAAE;QACtB,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAErF,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC5C,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACnH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EACD,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAC/B,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EAAE,KAAa,EAAE,EAAE;QACtB,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAErF,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC5C,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QACrH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EACD,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAC/B,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,oBAAoB;QAEpB,uBAAuB;QACvB,KAAK;QACL,MAAM;QAEN,mBAAmB;QACnB,WAAW;QACX,YAAY;QACZ,WAAW;QAEX,2BAA2B;QAC3B,YAAY;QACZ,aAAa;QACb,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { UseFeesReturn } from "./types";
2
+ export { useFees } from "./useFees";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFees/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useFees } from "./useFees";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useFees/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SimulateFeeParams, SimulateFeeResponse } from "@0xmonaco/types";
2
+ export interface UseFeesReturn {
3
+ /** Simulate fees for an order before placing it */
4
+ simulateFees: (params: SimulateFeeParams) => Promise<SimulateFeeResponse>;
5
+ }
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFees/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC3E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useFees/types.ts"],"names":[],"mappings":""}