@0xmonaco/react 0.0.0-develop-20260121171719 → 0.0.0-develop-20260128053451

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 (36) hide show
  1. package/README.md +6 -6
  2. package/dist/hooks/index.d.ts +1 -0
  3. package/dist/hooks/index.d.ts.map +1 -1
  4. package/dist/hooks/index.js +1 -0
  5. package/dist/hooks/index.js.map +1 -1
  6. package/dist/hooks/useAuth/useAuth.d.ts.map +1 -1
  7. package/dist/hooks/useAuth/useAuth.js +3 -5
  8. package/dist/hooks/useAuth/useAuth.js.map +1 -1
  9. package/dist/hooks/useOHLCV/index.d.ts +3 -0
  10. package/dist/hooks/useOHLCV/index.d.ts.map +1 -0
  11. package/dist/hooks/useOHLCV/index.js +3 -0
  12. package/dist/hooks/useOHLCV/index.js.map +1 -0
  13. package/dist/hooks/useOHLCV/types.d.ts +31 -0
  14. package/dist/hooks/useOHLCV/types.d.ts.map +1 -0
  15. package/dist/hooks/useOHLCV/types.js +2 -0
  16. package/dist/hooks/useOHLCV/types.js.map +1 -0
  17. package/dist/hooks/useOHLCV/useOHLCV.d.ts +12 -0
  18. package/dist/hooks/useOHLCV/useOHLCV.d.ts.map +1 -0
  19. package/dist/hooks/useOHLCV/useOHLCV.js +64 -0
  20. package/dist/hooks/useOHLCV/useOHLCV.js.map +1 -0
  21. package/dist/provider/MonacoProvider.d.ts +1 -1
  22. package/dist/provider/MonacoProvider.d.ts.map +1 -1
  23. package/dist/provider/MonacoProvider.js +27 -18
  24. package/dist/provider/MonacoProvider.js.map +1 -1
  25. package/dist/provider/types.d.ts +8 -0
  26. package/dist/provider/types.d.ts.map +1 -1
  27. package/dist/provider/types.js.map +1 -1
  28. package/dist/utils/wagmi.d.ts +11 -0
  29. package/dist/utils/wagmi.d.ts.map +1 -0
  30. package/dist/utils/wagmi.js +17 -0
  31. package/dist/utils/wagmi.js.map +1 -0
  32. package/package.json +36 -38
  33. package/dist/provider/TradeFeedContext.d.ts +0 -12
  34. package/dist/provider/TradeFeedContext.d.ts.map +0 -1
  35. package/dist/provider/TradeFeedContext.js +0 -147
  36. package/dist/provider/TradeFeedContext.js.map +0 -1
package/README.md CHANGED
@@ -8,8 +8,8 @@ React hooks and components for the Monaco Protocol. Build trading applications w
8
8
  # Install the React SDK and its dependencies
9
9
  npm install @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
10
10
 
11
- # Or with pnpm
12
- pnpm add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
11
+ # Or with bun
12
+ bun add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
13
13
 
14
14
  # Or with yarn
15
15
  yarn add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
@@ -162,7 +162,7 @@ await cancelOrder(orderId);
162
162
 
163
163
  // Get orders
164
164
  const { data: orders } = await getPaginatedOrders({
165
- status: "PENDING",
165
+ status: "SUBMITTED",
166
166
  trading_pair: "BTC/USDC",
167
167
  });
168
168
  ```
@@ -347,19 +347,19 @@ Check out the [`examples/react-vite-app`](../../examples/react-vite-app) directo
347
347
  ### Build
348
348
 
349
349
  ```bash
350
- pnpm build
350
+ bun run build
351
351
  ```
352
352
 
353
353
  ### Watch Mode
354
354
 
355
355
  ```bash
356
- pnpm dev
356
+ bun run dev
357
357
  ```
358
358
 
359
359
  ### Lint
360
360
 
361
361
  ```bash
362
- pnpm lint
362
+ bun run lint
363
363
  ```
364
364
 
365
365
  ## Contributing
@@ -2,6 +2,7 @@ export * from "./useAuth";
2
2
  export * from "./useFees";
3
3
  export * from "./useMarket";
4
4
  export * from "./useMonaco";
5
+ export * from "./useOHLCV";
5
6
  export * from "./useOrderbook";
6
7
  export * from "./useProfile";
7
8
  export * from "./useTokenLifecycle";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -2,6 +2,7 @@ export * from "./useAuth";
2
2
  export * from "./useFees";
3
3
  export * from "./useMarket";
4
4
  export * from "./useMonaco";
5
+ export * from "./useOHLCV";
5
6
  export * from "./useOrderbook";
6
7
  export * from "./useProfile";
7
8
  export * from "./useTokenLifecycle";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aAyK1B,CAAC"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aAwK1B,CAAC"}
@@ -1,15 +1,13 @@
1
1
  import { useCallback } from "react";
2
- import { useWalletClient } from "wagmi";
3
2
  import { AuthenticationStatus, useMonacoContext } from "../../provider";
4
3
  import { useMonacoSDK } from "../useMonaco";
5
4
  export const useAuth = () => {
6
5
  const { sdk, clientId } = useMonacoSDK();
7
- const { authenticationStatus, setAuthenticationStatus, tokenLifecycle } = useMonacoContext();
8
- const { data: walletClient } = useWalletClient();
6
+ const { authenticationStatus, setAuthenticationStatus, tokenLifecycle, isWalletConnected } = useMonacoContext();
9
7
  const login = useCallback(async () => {
10
8
  if (!sdk)
11
9
  throw new Error("SDK not available");
12
- if (!walletClient)
10
+ if (!isWalletConnected)
13
11
  throw new Error("Wallet not connected");
14
12
  setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
15
13
  try {
@@ -24,7 +22,7 @@ export const useAuth = () => {
24
22
  setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
25
23
  throw error;
26
24
  }
27
- }, [sdk, walletClient, clientId, setAuthenticationStatus, tokenLifecycle]);
25
+ }, [sdk, isWalletConnected, clientId, setAuthenticationStatus, tokenLifecycle]);
28
26
  const logout = useCallback(async () => {
29
27
  if (!sdk)
30
28
  throw new Error("SDK not available");
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export { useOHLCV } from "./useOHLCV";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export { useOHLCV } from "./useOHLCV";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { Candlestick, GetCandlesticksParams, Interval } from "@0xmonaco/types";
2
+ import type { TradingMode } from "@0xmonaco/types";
3
+ /**
4
+ * Parameters for the useOHLCV hook
5
+ */
6
+ export interface UseOHLCVParams {
7
+ /** Trading pair UUID */
8
+ tradingPairId: string;
9
+ /** Trading mode (e.g., "CLOB") */
10
+ tradingMode: TradingMode;
11
+ /** Candlestick interval (1m, 5m, 15m, 1h, 4h, 1d) */
12
+ interval: Interval;
13
+ /** Optional parameters for initial candlestick fetch */
14
+ initialFetchParams?: GetCandlesticksParams;
15
+ }
16
+ /**
17
+ * Return type for the useOHLCV hook
18
+ */
19
+ export interface UseOHLCVReturn {
20
+ /** Array of candlesticks (oldest to newest) */
21
+ candlesticks: Candlestick[];
22
+ /** Whether the initial candlesticks are being fetched */
23
+ loading: boolean;
24
+ /** Whether currently subscribed to WebSocket updates */
25
+ subscribed: boolean;
26
+ /** Any error that occurred during connection or subscription */
27
+ error: Error | null;
28
+ /** Clear the current error */
29
+ clearError: () => void;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,qDAAqD;IACrD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IAEjB,wDAAwD;IACxD,UAAU,EAAE,OAAO,CAAC;IAEpB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { UseOHLCVParams, UseOHLCVReturn } from "./types";
2
+ /**
3
+ * Hook for subscribing to real-time OHLCV candlestick events via WebSocket (public)
4
+ *
5
+ * Fetches initial candlesticks from the REST API, then subscribes to real-time updates.
6
+ * When a new candlestick event arrives, it either updates the most recent candlestick
7
+ * (if timestamps match) or appends a new one.
8
+ *
9
+ * @param params - Configuration including tradingPairId, tradingMode, interval, and optional fetch params
10
+ */
11
+ export declare function useOHLCV(params: UseOHLCVParams): UseOHLCVReturn;
12
+ //# sourceMappingURL=useOHLCV.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOHLCV.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/useOHLCV.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CA8D/D"}
@@ -0,0 +1,64 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ import { useMonacoSDK } from "../useMonaco";
3
+ /**
4
+ * Hook for subscribing to real-time OHLCV candlestick events via WebSocket (public)
5
+ *
6
+ * Fetches initial candlesticks from the REST API, then subscribes to real-time updates.
7
+ * When a new candlestick event arrives, it either updates the most recent candlestick
8
+ * (if timestamps match) or appends a new one.
9
+ *
10
+ * @param params - Configuration including tradingPairId, tradingMode, interval, and optional fetch params
11
+ */
12
+ export function useOHLCV(params) {
13
+ const { tradingPairId, tradingMode, interval, initialFetchParams } = params;
14
+ const { sdk } = useMonacoSDK();
15
+ const [candlesticks, setCandlesticks] = useState([]);
16
+ const [loading, setLoading] = useState(false);
17
+ const [error, setError] = useState(null);
18
+ const [subscribed, setSubscribed] = useState(false);
19
+ const clearError = useCallback(() => setError(null), []);
20
+ useEffect(() => {
21
+ if (!sdk?.ws || !sdk?.market || !tradingPairId || !tradingMode || !interval) {
22
+ setSubscribed(false);
23
+ return;
24
+ }
25
+ setCandlesticks([]);
26
+ setError(null);
27
+ setLoading(true);
28
+ let unsubscribe;
29
+ sdk.market
30
+ .getCandlesticks(tradingPairId, interval, initialFetchParams)
31
+ .then((initialCandlesticks) => {
32
+ setCandlesticks(initialCandlesticks);
33
+ try {
34
+ unsubscribe = sdk.ws.ohlcv(tradingPairId, tradingMode, interval, (event) => {
35
+ setCandlesticks((prev) => {
36
+ if (prev.length === 0) {
37
+ return [event.candlestick];
38
+ }
39
+ const lastCandle = prev[prev.length - 1];
40
+ if (lastCandle.T === event.candlestick.T) {
41
+ const updated = [...prev];
42
+ updated[updated.length - 1] = event.candlestick;
43
+ return updated;
44
+ }
45
+ return [...prev, event.candlestick];
46
+ });
47
+ });
48
+ setSubscribed(true);
49
+ }
50
+ catch (err) {
51
+ setError(err instanceof Error ? err : new Error(String(err)));
52
+ setSubscribed(false);
53
+ }
54
+ })
55
+ .catch((err) => setError(err instanceof Error ? err : new Error(String(err))))
56
+ .finally(() => setLoading(false));
57
+ return () => {
58
+ unsubscribe?.();
59
+ setSubscribed(false);
60
+ };
61
+ }, [sdk?.ws, sdk?.market, tradingPairId, tradingMode, interval, initialFetchParams]);
62
+ return { candlesticks, loading, subscribed, error, clearError };
63
+ }
64
+ //# sourceMappingURL=useOHLCV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOHLCV.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/useOHLCV.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
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;AAIlG,eAAO,MAAM,cAAc,GAAI,uGAAuG,mBAAmB,4CAgHxJ,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,kBAQnC,CAAC"}
@@ -1,43 +1,51 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { MonacoSDK } from "@0xmonaco/core";
3
- import { createContext, useContext, useEffect, useMemo, useState } from "react";
4
- import { useWalletClient } from "wagmi";
3
+ import { createContext, useContext, useEffect, useMemo, useRef, useState } from "react";
5
4
  import { useTokenLifecycle } from "../hooks";
6
5
  import { loadAuthState } from "../utils";
7
6
  import { TradeFeedProvider } from "./TradeFeedProvider";
8
7
  import { AuthenticationStatus } from "./types";
9
8
  const MonacoContext = createContext(null);
10
- export const MonacoProvider = ({ children, clientId, network, seiRpcUrl, wsUrl, tokenLifecycle: tokenLifecycleConfig }) => {
11
- const { data: walletClient } = useWalletClient();
9
+ export const MonacoProvider = ({ children, clientId, network, seiRpcUrl, wsUrl, walletClient, tokenLifecycle: tokenLifecycleConfig }) => {
12
10
  const [sdk, setSdk] = useState(null);
13
11
  const [error, setError] = useState(null);
12
+ const sdkRef = useRef(null);
14
13
  // Global authentication state (shared across all components)
15
14
  const [authenticationStatus, setAuthenticationStatus] = useState(AuthenticationStatus.UNAUTHENTICATED);
16
15
  // Token lifecycle management
17
16
  const tokenLifecycle = useTokenLifecycle(sdk, tokenLifecycleConfig);
17
+ // Initialize SDK without wallet (for public APIs)
18
18
  useEffect(() => {
19
- const initializeSDK = async () => {
20
- if (!walletClient) {
21
- setSdk(null);
22
- return;
23
- }
19
+ if (sdkRef.current)
20
+ return; // Already initialized
21
+ try {
24
22
  setError(null);
25
23
  const sdkConfig = {
26
- walletClient,
27
24
  network,
28
25
  seiRpcUrl,
29
- wsUrl
26
+ wsUrl,
30
27
  };
31
28
  const newSdk = new MonacoSDK(sdkConfig);
29
+ sdkRef.current = newSdk;
32
30
  setSdk(newSdk);
33
- };
34
- initializeSDK().catch((err) => {
35
- // Normalize error to "Error" type and clear SDK on failure
31
+ }
32
+ catch (err) {
33
+ const normalizedError = err instanceof Error ? err : new Error(String(err));
34
+ setError(normalizedError);
35
+ }
36
+ }, [network, seiRpcUrl, wsUrl]);
37
+ // Update wallet client when it changes
38
+ useEffect(() => {
39
+ if (!sdkRef.current || !walletClient)
40
+ return;
41
+ try {
42
+ sdkRef.current.setWalletClient(walletClient);
43
+ }
44
+ catch (err) {
36
45
  const normalizedError = err instanceof Error ? err : new Error(String(err));
37
46
  setError(normalizedError);
38
- setSdk(null);
39
- });
40
- }, [network, walletClient, seiRpcUrl, wsUrl]);
47
+ }
48
+ }, [walletClient]);
41
49
  // Restore cached tokens when the provider mounts
42
50
  useEffect(() => {
43
51
  if (!sdk)
@@ -83,6 +91,7 @@ export const MonacoProvider = ({ children, clientId, network, seiRpcUrl, wsUrl,
83
91
  const contextValue = useMemo(() => ({
84
92
  sdk,
85
93
  clientId,
94
+ isWalletConnected: !!walletClient,
86
95
  error,
87
96
  // Global authentication state
88
97
  authenticationStatus,
@@ -91,7 +100,7 @@ export const MonacoProvider = ({ children, clientId, network, seiRpcUrl, wsUrl,
91
100
  // Global authentication state setters
92
101
  setAuthenticationStatus,
93
102
  setError,
94
- }), [sdk, clientId, error, authenticationStatus, tokenLifecycle]);
103
+ }), [sdk, clientId, walletClient, error, authenticationStatus, tokenLifecycle]);
95
104
  return (_jsx(MonacoContext.Provider, { value: contextValue, children: _jsx(TradeFeedProvider, { children: children }) }));
96
105
  };
97
106
  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,5 +1,6 @@
1
1
  import type { MonacoSDK, Network } from "@0xmonaco/types";
2
2
  import type { ReactNode } from "react";
3
+ import type { WalletClient } from "viem";
3
4
  import type { TokenLifecycleConfig, UseTokenLifecycleReturn } from "../hooks";
4
5
  export declare enum AuthenticationStatus {
5
6
  /** User is not authenticated */
@@ -14,6 +15,8 @@ export interface MonacoContextValue {
14
15
  sdk: MonacoSDK | null;
15
16
  /** Client ID for authentication */
16
17
  clientId: string;
18
+ /** Whether a wallet client is connected */
19
+ isWalletConnected: boolean;
17
20
  /** Any error that occurred (SDK initialization, authentication, etc.) */
18
21
  error: Error | null;
19
22
  /** Current authentication status */
@@ -40,6 +43,11 @@ export interface MonacoProviderProps {
40
43
  wsUrl: string;
41
44
  /** RPC URL for Sei blockchain interactions (required) */
42
45
  seiRpcUrl: string;
46
+ /**
47
+ * Optional wallet client for authenticated operations.
48
+ * Can be obtained from wagmi, RainbowKit, ConnectKit, or any viem-compatible wallet provider.
49
+ */
50
+ walletClient?: WalletClient;
43
51
  /** Token lifecycle configuration options */
44
52
  tokenLifecycle?: TokenLifecycleConfig;
45
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1D,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,SAAS,GAAG,IAAI,CAAC;IACtB,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;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACzC,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,SAAS,GAAG,IAAI,CAAC;IACtB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,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;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,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,11 @@
1
+ import type { WalletClient } from "viem";
2
+ /**
3
+ * A safe wrapper around wagmi's useWalletClient hook that handles
4
+ * cases where WagmiProvider is not present in the component tree.
5
+ *
6
+ * @returns Object with data property containing WalletClient or undefined
7
+ */
8
+ export declare const useWalletClientSafe: () => {
9
+ data: WalletClient | undefined;
10
+ };
11
+ //# sourceMappingURL=wagmi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wagmi.d.ts","sourceRoot":"","sources":["../../src/utils/wagmi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGzC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAO;IAAE,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;CAOtE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { useConfig, useWalletClient } from "wagmi";
2
+ /**
3
+ * A safe wrapper around wagmi's useWalletClient hook that handles
4
+ * cases where WagmiProvider is not present in the component tree.
5
+ *
6
+ * @returns Object with data property containing WalletClient or undefined
7
+ */
8
+ export const useWalletClientSafe = () => {
9
+ try {
10
+ useConfig();
11
+ return useWalletClient();
12
+ }
13
+ catch {
14
+ return { data: undefined };
15
+ }
16
+ };
17
+ //# sourceMappingURL=wagmi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wagmi.js","sourceRoot":"","sources":["../../src/utils/wagmi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAuC,EAAE;IAC1E,IAAI,CAAC;QACH,SAAS,EAAE,CAAC;QACZ,OAAO,eAAe,EAAwC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,39 +1,37 @@
1
1
  {
2
- "name": "@0xmonaco/react",
3
- "version": "0.0.0-develop-20260121171719",
4
- "type": "module",
5
- "main": "./dist/index.js",
6
- "module": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "files": [
9
- "dist"
10
- ],
11
- "dependencies": {
12
- "@0xmonaco/core": "0.0.0-develop-20260121171719",
13
- "@0xmonaco/types": "0.0.0-develop-20260121171719"
14
- },
15
- "devDependencies": {
16
- "@types/react": "^19.1.12",
17
- "typescript": "5.9.2",
18
- "react": "^18.3.1",
19
- "wagmi": "^2.17.5",
20
- "viem": "^2.31.7"
21
- },
22
- "peerDependencies": {
23
- "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
24
- "wagmi": "^2.17.5",
25
- "viem": "^2.31.7"
26
- },
27
- "exports": {
28
- ".": {
29
- "types": "./dist/index.d.ts",
30
- "default": "./dist/index.js"
31
- }
32
- },
33
- "scripts": {
34
- "build": "tsc -b",
35
- "dev": "tsc --watch",
36
- "clean": "rm -rf dist",
37
- "lint": "eslint src --ext .ts,.tsx"
38
- }
39
- }
2
+ "name": "@0xmonaco/react",
3
+ "version": "0.0.0-develop-20260128053451",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc -b",
13
+ "dev": "tsc --watch",
14
+ "clean": "rm -rf dist",
15
+ "lint": "eslint src --ext .ts,.tsx"
16
+ },
17
+ "dependencies": {
18
+ "@0xmonaco/core": "workspace:*",
19
+ "@0xmonaco/types": "workspace:*"
20
+ },
21
+ "devDependencies": {
22
+ "@types/react": "^19.1.12",
23
+ "typescript": "5.9.2",
24
+ "react": "^18.3.1"
25
+ },
26
+ "peerDependencies": {
27
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
28
+ "wagmi": "^2.0.0",
29
+ "viem": "^2.0.0"
30
+ },
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/index.d.ts",
34
+ "default": "./dist/index.js"
35
+ }
36
+ }
37
+ }
@@ -1,12 +0,0 @@
1
- import type { MonacoSDK } from "@0xmonaco/types";
2
- import { type ReactNode } from "react";
3
- import type { TradeFeedContextValue } from "./types";
4
- export declare const TradeFeedContext: import("react").Context<TradeFeedContextValue | null>;
5
- interface TradeFeedProviderProps {
6
- children: ReactNode;
7
- sdk: MonacoSDK | null;
8
- }
9
- export declare const TradeFeedProvider: ({ children, sdk }: TradeFeedProviderProps) => import("react/jsx-runtime").JSX.Element;
10
- export declare const useTradeFeedContext: () => TradeFeedContextValue;
11
- export {};
12
- //# sourceMappingURL=TradeFeedContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TradeFeedContext.d.ts","sourceRoot":"","sources":["../../src/provider/TradeFeedContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAgF,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrH,OAAO,KAAK,EAAE,qBAAqB,EAAyB,MAAM,SAAS,CAAC;AAI5E,eAAO,MAAM,gBAAgB,uDAAoD,CAAC;AAElF,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB,GAAI,mBAAmB,sBAAsB,4CAgJ1E,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,qBAQtC,CAAC"}
@@ -1,147 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
3
- const MAX_TRADES = 50;
4
- export const TradeFeedContext = createContext(null);
5
- export const TradeFeedProvider = ({ children, sdk }) => {
6
- const [subscriptions, setSubscriptions] = useState(new Map());
7
- const subscriptionsRef = useRef(subscriptions);
8
- const unsubscribersRef = useRef(new Map());
9
- const activeSubscriptionsRef = useRef(new Set());
10
- // Keep ref in sync with state
11
- subscriptionsRef.current = subscriptions;
12
- // Cleanup all subscriptions when SDK changes or unmounts
13
- useEffect(() => {
14
- return () => {
15
- for (const unsub of unsubscribersRef.current.values()) {
16
- unsub();
17
- }
18
- unsubscribersRef.current.clear();
19
- activeSubscriptionsRef.current.clear();
20
- setSubscriptions(new Map());
21
- };
22
- }, [sdk]);
23
- const subscribe = useCallback((tradingPairId) => {
24
- if (!sdk?.ws || !sdk?.trades)
25
- return;
26
- // Check if already subscribed (outside setState to avoid side effects in callback)
27
- if (activeSubscriptionsRef.current.has(tradingPairId)) {
28
- // Already subscribed, just increment subscriber count
29
- setSubscriptions((prev) => {
30
- const existing = prev.get(tradingPairId);
31
- if (!existing)
32
- return prev;
33
- const updated = new Map(prev);
34
- updated.set(tradingPairId, { ...existing, subscriberCount: existing.subscriberCount + 1 });
35
- return updated;
36
- });
37
- return;
38
- }
39
- // Mark as active before any async work
40
- activeSubscriptionsRef.current.add(tradingPairId);
41
- // Create initial subscription state
42
- setSubscriptions((prev) => {
43
- const updated = new Map(prev);
44
- updated.set(tradingPairId, {
45
- trades: [],
46
- subscribed: true,
47
- error: null,
48
- subscriberCount: 1,
49
- });
50
- return updated;
51
- });
52
- // Fetch initial trades (side effect outside setState)
53
- sdk.trades
54
- .getTrades(tradingPairId, { limit: MAX_TRADES })
55
- .then((initialTrades) => {
56
- // Check if subscription was cancelled during fetch
57
- if (!activeSubscriptionsRef.current.has(tradingPairId))
58
- return;
59
- setSubscriptions((curr) => {
60
- const sub = curr.get(tradingPairId);
61
- if (!sub)
62
- return curr;
63
- const next = new Map(curr);
64
- next.set(tradingPairId, { ...sub, trades: initialTrades, error: null });
65
- return next;
66
- });
67
- })
68
- .catch((err) => {
69
- // Check if subscription was cancelled during fetch
70
- if (!activeSubscriptionsRef.current.has(tradingPairId))
71
- return;
72
- setSubscriptions((curr) => {
73
- const sub = curr.get(tradingPairId);
74
- if (!sub)
75
- return curr;
76
- const next = new Map(curr);
77
- next.set(tradingPairId, {
78
- ...sub,
79
- error: err instanceof Error ? err : new Error(String(err)),
80
- });
81
- return next;
82
- });
83
- });
84
- // Subscribe to WebSocket (side effect outside setState)
85
- const wsUnsubscribe = sdk.ws.trades(tradingPairId, (event) => {
86
- // Check if subscription is still active
87
- if (!activeSubscriptionsRef.current.has(tradingPairId))
88
- return;
89
- setSubscriptions((curr) => {
90
- const sub = curr.get(tradingPairId);
91
- if (!sub)
92
- return curr;
93
- const exists = sub.trades.some((t) => t.data.tradeId === event.data.tradeId);
94
- if (exists)
95
- return curr;
96
- const next = new Map(curr);
97
- next.set(tradingPairId, {
98
- ...sub,
99
- trades: [event, ...sub.trades].slice(0, MAX_TRADES),
100
- });
101
- return next;
102
- });
103
- });
104
- unsubscribersRef.current.set(tradingPairId, wsUnsubscribe);
105
- }, [sdk]);
106
- const unsubscribe = useCallback((tradingPairId) => {
107
- // Read from ref to avoid dependency on subscriptions state
108
- const current = subscriptionsRef.current.get(tradingPairId);
109
- if (!current)
110
- return;
111
- if (current.subscriberCount > 1) {
112
- // Other subscribers still exist, just decrement
113
- setSubscriptions((prev) => {
114
- const existing = prev.get(tradingPairId);
115
- if (!existing || existing.subscriberCount <= 1)
116
- return prev;
117
- const updated = new Map(prev);
118
- updated.set(tradingPairId, { ...existing, subscriberCount: existing.subscriberCount - 1 });
119
- return updated;
120
- });
121
- return;
122
- }
123
- // Last subscriber - perform cleanup (side effects outside setState)
124
- activeSubscriptionsRef.current.delete(tradingPairId);
125
- const unsub = unsubscribersRef.current.get(tradingPairId);
126
- if (unsub) {
127
- unsub();
128
- unsubscribersRef.current.delete(tradingPairId);
129
- }
130
- // Then update state
131
- setSubscriptions((prev) => {
132
- const updated = new Map(prev);
133
- updated.delete(tradingPairId);
134
- return updated;
135
- });
136
- }, []);
137
- const contextValue = useMemo(() => ({ subscribe, unsubscribe, subscriptions }), [subscribe, unsubscribe, subscriptions]);
138
- return _jsx(TradeFeedContext.Provider, { value: contextValue, children: children });
139
- };
140
- export const useTradeFeedContext = () => {
141
- const context = useContext(TradeFeedContext);
142
- if (!context) {
143
- throw new Error("useTradeFeedContext must be used within a MonacoProvider.");
144
- }
145
- return context;
146
- };
147
- //# sourceMappingURL=TradeFeedContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TradeFeedContext.js","sourceRoot":"","sources":["../../src/provider/TradeFeedContext.tsx"],"names":[],"mappings":"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"}