@0xmonaco/react 0.3.0 → 0.3.2

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 (63) hide show
  1. package/dist/hooks/index.d.ts +1 -0
  2. package/dist/hooks/index.d.ts.map +1 -1
  3. package/dist/hooks/index.js +1 -0
  4. package/dist/hooks/index.js.map +1 -1
  5. package/dist/hooks/useAuth/useAuth.d.ts.map +1 -1
  6. package/dist/hooks/useAuth/useAuth.js +13 -4
  7. package/dist/hooks/useAuth/useAuth.js.map +1 -1
  8. package/dist/hooks/useFees/index.d.ts +1 -1
  9. package/dist/hooks/useFees/index.d.ts.map +1 -1
  10. package/dist/hooks/useFees/index.js.map +1 -1
  11. package/dist/hooks/useOrderbook/types.d.ts +5 -1
  12. package/dist/hooks/useOrderbook/types.d.ts.map +1 -1
  13. package/dist/hooks/useOrderbook/useOrderbook.d.ts +16 -2
  14. package/dist/hooks/useOrderbook/useOrderbook.d.ts.map +1 -1
  15. package/dist/hooks/useOrderbook/useOrderbook.js +29 -11
  16. package/dist/hooks/useOrderbook/useOrderbook.js.map +1 -1
  17. package/dist/hooks/useProfile/types.d.ts +6 -1
  18. package/dist/hooks/useProfile/types.d.ts.map +1 -1
  19. package/dist/hooks/useProfile/useProfile.d.ts.map +1 -1
  20. package/dist/hooks/useProfile/useProfile.js +12 -0
  21. package/dist/hooks/useProfile/useProfile.js.map +1 -1
  22. package/dist/hooks/useTokenLifecycle/index.d.ts +3 -0
  23. package/dist/hooks/useTokenLifecycle/index.d.ts.map +1 -0
  24. package/dist/hooks/useTokenLifecycle/index.js +2 -0
  25. package/dist/hooks/useTokenLifecycle/index.js.map +1 -0
  26. package/dist/hooks/useTokenLifecycle/types.d.ts +24 -0
  27. package/dist/hooks/useTokenLifecycle/types.d.ts.map +1 -0
  28. package/dist/hooks/useTokenLifecycle/types.js +2 -0
  29. package/dist/hooks/useTokenLifecycle/types.js.map +1 -0
  30. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.d.ts +21 -0
  31. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.d.ts.map +1 -0
  32. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.js +126 -0
  33. package/dist/hooks/useTokenLifecycle/useTokenLifecycle.js.map +1 -0
  34. package/dist/hooks/useTokenLifecycle/utils.d.ts +8 -0
  35. package/dist/hooks/useTokenLifecycle/utils.d.ts.map +1 -0
  36. package/dist/hooks/useTokenLifecycle/utils.js +16 -0
  37. package/dist/hooks/useTokenLifecycle/utils.js.map +1 -0
  38. package/dist/hooks/useTrade/types.d.ts +5 -5
  39. package/dist/hooks/useTrade/types.d.ts.map +1 -1
  40. package/dist/hooks/useTrade/useTrade.d.ts.map +1 -1
  41. package/dist/hooks/useTrade/useTrade.js.map +1 -1
  42. package/dist/hooks/useTradeFeed/utils.js +2 -2
  43. package/dist/hooks/useTradeFeed/utils.js.map +1 -1
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/provider/MonacoProvider.d.ts +1 -1
  49. package/dist/provider/MonacoProvider.d.ts.map +1 -1
  50. package/dist/provider/MonacoProvider.js +47 -8
  51. package/dist/provider/MonacoProvider.js.map +1 -1
  52. package/dist/provider/types.d.ts +5 -0
  53. package/dist/provider/types.d.ts.map +1 -1
  54. package/dist/provider/types.js.map +1 -1
  55. package/dist/utils/index.d.ts +2 -0
  56. package/dist/utils/index.d.ts.map +1 -0
  57. package/dist/utils/index.js +2 -0
  58. package/dist/utils/index.js.map +1 -0
  59. package/dist/utils/tokenStorage.d.ts +39 -0
  60. package/dist/utils/tokenStorage.d.ts.map +1 -0
  61. package/dist/utils/tokenStorage.js +103 -0
  62. package/dist/utils/tokenStorage.js.map +1 -0
  63. package/package.json +2 -2
@@ -4,6 +4,7 @@ export * from "./useMarket";
4
4
  export * from "./useMonaco";
5
5
  export * from "./useOrderbook";
6
6
  export * from "./useProfile";
7
+ export * from "./useTokenLifecycle";
7
8
  export * from "./useTrade";
8
9
  export * from "./useTradeFeed";
9
10
  export * from "./useVault";
@@ -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,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,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,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -4,6 +4,7 @@ export * from "./useMarket";
4
4
  export * from "./useMonaco";
5
5
  export * from "./useOrderbook";
6
6
  export * from "./useProfile";
7
+ export * from "./useTokenLifecycle";
7
8
  export * from "./useTrade";
8
9
  export * from "./useTradeFeed";
9
10
  export * from "./useVault";
@@ -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,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,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,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aA0J1B,CAAC"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aA4K1B,CAAC"}
@@ -5,7 +5,7 @@ import { useMonacoContext } from "../../provider/MonacoProvider";
5
5
  import { useMonacoSDK } from "../useMonaco";
6
6
  export const useAuth = () => {
7
7
  const { sdk, clientId } = useMonacoSDK();
8
- const { authenticationStatus, setAuthenticationStatus } = useMonacoContext();
8
+ const { authenticationStatus, setAuthenticationStatus, tokenLifecycle } = useMonacoContext();
9
9
  const { data: walletClient } = useWalletClient();
10
10
  const login = useCallback(async (options) => {
11
11
  if (!sdk)
@@ -15,6 +15,8 @@ export const useAuth = () => {
15
15
  setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
16
16
  try {
17
17
  const authState = await sdk.login(clientId, options);
18
+ // Initialize token lifecycle management (caching + auto-refresh)
19
+ tokenLifecycle.initializeTokens(authState);
18
20
  const authenticated = sdk.isAuthenticated();
19
21
  setAuthenticationStatus(authenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
20
22
  return authState;
@@ -23,35 +25,42 @@ export const useAuth = () => {
23
25
  setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
24
26
  throw error;
25
27
  }
26
- }, [sdk, walletClient, clientId, setAuthenticationStatus]);
28
+ }, [sdk, walletClient, clientId, setAuthenticationStatus, tokenLifecycle]);
27
29
  const logout = useCallback(async () => {
28
30
  if (!sdk)
29
31
  throw new Error("SDK not available");
30
32
  setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
31
33
  try {
32
34
  await sdk.logout();
35
+ // Clear cached tokens and stop auto-refresh
36
+ tokenLifecycle.clearTokens();
33
37
  setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
34
38
  }
35
39
  catch (error) {
40
+ // Clear tokens even if logout fails
41
+ tokenLifecycle.clearTokens();
36
42
  setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
37
43
  throw error;
38
44
  }
39
- }, [sdk, setAuthenticationStatus]);
45
+ }, [sdk, setAuthenticationStatus, tokenLifecycle]);
40
46
  const refreshAuth = useCallback(async () => {
41
47
  if (!sdk)
42
48
  throw new Error("SDK not available");
43
49
  setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
44
50
  try {
45
51
  const result = await sdk.refreshAuth();
52
+ // Reinitialize token lifecycle with new tokens
53
+ tokenLifecycle.initializeTokens(result);
46
54
  const authenticated = sdk.isAuthenticated();
47
55
  setAuthenticationStatus(authenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
48
56
  return result;
49
57
  }
50
58
  catch (error) {
59
+ tokenLifecycle.clearTokens();
51
60
  setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
52
61
  throw error;
53
62
  }
54
- }, [sdk, setAuthenticationStatus]);
63
+ }, [sdk, setAuthenticationStatus, tokenLifecycle]);
55
64
  const signChallenge = useCallback(async (message) => {
56
65
  if (!sdk)
57
66
  throw new Error("SDK not available");
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { useFees } from "./useFees";
2
1
  export type { UseFeesReturn } from "./types";
2
+ export { useFees } from "./useFees";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFees/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useFees/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useFees/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ConnectionStatus, OrderbookEvent, TradingMode } from "@0xmonaco/types";
1
+ import type { ConnectionStatus, OrderbookEvent, OrderbookQuotationMode, TradingMode } from "@0xmonaco/types";
2
2
  /**
3
3
  * State structure for current subscription ref
4
4
  */
@@ -7,6 +7,10 @@ export interface OrderbookSubscriptionRef {
7
7
  pair: string;
8
8
  /** The mode subscribed to */
9
9
  mode: TradingMode;
10
+ /** The magnitude for orderbook grouping */
11
+ magnitude?: number;
12
+ /** The quotation mode for orderbook subscription */
13
+ quotationMode?: OrderbookQuotationMode;
10
14
  }
11
15
  /**
12
16
  * Return type for the useOrderbook hook
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOrderbook/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,kCAAkC;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAC;IAEpB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,oCAAoC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOrderbook/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7G;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,kCAAkC;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAC;IAEpB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,oCAAoC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
@@ -1,4 +1,4 @@
1
- import { type TradingMode } from "@0xmonaco/types";
1
+ import { type OrderbookQuotationMode, type TradingMode } from "@0xmonaco/types";
2
2
  import type { UseOrderbookReturn } from "./types";
3
3
  /**
4
4
  * React hook to subscribe to and manage the orderbook for a given trading pair and mode.
@@ -8,6 +8,8 @@ import type { UseOrderbookReturn } from "./types";
8
8
  *
9
9
  * @param {string | null} tradingPair - The trading pair to subscribe to (e.g., "BTC/USD"). If null, no subscription is made.
10
10
  * @param {TradingMode} tradingMode - The trading mode to use for the subscription (e.g., "live", "test").
11
+ * @param {number} [magnitude] - Optional magnitude for orderbook grouping (0.0001 to 10000, defaults to no grouping).
12
+ * @param {OrderbookQuotationMode} [quotationMode] - Optional quotation mode ("BASE" or "QUOTE"), defaults to "BASE".
11
13
  * @returns {UseOrderbookReturn} An object containing the latest orderbook event, connection status, subscription state, error, and error clearing function.
12
14
  *
13
15
  * @example
@@ -28,7 +30,19 @@ import type { UseOrderbookReturn } from "./types";
28
30
  * </div>
29
31
  * );
30
32
  * }
33
+ *
34
+ * // With magnitude for grouping
35
+ * function GroupedOrderbookComponent() {
36
+ * const { orderbook } = useOrderbook("BTC/USD", "live", 10);
37
+ * // ... render grouped orderbook
38
+ * }
39
+ *
40
+ * // With QUOTE quotation mode
41
+ * function QuoteOrderbookComponent() {
42
+ * const { orderbook } = useOrderbook("BTC/USD", "live", undefined, "QUOTE");
43
+ * // ... render orderbook in QUOTE mode
44
+ * }
31
45
  * ```
32
46
  */
33
- export declare function useOrderbook(tradingPair: string | null, tradingMode: TradingMode): UseOrderbookReturn;
47
+ export declare function useOrderbook(tradingPair: string | null, tradingMode: TradingMode, magnitude?: number, quotationMode?: OrderbookQuotationMode): UseOrderbookReturn;
34
48
  //# sourceMappingURL=useOrderbook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOrderbook.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOrderbook/useOrderbook.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAGhH,OAAO,KAAK,EAA4B,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,kBAAkB,CAmHrG"}
1
+ {"version":3,"file":"useOrderbook.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOrderbook/useOrderbook.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAA4B,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,sBAAsB,GACrC,kBAAkB,CA+HpB"}
@@ -1,4 +1,4 @@
1
- import { WebSocketStatus } from "@0xmonaco/types";
1
+ import { WebSocketStatus, } from "@0xmonaco/types";
2
2
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
3
  import { useMonacoSDK } from "../useMonaco";
4
4
  /**
@@ -9,6 +9,8 @@ import { useMonacoSDK } from "../useMonaco";
9
9
  *
10
10
  * @param {string | null} tradingPair - The trading pair to subscribe to (e.g., "BTC/USD"). If null, no subscription is made.
11
11
  * @param {TradingMode} tradingMode - The trading mode to use for the subscription (e.g., "live", "test").
12
+ * @param {number} [magnitude] - Optional magnitude for orderbook grouping (0.0001 to 10000, defaults to no grouping).
13
+ * @param {OrderbookQuotationMode} [quotationMode] - Optional quotation mode ("BASE" or "QUOTE"), defaults to "BASE".
12
14
  * @returns {UseOrderbookReturn} An object containing the latest orderbook event, connection status, subscription state, error, and error clearing function.
13
15
  *
14
16
  * @example
@@ -29,9 +31,21 @@ import { useMonacoSDK } from "../useMonaco";
29
31
  * </div>
30
32
  * );
31
33
  * }
34
+ *
35
+ * // With magnitude for grouping
36
+ * function GroupedOrderbookComponent() {
37
+ * const { orderbook } = useOrderbook("BTC/USD", "live", 10);
38
+ * // ... render grouped orderbook
39
+ * }
40
+ *
41
+ * // With QUOTE quotation mode
42
+ * function QuoteOrderbookComponent() {
43
+ * const { orderbook } = useOrderbook("BTC/USD", "live", undefined, "QUOTE");
44
+ * // ... render orderbook in QUOTE mode
45
+ * }
32
46
  * ```
33
47
  */
34
- export function useOrderbook(tradingPair, tradingMode) {
48
+ export function useOrderbook(tradingPair, tradingMode, magnitude, quotationMode) {
35
49
  const { sdk } = useMonacoSDK();
36
50
  const [orderbook, setOrderbook] = useState(null);
37
51
  const [error, setError] = useState(null);
@@ -59,7 +73,7 @@ export function useOrderbook(tradingPair, tradingMode) {
59
73
  setError(err instanceof Error ? err : new Error(String(err)));
60
74
  }
61
75
  }, [orderbookWSClient, connectionStatus]);
62
- const subscribe = useCallback(async (pair, mode) => {
76
+ const subscribe = useCallback(async (pair, mode, mag, qMode) => {
63
77
  if (!orderbookWSClient)
64
78
  return;
65
79
  if (connectionStatus !== WebSocketStatus.Connected)
@@ -67,11 +81,10 @@ export function useOrderbook(tradingPair, tradingMode) {
67
81
  setOrderbook(null);
68
82
  setError(null);
69
83
  try {
70
- const normalizedMode = mode.toLowerCase();
71
- orderbookWSClient.subscribeToOrderbookEvents(pair, normalizedMode, (event) => {
84
+ orderbookWSClient.subscribeToOrderbookEvents(pair, mode, (event) => {
72
85
  setOrderbook(event);
73
- });
74
- currentSubscriptionRef.current = { pair, mode: normalizedMode };
86
+ }, mag, qMode);
87
+ currentSubscriptionRef.current = { pair, mode, magnitude: mag, quotationMode: qMode };
75
88
  }
76
89
  catch (err) {
77
90
  setError(err instanceof Error ? err : new Error(String(err)));
@@ -86,7 +99,9 @@ export function useOrderbook(tradingPair, tradingMode) {
86
99
  return;
87
100
  try {
88
101
  const tradingMode = currentSubscriptionRef.current.mode;
89
- orderbookWSClient.unsubscribeFromOrderbookEvents(currentSubscriptionRef.current.pair, tradingMode);
102
+ const magnitude = currentSubscriptionRef.current.magnitude;
103
+ const quotationMode = currentSubscriptionRef.current.quotationMode;
104
+ orderbookWSClient.unsubscribeFromOrderbookEvents(currentSubscriptionRef.current.pair, tradingMode, magnitude, quotationMode);
90
105
  currentSubscriptionRef.current = null;
91
106
  setOrderbook(null);
92
107
  }
@@ -109,12 +124,15 @@ export function useOrderbook(tradingPair, tradingMode) {
109
124
  }, [orderbookWSClient, connectionStatus]);
110
125
  useEffect(() => {
111
126
  if (tradingPair && tradingMode && connectionStatus === WebSocketStatus.Connected) {
112
- if (tradingPair === currentSubscriptionRef.current?.pair && tradingMode === currentSubscriptionRef.current?.mode)
127
+ if (tradingPair === currentSubscriptionRef.current?.pair &&
128
+ tradingMode === currentSubscriptionRef.current?.mode &&
129
+ magnitude === currentSubscriptionRef.current?.magnitude &&
130
+ quotationMode === currentSubscriptionRef.current?.quotationMode)
113
131
  return;
114
132
  unsubscribe();
115
- void subscribe(tradingPair, tradingMode);
133
+ void subscribe(tradingPair, tradingMode, magnitude, quotationMode);
116
134
  }
117
- }, [tradingPair, tradingMode, connectionStatus, unsubscribe, subscribe]);
135
+ }, [tradingPair, tradingMode, magnitude, quotationMode, connectionStatus, unsubscribe, subscribe]);
118
136
  useEffect(() => {
119
137
  if (isSDKAuthenticated) {
120
138
  void connect(); // Connect when SDK is available
@@ -1 +1 @@
1
- {"version":3,"file":"useOrderbook.js","sourceRoot":"","sources":["../../../src/hooks/useOrderbook/useOrderbook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useOrderbook.js","sourceRoot":"","sources":["../../../src/hooks/useOrderbook/useOrderbook.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,UAAU,YAAY,CAC1B,WAA0B,EAC1B,WAAwB,EACxB,SAAkB,EAClB,aAAsC;IAEtC,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAE/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAmB,eAAe,CAAC,YAAY,CAAC,CAAC;IAEzG,MAAM,sBAAsB,GAAG,MAAM,CAAkC,IAAI,CAAC,CAAC;IAE7E,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC;IAE1D,MAAM,kBAAkB,GAAG,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC;IAEjD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,IAAI,gBAAgB,KAAK,eAAe,CAAC,UAAU,IAAI,gBAAgB,KAAK,eAAe,CAAC,SAAS;YAAE,OAAO;QAE9G,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,mBAAmB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAClC,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mBAAmB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAClD,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,WAAW,CAC3B,KAAK,EAAE,IAAY,EAAE,IAAiB,EAAE,GAAY,EAAE,KAA8B,EAAE,EAAE;QACtF,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,IAAI,gBAAgB,KAAK,eAAe,CAAC,SAAS;YAAE,OAAO;QAE3D,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,iBAAiB,CAAC,0BAA0B,CAC1C,IAAI,EACJ,IAAI,EACJ,CAAC,KAAqB,EAAE,EAAE;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,EACD,GAAG,EACH,KAAK,CACN,CAAC;YAEF,sBAAsB,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,EACD,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CACtC,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAC/B,IAAI,CAAC,sBAAsB,CAAC,OAAO;YAAE,OAAO;QAE5C,IAAI,gBAAgB,KAAK,eAAe,CAAC,SAAS;YAAE,OAAO;QAE3D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAmB,CAAC;YACvE,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC;YAC3D,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC;YACnE,iBAAiB,CAAC,8BAA8B,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAC7H,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,gBAAgB,KAAK,eAAe,CAAC,SAAS;YAAE,OAAO;QAE3D,IAAI,CAAC;YACH,iBAAiB,EAAE,UAAU,EAAE,CAAC;YAChC,mBAAmB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAClD,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,WAAW,IAAI,gBAAgB,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YACjF,IACE,WAAW,KAAK,sBAAsB,CAAC,OAAO,EAAE,IAAI;gBACpD,WAAW,KAAK,sBAAsB,CAAC,OAAO,EAAE,IAAI;gBACpD,SAAS,KAAK,sBAAsB,CAAC,OAAO,EAAE,SAAS;gBACvD,aAAa,KAAK,sBAAsB,CAAC,OAAO,EAAE,aAAa;gBAE/D,OAAO;YACT,WAAW,EAAE,CAAC;YACd,KAAK,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,OAAO,EAAE,CAAC,CAAC,gCAAgC;QAClD,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,mBAAmB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAClD,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,gCAAgC;IAC7D,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9C,OAAO;QACL,SAAS;QACT,gBAAgB;QAChB,UAAU;QACV,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { GetPaginatedUserMovementsResponse, GetUserMovementsParams, UserProfile } from "@0xmonaco/types";
1
+ import type { AccountBalance, GetPaginatedUserMovementsResponse, GetUserBalancesParams, GetUserBalancesResponse, GetUserMovementsParams, UserProfile } from "@0xmonaco/types";
2
+ import type { Address } from "viem";
2
3
  export interface UseProfileReturn {
3
4
  /** User profile data */
4
5
  profile?: UserProfile;
@@ -6,5 +7,9 @@ export interface UseProfileReturn {
6
7
  fetchProfile: () => Promise<UserProfile>;
7
8
  /** Get user's ledger movements (transaction history) with pagination */
8
9
  getPaginatedUserMovements: (params?: GetUserMovementsParams) => Promise<GetPaginatedUserMovementsResponse>;
10
+ /** Get user's token balances with pagination */
11
+ getUserBalances: (params?: GetUserBalancesParams) => Promise<GetUserBalancesResponse>;
12
+ /** Get user's balance for a specific token */
13
+ getUserBalanceByToken: (token: Address) => Promise<AccountBalance>;
9
14
  }
10
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProfile/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9G,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,wEAAwE;IACxE,yBAAyB,EAAE,CAAC,MAAM,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,iCAAiC,CAAC,CAAC;CAC5G"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProfile/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,wEAAwE;IACxE,yBAAyB,EAAE,CAAC,MAAM,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC3G,gDAAgD;IAChD,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtF,8CAA8C;IAC9C,qBAAqB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useProfile.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProfile/useProfile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,UAAU,QAAO,gBAqC7B,CAAC"}
1
+ {"version":3,"file":"useProfile.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProfile/useProfile.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,UAAU,QAAO,gBAyD7B,CAAC"}
@@ -23,12 +23,24 @@ export const useProfile = () => {
23
23
  throw new Error("SDK not available");
24
24
  return await sdk.profile.getPaginatedUserMovements(params);
25
25
  }, [sdk]);
26
+ const getUserBalances = useCallback(async (params) => {
27
+ if (!sdk)
28
+ throw new Error("SDK not available");
29
+ return await sdk.profile.getUserBalances(params);
30
+ }, [sdk]);
31
+ const getUserBalanceByToken = useCallback(async (token) => {
32
+ if (!sdk)
33
+ throw new Error("SDK not available");
34
+ return await sdk.profile.getUserBalanceByToken(token);
35
+ }, [sdk]);
26
36
  return {
27
37
  // State
28
38
  profile,
29
39
  // Actions
30
40
  fetchProfile,
31
41
  getPaginatedUserMovements,
42
+ getUserBalances,
43
+ getUserBalanceByToken,
32
44
  };
33
45
  };
34
46
  //# sourceMappingURL=useProfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProfile.js","sourceRoot":"","sources":["../../../src/hooks/useProfile/useProfile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAqB,EAAE;IAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;IAE3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAe,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,oBAAoB,KAAK,oBAAoB,CAAC,aAAa,EAAE,CAAC;YAChE,UAAU,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACnD,UAAU,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,yBAAyB,GAAG,WAAW,CAC3C,KAAK,EAAE,MAA+B,EAA8C,EAAE;QACpF,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,OAAO;QAEP,UAAU;QACV,YAAY;QACZ,yBAAyB;KAC1B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useProfile.js","sourceRoot":"","sources":["../../../src/hooks/useProfile/useProfile.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAqB,EAAE;IAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;IAE3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAe,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,oBAAoB,KAAK,oBAAoB,CAAC,aAAa,EAAE,CAAC;YAChE,UAAU,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACnD,UAAU,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,yBAAyB,GAAG,WAAW,CAC3C,KAAK,EAAE,MAA+B,EAA8C,EAAE;QACpF,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,MAA8B,EAAoC,EAAE;QACzE,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,qBAAqB,GAAG,WAAW,CACvC,KAAK,EAAE,KAAc,EAA2B,EAAE;QAChD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/C,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,OAAO;QAEP,UAAU;QACV,YAAY;QACZ,yBAAyB;QACzB,eAAe;QACf,qBAAqB;KACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { TokenLifecycleConfig, UseTokenLifecycleReturn } from "./types";
2
+ export { useTokenLifecycle } from "./useTokenLifecycle";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useTokenLifecycle } from "./useTokenLifecycle";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { AuthState } from "@0xmonaco/types";
2
+ export interface TokenLifecycleConfig {
3
+ /** Enable automatic token refresh (default: true) */
4
+ autoRefresh?: boolean;
5
+ /** Enable token persistence in localStorage (default: true) */
6
+ persistTokens?: boolean;
7
+ /** Buffer time in seconds before token expiry to trigger refresh (default: 300 = 5 minutes) */
8
+ refreshBufferSeconds?: number;
9
+ /** Callback when token refresh fails */
10
+ onRefreshError?: (error: Error) => void;
11
+ /** Callback when token is refreshed successfully */
12
+ onRefreshSuccess?: (authState: AuthState) => void;
13
+ }
14
+ export interface UseTokenLifecycleReturn {
15
+ /** Initialize token lifecycle with auth state */
16
+ initializeTokens: (authState: AuthState) => void;
17
+ /** Clear tokens and stop lifecycle management */
18
+ clearTokens: () => void;
19
+ /** Manually trigger token refresh */
20
+ refreshTokens: () => Promise<AuthState | null>;
21
+ /** Check if token is expired or near expiry */
22
+ isTokenExpired: (authState: AuthState | null) => boolean;
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+FAA+F;IAC/F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,uBAAuB;IACtC,iDAAiD;IACjD,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACjD,iDAAiD;IACjD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,qCAAqC;IACrC,aAAa,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC/C,+CAA+C;IAC/C,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC;CAC1D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import type { MonacoSDK } from "@0xmonaco/core";
2
+ import type { TokenLifecycleConfig, UseTokenLifecycleReturn } from "./types";
3
+ /**
4
+ * Hook for managing token lifecycle including automatic refresh and persistence
5
+ *
6
+ * @param sdk - Monaco SDK instance
7
+ * @param config - Configuration options for token lifecycle
8
+ * @returns Token lifecycle management functions
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * const { initializeTokens, clearTokens, refreshTokens } = useTokenLifecycle(sdk, {
13
+ * autoRefresh: true,
14
+ * persistTokens: true,
15
+ * refreshBufferSeconds: 300, // 5 minutes
16
+ * onRefreshError: (error) => console.error('Token refresh failed:', error),
17
+ * });
18
+ * ```
19
+ */
20
+ export declare const useTokenLifecycle: (sdk: MonacoSDK | null, config?: TokenLifecycleConfig) => UseTokenLifecycleReturn;
21
+ //# sourceMappingURL=useTokenLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokenLifecycle.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/useTokenLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAG7E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,SAAS,GAAG,IAAI,EAAE,SAAQ,oBAAyB,KAAG,uBA0I5F,CAAC"}
@@ -0,0 +1,126 @@
1
+ import { useCallback, useEffect, useMemo, useRef } from "react";
2
+ import { clearAuthState, getTimeUntilExpiry, isTokenExpired, saveAuthState } from "../../utils";
3
+ import { validateRefreshBuffer } from "./utils";
4
+ /**
5
+ * Hook for managing token lifecycle including automatic refresh and persistence
6
+ *
7
+ * @param sdk - Monaco SDK instance
8
+ * @param config - Configuration options for token lifecycle
9
+ * @returns Token lifecycle management functions
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * const { initializeTokens, clearTokens, refreshTokens } = useTokenLifecycle(sdk, {
14
+ * autoRefresh: true,
15
+ * persistTokens: true,
16
+ * refreshBufferSeconds: 300, // 5 minutes
17
+ * onRefreshError: (error) => console.error('Token refresh failed:', error),
18
+ * });
19
+ * ```
20
+ */
21
+ export const useTokenLifecycle = (sdk, config = {}) => {
22
+ const { autoRefresh = true, persistTokens = true, onRefreshError, onRefreshSuccess } = config;
23
+ const refreshBufferSeconds = validateRefreshBuffer(config.refreshBufferSeconds);
24
+ const refreshTimerRef = useRef(null);
25
+ const currentAuthStateRef = useRef(null);
26
+ const refreshPromiseRef = useRef(null);
27
+ const clearRefreshTimer = useCallback(() => {
28
+ if (refreshTimerRef.current) {
29
+ clearTimeout(refreshTimerRef.current);
30
+ refreshTimerRef.current = null;
31
+ }
32
+ }, []);
33
+ const isTokenExpiredCheck = useCallback((authState) => {
34
+ if (!authState)
35
+ return true;
36
+ return isTokenExpired(authState, refreshBufferSeconds);
37
+ }, [refreshBufferSeconds]);
38
+ const scheduleRefresh = useCallback((authState) => {
39
+ if (!autoRefresh)
40
+ return;
41
+ clearRefreshTimer();
42
+ const timeUntilExpiry = getTimeUntilExpiry(authState);
43
+ const refreshIn = Math.max(0, timeUntilExpiry - refreshBufferSeconds);
44
+ const refreshInMs = refreshIn * 1000;
45
+ refreshTimerRef.current = setTimeout(() => {
46
+ refreshTokensRef.current?.();
47
+ }, refreshInMs);
48
+ }, [autoRefresh, refreshBufferSeconds, clearRefreshTimer]);
49
+ const refreshTokens = useCallback(async () => {
50
+ if (!sdk)
51
+ return null;
52
+ if (refreshPromiseRef.current) {
53
+ return refreshPromiseRef.current;
54
+ }
55
+ const currentAuthState = currentAuthStateRef.current;
56
+ if (!currentAuthState?.refreshToken) {
57
+ console.warn("No refresh token available for token refresh");
58
+ return null;
59
+ }
60
+ const refreshPromise = (async () => {
61
+ try {
62
+ // Re-check SDK in case it became null during async operations
63
+ if (!sdk) {
64
+ console.warn("SDK became null during token refresh");
65
+ return null;
66
+ }
67
+ const newAuthState = await sdk.refreshAuth();
68
+ currentAuthStateRef.current = newAuthState;
69
+ if (persistTokens) {
70
+ saveAuthState(newAuthState);
71
+ }
72
+ scheduleRefresh(newAuthState);
73
+ onRefreshSuccess?.(newAuthState);
74
+ return newAuthState;
75
+ }
76
+ catch (error) {
77
+ const err = error instanceof Error ? error : new Error(String(error));
78
+ console.error("Failed to refresh tokens:", err);
79
+ if (persistTokens) {
80
+ clearAuthState();
81
+ }
82
+ currentAuthStateRef.current = null;
83
+ clearRefreshTimer();
84
+ onRefreshError?.(err);
85
+ return null;
86
+ }
87
+ finally {
88
+ refreshPromiseRef.current = null;
89
+ }
90
+ })();
91
+ refreshPromiseRef.current = refreshPromise;
92
+ return refreshPromise;
93
+ }, [sdk, persistTokens, onRefreshError, onRefreshSuccess, scheduleRefresh, clearRefreshTimer]);
94
+ const refreshTokensRef = useRef(refreshTokens);
95
+ useEffect(() => {
96
+ refreshTokensRef.current = refreshTokens;
97
+ }, [refreshTokens]);
98
+ const initializeTokens = useCallback((authState) => {
99
+ currentAuthStateRef.current = authState;
100
+ if (persistTokens) {
101
+ saveAuthState(authState);
102
+ }
103
+ if (autoRefresh) {
104
+ scheduleRefresh(authState);
105
+ }
106
+ }, [persistTokens, autoRefresh, scheduleRefresh]);
107
+ const clearTokens = useCallback(() => {
108
+ currentAuthStateRef.current = null;
109
+ clearRefreshTimer();
110
+ if (persistTokens) {
111
+ clearAuthState();
112
+ }
113
+ }, [persistTokens, clearRefreshTimer]);
114
+ useEffect(() => {
115
+ return () => {
116
+ clearRefreshTimer();
117
+ };
118
+ }, [clearRefreshTimer]);
119
+ return useMemo(() => ({
120
+ initializeTokens,
121
+ clearTokens,
122
+ refreshTokens,
123
+ isTokenExpired: isTokenExpiredCheck,
124
+ }), [initializeTokens, clearTokens, refreshTokens, isTokenExpiredCheck]);
125
+ };
126
+ //# sourceMappingURL=useTokenLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokenLifecycle.js","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/useTokenLifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validates and returns a safe refreshBufferSeconds value
3
+ *
4
+ * @param value - The refresh buffer value to validate (in seconds)
5
+ * @returns A safe refresh buffer value between 1-3600 seconds
6
+ */
7
+ export declare const validateRefreshBuffer: (value: number | undefined) => number;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,MAUjE,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Validates and returns a safe refreshBufferSeconds value
3
+ *
4
+ * @param value - The refresh buffer value to validate (in seconds)
5
+ * @returns A safe refresh buffer value between 1-3600 seconds
6
+ */
7
+ export const validateRefreshBuffer = (value) => {
8
+ const defaultValue = 300;
9
+ const buffer = value ?? defaultValue;
10
+ if (buffer < 1 || buffer > 3600) {
11
+ console.warn(`Invalid refreshBufferSeconds: ${buffer}. Must be between 1-3600 seconds. Using default: ${defaultValue}`);
12
+ return defaultValue;
13
+ }
14
+ return buffer;
15
+ };
16
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/hooks/useTokenLifecycle/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAyB,EAAU,EAAE;IACzE,MAAM,YAAY,GAAG,GAAG,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,IAAI,YAAY,CAAC;IAErC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,iCAAiC,MAAM,oDAAoD,YAAY,EAAE,CAAC,CAAC;QACxH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,17 +1,17 @@
1
- import type { CreateOrderResponse, CancelOrderResponse, ReplaceOrderResponse, GetPaginatedOrdersResponse, GetPaginatedOrdersParams, GetOrderResponse, OrderSide } from "@0xmonaco/types";
1
+ import type { 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?: {
5
- tradingMode?: string;
5
+ tradingMode?: TradingMode;
6
6
  useMasterBalance?: boolean;
7
7
  expirationDate?: string;
8
- timeInForce?: string;
8
+ timeInForce?: TimeInForce;
9
9
  }) => Promise<CreateOrderResponse>;
10
10
  /** Place a market order */
11
11
  placeMarketOrder: (tradingPairId: string, side: OrderSide, quantity: string, options?: {
12
- tradingMode?: string;
12
+ tradingMode?: TradingMode;
13
13
  slippageTolerance?: number;
14
- timeInForce?: string;
14
+ timeInForce?: TimeInForce;
15
15
  }) => Promise<CreateOrderResponse>;
16
16
  /** Cancel an existing order */
17
17
  cancelOrder: (orderId: string) => Promise<CancelOrderResponse>;
@@ -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,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EACV,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,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAC1G,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,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KACjF,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,CACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACxE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnC,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,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,CACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACxE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnC,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":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cAkH3B,CAAC"}
1
+ {"version":3,"file":"useTrade.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cAkH3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTrade.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTrade.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ export function convertOrderEventToTrade(event) {
2
2
  const { orderId, timestamp, data } = event;
3
3
  const eventData = data;
4
4
  return {
5
- price: eventData.price ?? eventData.averageFillPrice ?? "0",
5
+ price: eventData.executionPrice ?? eventData.price ?? eventData.averageFillPrice ?? "0",
6
6
  tradingPair: eventData.tradingPair,
7
7
  tradingPairId: eventData.tradingPairId,
8
- quantity: eventData.quantity ?? eventData.totalFilled,
8
+ quantity: eventData.executionQuantity ?? eventData.totalFilled ?? eventData.quantity ?? "0",
9
9
  userId: eventData.userId,
10
10
  tradingMode: eventData.tradingMode.toUpperCase(),
11
11
  orderId,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/hooks/useTradeFeed/utils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,wBAAwB,CAAC,KAAiB;IACxD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAoE,CAAC;IAEvF,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,gBAAgB,IAAI,GAAG;QAC3D,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,WAAW;QACrD,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW,EAAiB;QAC/D,OAAO;QACP,SAAS;QACT,IAAI,EAAE,SAAS,CAAC,IAAI;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/hooks/useTradeFeed/utils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,wBAAwB,CAAC,KAAiB;IACxD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAoE,CAAC;IAEvF,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,gBAAgB,IAAI,GAAG;QACvF,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,QAAQ,EAAE,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,QAAQ,IAAI,GAAG;QAC3F,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW,EAAiB;QAC/D,OAAO;QACP,SAAS;QACT,IAAI,EAAE,SAAS,CAAC,IAAI;KACrB,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export type { MonacoSDK, Network, SDKConfig } from "@0xmonaco/core";
2
2
  export type { AuthState, ChallengeResponse, TokenRefreshResponse, UserProfile } from "@0xmonaco/types";
3
3
  export * from "./hooks";
4
4
  export * from "./provider";
5
+ export * from "./utils";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvG,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvG,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./hooks";
2
2
  export * from "./provider";
3
+ export * from "./utils";
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { type MonacoContextValue, type MonacoProviderProps } from "./types";
2
- export declare const MonacoProvider: ({ children, clientId, network }: MonacoProviderProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MonacoProvider: ({ children, clientId, network, 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":"AAIA,OAAO,EAAwB,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAIlG,eAAO,MAAM,cAAc,GAAI,iCAAiC,mBAAmB,4CA+DlF,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;AAIlG,eAAO,MAAM,cAAc,GAAI,uEAAuE,mBAAmB,4CAoGxH,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,kBAQnC,CAAC"}
@@ -2,14 +2,18 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { MonacoSDK } from "@0xmonaco/core";
3
3
  import { createContext, useContext, useEffect, useMemo, useState } from "react";
4
4
  import { useWalletClient } from "wagmi";
5
+ import { useTokenLifecycle } from "../hooks";
6
+ import { loadAuthState } from "../utils";
5
7
  import { AuthenticationStatus } from "./types";
6
8
  const MonacoContext = createContext(null);
7
- export const MonacoProvider = ({ children, clientId, network }) => {
9
+ export const MonacoProvider = ({ children, clientId, network, tokenLifecycle: tokenLifecycleConfig }) => {
8
10
  const { data: walletClient } = useWalletClient();
9
11
  const [sdk, setSdk] = useState(null);
10
12
  const [error, setError] = useState(null);
11
13
  // Global authentication state (shared across all components)
12
14
  const [authenticationStatus, setAuthenticationStatus] = useState(AuthenticationStatus.UNAUTHENTICATED);
15
+ // Token lifecycle management
16
+ const tokenLifecycle = useTokenLifecycle(sdk, tokenLifecycleConfig);
13
17
  useEffect(() => {
14
18
  const initializeSDK = async () => {
15
19
  if (!walletClient) {
@@ -31,25 +35,60 @@ export const MonacoProvider = ({ children, clientId, network }) => {
31
35
  setSdk(null);
32
36
  });
33
37
  }, [network, walletClient]);
34
- // Monitor SDK authentication state changes
38
+ // Restore cached tokens on mount
35
39
  useEffect(() => {
36
- if (!sdk) {
37
- setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
40
+ if (!sdk)
38
41
  return;
42
+ const persistTokens = tokenLifecycleConfig?.persistTokens ?? true;
43
+ if (!persistTokens)
44
+ return;
45
+ const cachedAuthState = loadAuthState();
46
+ if (!cachedAuthState)
47
+ return;
48
+ // Check if token is expired
49
+ if (tokenLifecycle.isTokenExpired(cachedAuthState)) {
50
+ // Set the auth state first so refreshAuth has a refresh token to use
51
+ sdk.setAuthState(cachedAuthState);
52
+ tokenLifecycle.initializeTokens(cachedAuthState);
53
+ // Attempt to refresh
54
+ tokenLifecycle.refreshTokens().then((newAuthState) => {
55
+ if (newAuthState) {
56
+ // Refresh succeeded, SDK auth state is already updated by refreshAuth
57
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATED);
58
+ }
59
+ else {
60
+ // Refresh failed, clear tokens and SDK state
61
+ tokenLifecycle.clearTokens();
62
+ sdk.logout().catch(() => { }); // Ignore errors, we're already in cleanup mode
63
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
64
+ }
65
+ }).catch((err) => {
66
+ const normalizedError = err instanceof Error ? err : new Error(String(err));
67
+ setError(normalizedError);
68
+ tokenLifecycle.clearTokens();
69
+ sdk.logout().catch(() => { }); // Ignore errors, we're already in cleanup mode
70
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
71
+ });
72
+ }
73
+ else {
74
+ // Token is still valid, restore it
75
+ sdk.setAuthState(cachedAuthState);
76
+ tokenLifecycle.initializeTokens(cachedAuthState);
77
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATED);
39
78
  }
40
- const isAuthenticated = sdk.isAuthenticated();
41
- setAuthenticationStatus(isAuthenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
42
- }, [sdk]);
79
+ }, [sdk, tokenLifecycle, tokenLifecycleConfig?.persistTokens]);
43
80
  const contextValue = useMemo(() => ({
44
81
  sdk,
45
82
  clientId,
46
83
  error,
47
84
  // Global authentication state
48
85
  authenticationStatus,
86
+ // Token lifecycle management
87
+ tokenLifecycle,
49
88
  // Global authentication state setters
50
89
  setAuthenticationStatus,
51
90
  setError,
52
- }), [sdk, clientId, error, authenticationStatus]);
91
+ }), [sdk, clientId, error, authenticationStatus, tokenLifecycle]);
53
92
  return _jsx(MonacoContext.Provider, { value: contextValue, children: children });
54
93
  };
55
94
  export const useMonacoContext = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoProvider.js","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonacoProvider.js","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { IMonacoSDK } from "@0xmonaco/core";
2
2
  import type { Network } from "@0xmonaco/types";
3
3
  import type { ReactNode } from "react";
4
+ import type { TokenLifecycleConfig, UseTokenLifecycleReturn } from "../hooks";
4
5
  export declare enum AuthenticationStatus {
5
6
  /** User is not authenticated */
6
7
  UNAUTHENTICATED = "unauthenticated",
@@ -18,6 +19,8 @@ export interface MonacoContextValue {
18
19
  error: Error | null;
19
20
  /** Current authentication status */
20
21
  authenticationStatus: AuthenticationStatus;
22
+ /** Token lifecycle manager */
23
+ tokenLifecycle: UseTokenLifecycleReturn;
21
24
  /** Function to update authentication status */
22
25
  setAuthenticationStatus: (status: AuthenticationStatus) => void;
23
26
  /** Function to update error */
@@ -30,5 +33,7 @@ export interface MonacoProviderProps {
30
33
  clientId: string;
31
34
  /** Monaco Network API to use */
32
35
  network: Network;
36
+ /** Token lifecycle configuration options */
37
+ tokenLifecycle?: TokenLifecycleConfig;
33
38
  }
34
39
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,oBAAY,oBAAoB;IAC9B,gCAAgC;IAChC,eAAe,oBAAoB;IACnC,oCAAoC;IACpC,cAAc,mBAAmB;IACjC,yCAAyC;IACzC,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,oCAAoC;IACpC,oBAAoB,EAAE,oBAAoB,CAAC;IAG3C,+CAA+C;IAC/C,uBAAuB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChE,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAE9E,oBAAY,oBAAoB;IAC9B,gCAAgC;IAChC,eAAe,oBAAoB;IACnC,oCAAoC;IACpC,cAAc,mBAAmB;IACjC,yCAAyC;IACzC,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,oCAAoC;IACpC,oBAAoB,EAAE,oBAAoB,CAAC;IAG3C,8BAA8B;IAC9B,cAAc,EAAE,uBAAuB,CAAC;IAGxC,+CAA+C;IAC/C,uBAAuB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChE,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,gCAAgC;IAChC,2DAAmC,CAAA;IACnC,oCAAoC;IACpC,yDAAiC,CAAA;IACjC,yCAAyC;IACzC,uDAA+B,CAAA;AACjC,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,gCAAgC;IAChC,2DAAmC,CAAA;IACnC,oCAAoC;IACpC,yDAAiC,CAAA;IACjC,yCAAyC;IACzC,uDAA+B,CAAA;AACjC,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B"}
@@ -0,0 +1,2 @@
1
+ export * from "./tokenStorage";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./tokenStorage";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { AuthState } from "@0xmonaco/types";
2
+ /**
3
+ * Save auth state to localStorage
4
+ *
5
+ * @security This function stores authentication tokens (including refresh tokens) in localStorage,
6
+ * which is accessible to any JavaScript running on the page. This makes tokens vulnerable to XSS attacks.
7
+ *
8
+ * Security recommendations:
9
+ * - Implement Content Security Policy (CSP) headers to mitigate XSS risks
10
+ * - Sanitize all user input to prevent XSS vulnerabilities
11
+ * - Consider the tradeoffs: localStorage provides persistence across sessions but sacrifices XSS protection
12
+ * - For high-security requirements, consider httpOnly cookies (requires backend changes)
13
+ *
14
+ * @param authState - The authentication state to persist
15
+ */
16
+ export declare function saveAuthState(authState: AuthState): void;
17
+ /**
18
+ * Load auth state from localStorage
19
+ * @returns The persisted auth state or null if not found/invalid
20
+ */
21
+ export declare function loadAuthState(): AuthState | null;
22
+ /**
23
+ * Clear auth state from localStorage
24
+ */
25
+ export declare function clearAuthState(): void;
26
+ /**
27
+ * Check if the stored token is expired
28
+ * @param authState - The auth state to check
29
+ * @param bufferSeconds - Buffer time before actual expiry (default: 60 seconds)
30
+ * @returns True if token is expired or will expire within buffer time
31
+ */
32
+ export declare function isTokenExpired(authState: AuthState, bufferSeconds?: number): boolean;
33
+ /**
34
+ * Get time until token expiration in seconds
35
+ * @param authState - The auth state to check
36
+ * @returns Seconds until expiration (negative if already expired)
37
+ */
38
+ export declare function getTimeUntilExpiry(authState: AuthState): number;
39
+ //# sourceMappingURL=tokenStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenStorage.d.ts","sourceRoot":"","sources":["../../src/utils/tokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOjD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAYxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,SAAS,GAAG,IAAI,CAsChD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAMrC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,SAAK,GAAG,OAAO,CAGhF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAG/D"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Storage key for persisting auth tokens
3
+ */
4
+ const STORAGE_KEY = "monaco_auth_state";
5
+ /**
6
+ * Save auth state to localStorage
7
+ *
8
+ * @security This function stores authentication tokens (including refresh tokens) in localStorage,
9
+ * which is accessible to any JavaScript running on the page. This makes tokens vulnerable to XSS attacks.
10
+ *
11
+ * Security recommendations:
12
+ * - Implement Content Security Policy (CSP) headers to mitigate XSS risks
13
+ * - Sanitize all user input to prevent XSS vulnerabilities
14
+ * - Consider the tradeoffs: localStorage provides persistence across sessions but sacrifices XSS protection
15
+ * - For high-security requirements, consider httpOnly cookies (requires backend changes)
16
+ *
17
+ * @param authState - The authentication state to persist
18
+ */
19
+ export function saveAuthState(authState) {
20
+ try {
21
+ const data = JSON.stringify({
22
+ accessToken: authState.accessToken,
23
+ refreshToken: authState.refreshToken,
24
+ expiresAt: authState.expiresAt,
25
+ user: authState.user,
26
+ });
27
+ localStorage.setItem(STORAGE_KEY, data);
28
+ }
29
+ catch (error) {
30
+ console.warn("Failed to save auth state to localStorage:", error);
31
+ }
32
+ }
33
+ /**
34
+ * Load auth state from localStorage
35
+ * @returns The persisted auth state or null if not found/invalid
36
+ */
37
+ export function loadAuthState() {
38
+ try {
39
+ const data = localStorage.getItem(STORAGE_KEY);
40
+ if (!data)
41
+ return null;
42
+ const parsed = JSON.parse(data);
43
+ // Validate required fields and types
44
+ if (typeof parsed.accessToken !== "string" ||
45
+ parsed.accessToken.length === 0 ||
46
+ typeof parsed.refreshToken !== "string" ||
47
+ parsed.refreshToken.length === 0 ||
48
+ typeof parsed.expiresAt !== "number" ||
49
+ !Number.isFinite(parsed.expiresAt) ||
50
+ parsed.expiresAt <= 0 ||
51
+ typeof parsed.user !== "object" ||
52
+ parsed.user === null ||
53
+ typeof parsed.user.id !== "string" ||
54
+ parsed.user.id.length === 0 ||
55
+ typeof parsed.user.address !== "string" ||
56
+ parsed.user.address.length === 0) {
57
+ clearAuthState();
58
+ return null;
59
+ }
60
+ return {
61
+ accessToken: parsed.accessToken,
62
+ refreshToken: parsed.refreshToken,
63
+ expiresAt: parsed.expiresAt,
64
+ user: parsed.user,
65
+ };
66
+ }
67
+ catch (error) {
68
+ console.warn("Failed to load auth state from localStorage:", error);
69
+ clearAuthState();
70
+ return null;
71
+ }
72
+ }
73
+ /**
74
+ * Clear auth state from localStorage
75
+ */
76
+ export function clearAuthState() {
77
+ try {
78
+ localStorage.removeItem(STORAGE_KEY);
79
+ }
80
+ catch (error) {
81
+ console.warn("Failed to clear auth state from localStorage:", error);
82
+ }
83
+ }
84
+ /**
85
+ * Check if the stored token is expired
86
+ * @param authState - The auth state to check
87
+ * @param bufferSeconds - Buffer time before actual expiry (default: 60 seconds)
88
+ * @returns True if token is expired or will expire within buffer time
89
+ */
90
+ export function isTokenExpired(authState, bufferSeconds = 60) {
91
+ const now = Math.floor(Date.now() / 1000);
92
+ return authState.expiresAt <= now + bufferSeconds;
93
+ }
94
+ /**
95
+ * Get time until token expiration in seconds
96
+ * @param authState - The auth state to check
97
+ * @returns Seconds until expiration (negative if already expired)
98
+ */
99
+ export function getTimeUntilExpiry(authState) {
100
+ const now = Math.floor(Date.now() / 1000);
101
+ return authState.expiresAt - now;
102
+ }
103
+ //# sourceMappingURL=tokenStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenStorage.js","sourceRoot":"","sources":["../../src/utils/tokenStorage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmonaco/react",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -9,7 +9,7 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@0xmonaco/core": "0.3.0"
12
+ "@0xmonaco/core": "0.3.2"
13
13
  },
14
14
  "devDependencies": {
15
15
  "@types/react": "^19.1.12",