@0xmonaco/react 0.5.4 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -18
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useAuth/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth/useAuth.js +3 -5
- package/dist/hooks/useAuth/useAuth.js.map +1 -1
- package/dist/hooks/useOHLCV/index.d.ts +3 -0
- package/dist/hooks/useOHLCV/index.d.ts.map +1 -0
- package/dist/hooks/useOHLCV/index.js +3 -0
- package/dist/hooks/useOHLCV/index.js.map +1 -0
- package/dist/hooks/useOHLCV/types.d.ts +30 -0
- package/dist/hooks/useOHLCV/types.d.ts.map +1 -0
- package/dist/hooks/useOHLCV/types.js +2 -0
- package/dist/hooks/useOHLCV/types.js.map +1 -0
- package/dist/hooks/useOHLCV/useOHLCV.d.ts +12 -0
- package/dist/hooks/useOHLCV/useOHLCV.d.ts.map +1 -0
- package/dist/hooks/useOHLCV/useOHLCV.js +77 -0
- package/dist/hooks/useOHLCV/useOHLCV.js.map +1 -0
- package/dist/hooks/useTrade/types.d.ts +6 -1
- package/dist/hooks/useTrade/types.d.ts.map +1 -1
- package/dist/hooks/useTrade/useTrade.d.ts.map +1 -1
- package/dist/hooks/useTrade/useTrade.js +9 -0
- package/dist/hooks/useTrade/useTrade.js.map +1 -1
- package/dist/hooks/useUserMovements/useUserMovements.d.ts.map +1 -1
- package/dist/hooks/useUserMovements/useUserMovements.js +43 -24
- package/dist/hooks/useUserMovements/useUserMovements.js.map +1 -1
- package/dist/hooks/useUserOrders/index.d.ts +3 -0
- package/dist/hooks/useUserOrders/index.d.ts.map +1 -0
- package/dist/hooks/useUserOrders/index.js +3 -0
- package/dist/hooks/useUserOrders/index.js.map +1 -0
- package/dist/hooks/useUserOrders/types.d.ts +19 -0
- package/dist/hooks/useUserOrders/types.d.ts.map +1 -0
- package/dist/hooks/useUserOrders/types.js +2 -0
- package/dist/hooks/useUserOrders/types.js.map +1 -0
- package/dist/hooks/useUserOrders/useUserOrders.d.ts +12 -0
- package/dist/hooks/useUserOrders/useUserOrders.d.ts.map +1 -0
- package/dist/hooks/useUserOrders/useUserOrders.js +192 -0
- package/dist/hooks/useUserOrders/useUserOrders.js.map +1 -0
- package/dist/hooks/useVault/types.d.ts +1 -3
- package/dist/hooks/useVault/types.d.ts.map +1 -1
- package/dist/hooks/useVault/useVault.d.ts.map +1 -1
- package/dist/hooks/useVault/useVault.js +1 -9
- package/dist/hooks/useVault/useVault.js.map +1 -1
- package/dist/provider/MonacoProvider.d.ts +1 -1
- package/dist/provider/MonacoProvider.d.ts.map +1 -1
- package/dist/provider/MonacoProvider.js +60 -19
- package/dist/provider/MonacoProvider.js.map +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +1 -1
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/types.d.ts +8 -0
- package/dist/provider/types.d.ts.map +1 -1
- package/dist/provider/types.js.map +1 -1
- package/package.json +40 -38
package/README.md
CHANGED
|
@@ -8,8 +8,8 @@ React hooks and components for the Monaco Protocol. Build trading applications w
|
|
|
8
8
|
# Install the React SDK and its dependencies
|
|
9
9
|
npm install @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
|
|
10
10
|
|
|
11
|
-
# Or with
|
|
12
|
-
|
|
11
|
+
# Or with bun
|
|
12
|
+
bun add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
|
|
13
13
|
|
|
14
14
|
# Or with yarn
|
|
15
15
|
yarn add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
|
|
@@ -162,7 +162,7 @@ await cancelOrder(orderId);
|
|
|
162
162
|
|
|
163
163
|
// Get orders
|
|
164
164
|
const { data: orders } = await getPaginatedOrders({
|
|
165
|
-
status: "
|
|
165
|
+
status: "SUBMITTED",
|
|
166
166
|
trading_pair: "BTC/USDC",
|
|
167
167
|
});
|
|
168
168
|
```
|
|
@@ -205,15 +205,16 @@ const trades = await getTradeFeed("BTC/USDC", { limit: 50 });
|
|
|
205
205
|
Manage token deposits and withdrawals using asset IDs.
|
|
206
206
|
|
|
207
207
|
```tsx
|
|
208
|
-
const { deposit, withdraw, approve,
|
|
208
|
+
const { deposit, withdraw, approve, needsApproval } = useVault();
|
|
209
|
+
const { getUserBalanceByAssetId } = useProfile();
|
|
209
210
|
|
|
210
211
|
// Get asset ID from trading pair
|
|
211
212
|
const pair = await getTradingPairBySymbol("USDC/USDT");
|
|
212
213
|
const assetId = pair.base_asset_id;
|
|
213
214
|
|
|
214
215
|
// Check balance
|
|
215
|
-
const balance = await
|
|
216
|
-
console.log(`Balance: ${balance.
|
|
216
|
+
const balance = await getUserBalanceByAssetId(assetId);
|
|
217
|
+
console.log(`Balance: ${balance.total_balance} ${balance.symbol}`);
|
|
217
218
|
|
|
218
219
|
// Check if approval is needed
|
|
219
220
|
if (await needsApproval(assetId, amount)) {
|
|
@@ -338,37 +339,30 @@ For optimal type inference, use these TypeScript settings:
|
|
|
338
339
|
}
|
|
339
340
|
```
|
|
340
341
|
|
|
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
342
|
## Development
|
|
346
343
|
|
|
347
344
|
### Build
|
|
348
345
|
|
|
349
346
|
```bash
|
|
350
|
-
|
|
347
|
+
bun run build
|
|
351
348
|
```
|
|
352
349
|
|
|
353
350
|
### Watch Mode
|
|
354
351
|
|
|
355
352
|
```bash
|
|
356
|
-
|
|
353
|
+
bun run dev
|
|
357
354
|
```
|
|
358
355
|
|
|
359
356
|
### Lint
|
|
360
357
|
|
|
361
358
|
```bash
|
|
362
|
-
|
|
359
|
+
bun run lint
|
|
363
360
|
```
|
|
364
361
|
|
|
365
|
-
## Contributing
|
|
366
|
-
|
|
367
|
-
We welcome contributions! Please see our [Contributing Guide](../../docs/contributing.mdx) for details.
|
|
368
362
|
|
|
369
363
|
## License
|
|
370
364
|
|
|
371
|
-
This project is licensed under the MIT License
|
|
365
|
+
This project is licensed under the MIT License.
|
|
372
366
|
|
|
373
367
|
## Support
|
|
374
368
|
|
|
@@ -377,5 +371,5 @@ For support, please:
|
|
|
377
371
|
- Open an issue on GitHub
|
|
378
372
|
- Join our [Discord community](https://discord.gg/monaco)
|
|
379
373
|
- Visit our [documentation site](https://docs.monaco.xyz)
|
|
380
|
-
- Check our [API documentation](
|
|
374
|
+
- Check our [API documentation](https://docs.0xmonaco.com)
|
|
381
375
|
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -2,11 +2,13 @@ export * from "./useAuth";
|
|
|
2
2
|
export * from "./useFees";
|
|
3
3
|
export * from "./useMarket";
|
|
4
4
|
export * from "./useMonaco";
|
|
5
|
+
export * from "./useOHLCV";
|
|
5
6
|
export * from "./useOrderbook";
|
|
6
7
|
export * from "./useProfile";
|
|
7
8
|
export * from "./useTokenLifecycle";
|
|
8
9
|
export * from "./useTrade";
|
|
9
10
|
export * from "./useTradeFeed";
|
|
10
11
|
export * from "./useUserMovements";
|
|
12
|
+
export * from "./useUserOrders";
|
|
11
13
|
export * from "./useVault";
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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"}
|
|
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,YAAY,CAAC;AAC3B,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,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -2,11 +2,13 @@ export * from "./useAuth";
|
|
|
2
2
|
export * from "./useFees";
|
|
3
3
|
export * from "./useMarket";
|
|
4
4
|
export * from "./useMonaco";
|
|
5
|
+
export * from "./useOHLCV";
|
|
5
6
|
export * from "./useOrderbook";
|
|
6
7
|
export * from "./useProfile";
|
|
7
8
|
export * from "./useTokenLifecycle";
|
|
8
9
|
export * from "./useTrade";
|
|
9
10
|
export * from "./useTradeFeed";
|
|
10
11
|
export * from "./useUserMovements";
|
|
12
|
+
export * from "./useUserOrders";
|
|
11
13
|
export * from "./useVault";
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +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"}
|
|
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,YAAY,CAAC;AAC3B,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,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aAwK1B,CAAC"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import { useWalletClient } from "wagmi";
|
|
3
2
|
import { AuthenticationStatus, useMonacoContext } from "../../provider";
|
|
4
3
|
import { useMonacoSDK } from "../useMonaco";
|
|
5
4
|
export const useAuth = () => {
|
|
6
5
|
const { sdk, clientId } = useMonacoSDK();
|
|
7
|
-
const { authenticationStatus, setAuthenticationStatus, tokenLifecycle } = useMonacoContext();
|
|
8
|
-
const { data: walletClient } = useWalletClient();
|
|
6
|
+
const { authenticationStatus, setAuthenticationStatus, tokenLifecycle, isWalletConnected } = useMonacoContext();
|
|
9
7
|
const login = useCallback(async () => {
|
|
10
8
|
if (!sdk)
|
|
11
9
|
throw new Error("SDK not available");
|
|
12
|
-
if (!
|
|
10
|
+
if (!isWalletConnected)
|
|
13
11
|
throw new Error("Wallet not connected");
|
|
14
12
|
setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
|
|
15
13
|
try {
|
|
@@ -24,7 +22,7 @@ export const useAuth = () => {
|
|
|
24
22
|
setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
|
|
25
23
|
throw error;
|
|
26
24
|
}
|
|
27
|
-
}, [sdk,
|
|
25
|
+
}, [sdk, isWalletConnected, clientId, setAuthenticationStatus, tokenLifecycle]);
|
|
28
26
|
const logout = useCallback(async () => {
|
|
29
27
|
if (!sdk)
|
|
30
28
|
throw new Error("SDK not available");
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Candlestick, GetCandlesticksParams, Interval, TradingMode } from "@0xmonaco/types";
|
|
2
|
+
/**
|
|
3
|
+
* Parameters for the useOHLCV hook
|
|
4
|
+
*/
|
|
5
|
+
export interface UseOHLCVParams {
|
|
6
|
+
/** Trading pair UUID */
|
|
7
|
+
tradingPairId: string;
|
|
8
|
+
/** Trading mode (e.g., "CLOB") */
|
|
9
|
+
tradingMode: TradingMode;
|
|
10
|
+
/** Candlestick interval (1m, 5m, 15m, 1h, 4h, 1d) */
|
|
11
|
+
interval: Interval;
|
|
12
|
+
/** Optional parameters for initial candlestick fetch */
|
|
13
|
+
initialFetchParams?: GetCandlesticksParams;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Return type for the useOHLCV hook
|
|
17
|
+
*/
|
|
18
|
+
export interface UseOHLCVReturn {
|
|
19
|
+
/** Array of candlesticks (oldest to newest) */
|
|
20
|
+
candlesticks: Candlestick[];
|
|
21
|
+
/** Whether the initial candlesticks are being fetched */
|
|
22
|
+
loading: boolean;
|
|
23
|
+
/** Whether currently subscribed to WebSocket updates */
|
|
24
|
+
subscribed: boolean;
|
|
25
|
+
/** Any error that occurred during connection or subscription */
|
|
26
|
+
error: Error | null;
|
|
27
|
+
/** Clear the current error */
|
|
28
|
+
clearError: () => void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,qDAAqD;IACrD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IAEjB,wDAAwD;IACxD,UAAU,EAAE,OAAO,CAAC;IAEpB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { UseOHLCVParams, UseOHLCVReturn } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Hook for subscribing to real-time OHLCV candlestick events via WebSocket (public)
|
|
4
|
+
*
|
|
5
|
+
* Fetches initial candlesticks from the REST API, then subscribes to real-time updates.
|
|
6
|
+
* When a new candlestick event arrives, it either updates the most recent candlestick
|
|
7
|
+
* (if timestamps match) or appends a new one.
|
|
8
|
+
*
|
|
9
|
+
* @param params - Configuration including tradingPairId, tradingMode, interval, and optional fetch params
|
|
10
|
+
*/
|
|
11
|
+
export declare function useOHLCV(params: UseOHLCVParams): UseOHLCVReturn;
|
|
12
|
+
//# sourceMappingURL=useOHLCV.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOHLCV.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/useOHLCV.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CA2E/D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import { useMonacoSDK } from "../useMonaco";
|
|
3
|
+
/**
|
|
4
|
+
* Hook for subscribing to real-time OHLCV candlestick events via WebSocket (public)
|
|
5
|
+
*
|
|
6
|
+
* Fetches initial candlesticks from the REST API, then subscribes to real-time updates.
|
|
7
|
+
* When a new candlestick event arrives, it either updates the most recent candlestick
|
|
8
|
+
* (if timestamps match) or appends a new one.
|
|
9
|
+
*
|
|
10
|
+
* @param params - Configuration including tradingPairId, tradingMode, interval, and optional fetch params
|
|
11
|
+
*/
|
|
12
|
+
export function useOHLCV(params) {
|
|
13
|
+
const { tradingPairId, tradingMode, interval, initialFetchParams } = params;
|
|
14
|
+
const { sdk } = useMonacoSDK();
|
|
15
|
+
const [candlesticks, setCandlesticks] = useState([]);
|
|
16
|
+
const [loading, setLoading] = useState(false);
|
|
17
|
+
const [error, setError] = useState(null);
|
|
18
|
+
const [subscribed, setSubscribed] = useState(false);
|
|
19
|
+
const clearError = useCallback(() => setError(null), []);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!sdk?.ws || !sdk?.market || !tradingPairId || !tradingMode || !interval) {
|
|
22
|
+
setSubscribed(false);
|
|
23
|
+
setLoading(false);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
setCandlesticks([]);
|
|
27
|
+
setError(null);
|
|
28
|
+
setLoading(true);
|
|
29
|
+
let unsubscribe;
|
|
30
|
+
let cancelled = false;
|
|
31
|
+
sdk.market
|
|
32
|
+
.getCandlesticks(tradingPairId, interval, initialFetchParams)
|
|
33
|
+
.then((initialCandlesticks) => {
|
|
34
|
+
if (cancelled)
|
|
35
|
+
return;
|
|
36
|
+
setCandlesticks(initialCandlesticks);
|
|
37
|
+
try {
|
|
38
|
+
unsubscribe = sdk.ws.ohlcv(tradingPairId, tradingMode, interval, (event) => {
|
|
39
|
+
setCandlesticks((prev) => {
|
|
40
|
+
if (prev.length === 0) {
|
|
41
|
+
return [event.candlestick];
|
|
42
|
+
}
|
|
43
|
+
const lastCandle = prev[prev.length - 1];
|
|
44
|
+
if (lastCandle.T === event.candlestick.T) {
|
|
45
|
+
const updated = [...prev];
|
|
46
|
+
updated[updated.length - 1] = event.candlestick;
|
|
47
|
+
return updated;
|
|
48
|
+
}
|
|
49
|
+
return [...prev, event.candlestick];
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
setSubscribed(true);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
56
|
+
setSubscribed(false);
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
.catch((err) => {
|
|
60
|
+
if (!cancelled) {
|
|
61
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
.finally(() => {
|
|
65
|
+
if (!cancelled) {
|
|
66
|
+
setLoading(false);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return () => {
|
|
70
|
+
cancelled = true;
|
|
71
|
+
unsubscribe?.();
|
|
72
|
+
setSubscribed(false);
|
|
73
|
+
};
|
|
74
|
+
}, [sdk?.ws, sdk?.market, tradingPairId, tradingMode, interval, initialFetchParams]);
|
|
75
|
+
return { candlesticks, loading, subscribed, error, clearError };
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=useOHLCV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOHLCV.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/useOHLCV.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CancelOrderResponse, CreateOrderResponse, GetOrderResponse, GetPaginatedOrdersParams, GetPaginatedOrdersResponse, OrderSide, ReplaceOrderResponse, TimeInForce, TradingMode } from "@0xmonaco/types";
|
|
1
|
+
import type { BatchCancelOrdersResponse, CancelOrderResponse, CreateOrderResponse, GetOrderResponse, GetPaginatedOrdersParams, GetPaginatedOrdersResponse, OrderSide, ReplaceOrderResponse, TimeInForce, TradingMode } from "@0xmonaco/types";
|
|
2
2
|
export interface UseTradeReturn {
|
|
3
3
|
/** Place a limit order */
|
|
4
4
|
placeLimitOrder: (tradingPairId: string, side: OrderSide, quantity: string, price: string, options?: {
|
|
@@ -15,6 +15,11 @@ export interface UseTradeReturn {
|
|
|
15
15
|
}) => Promise<CreateOrderResponse>;
|
|
16
16
|
/** Cancel an existing order */
|
|
17
17
|
cancelOrder: (orderId: string) => Promise<CancelOrderResponse>;
|
|
18
|
+
/** Batch cancel multiple orders */
|
|
19
|
+
batchCancelOrders: (options: {
|
|
20
|
+
orderIds?: string[];
|
|
21
|
+
cancelAll?: boolean;
|
|
22
|
+
}) => Promise<BatchCancelOrdersResponse>;
|
|
18
23
|
/** Replace an existing order */
|
|
19
24
|
replaceOrder: (orderId: string, newOrder: {
|
|
20
25
|
price?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,eAAe,EAAE,CACf,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KACpH,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,2BAA2B;IAC3B,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KAC3F,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,+BAA+B;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE/D,gCAAgC;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9I,2BAA2B;IAC3B,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE/F,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,eAAe,EAAE,CACf,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KACpH,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,2BAA2B;IAC3B,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KAC3F,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,+BAA+B;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE/D,mCAAmC;IACnC,iBAAiB,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEjH,gCAAgC;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9I,2BAA2B;IAC3B,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE/F,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTrade.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTrade.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cA+H3B,CAAC"}
|
|
@@ -39,6 +39,14 @@ export const useTrade = () => {
|
|
|
39
39
|
throw new Error("Order ID is required and cannot be empty");
|
|
40
40
|
return await sdk.trading.cancelOrder(orderId);
|
|
41
41
|
}, [sdk]);
|
|
42
|
+
const batchCancelOrders = useCallback(async (options) => {
|
|
43
|
+
if (!sdk)
|
|
44
|
+
throw new Error("SDK not available");
|
|
45
|
+
if (!options.cancelAll && (!options.orderIds || options.orderIds.length === 0)) {
|
|
46
|
+
throw new Error("Either orderIds must be provided or cancelAll must be true");
|
|
47
|
+
}
|
|
48
|
+
return await sdk.trading.batchCancelOrders(options);
|
|
49
|
+
}, [sdk]);
|
|
42
50
|
const replaceOrder = useCallback(async (orderId, newOrder) => {
|
|
43
51
|
if (!sdk)
|
|
44
52
|
throw new Error("SDK not available");
|
|
@@ -80,6 +88,7 @@ export const useTrade = () => {
|
|
|
80
88
|
placeMarketOrder,
|
|
81
89
|
// Order management
|
|
82
90
|
cancelOrder,
|
|
91
|
+
batchCancelOrders,
|
|
83
92
|
replaceOrder,
|
|
84
93
|
// Order queries
|
|
85
94
|
getPaginatedOrders,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTrade.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTrade.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserMovements.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserMovements/useUserMovements.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useUserMovements.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserMovements/useUserMovements.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAmCtD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,SAAK,GAAG,sBAAsB,CA+E1E"}
|
|
@@ -12,11 +12,18 @@ function ledgerMovementToEvent(movement, userId) {
|
|
|
12
12
|
entryType: movement.entry_type,
|
|
13
13
|
transactionType: movement.transaction_type,
|
|
14
14
|
tokenAddress: movement.token,
|
|
15
|
+
symbol: movement.symbol ?? undefined,
|
|
16
|
+
decimals: movement.decimals,
|
|
15
17
|
amount: movement.amount,
|
|
18
|
+
amountRaw: movement.amount_raw,
|
|
16
19
|
balanceBefore: movement.balance_before ?? undefined,
|
|
20
|
+
balanceBeforeRaw: movement.balance_before_raw ?? undefined,
|
|
17
21
|
balanceAfter: movement.balance_after ?? undefined,
|
|
22
|
+
balanceAfterRaw: movement.balance_after_raw ?? undefined,
|
|
18
23
|
lockedBefore: movement.locked_before ?? undefined,
|
|
24
|
+
lockedBeforeRaw: movement.locked_before_raw ?? undefined,
|
|
19
25
|
lockedAfter: movement.locked_after ?? undefined,
|
|
26
|
+
lockedAfterRaw: movement.locked_after_raw ?? undefined,
|
|
20
27
|
referenceId: movement.reference_id ?? undefined,
|
|
21
28
|
referenceType: movement.reference_type ?? undefined,
|
|
22
29
|
description: movement.description ?? undefined,
|
|
@@ -54,31 +61,43 @@ export function useUserMovements(maxMovements = 50) {
|
|
|
54
61
|
let unsubscribe;
|
|
55
62
|
sdk.profile
|
|
56
63
|
.getProfile()
|
|
57
|
-
.then((profile) => {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
return [event, ...prev].slice(0, limit);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
setSubscribed(true);
|
|
76
|
-
}
|
|
77
|
-
catch (err) {
|
|
78
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
79
|
-
setSubscribed(false);
|
|
64
|
+
.then(async (profile) => {
|
|
65
|
+
const response = await sdk.profile.getPaginatedUserMovements({ limit });
|
|
66
|
+
// Combine latest_movements (from Redis) with movements (from PostgreSQL)
|
|
67
|
+
// latest_movements contains real-time data that may not yet be in PostgreSQL
|
|
68
|
+
// Deduplicate by id, preferring latest_movements (newer data)
|
|
69
|
+
const latestMovements = (response.latest_movements || []).map((m) => ledgerMovementToEvent(m, profile.id));
|
|
70
|
+
const historicalMovements = response.movements.map((m) => ledgerMovementToEvent(m, profile.id));
|
|
71
|
+
// Merge: latest_movements first, then historical, deduplicated by id
|
|
72
|
+
const seenIds = new Set();
|
|
73
|
+
const mergedMovements = [];
|
|
74
|
+
for (const movement of [...latestMovements, ...historicalMovements]) {
|
|
75
|
+
if (!seenIds.has(movement.data.id)) {
|
|
76
|
+
seenIds.add(movement.data.id);
|
|
77
|
+
mergedMovements.push(movement);
|
|
80
78
|
}
|
|
81
|
-
}
|
|
79
|
+
}
|
|
80
|
+
setMovements(mergedMovements.slice(0, limit));
|
|
81
|
+
// Subscribe to WebSocket movement updates after initial data is loaded
|
|
82
|
+
// This prevents race conditions where WS events could be overwritten by REST response
|
|
83
|
+
try {
|
|
84
|
+
unsubscribe = sdk.ws.movements((event) => {
|
|
85
|
+
setMovements((prev) => {
|
|
86
|
+
// Deduplicate by id and keep newest first
|
|
87
|
+
const exists = prev.some((movement) => movement.data.id === event.data.id);
|
|
88
|
+
if (exists) {
|
|
89
|
+
// Update existing movement
|
|
90
|
+
return prev.map((movement) => (movement.data.id === event.data.id ? event : movement));
|
|
91
|
+
}
|
|
92
|
+
return [event, ...prev].slice(0, limit);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
setSubscribed(true);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
99
|
+
setSubscribed(false);
|
|
100
|
+
}
|
|
82
101
|
})
|
|
83
102
|
.catch((err) => setError(err instanceof Error ? err : new Error(String(err))))
|
|
84
103
|
.finally(() => setLoading(false));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserMovements.js","sourceRoot":"","sources":["../../../src/hooks/useUserMovements/useUserMovements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAwB,EAAE,MAAc;IACrE,OAAO;QACL,SAAS,EAAE,UAAU;QACrB,MAAM;QACN,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,QAAQ,CAAC,UAAU;YAC9B,eAAe,EAAE,QAAQ,CAAC,gBAAgB;YAC1C,YAAY,EAAE,QAAQ,CAAC,KAAK;YAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,aAAa,EAAE,QAAQ,CAAC,cAAc,IAAI,SAAS;YACnD,YAAY,EAAE,QAAQ,CAAC,aAAa,IAAI,SAAS;YACjD,YAAY,EAAE,QAAQ,CAAC,aAAa,IAAI,SAAS;YACjD,WAAW,EAAE,QAAQ,CAAC,YAAY,IAAI,SAAS;YAC/C,WAAW,EAAE,QAAQ,CAAC,YAAY,IAAI,SAAS;YAC/C,aAAa,EAAE,QAAQ,CAAC,cAAc,IAAI,SAAS;YACnD,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;YAC9C,MAAM,EAAE,QAAQ,CAAC,OAAO,IAAI,SAAS;YACrC,SAAS,EAAE,QAAQ,CAAC,UAAU,IAAI,SAAS;SAC5C;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAY,GAAG,EAAE;IAChD,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAE/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAsB,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YAC9B,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhE,4EAA4E;QAC5E,IAAI,WAAqC,CAAC;QAE1C,GAAG,CAAC,OAAO;aACR,UAAU,EAAE;aACZ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"useUserMovements.js","sourceRoot":"","sources":["../../../src/hooks/useUserMovements/useUserMovements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserOrders/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useUserOrders/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Order } from "@0xmonaco/types";
|
|
2
|
+
/**
|
|
3
|
+
* Return type for the useUserOrders hook
|
|
4
|
+
*/
|
|
5
|
+
export interface UseUserOrdersReturn {
|
|
6
|
+
/** Array of user orders (merged from REST API and WebSocket updates) */
|
|
7
|
+
orders: Order[];
|
|
8
|
+
/** Whether initial data is being loaded */
|
|
9
|
+
loading: boolean;
|
|
10
|
+
/** Whether currently subscribed to orders channel */
|
|
11
|
+
subscribed: boolean;
|
|
12
|
+
/** Any error that occurred during connection or subscription */
|
|
13
|
+
error: Error | null;
|
|
14
|
+
/** Clear the current error state */
|
|
15
|
+
clearError: () => void;
|
|
16
|
+
/** Manually refresh orders from REST API */
|
|
17
|
+
refresh: () => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserOrders/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IAEjB,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IAEpB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,oCAAoC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useUserOrders/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { UseUserOrdersReturn } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Hook for subscribing to real-time user order events via WebSocket (authenticated)
|
|
4
|
+
*
|
|
5
|
+
* Fetches initial orders from the REST API, then subscribes to real-time updates.
|
|
6
|
+
* Requires authentication - the user must be logged in with a valid JWT token.
|
|
7
|
+
* User is identified on the backend via the JWT token.
|
|
8
|
+
*
|
|
9
|
+
* @param maxOrders - Maximum number of orders to keep in state (default: 50)
|
|
10
|
+
*/
|
|
11
|
+
export declare function useUserOrders(maxOrders?: number): UseUserOrdersReturn;
|
|
12
|
+
//# sourceMappingURL=useUserOrders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUserOrders.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserOrders/useUserOrders.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,SAAS,SAAK,GAAG,mBAAmB,CAsHjE"}
|