@0xmonaco/react 0.5.4 → 0.5.6

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 (80) hide show
  1. package/README.md +12 -18
  2. package/dist/hooks/index.d.ts +3 -0
  3. package/dist/hooks/index.d.ts.map +1 -1
  4. package/dist/hooks/index.js +3 -0
  5. package/dist/hooks/index.js.map +1 -1
  6. package/dist/hooks/useAuth/types.js +0 -1
  7. package/dist/hooks/useAuth/useAuth.d.ts.map +1 -1
  8. package/dist/hooks/useAuth/useAuth.js +3 -5
  9. package/dist/hooks/useAuth/useAuth.js.map +1 -1
  10. package/dist/hooks/useFees/types.js +0 -1
  11. package/dist/hooks/useMarket/types.js +0 -1
  12. package/dist/hooks/useMonaco/types.js +0 -1
  13. package/dist/hooks/useOHLCV/index.d.ts +3 -0
  14. package/dist/hooks/useOHLCV/index.d.ts.map +1 -0
  15. package/dist/hooks/useOHLCV/index.js +3 -0
  16. package/dist/hooks/useOHLCV/index.js.map +1 -0
  17. package/dist/hooks/useOHLCV/types.d.ts +30 -0
  18. package/dist/hooks/useOHLCV/types.d.ts.map +1 -0
  19. package/dist/hooks/useOHLCV/types.js +1 -0
  20. package/dist/hooks/useOHLCV/types.js.map +1 -0
  21. package/dist/hooks/useOHLCV/useOHLCV.d.ts +12 -0
  22. package/dist/hooks/useOHLCV/useOHLCV.d.ts.map +1 -0
  23. package/dist/hooks/useOHLCV/useOHLCV.js +77 -0
  24. package/dist/hooks/useOHLCV/useOHLCV.js.map +1 -0
  25. package/dist/hooks/useOrderbook/types.js +0 -1
  26. package/dist/hooks/useProfile/types.js +0 -1
  27. package/dist/hooks/useTokenLifecycle/types.js +0 -1
  28. package/dist/hooks/useTrade/types.d.ts +5 -1
  29. package/dist/hooks/useTrade/types.d.ts.map +1 -1
  30. package/dist/hooks/useTrade/types.js +0 -1
  31. package/dist/hooks/useTrade/useTrade.d.ts.map +1 -1
  32. package/dist/hooks/useTrade/useTrade.js +12 -0
  33. package/dist/hooks/useTrade/useTrade.js.map +1 -1
  34. package/dist/hooks/useTradeFeed/types.js +0 -1
  35. package/dist/hooks/useUserBalances/index.d.ts +3 -0
  36. package/dist/hooks/useUserBalances/index.d.ts.map +1 -0
  37. package/dist/hooks/useUserBalances/index.js +3 -0
  38. package/dist/hooks/useUserBalances/index.js.map +1 -0
  39. package/dist/hooks/useUserBalances/types.d.ts +19 -0
  40. package/dist/hooks/useUserBalances/types.d.ts.map +1 -0
  41. package/dist/hooks/useUserBalances/types.js +1 -0
  42. package/dist/hooks/useUserBalances/types.js.map +1 -0
  43. package/dist/hooks/useUserBalances/useUserBalances.d.ts +10 -0
  44. package/dist/hooks/useUserBalances/useUserBalances.d.ts.map +1 -0
  45. package/dist/hooks/useUserBalances/useUserBalances.js +113 -0
  46. package/dist/hooks/useUserBalances/useUserBalances.js.map +1 -0
  47. package/dist/hooks/useUserMovements/types.js +0 -1
  48. package/dist/hooks/useUserMovements/useUserMovements.d.ts.map +1 -1
  49. package/dist/hooks/useUserMovements/useUserMovements.js +43 -24
  50. package/dist/hooks/useUserMovements/useUserMovements.js.map +1 -1
  51. package/dist/hooks/useUserOrders/index.d.ts +3 -0
  52. package/dist/hooks/useUserOrders/index.d.ts.map +1 -0
  53. package/dist/hooks/useUserOrders/index.js +3 -0
  54. package/dist/hooks/useUserOrders/index.js.map +1 -0
  55. package/dist/hooks/useUserOrders/types.d.ts +19 -0
  56. package/dist/hooks/useUserOrders/types.d.ts.map +1 -0
  57. package/dist/hooks/useUserOrders/types.js +1 -0
  58. package/dist/hooks/useUserOrders/types.js.map +1 -0
  59. package/dist/hooks/useUserOrders/useUserOrders.d.ts +12 -0
  60. package/dist/hooks/useUserOrders/useUserOrders.d.ts.map +1 -0
  61. package/dist/hooks/useUserOrders/useUserOrders.js +192 -0
  62. package/dist/hooks/useUserOrders/useUserOrders.js.map +1 -0
  63. package/dist/hooks/useVault/types.d.ts +1 -3
  64. package/dist/hooks/useVault/types.d.ts.map +1 -1
  65. package/dist/hooks/useVault/types.js +0 -1
  66. package/dist/hooks/useVault/useVault.d.ts.map +1 -1
  67. package/dist/hooks/useVault/useVault.js +1 -9
  68. package/dist/hooks/useVault/useVault.js.map +1 -1
  69. package/dist/provider/MonacoProvider.d.ts +1 -1
  70. package/dist/provider/MonacoProvider.d.ts.map +1 -1
  71. package/dist/provider/MonacoProvider.js +60 -19
  72. package/dist/provider/MonacoProvider.js.map +1 -1
  73. package/dist/provider/index.d.ts +1 -1
  74. package/dist/provider/index.d.ts.map +1 -1
  75. package/dist/provider/index.js +1 -1
  76. package/dist/provider/index.js.map +1 -1
  77. package/dist/provider/types.d.ts +8 -0
  78. package/dist/provider/types.d.ts.map +1 -1
  79. package/dist/provider/types.js.map +1 -1
  80. package/package.json +40 -38
@@ -0,0 +1,113 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ import { useMonacoSDK } from "../useMonaco";
3
+ /**
4
+ * Update an AccountBalance with data from a WebSocket balance event
5
+ */
6
+ function updateBalanceFromEvent(balance, event) {
7
+ return {
8
+ ...balance,
9
+ available_balance: event.data.available,
10
+ available_balance_raw: event.data.availableRaw,
11
+ locked_balance: event.data.locked,
12
+ locked_balance_raw: event.data.lockedRaw,
13
+ total_balance: event.data.total,
14
+ };
15
+ }
16
+ /**
17
+ * Hook for subscribing to real-time user balance updates via WebSocket (authenticated)
18
+ *
19
+ * Fetches initial balances from the REST API, then subscribes to real-time updates.
20
+ * Requires authentication - the user must be logged in with a valid JWT token.
21
+ * User is identified on the backend via the JWT token.
22
+ */
23
+ export function useUserBalances() {
24
+ const { sdk } = useMonacoSDK();
25
+ const [balances, setBalances] = useState([]);
26
+ const [loading, setLoading] = useState(false);
27
+ const [error, setError] = useState(null);
28
+ const [subscribed, setSubscribed] = useState(false);
29
+ const clearError = useCallback(() => setError(null), []);
30
+ const fetchBalances = useCallback(async () => {
31
+ if (!sdk?.profile)
32
+ return;
33
+ setLoading(true);
34
+ try {
35
+ const response = await sdk.profile.getUserBalances();
36
+ setBalances(response.balances);
37
+ }
38
+ catch (err) {
39
+ setError(err instanceof Error ? err : new Error(String(err)));
40
+ }
41
+ finally {
42
+ setLoading(false);
43
+ }
44
+ }, [sdk?.profile]);
45
+ const refresh = useCallback(async () => {
46
+ await fetchBalances();
47
+ }, [fetchBalances]);
48
+ useEffect(() => {
49
+ if (!sdk?.ws || !sdk?.profile) {
50
+ setSubscribed(false);
51
+ return;
52
+ }
53
+ setBalances([]);
54
+ setError(null);
55
+ setLoading(true);
56
+ // Fetch initial balances via REST API, then subscribe to WebSocket updates
57
+ let unsubscribe;
58
+ let cancelled = false;
59
+ fetchBalances()
60
+ .then(() => {
61
+ // Bail out if effect was cleaned up before fetch resolved
62
+ if (cancelled)
63
+ return;
64
+ // Subscribe to WebSocket balance updates after initial data is loaded
65
+ try {
66
+ unsubscribe = sdk.ws.balances((event) => {
67
+ let needsRefresh = false;
68
+ setBalances((prev) => {
69
+ // Find by token address and update (case-insensitive for addresses)
70
+ const existingIndex = prev.findIndex((b) => b.token.toLowerCase() === event.data.tokenAddress.toLowerCase());
71
+ const existingBalance = prev[existingIndex];
72
+ if (existingIndex >= 0 && existingBalance) {
73
+ // Update existing balance
74
+ const updatedBalance = updateBalanceFromEvent(existingBalance, event);
75
+ const newBalances = [...prev];
76
+ newBalances[existingIndex] = updatedBalance;
77
+ return newBalances;
78
+ }
79
+ // New token - flag for refresh outside the updater
80
+ needsRefresh = true;
81
+ return prev;
82
+ });
83
+ // Refresh outside the state updater to keep it pure
84
+ if (needsRefresh && !cancelled) {
85
+ fetchBalances().catch((err) => {
86
+ if (!cancelled) {
87
+ setError(err instanceof Error ? err : new Error(String(err)));
88
+ }
89
+ });
90
+ }
91
+ });
92
+ setSubscribed(true);
93
+ }
94
+ catch (err) {
95
+ setError(err instanceof Error ? err : new Error(String(err)));
96
+ setSubscribed(false);
97
+ }
98
+ })
99
+ .catch((err) => {
100
+ if (cancelled)
101
+ return;
102
+ setError(err instanceof Error ? err : new Error(String(err)));
103
+ setLoading(false);
104
+ });
105
+ return () => {
106
+ cancelled = true;
107
+ unsubscribe?.();
108
+ setSubscribed(false);
109
+ };
110
+ }, [sdk?.ws, sdk?.profile, fetchBalances]);
111
+ return { balances, loading, subscribed, error, clearError, refresh };
112
+ }
113
+ //# sourceMappingURL=useUserBalances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUserBalances.js","sourceRoot":"","sources":["../../../src/hooks/useUserBalances/useUserBalances.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- export {};
2
1
  //# sourceMappingURL=types.js.map
@@ -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;AA4BtD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,SAAK,GAAG,sBAAsB,CA+D1E"}
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
- return sdk.profile.getPaginatedUserMovements({ limit }).then((response) => {
59
- const initialMovements = response.movements.map((m) => ledgerMovementToEvent(m, profile.id));
60
- setMovements(initialMovements);
61
- // Subscribe to WebSocket movement updates after initial data is loaded
62
- // This prevents race conditions where WS events could be overwritten by REST response
63
- try {
64
- unsubscribe = sdk.ws.movements((event) => {
65
- setMovements((prev) => {
66
- // Deduplicate by id and keep newest first
67
- const exists = prev.some((m) => m.data.id === event.data.id);
68
- if (exists) {
69
- // Update existing movement
70
- return prev.map((m) => (m.data.id === event.data.id ? event : m));
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":"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"}
1
+ {"version":3,"file":"useUserMovements.js","sourceRoot":"","sources":["../../../src/hooks/useUserMovements/useUserMovements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export { useUserOrders } from "./useUserOrders";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ export * from "./types";
2
+ export { useUserOrders } from "./useUserOrders";
3
+ //# sourceMappingURL=index.js.map
@@ -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
+ //# sourceMappingURL=types.js.map
@@ -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"}
@@ -0,0 +1,192 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ import { useMonacoSDK } from "../useMonaco";
3
+ /**
4
+ * Hook for subscribing to real-time user order events via WebSocket (authenticated)
5
+ *
6
+ * Fetches initial orders from the REST API, then subscribes to real-time updates.
7
+ * Requires authentication - the user must be logged in with a valid JWT token.
8
+ * User is identified on the backend via the JWT token.
9
+ *
10
+ * @param maxOrders - Maximum number of orders to keep in state (default: 50)
11
+ */
12
+ export function useUserOrders(maxOrders = 50) {
13
+ const { sdk } = useMonacoSDK();
14
+ const [orders, setOrders] = useState([]);
15
+ const [loading, setLoading] = useState(false);
16
+ const [error, setError] = useState(null);
17
+ const [subscribed, setSubscribed] = useState(false);
18
+ const clearError = useCallback(() => setError(null), []);
19
+ const fetchOrders = useCallback(async () => {
20
+ if (!sdk?.trading)
21
+ return;
22
+ setLoading(true);
23
+ try {
24
+ const response = await sdk.trading.getPaginatedOrders({
25
+ page: 1,
26
+ page_size: maxOrders,
27
+ });
28
+ // Combine latest_orders (from Redis) with orders (from PostgreSQL)
29
+ // latest_orders contains real-time data that may not yet be in PostgreSQL
30
+ // Deduplicate by id, preferring latest_orders (newer data)
31
+ const latestOrders = response.latest_orders || [];
32
+ const historicalOrders = response.orders;
33
+ // Merge: latest_orders first, then historical, deduplicated by id
34
+ const seenIds = new Set();
35
+ const mergedOrders = [];
36
+ for (const order of [...latestOrders, ...historicalOrders]) {
37
+ if (!seenIds.has(order.id)) {
38
+ seenIds.add(order.id);
39
+ mergedOrders.push(order);
40
+ }
41
+ }
42
+ setOrders(mergedOrders.slice(0, maxOrders));
43
+ }
44
+ catch (err) {
45
+ setError(err instanceof Error ? err : new Error(String(err)));
46
+ }
47
+ finally {
48
+ setLoading(false);
49
+ }
50
+ }, [sdk?.trading, maxOrders]);
51
+ // Manual refresh function
52
+ const refresh = useCallback(async () => {
53
+ await fetchOrders();
54
+ }, [fetchOrders]);
55
+ useEffect(() => {
56
+ if (!sdk?.ws || !sdk?.trading) {
57
+ setSubscribed(false);
58
+ return;
59
+ }
60
+ setOrders([]);
61
+ setError(null);
62
+ setLoading(true);
63
+ const limit = Number.isFinite(maxOrders) ? maxOrders : 50;
64
+ // Fetch initial orders via REST API, then subscribe to WebSocket updates
65
+ let unsubscribe;
66
+ fetchOrders()
67
+ .then(() => {
68
+ // Subscribe to WebSocket order updates after initial data is loaded
69
+ // This prevents race conditions where WS events could be overwritten by REST response
70
+ try {
71
+ unsubscribe = sdk.ws.userOrders((event) => {
72
+ setOrders((prev) => {
73
+ const orderId = event.orderId;
74
+ // Check if this order already exists
75
+ const existingIndex = prev.findIndex((o) => o.id === orderId);
76
+ const existingOrder = prev[existingIndex];
77
+ if (existingIndex >= 0 && existingOrder) {
78
+ // Update existing order with new data from event
79
+ const updatedOrder = updateOrderFromEvent(existingOrder, event);
80
+ // If order is terminal (filled, canceled, rejected, expired), keep it but update
81
+ const newOrders = [...prev];
82
+ newOrders[existingIndex] = updatedOrder;
83
+ return newOrders;
84
+ }
85
+ // New order - add to the beginning if it's an OrderPlaced event
86
+ if (event.eventType === "OrderPlaced") {
87
+ const newOrder = orderFromEvent(event);
88
+ if (newOrder) {
89
+ return [newOrder, ...prev].slice(0, limit);
90
+ }
91
+ }
92
+ return prev;
93
+ });
94
+ });
95
+ setSubscribed(true);
96
+ }
97
+ catch (err) {
98
+ setError(err instanceof Error ? err : new Error(String(err)));
99
+ setSubscribed(false);
100
+ setLoading(false);
101
+ }
102
+ })
103
+ .catch((err) => {
104
+ setError(err instanceof Error ? err : new Error(String(err)));
105
+ setLoading(false);
106
+ });
107
+ return () => {
108
+ unsubscribe?.();
109
+ setSubscribed(false);
110
+ };
111
+ }, [sdk?.ws, sdk?.trading, maxOrders, fetchOrders]);
112
+ return { orders, loading, subscribed, error, clearError, refresh };
113
+ }
114
+ /**
115
+ * Create an Order object from an OrderPlaced event
116
+ */
117
+ function orderFromEvent(event) {
118
+ if (event.eventType !== "OrderPlaced")
119
+ return null;
120
+ const { data } = event;
121
+ const tradingPair = data.tradingPairId || data.tradingPair;
122
+ if (!tradingPair)
123
+ return null;
124
+ return {
125
+ id: event.orderId,
126
+ trading_pair: tradingPair,
127
+ order_type: (data.orderType || "LIMIT"),
128
+ side: (data.side || "BUY"),
129
+ price: data.price,
130
+ quantity: data.quantity || "0",
131
+ filled_quantity: "0",
132
+ average_fill_price: undefined,
133
+ status: data.status,
134
+ trading_mode: (data.tradingMode || "SPOT"),
135
+ time_in_force: data.timeInForce,
136
+ created_at: event.timestamp,
137
+ updated_at: event.timestamp,
138
+ };
139
+ }
140
+ /**
141
+ * Update an existing Order with data from a WebSocket event
142
+ */
143
+ function updateOrderFromEvent(order, event) {
144
+ const data = event.data;
145
+ // Prefer status from event data when available, fall back to event-type-based mapping
146
+ let newStatus = order.status;
147
+ if ("status" in data && data.status) {
148
+ newStatus = data.status;
149
+ }
150
+ else {
151
+ switch (event.eventType) {
152
+ case "OrderPlaced":
153
+ newStatus = "SUBMITTED";
154
+ break;
155
+ case "OrderPartiallyFilled":
156
+ newStatus = "PARTIALLY_FILLED";
157
+ break;
158
+ case "OrderFilled":
159
+ newStatus = "FILLED";
160
+ break;
161
+ case "OrderCancelled":
162
+ newStatus = "CANCELLED";
163
+ break;
164
+ case "OrderRejected":
165
+ newStatus = "REJECTED";
166
+ break;
167
+ case "OrderExpired":
168
+ newStatus = "EXPIRED";
169
+ break;
170
+ }
171
+ }
172
+ // Get filled quantity from different event types
173
+ let filledQuantity = order.filled_quantity;
174
+ let avgFillPrice = order.average_fill_price;
175
+ if ("totalFilled" in data && data.totalFilled) {
176
+ filledQuantity = data.totalFilled;
177
+ }
178
+ if ("filledQuantity" in data && data.filledQuantity) {
179
+ filledQuantity = data.filledQuantity;
180
+ }
181
+ if ("averageFillPrice" in data && data.averageFillPrice) {
182
+ avgFillPrice = data.averageFillPrice;
183
+ }
184
+ return {
185
+ ...order,
186
+ status: newStatus,
187
+ filled_quantity: filledQuantity,
188
+ average_fill_price: avgFillPrice,
189
+ updated_at: event.timestamp,
190
+ };
191
+ }
192
+ //# sourceMappingURL=useUserOrders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUserOrders.js","sourceRoot":"","sources":["../../../src/hooks/useUserOrders/useUserOrders.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Balance, TransactionResult } from "@0xmonaco/types";
1
+ import type { TransactionResult } from "@0xmonaco/types";
2
2
  export interface UseVaultReturn {
3
3
  /** Approve the vault to spend tokens */
4
4
  approve: (assetId: string, amount: bigint, autoWait?: boolean) => Promise<TransactionResult>;
@@ -6,8 +6,6 @@ export interface UseVaultReturn {
6
6
  deposit: (assetId: string, amount: bigint, autoWait?: boolean) => Promise<TransactionResult>;
7
7
  /** Withdraw tokens from the vault */
8
8
  withdraw: (assetId: string, amount: bigint, autoWait?: boolean) => Promise<TransactionResult>;
9
- /** Get the balance of a token in the vault */
10
- getBalance: (assetId: string) => Promise<Balance>;
11
9
  /** Get the allowance for a token */
12
10
  getAllowance: (assetId: string) => Promise<bigint>;
13
11
  /** Check if a token needs approval for an amount */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVault/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7F,oCAAoC;IACpC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7F,qCAAqC;IACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE9F,8CAA8C;IAC9C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD,oCAAoC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD,oDAAoD;IACpD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVault/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7F,oCAAoC;IACpC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7F,qCAAqC;IACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE9F,oCAAoC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD,oDAAoD;IACpD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE"}
@@ -1,2 +1 @@
1
- export {};
2
1
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useVault.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVault/useVault.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cA8E3B,CAAC"}
1
+ {"version":3,"file":"useVault.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVault/useVault.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cAmE3B,CAAC"}
@@ -29,13 +29,6 @@ export const useVault = () => {
29
29
  throw new Error("Amount must be greater than 0");
30
30
  return await sdk.vault.withdraw(assetId, amount, autoWait);
31
31
  }, [sdk]);
32
- const getBalance = useCallback(async (assetId) => {
33
- if (!sdk)
34
- throw new Error("SDK not available");
35
- if (!assetId?.trim())
36
- throw new Error("Asset ID is required and cannot be empty");
37
- return await sdk.vault.getBalance(assetId);
38
- }, [sdk]);
39
32
  const getAllowance = useCallback(async (assetId) => {
40
33
  if (!sdk)
41
34
  throw new Error("SDK not available");
@@ -57,8 +50,7 @@ export const useVault = () => {
57
50
  approve,
58
51
  deposit,
59
52
  withdraw,
60
- // Balance and allowance queries
61
- getBalance,
53
+ // Approval and allowance queries
62
54
  getAllowance,
63
55
  needsApproval,
64
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useVault.js","sourceRoot":"","sources":["../../../src/hooks/useVault/useVault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useVault.js","sourceRoot":"","sources":["../../../src/hooks/useVault/useVault.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAmB,EAAE;IAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAE/B,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,OAAe,EAAE,MAAc,EAAE,QAAkB,EAA8B,EAAE;QACxF,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClF,IAAI,MAAM,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEnE,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,OAAe,EAAE,MAAc,EAAE,QAAkB,EAA8B,EAAE;QACxF,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClF,IAAI,MAAM,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEnE,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,OAAe,EAAE,MAAc,EAAE,QAAkB,EAA8B,EAAE;QACxF,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClF,IAAI,MAAM,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEnE,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,OAAe,EAAmB,EAAE;QACzC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAElF,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EAAE,OAAe,EAAE,MAAc,EAAoB,EAAE;QAC1D,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClF,IAAI,MAAM,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEnE,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,OAAO;QACP,OAAO;QACP,QAAQ;QAER,iCAAiC;QACjC,YAAY;QACZ,aAAa;KACd,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { type MonacoContextValue, type MonacoProviderProps } from "./types";
2
- export declare const MonacoProvider: ({ children, clientId, network, seiRpcUrl, wsUrl, tokenLifecycle: tokenLifecycleConfig }: MonacoProviderProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MonacoProvider: ({ children, clientId, network, seiRpcUrl, wsUrl, walletClient, tokenLifecycle: tokenLifecycleConfig }: MonacoProviderProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export declare const useMonacoContext: () => MonacoContextValue;
4
4
  //# sourceMappingURL=MonacoProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoProvider.d.ts","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAwB,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAIlG,eAAO,MAAM,cAAc,GAAI,yFAAyF,mBAAmB,4CA0G1I,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,kBAQnC,CAAC"}
1
+ {"version":3,"file":"MonacoProvider.d.ts","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAwB,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAalG,eAAO,MAAM,cAAc,GAAI,uGAAuG,mBAAmB,4CA+IxJ,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,kBAQnC,CAAC"}