@0xmonaco/react 0.1.5 → 0.1.7

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 (81) hide show
  1. package/dist/hooks/index.d.ts +6 -0
  2. package/dist/hooks/index.d.ts.map +1 -0
  3. package/dist/hooks/index.js +6 -0
  4. package/dist/hooks/index.js.map +1 -0
  5. package/dist/hooks/useAuth/index.d.ts +3 -0
  6. package/dist/hooks/useAuth/index.d.ts.map +1 -0
  7. package/dist/hooks/useAuth/index.js +2 -0
  8. package/dist/hooks/useAuth/index.js.map +1 -0
  9. package/dist/hooks/useAuth/types.d.ts +25 -0
  10. package/dist/hooks/useAuth/types.d.ts.map +1 -0
  11. package/dist/hooks/useAuth/types.js +2 -0
  12. package/dist/hooks/useAuth/types.js.map +1 -0
  13. package/dist/hooks/useAuth/useAuth.d.ts +3 -0
  14. package/dist/hooks/useAuth/useAuth.d.ts.map +1 -0
  15. package/dist/hooks/useAuth/useAuth.js +153 -0
  16. package/dist/hooks/useAuth/useAuth.js.map +1 -0
  17. package/dist/hooks/useMonaco/index.d.ts +3 -0
  18. package/dist/hooks/useMonaco/index.d.ts.map +1 -0
  19. package/dist/hooks/useMonaco/index.js +2 -0
  20. package/dist/hooks/useMonaco/index.js.map +1 -0
  21. package/dist/hooks/useMonaco/types.d.ts +14 -0
  22. package/dist/hooks/useMonaco/types.d.ts.map +1 -0
  23. package/dist/hooks/useMonaco/types.js +2 -0
  24. package/dist/hooks/useMonaco/types.js.map +1 -0
  25. package/dist/hooks/useMonaco/useMonaco.d.ts +3 -0
  26. package/dist/hooks/useMonaco/useMonaco.d.ts.map +1 -0
  27. package/dist/hooks/useMonaco/useMonaco.js +14 -0
  28. package/dist/hooks/useMonaco/useMonaco.js.map +1 -0
  29. package/dist/hooks/useProfile/index.d.ts +3 -0
  30. package/dist/hooks/useProfile/index.d.ts.map +1 -0
  31. package/dist/hooks/useProfile/index.js +2 -0
  32. package/dist/hooks/useProfile/index.js.map +1 -0
  33. package/dist/hooks/useProfile/types.d.ts +10 -0
  34. package/dist/hooks/useProfile/types.d.ts.map +1 -0
  35. package/dist/hooks/useProfile/types.js +2 -0
  36. package/dist/hooks/useProfile/types.js.map +1 -0
  37. package/dist/hooks/useProfile/useProfile.d.ts +3 -0
  38. package/dist/hooks/useProfile/useProfile.d.ts.map +1 -0
  39. package/dist/hooks/useProfile/useProfile.js +21 -0
  40. package/dist/hooks/useProfile/useProfile.js.map +1 -0
  41. package/dist/hooks/useTrade/index.d.ts +3 -0
  42. package/dist/hooks/useTrade/index.d.ts.map +1 -0
  43. package/dist/hooks/useTrade/index.js +2 -0
  44. package/dist/hooks/useTrade/index.js.map +1 -0
  45. package/dist/hooks/useTrade/types.d.ts +24 -0
  46. package/dist/hooks/useTrade/types.d.ts.map +1 -0
  47. package/dist/hooks/useTrade/types.js +2 -0
  48. package/dist/hooks/useTrade/types.js.map +1 -0
  49. package/dist/hooks/useTrade/useTrade.d.ts +3 -0
  50. package/dist/hooks/useTrade/useTrade.d.ts.map +1 -0
  51. package/dist/hooks/useTrade/useTrade.js +83 -0
  52. package/dist/hooks/useTrade/useTrade.js.map +1 -0
  53. package/dist/hooks/useVault/index.d.ts +3 -0
  54. package/dist/hooks/useVault/index.d.ts.map +1 -0
  55. package/dist/hooks/useVault/index.js +2 -0
  56. package/dist/hooks/useVault/index.js.map +1 -0
  57. package/dist/hooks/useVault/types.d.ts +16 -0
  58. package/dist/hooks/useVault/types.d.ts.map +1 -0
  59. package/dist/hooks/useVault/types.js +2 -0
  60. package/dist/hooks/useVault/types.js.map +1 -0
  61. package/dist/hooks/useVault/useVault.d.ts +3 -0
  62. package/dist/hooks/useVault/useVault.d.ts.map +1 -0
  63. package/dist/hooks/useVault/useVault.js +66 -0
  64. package/dist/hooks/useVault/useVault.js.map +1 -0
  65. package/dist/index.d.ts +5 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +3 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/provider/MonacoProvider.d.ts +4 -0
  70. package/dist/provider/MonacoProvider.d.ts.map +1 -0
  71. package/dist/provider/MonacoProvider.js +109 -0
  72. package/dist/provider/MonacoProvider.js.map +1 -0
  73. package/dist/provider/index.d.ts +3 -0
  74. package/dist/provider/index.d.ts.map +1 -0
  75. package/dist/provider/index.js +3 -0
  76. package/dist/provider/index.js.map +1 -0
  77. package/dist/provider/types.d.ts +36 -0
  78. package/dist/provider/types.d.ts.map +1 -0
  79. package/dist/provider/types.js +10 -0
  80. package/dist/provider/types.js.map +1 -0
  81. package/package.json +10 -6
@@ -0,0 +1,6 @@
1
+ export * from "./useAuth";
2
+ export * from "./useMonaco";
3
+ export * from "./useProfile";
4
+ export * from "./useTrade";
5
+ export * from "./useVault";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./useAuth";
2
+ export * from "./useMonaco";
3
+ export * from "./useProfile";
4
+ export * from "./useTrade";
5
+ export * from "./useVault";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type * from "./types";
2
+ export { useAuth } from "./useAuth";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useAuth } from "./useAuth";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { AuthState, ChallengeResponse, TokenRefreshResponse, VerifyResponse } from "@0xmonaco/types";
2
+ import type { AuthenticationStatus } from "../../provider";
3
+ export interface UseAuthState {
4
+ /** Current authentication status */
5
+ authenticationStatus: AuthenticationStatus;
6
+ }
7
+ export interface UseAuthReturn extends UseAuthState {
8
+ /** Complete authentication flow */
9
+ login: () => Promise<AuthState>;
10
+ /** Logout user and clear state */
11
+ logout: () => Promise<void>;
12
+ /** Refresh authentication tokens */
13
+ refreshAuth: () => Promise<AuthState>;
14
+ /** Sign a challenge message */
15
+ signChallenge: (message: string) => Promise<string>;
16
+ /** Create authentication challenge */
17
+ createChallenge: (address: string) => Promise<ChallengeResponse>;
18
+ /** Complete authentication with signature */
19
+ authenticate: () => Promise<VerifyResponse>;
20
+ /** Refresh access token */
21
+ refreshToken: (refreshToken: string) => Promise<TokenRefreshResponse>;
22
+ /** Revoke refresh token */
23
+ revokeToken: (refreshToken: string) => Promise<void>;
24
+ }
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,mCAAmC;IACnC,KAAK,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,kCAAkC;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,oCAAoC;IACpC,WAAW,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,+BAA+B;IAC/B,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,sCAAsC;IACtC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,6CAA6C;IAC7C,YAAY,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5C,2BAA2B;IAC3B,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtE,2BAA2B;IAC3B,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { UseAuthReturn } from "./types";
2
+ export declare const useAuth: () => UseAuthReturn;
3
+ //# sourceMappingURL=useAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aAsL1B,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { useCallback } from "react";
2
+ import { useWalletClient } from "wagmi";
3
+ import { AuthenticationStatus } from "../../provider";
4
+ import { useMonacoContext } from "../../provider/MonacoProvider";
5
+ import { useMonacoSDK } from "../useMonaco";
6
+ export const useAuth = () => {
7
+ const { sdk, clientId } = useMonacoSDK();
8
+ const { authenticationStatus, setAuthenticationStatus, setProfile } = useMonacoContext();
9
+ const { data: walletClient } = useWalletClient();
10
+ const login = useCallback(async () => {
11
+ if (!sdk)
12
+ throw new Error("SDK not available");
13
+ if (!walletClient)
14
+ throw new Error("Wallet not connected");
15
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
16
+ try {
17
+ const authState = await sdk.login(clientId);
18
+ const authenticated = sdk.isAuthenticated();
19
+ setAuthenticationStatus(authenticated
20
+ ? AuthenticationStatus.AUTHENTICATED
21
+ : AuthenticationStatus.UNAUTHENTICATED);
22
+ return authState;
23
+ }
24
+ catch (error) {
25
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
26
+ throw error;
27
+ }
28
+ }, [sdk, walletClient, clientId, setAuthenticationStatus]);
29
+ const logout = useCallback(async () => {
30
+ if (!sdk)
31
+ throw new Error("SDK not available");
32
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
33
+ try {
34
+ await sdk.logout();
35
+ setProfile(null);
36
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
37
+ }
38
+ catch (error) {
39
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
40
+ throw error;
41
+ }
42
+ }, [sdk, setProfile, setAuthenticationStatus]);
43
+ const refreshAuth = useCallback(async () => {
44
+ if (!sdk)
45
+ throw new Error("SDK not available");
46
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
47
+ try {
48
+ const result = await sdk.refreshAuth();
49
+ const authenticated = sdk.isAuthenticated();
50
+ setAuthenticationStatus(authenticated
51
+ ? AuthenticationStatus.AUTHENTICATED
52
+ : AuthenticationStatus.UNAUTHENTICATED);
53
+ return result;
54
+ }
55
+ catch (error) {
56
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
57
+ throw error;
58
+ }
59
+ }, [sdk, setAuthenticationStatus]);
60
+ const signChallenge = useCallback(async (message) => {
61
+ if (!sdk)
62
+ throw new Error("SDK not available");
63
+ if (!message?.trim())
64
+ throw new Error("Message is required and cannot be empty");
65
+ return await sdk.auth.signChallenge(message);
66
+ }, [sdk]);
67
+ const createChallenge = useCallback(async (address) => {
68
+ if (!sdk)
69
+ throw new Error("SDK not available");
70
+ if (!address?.trim())
71
+ throw new Error("Address is required and cannot be empty");
72
+ if (!clientId?.trim())
73
+ throw new Error("Client ID is required and cannot be empty");
74
+ return await sdk.auth.createChallenge(address, clientId);
75
+ }, [sdk, clientId]);
76
+ const authenticate = useCallback(async () => {
77
+ if (!sdk)
78
+ throw new Error("SDK not available");
79
+ if (!clientId?.trim())
80
+ throw new Error("Client ID is required and cannot be empty");
81
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
82
+ try {
83
+ const result = await sdk.auth.authenticate(clientId);
84
+ const authenticated = sdk.isAuthenticated();
85
+ setAuthenticationStatus(authenticated
86
+ ? AuthenticationStatus.AUTHENTICATED
87
+ : AuthenticationStatus.UNAUTHENTICATED);
88
+ return {
89
+ accessToken: result.accessToken,
90
+ refreshToken: result.refreshToken,
91
+ expiresAt: result.expiresAt,
92
+ user: result.user,
93
+ };
94
+ }
95
+ catch (error) {
96
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
97
+ throw error;
98
+ }
99
+ }, [sdk, clientId, setAuthenticationStatus]);
100
+ const refreshToken = useCallback(async (token) => {
101
+ if (!sdk)
102
+ throw new Error("SDK not available");
103
+ if (!token?.trim())
104
+ throw new Error("Refresh token is required and cannot be empty");
105
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
106
+ try {
107
+ const result = await sdk.auth.refreshToken(token);
108
+ const authenticated = sdk.isAuthenticated();
109
+ setAuthenticationStatus(authenticated
110
+ ? AuthenticationStatus.AUTHENTICATED
111
+ : AuthenticationStatus.UNAUTHENTICATED);
112
+ return result;
113
+ }
114
+ catch (error) {
115
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
116
+ throw error;
117
+ }
118
+ }, [sdk, setAuthenticationStatus]);
119
+ const revokeToken = useCallback(async (token) => {
120
+ if (!sdk)
121
+ throw new Error("SDK not available");
122
+ if (!token?.trim())
123
+ throw new Error("Refresh token is required and cannot be empty");
124
+ setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
125
+ try {
126
+ await sdk.auth.revokeToken(token);
127
+ const authenticated = sdk.isAuthenticated();
128
+ setAuthenticationStatus(authenticated
129
+ ? AuthenticationStatus.AUTHENTICATED
130
+ : AuthenticationStatus.UNAUTHENTICATED);
131
+ }
132
+ catch (error) {
133
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
134
+ throw error;
135
+ }
136
+ }, [sdk, setAuthenticationStatus]);
137
+ return {
138
+ // State
139
+ authenticationStatus,
140
+ // Primary auth actions
141
+ login,
142
+ logout,
143
+ // Token management
144
+ refreshAuth,
145
+ refreshToken,
146
+ revokeToken,
147
+ // Low-level auth functions
148
+ authenticate,
149
+ signChallenge,
150
+ createChallenge,
151
+ };
152
+ };
153
+ //# sourceMappingURL=useAuth.js.map
@@ -0,0 +1 @@
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 type { UseMonacoReturn } from "./types";
2
+ export { useMonacoSDK } from "./useMonaco";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMonaco/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useMonacoSDK } from "./useMonaco";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useMonaco/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { IMonacoSDK } from "@0xmonaco/core";
2
+ export interface UseMonacoReturn {
3
+ /** Monaco SDK instance */
4
+ sdk: IMonacoSDK | null;
5
+ /** Client ID for authentication */
6
+ clientId: string;
7
+ /** Any error that occurred (SDK initialization, authentication, etc.) */
8
+ error: Error | null;
9
+ /** Clear current error state */
10
+ clearError: () => void;
11
+ /** Set error state */
12
+ setError: (error: Error | null) => void;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMonaco/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,gCAAgC;IAChC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,sBAAsB;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;CACzC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useMonaco/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { UseMonacoReturn } from "./types";
2
+ export declare const useMonacoSDK: () => UseMonacoReturn;
3
+ //# sourceMappingURL=useMonaco.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMonaco.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMonaco/useMonaco.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,YAAY,QAAO,eAY/B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { useCallback } from "react";
2
+ import { useMonacoContext } from "../../provider/MonacoProvider";
3
+ export const useMonacoSDK = () => {
4
+ const { sdk, clientId, error, setError } = useMonacoContext();
5
+ const clearError = useCallback(() => setError(null), [setError]);
6
+ return {
7
+ sdk,
8
+ clientId,
9
+ error,
10
+ clearError,
11
+ setError,
12
+ };
13
+ };
14
+ //# sourceMappingURL=useMonaco.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMonaco.js","sourceRoot":"","sources":["../../../src/hooks/useMonaco/useMonaco.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAoB,EAAE;IACjD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE9D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjE,OAAO;QACN,GAAG;QACH,QAAQ;QACR,KAAK;QACL,UAAU;QACV,QAAQ;KACR,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { useProfile } from "./useProfile";
2
+ export type { UseProfileReturn, UseProfileState } from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProfile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useProfile } from "./useProfile";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useProfile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { UserProfile } from "@0xmonaco/types";
2
+ export interface UseProfileState {
3
+ /** User profile data */
4
+ profile: UserProfile | null;
5
+ }
6
+ export interface UseProfileReturn extends UseProfileState {
7
+ /** Manually fetch profile */
8
+ fetchProfile: () => Promise<UserProfile>;
9
+ }
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProfile/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,6BAA6B;IAC7B,YAAY,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;CAC1C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useProfile/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { UseProfileReturn } from "./types";
2
+ export declare const useProfile: () => UseProfileReturn;
3
+ //# sourceMappingURL=useProfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProfile.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProfile/useProfile.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,UAAU,QAAO,gBAmB7B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { useCallback } from "react";
2
+ import { useMonacoContext } from "../../provider/MonacoProvider";
3
+ import { useMonacoSDK } from "../useMonaco";
4
+ export const useProfile = () => {
5
+ const { sdk } = useMonacoSDK();
6
+ const { profile, setProfile } = useMonacoContext();
7
+ const fetchProfile = useCallback(async () => {
8
+ if (!sdk)
9
+ throw new Error("SDK not available");
10
+ const userProfile = await sdk.profile.getProfile();
11
+ setProfile(userProfile);
12
+ return userProfile;
13
+ }, [sdk, setProfile]);
14
+ return {
15
+ // State
16
+ profile,
17
+ // Actions
18
+ fetchProfile,
19
+ };
20
+ };
21
+ //# sourceMappingURL=useProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProfile.js","sourceRoot":"","sources":["../../../src/hooks/useProfile/useProfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAqB,EAAE;IAChD,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEnD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC3C,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;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtB,OAAO;QACN,QAAQ;QACR,OAAO;QAEP,UAAU;QACV,YAAY;KACZ,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { UseTradeReturn } from "./types";
2
+ export { useTrade } from "./useTrade";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useTrade } from "./useTrade";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { CreateOrderResponse, CancelOrderResponse, ReplaceOrderResponse, GetPaginatedOrdersResponse, GetPaginatedOrdersParams, GetOrderResponse, OrderSide } from "@0xmonaco/types";
2
+ export interface UseTradeReturn {
3
+ /** Place a limit order */
4
+ placeLimitOrder: (market: string, side: OrderSide, quantity: string, price: string, options?: {
5
+ tradingMode?: string;
6
+ }) => Promise<CreateOrderResponse>;
7
+ /** Place a market order */
8
+ placeMarketOrder: (market: string, side: OrderSide, quantity: string, options?: {
9
+ tradingMode?: string;
10
+ }) => Promise<CreateOrderResponse>;
11
+ /** Cancel an existing order */
12
+ cancelOrder: (orderId: string) => Promise<CancelOrderResponse>;
13
+ /** Replace an existing order */
14
+ replaceOrder: (orderId: string, newOrder: {
15
+ price?: string;
16
+ quantity: string;
17
+ useMasterBalance?: boolean;
18
+ }) => Promise<ReplaceOrderResponse>;
19
+ /** Get paginated orders */
20
+ getPaginatedOrders: (params?: GetPaginatedOrdersParams) => Promise<GetPaginatedOrdersResponse>;
21
+ /** Get a single order by ID */
22
+ getOrder: (orderId: string) => Promise<GetOrderResponse>;
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,2BAA2B;IAC3B,gBAAgB,EAAE,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,+BAA+B;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAG/D,gCAAgC;IAChC,YAAY,EAAE,CACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvE,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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { UseTradeReturn } from "./types";
2
+ export declare const useTrade: () => UseTradeReturn;
3
+ //# sourceMappingURL=useTrade.d.ts.map
@@ -0,0 +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,cAwI3B,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { useCallback } from "react";
2
+ import { useMonacoSDK } from "../useMonaco";
3
+ export const useTrade = () => {
4
+ const { sdk } = useMonacoSDK();
5
+ const placeLimitOrder = useCallback(async (market, side, quantity, price, options) => {
6
+ if (!sdk)
7
+ throw new Error("SDK not available");
8
+ if (!market?.trim())
9
+ throw new Error("Market is required and cannot be empty");
10
+ if (!side)
11
+ throw new Error("Order side is required");
12
+ if (!quantity?.trim())
13
+ throw new Error("Quantity is required and cannot be empty");
14
+ if (!price?.trim())
15
+ throw new Error("Price is required and cannot be empty");
16
+ if (Number(quantity) <= 0)
17
+ throw new Error("Quantity must be greater than 0");
18
+ if (Number(price) <= 0)
19
+ throw new Error("Price must be greater than 0");
20
+ return await sdk.trading.placeLimitOrder(market, side, quantity, price, options);
21
+ }, [sdk]);
22
+ const placeMarketOrder = useCallback(async (market, side, quantity, options) => {
23
+ if (!sdk)
24
+ throw new Error("SDK not available");
25
+ if (!market?.trim())
26
+ throw new Error("Market is required and cannot be empty");
27
+ if (!side)
28
+ throw new Error("Order side is required");
29
+ if (!quantity?.trim())
30
+ throw new Error("Quantity is required and cannot be empty");
31
+ if (Number(quantity) <= 0)
32
+ throw new Error("Quantity must be greater than 0");
33
+ return await sdk.trading.placeMarketOrder(market, side, quantity, options);
34
+ }, [sdk]);
35
+ const cancelOrder = useCallback(async (orderId) => {
36
+ if (!sdk)
37
+ throw new Error("SDK not available");
38
+ if (!orderId?.trim())
39
+ throw new Error("Order ID is required and cannot be empty");
40
+ return await sdk.trading.cancelOrder(orderId);
41
+ }, [sdk]);
42
+ const replaceOrder = useCallback(async (orderId, newOrder) => {
43
+ if (!sdk)
44
+ throw new Error("SDK not available");
45
+ if (!orderId?.trim())
46
+ throw new Error("Order ID is required and cannot be empty");
47
+ if (!newOrder)
48
+ throw new Error("New order object is required");
49
+ if (!newOrder.quantity?.trim())
50
+ throw new Error("Quantity is required and cannot be empty");
51
+ if (Number(newOrder.quantity) <= 0)
52
+ throw new Error("Quantity must be greater than 0");
53
+ if (newOrder.price !== undefined &&
54
+ (!newOrder.price?.trim() || Number(newOrder.price) <= 0)) {
55
+ throw new Error("Price must be a valid positive number");
56
+ }
57
+ return await sdk.trading.replaceOrder(orderId, newOrder);
58
+ }, [sdk]);
59
+ const getPaginatedOrders = useCallback(async (params) => {
60
+ if (!sdk)
61
+ throw new Error("SDK not available");
62
+ return await sdk.trading.getPaginatedOrders(params);
63
+ }, [sdk]);
64
+ const getOrder = useCallback(async (orderId) => {
65
+ if (!sdk)
66
+ throw new Error("SDK not available");
67
+ if (!orderId?.trim())
68
+ throw new Error("Order ID is required and cannot be empty");
69
+ return await sdk.trading.getOrder(orderId);
70
+ }, [sdk]);
71
+ return {
72
+ // Order placement
73
+ placeLimitOrder,
74
+ placeMarketOrder,
75
+ // Order management
76
+ cancelOrder,
77
+ replaceOrder,
78
+ // Order queries
79
+ getPaginatedOrders,
80
+ getOrder,
81
+ };
82
+ };
83
+ //# sourceMappingURL=useTrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTrade.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { UseVaultReturn } from "./types";
2
+ export { useVault } from "./useVault";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVault/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useVault } from "./useVault";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useVault/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Balance, TransactionResult } from "@0xmonaco/types";
2
+ export interface UseVaultReturn {
3
+ /** Approve the vault to spend tokens */
4
+ approve: (token: string, amount: bigint, autoWait?: boolean) => Promise<TransactionResult>;
5
+ /** Deposit tokens into the vault */
6
+ deposit: (token: string, amount: bigint, autoWait?: boolean) => Promise<TransactionResult>;
7
+ /** Withdraw tokens from the vault */
8
+ withdraw: (token: string, amount: bigint, autoWait?: boolean) => Promise<TransactionResult>;
9
+ /** Get the balance of a token in the vault */
10
+ getBalance: (token: string) => Promise<Balance>;
11
+ /** Get the allowance for a token */
12
+ getAllowance: (token: string) => Promise<bigint>;
13
+ /** Check if a token needs approval for an amount */
14
+ needsApproval: (token: string, amount: bigint) => Promise<boolean>;
15
+ }
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVault/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3F,oCAAoC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3F,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE5F,8CAA8C;IAC9C,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD,oCAAoC;IACpC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjD,oDAAoD;IACpD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useVault/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { UseVaultReturn } from "./types";
2
+ export declare const useVault: () => UseVaultReturn;
3
+ //# sourceMappingURL=useVault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVault.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVault/useVault.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cAoF3B,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { useCallback } from "react";
2
+ import { useMonacoSDK } from "../useMonaco";
3
+ export const useVault = () => {
4
+ const { sdk } = useMonacoSDK();
5
+ const approve = useCallback(async (token, amount, autoWait) => {
6
+ if (!sdk)
7
+ throw new Error("SDK not available");
8
+ if (!token?.trim())
9
+ throw new Error("Token address is required and cannot be empty");
10
+ if (amount <= 0n)
11
+ throw new Error("Amount must be greater than 0");
12
+ return await sdk.vault.approve(token, amount, autoWait);
13
+ }, [sdk]);
14
+ const deposit = useCallback(async (token, amount, autoWait) => {
15
+ if (!sdk)
16
+ throw new Error("SDK not available");
17
+ if (!token?.trim())
18
+ throw new Error("Token address is required and cannot be empty");
19
+ if (amount <= 0n)
20
+ throw new Error("Amount must be greater than 0");
21
+ return await sdk.vault.deposit(token, amount, autoWait);
22
+ }, [sdk]);
23
+ const withdraw = useCallback(async (token, amount, autoWait) => {
24
+ if (!sdk)
25
+ throw new Error("SDK not available");
26
+ if (!token?.trim())
27
+ throw new Error("Token address is required and cannot be empty");
28
+ if (amount <= 0n)
29
+ throw new Error("Amount must be greater than 0");
30
+ return await sdk.vault.withdraw(token, amount, autoWait);
31
+ }, [sdk]);
32
+ const getBalance = useCallback(async (token) => {
33
+ if (!sdk)
34
+ throw new Error("SDK not available");
35
+ if (!token?.trim())
36
+ throw new Error("Token address is required and cannot be empty");
37
+ return await sdk.vault.getBalance(token);
38
+ }, [sdk]);
39
+ const getAllowance = useCallback(async (token) => {
40
+ if (!sdk)
41
+ throw new Error("SDK not available");
42
+ if (!token?.trim())
43
+ throw new Error("Token address is required and cannot be empty");
44
+ return await sdk.vault.getAllowance(token);
45
+ }, [sdk]);
46
+ const needsApproval = useCallback(async (token, amount) => {
47
+ if (!sdk)
48
+ throw new Error("SDK not available");
49
+ if (!token?.trim())
50
+ throw new Error("Token address is required and cannot be empty");
51
+ if (amount <= 0n)
52
+ throw new Error("Amount must be greater than 0");
53
+ return await sdk.vault.needsApproval(token, amount);
54
+ }, [sdk]);
55
+ return {
56
+ // Token operations
57
+ approve,
58
+ deposit,
59
+ withdraw,
60
+ // Balance and allowance queries
61
+ getBalance,
62
+ getAllowance,
63
+ needsApproval,
64
+ };
65
+ };
66
+ //# sourceMappingURL=useVault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVault.js","sourceRoot":"","sources":["../../../src/hooks/useVault/useVault.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { MonacoSDK, Network, SDKConfig } from "@0xmonaco/core";
2
+ export type { AuthState, ChallengeResponse, TokenRefreshResponse, UserProfile, VerifyResponse } from "@0xmonaco/types";
3
+ export * from "./hooks";
4
+ export * from "./provider";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvH,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./hooks";
2
+ export * from "./provider";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type MonacoContextValue, type MonacoProviderProps } from "./types";
2
+ export declare const MonacoProvider: ({ children, clientId }: MonacoProviderProps) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const useMonacoContext: () => MonacoContextValue;
4
+ //# sourceMappingURL=MonacoProvider.d.ts.map
@@ -0,0 +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;AAelG,eAAO,MAAM,cAAc,GAAI,wBAAwB,mBAAmB,4CAwGzE,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,kBAQnC,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { MonacoSDK } from "@0xmonaco/core";
3
+ import { createContext, useContext, useEffect, useMemo, useState } from "react";
4
+ import { useChainId, useWalletClient } from "wagmi";
5
+ import { AuthenticationStatus } from "./types";
6
+ const MonacoContext = createContext(null);
7
+ const getNetworkFromChainId = (chainId) => {
8
+ switch (chainId) {
9
+ case 1329: // pacific-1
10
+ return "mainnet";
11
+ case 713715: // atlantic-2
12
+ return "testnet";
13
+ default:
14
+ return "testnet";
15
+ }
16
+ };
17
+ export const MonacoProvider = ({ children, clientId }) => {
18
+ const { data: walletClient } = useWalletClient();
19
+ const chainId = useChainId();
20
+ const [sdk, setSdk] = useState(null);
21
+ const [error, setError] = useState(null);
22
+ // Global authentication state (shared across all components)
23
+ const [authenticationStatus, setAuthenticationStatus] = useState(AuthenticationStatus.UNAUTHENTICATED);
24
+ const [profile, setProfile] = useState(null);
25
+ // Infer network from wagmi chain ID
26
+ const network = getNetworkFromChainId(chainId);
27
+ useEffect(() => {
28
+ const initializeSDK = async () => {
29
+ if (!walletClient) {
30
+ setSdk(null);
31
+ return;
32
+ }
33
+ setError(null);
34
+ try {
35
+ const sdkConfig = {
36
+ walletClient,
37
+ network,
38
+ };
39
+ const newSdk = new MonacoSDK(sdkConfig);
40
+ setSdk(newSdk);
41
+ }
42
+ catch (err) {
43
+ const error = err instanceof Error ? err : new Error("Failed to initialize Monaco SDK");
44
+ setError(error);
45
+ setSdk(null);
46
+ }
47
+ };
48
+ initializeSDK().catch(setError);
49
+ }, [walletClient, chainId]);
50
+ // Monitor SDK authentication state changes
51
+ useEffect(() => {
52
+ if (!sdk) {
53
+ setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
54
+ setProfile(null); // Clear profile when SDK is not available
55
+ return;
56
+ }
57
+ const isAuthenticated = sdk.isAuthenticated();
58
+ setAuthenticationStatus(isAuthenticated ? AuthenticationStatus.AUTHENTICATED : AuthenticationStatus.UNAUTHENTICATED);
59
+ // Clear profile when not authenticated
60
+ if (!isAuthenticated) {
61
+ setProfile(null);
62
+ }
63
+ }, [sdk]);
64
+ // Auto-fetch profile when authenticated
65
+ useEffect(() => {
66
+ if (!sdk || authenticationStatus !== AuthenticationStatus.AUTHENTICATED || profile) {
67
+ return;
68
+ }
69
+ const fetchProfile = async () => {
70
+ try {
71
+ const userProfile = await sdk.profile.getProfile();
72
+ setProfile(userProfile);
73
+ }
74
+ catch (err) {
75
+ const error = err instanceof Error ? err : new Error("Failed to fetch profile");
76
+ console.error("Auto-fetch profile error:", error);
77
+ setError(error);
78
+ }
79
+ };
80
+ fetchProfile().catch(setError);
81
+ }, [sdk, authenticationStatus, profile]);
82
+ // Clear profile when user logs out
83
+ useEffect(() => {
84
+ if (authenticationStatus === AuthenticationStatus.UNAUTHENTICATED && profile) {
85
+ setProfile(null);
86
+ }
87
+ }, [authenticationStatus, profile]);
88
+ const contextValue = useMemo(() => ({
89
+ sdk,
90
+ clientId,
91
+ error,
92
+ // Global authentication state
93
+ authenticationStatus,
94
+ profile,
95
+ // Global authentication state setters
96
+ setAuthenticationStatus,
97
+ setProfile,
98
+ setError,
99
+ }), [sdk, clientId, error, authenticationStatus, profile, setAuthenticationStatus, setProfile, setError]);
100
+ return _jsx(MonacoContext.Provider, { value: contextValue, children: children });
101
+ };
102
+ export const useMonacoContext = () => {
103
+ const context = useContext(MonacoContext);
104
+ if (!context) {
105
+ throw new Error("useMonacoContext must be used within a MonacoProvider. " + "Make sure to wrap your app with <MonacoProvider>.");
106
+ }
107
+ return context;
108
+ };
109
+ //# sourceMappingURL=MonacoProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonacoProvider.js","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { MonacoProvider } from "./MonacoProvider";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { MonacoProvider } from "./MonacoProvider";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,SAAS,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { IMonacoSDK } from "@0xmonaco/core";
2
+ import type { UserProfile } from "@0xmonaco/types";
3
+ import type { ReactNode } from "react";
4
+ export declare enum AuthenticationStatus {
5
+ /** User is not authenticated */
6
+ UNAUTHENTICATED = "unauthenticated",
7
+ /** Authentication is in progress */
8
+ AUTHENTICATING = "authenticating",
9
+ /** User is successfully authenticated */
10
+ AUTHENTICATED = "authenticated"
11
+ }
12
+ export interface MonacoContextValue {
13
+ /** Monaco SDK instance */
14
+ sdk: IMonacoSDK | null;
15
+ /** Client ID for authentication */
16
+ clientId: string;
17
+ /** Any error that occurred (SDK initialization, authentication, etc.) */
18
+ error: Error | null;
19
+ /** Current authentication status */
20
+ authenticationStatus: AuthenticationStatus;
21
+ /** User profile data */
22
+ profile: UserProfile | null;
23
+ /** Function to update authentication status */
24
+ setAuthenticationStatus: (status: AuthenticationStatus) => void;
25
+ /** Function to update profile */
26
+ setProfile: (profile: UserProfile | null) => void;
27
+ /** Function to update error */
28
+ setError: (error: Error | null) => void;
29
+ }
30
+ export interface MonacoProviderProps {
31
+ /** Child components */
32
+ children: ReactNode;
33
+ /** Client ID for authentication */
34
+ clientId: string;
35
+ }
36
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,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;IAC3C,wBAAwB;IACxB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAG5B,+CAA+C;IAC/C,uBAAuB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChE,iCAAiC;IACjC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,+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;CAClB"}
@@ -0,0 +1,10 @@
1
+ export var AuthenticationStatus;
2
+ (function (AuthenticationStatus) {
3
+ /** User is not authenticated */
4
+ AuthenticationStatus["UNAUTHENTICATED"] = "unauthenticated";
5
+ /** Authentication is in progress */
6
+ AuthenticationStatus["AUTHENTICATING"] = "authenticating";
7
+ /** User is successfully authenticated */
8
+ AuthenticationStatus["AUTHENTICATED"] = "authenticated";
9
+ })(AuthenticationStatus || (AuthenticationStatus = {}));
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmonaco/react",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -9,15 +9,19 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@0xmonaco/core": "0.1.5",
13
- "react": "^18.2.0"
12
+ "@0xmonaco/core": "0.1.7"
14
13
  },
15
14
  "devDependencies": {
16
- "@types/react": "^18.2.64",
17
- "typescript": "5.7.3"
15
+ "@types/react": "^19.1.12",
16
+ "typescript": "5.9.2",
17
+ "react": "^18.3.1",
18
+ "wagmi": "^2.16.9",
19
+ "viem": "^2.37.4"
18
20
  },
19
21
  "peerDependencies": {
20
- "react": "^18.2.0"
22
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
23
+ "wagmi": "^2.0.0",
24
+ "viem": "^2.0.0"
21
25
  },
22
26
  "exports": {
23
27
  ".": {