@0xmonaco/react 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAuth/index.d.ts +3 -0
- package/dist/hooks/useAuth/index.d.ts.map +1 -0
- package/dist/hooks/useAuth/index.js +2 -0
- package/dist/hooks/useAuth/index.js.map +1 -0
- package/dist/hooks/useAuth/types.d.ts +25 -0
- package/dist/hooks/useAuth/types.d.ts.map +1 -0
- package/dist/hooks/useAuth/types.js +2 -0
- package/dist/hooks/useAuth/types.js.map +1 -0
- package/dist/hooks/useAuth/useAuth.d.ts +3 -0
- package/dist/hooks/useAuth/useAuth.d.ts.map +1 -0
- package/dist/hooks/useAuth/useAuth.js +153 -0
- package/dist/hooks/useAuth/useAuth.js.map +1 -0
- package/dist/hooks/useMonaco/index.d.ts +3 -0
- package/dist/hooks/useMonaco/index.d.ts.map +1 -0
- package/dist/hooks/useMonaco/index.js +2 -0
- package/dist/hooks/useMonaco/index.js.map +1 -0
- package/dist/hooks/useMonaco/types.d.ts +14 -0
- package/dist/hooks/useMonaco/types.d.ts.map +1 -0
- package/dist/hooks/useMonaco/types.js +2 -0
- package/dist/hooks/useMonaco/types.js.map +1 -0
- package/dist/hooks/useMonaco/useMonaco.d.ts +3 -0
- package/dist/hooks/useMonaco/useMonaco.d.ts.map +1 -0
- package/dist/hooks/useMonaco/useMonaco.js +14 -0
- package/dist/hooks/useMonaco/useMonaco.js.map +1 -0
- package/dist/hooks/useProfile/index.d.ts +3 -0
- package/dist/hooks/useProfile/index.d.ts.map +1 -0
- package/dist/hooks/useProfile/index.js +2 -0
- package/dist/hooks/useProfile/index.js.map +1 -0
- package/dist/hooks/useProfile/types.d.ts +10 -0
- package/dist/hooks/useProfile/types.d.ts.map +1 -0
- package/dist/hooks/useProfile/types.js +2 -0
- package/dist/hooks/useProfile/types.js.map +1 -0
- package/dist/hooks/useProfile/useProfile.d.ts +3 -0
- package/dist/hooks/useProfile/useProfile.d.ts.map +1 -0
- package/dist/hooks/useProfile/useProfile.js +21 -0
- package/dist/hooks/useProfile/useProfile.js.map +1 -0
- package/dist/hooks/useTrade/index.d.ts +3 -0
- package/dist/hooks/useTrade/index.d.ts.map +1 -0
- package/dist/hooks/useTrade/index.js +2 -0
- package/dist/hooks/useTrade/index.js.map +1 -0
- package/dist/hooks/useTrade/types.d.ts +29 -0
- package/dist/hooks/useTrade/types.d.ts.map +1 -0
- package/dist/hooks/useTrade/types.js +2 -0
- package/dist/hooks/useTrade/types.js.map +1 -0
- package/dist/hooks/useTrade/useTrade.d.ts +3 -0
- package/dist/hooks/useTrade/useTrade.d.ts.map +1 -0
- package/dist/hooks/useTrade/useTrade.js +101 -0
- package/dist/hooks/useTrade/useTrade.js.map +1 -0
- package/dist/hooks/useVault/index.d.ts +3 -0
- package/dist/hooks/useVault/index.d.ts.map +1 -0
- package/dist/hooks/useVault/index.js +2 -0
- package/dist/hooks/useVault/index.js.map +1 -0
- package/dist/hooks/useVault/types.d.ts +16 -0
- package/dist/hooks/useVault/types.d.ts.map +1 -0
- package/dist/hooks/useVault/types.js +2 -0
- package/dist/hooks/useVault/types.js.map +1 -0
- package/dist/hooks/useVault/useVault.d.ts +3 -0
- package/dist/hooks/useVault/useVault.d.ts.map +1 -0
- package/dist/hooks/useVault/useVault.js +66 -0
- package/dist/hooks/useVault/useVault.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/provider/MonacoProvider.d.ts +4 -0
- package/dist/provider/MonacoProvider.d.ts.map +1 -0
- package/dist/provider/MonacoProvider.js +109 -0
- package/dist/provider/MonacoProvider.js.map +1 -0
- package/dist/provider/index.d.ts +3 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +3 -0
- package/dist/provider/index.js.map +1 -0
- package/dist/provider/types.d.ts +36 -0
- package/dist/provider/types.d.ts.map +1 -0
- package/dist/provider/types.js +10 -0
- package/dist/provider/types.js.map +1 -0
- package/package.json +10 -6
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/types.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useMonaco/types.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useProfile/types.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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,29 @@
|
|
|
1
|
+
import type { CreateOrderResponse, CancelOrderResponse, UpdateOrderResponse, 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
|
+
/** Update an existing order */
|
|
14
|
+
updateOrder: (orderId: string, updates: {
|
|
15
|
+
price?: string;
|
|
16
|
+
quantity?: string;
|
|
17
|
+
}) => Promise<UpdateOrderResponse>;
|
|
18
|
+
/** Replace an existing order */
|
|
19
|
+
replaceOrder: (orderId: string, newOrder: {
|
|
20
|
+
price?: string;
|
|
21
|
+
quantity: string;
|
|
22
|
+
useMasterBalance?: boolean;
|
|
23
|
+
}) => Promise<ReplaceOrderResponse>;
|
|
24
|
+
/** Get paginated orders */
|
|
25
|
+
getPaginatedOrders: (params?: GetPaginatedOrdersParams) => Promise<GetPaginatedOrdersResponse>;
|
|
26
|
+
/** Get a single order by ID */
|
|
27
|
+
getOrder: (orderId: string) => Promise<GetOrderResponse>;
|
|
28
|
+
}
|
|
29
|
+
//# 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,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;IAE/D,+BAA+B;IAC/B,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAC3C,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTrade.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cAoK3B,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
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 updateOrder = useCallback(async (orderId, updates) => {
|
|
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 (!updates || Object.keys(updates).length === 0)
|
|
48
|
+
throw new Error("Updates object is required and cannot be empty");
|
|
49
|
+
if (updates.price !== undefined &&
|
|
50
|
+
(!updates.price?.trim() || Number(updates.price) <= 0)) {
|
|
51
|
+
throw new Error("Price must be a valid positive number");
|
|
52
|
+
}
|
|
53
|
+
if (updates.quantity !== undefined &&
|
|
54
|
+
(!updates.quantity?.trim() || Number(updates.quantity) <= 0)) {
|
|
55
|
+
throw new Error("Quantity must be a valid positive number");
|
|
56
|
+
}
|
|
57
|
+
return await sdk.trading.updateOrder(orderId, updates);
|
|
58
|
+
}, [sdk]);
|
|
59
|
+
const replaceOrder = useCallback(async (orderId, newOrder) => {
|
|
60
|
+
if (!sdk)
|
|
61
|
+
throw new Error("SDK not available");
|
|
62
|
+
if (!orderId?.trim())
|
|
63
|
+
throw new Error("Order ID is required and cannot be empty");
|
|
64
|
+
if (!newOrder)
|
|
65
|
+
throw new Error("New order object is required");
|
|
66
|
+
if (!newOrder.quantity?.trim())
|
|
67
|
+
throw new Error("Quantity is required and cannot be empty");
|
|
68
|
+
if (Number(newOrder.quantity) <= 0)
|
|
69
|
+
throw new Error("Quantity must be greater than 0");
|
|
70
|
+
if (newOrder.price !== undefined &&
|
|
71
|
+
(!newOrder.price?.trim() || Number(newOrder.price) <= 0)) {
|
|
72
|
+
throw new Error("Price must be a valid positive number");
|
|
73
|
+
}
|
|
74
|
+
return await sdk.trading.replaceOrder(orderId, newOrder);
|
|
75
|
+
}, [sdk]);
|
|
76
|
+
const getPaginatedOrders = useCallback(async (params) => {
|
|
77
|
+
if (!sdk)
|
|
78
|
+
throw new Error("SDK not available");
|
|
79
|
+
return await sdk.trading.getPaginatedOrders(params);
|
|
80
|
+
}, [sdk]);
|
|
81
|
+
const getOrder = useCallback(async (orderId) => {
|
|
82
|
+
if (!sdk)
|
|
83
|
+
throw new Error("SDK not available");
|
|
84
|
+
if (!orderId?.trim())
|
|
85
|
+
throw new Error("Order ID is required and cannot be empty");
|
|
86
|
+
return await sdk.trading.getOrder(orderId);
|
|
87
|
+
}, [sdk]);
|
|
88
|
+
return {
|
|
89
|
+
// Order placement
|
|
90
|
+
placeLimitOrder,
|
|
91
|
+
placeMarketOrder,
|
|
92
|
+
// Order management
|
|
93
|
+
cancelOrder,
|
|
94
|
+
updateOrder,
|
|
95
|
+
replaceOrder,
|
|
96
|
+
// Order queries
|
|
97
|
+
getPaginatedOrders,
|
|
98
|
+
getOrder,
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
//# 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 @@
|
|
|
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 @@
|
|
|
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) => Promise<TransactionResult>;
|
|
5
|
+
/** Deposit tokens into the vault */
|
|
6
|
+
deposit: (token: string, amount: bigint) => Promise<TransactionResult>;
|
|
7
|
+
/** Withdraw tokens from the vault */
|
|
8
|
+
withdraw: (token: string, amount: bigint) => 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,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEvE,oCAAoC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEvE,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExE,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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useVault/types.ts"],"names":[],"mappings":""}
|
|
@@ -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) => {
|
|
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);
|
|
13
|
+
}, [sdk]);
|
|
14
|
+
const deposit = useCallback(async (token, amount) => {
|
|
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);
|
|
22
|
+
}, [sdk]);
|
|
23
|
+
const withdraw = useCallback(async (token, amount) => {
|
|
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);
|
|
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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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.
|
|
3
|
+
"version": "0.1.6",
|
|
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.
|
|
13
|
-
"react": "^18.2.0"
|
|
12
|
+
"@0xmonaco/core": "0.1.6"
|
|
14
13
|
},
|
|
15
14
|
"devDependencies": {
|
|
16
|
-
"@types/react": "^
|
|
17
|
-
"typescript": "5.
|
|
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.
|
|
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
|
".": {
|