@zerodev/wallet-react 0.0.1-alpha.5 → 0.0.1-alpha.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 (38) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +17 -14
  3. package/dist/_cjs/actions.js +53 -24
  4. package/dist/_cjs/connector.js +44 -3
  5. package/dist/_cjs/hooks/useExportPrivateKey.js +18 -0
  6. package/dist/_cjs/hooks/useGetUserEmail.js +19 -0
  7. package/dist/_cjs/index.js +8 -1
  8. package/dist/_cjs/oauth.js +60 -55
  9. package/dist/_esm/actions.js +65 -27
  10. package/dist/_esm/connector.js +56 -5
  11. package/dist/_esm/hooks/useExportPrivateKey.js +18 -0
  12. package/dist/_esm/hooks/useGetUserEmail.js +19 -0
  13. package/dist/_esm/index.js +3 -1
  14. package/dist/_esm/oauth.js +71 -53
  15. package/dist/_types/actions.d.ts +41 -6
  16. package/dist/_types/actions.d.ts.map +1 -1
  17. package/dist/_types/connector.d.ts +0 -2
  18. package/dist/_types/connector.d.ts.map +1 -1
  19. package/dist/_types/hooks/useExportPrivateKey.d.ts +18 -0
  20. package/dist/_types/hooks/useExportPrivateKey.d.ts.map +1 -0
  21. package/dist/_types/hooks/useGetUserEmail.d.ts +20 -0
  22. package/dist/_types/hooks/useGetUserEmail.d.ts.map +1 -0
  23. package/dist/_types/index.d.ts +4 -2
  24. package/dist/_types/index.d.ts.map +1 -1
  25. package/dist/_types/oauth.d.ts +25 -12
  26. package/dist/_types/oauth.d.ts.map +1 -1
  27. package/dist/_types/store.d.ts +7 -3
  28. package/dist/_types/store.d.ts.map +1 -1
  29. package/dist/tsconfig.build.tsbuildinfo +1 -1
  30. package/package.json +2 -2
  31. package/src/actions.ts +122 -44
  32. package/src/connector.ts +68 -7
  33. package/src/hooks/useExportPrivateKey.ts +57 -0
  34. package/src/hooks/useGetUserEmail.ts +54 -0
  35. package/src/index.ts +9 -2
  36. package/src/oauth.ts +97 -78
  37. package/src/store.ts +9 -4
  38. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1,5 +1,6 @@
1
1
  import { connect as wagmiConnect } from '@wagmi/core/actions';
2
- import { buildOAuthUrl, generateOAuthNonce, openOAuthPopup, pollOAuthPopup, } from './oauth.js';
2
+ import { createIframeStamper, exportPrivateKey as exportPrivateKeySdk, exportWallet as exportWalletSdk, } from '@zerodev/wallet-core';
3
+ import { buildBackendOAuthUrl, listenForOAuthMessage, openOAuthPopup, } from './oauth.js';
3
4
  /**
4
5
  * Get ZeroDev connector from config
5
6
  */
@@ -60,6 +61,7 @@ export async function loginPasskey(config, parameters) {
60
61
  }
61
62
  /**
62
63
  * Authenticate with OAuth (opens popup)
64
+ * Uses backend OAuth flow where the backend handles PKCE and token exchange
63
65
  */
64
66
  export async function authenticateOAuth(config, parameters) {
65
67
  const connector = parameters.connector ?? getZeroDevConnector(config);
@@ -70,46 +72,36 @@ export async function authenticateOAuth(config, parameters) {
70
72
  if (!wallet)
71
73
  throw new Error('Wallet not initialized');
72
74
  if (!oauthConfig) {
73
- throw new Error('OAuth is not configured. Please provide oauthConfig to zeroDevWallet connector.');
75
+ throw new Error('Wallet not initialized. Please wait for connector setup.');
74
76
  }
75
- // Get client ID for the provider
76
- let clientId = parameters.clientId;
77
- if (!clientId) {
78
- clientId = oauthConfig.googleClientId;
79
- }
80
- if (!clientId) {
81
- throw new Error(`Client ID not configured for ${parameters.provider}`);
82
- }
83
- if (!oauthConfig.redirectUri) {
84
- throw new Error('OAuth redirect URI is not configured.');
85
- }
86
- // Generate nonce from wallet public key
77
+ // Get wallet public key for the OAuth flow
87
78
  const publicKey = await wallet.getPublicKey();
88
79
  if (!publicKey) {
89
80
  throw new Error('Failed to get wallet public key');
90
81
  }
91
- const nonce = generateOAuthNonce(publicKey);
92
- // Build OAuth URL
93
- const oauthUrl = buildOAuthUrl({
82
+ // Build OAuth URL that redirects to backend
83
+ // Use current origin as redirect - SDK auto-detects callback on any page
84
+ const oauthUrl = buildBackendOAuthUrl({
94
85
  provider: parameters.provider,
95
- clientId,
96
- redirectUri: oauthConfig.redirectUri,
97
- nonce,
86
+ backendUrl: oauthConfig.backendUrl,
87
+ projectId: oauthConfig.projectId,
88
+ publicKey,
89
+ returnTo: `${window.location.origin}?oauth_success=true&oauth_provider=${parameters.provider}`,
98
90
  });
99
91
  // Open popup
100
92
  const authWindow = openOAuthPopup(oauthUrl);
101
93
  if (!authWindow) {
102
94
  throw new Error(`Failed to open ${parameters.provider} login window.`);
103
95
  }
104
- // Poll for OAuth completion
96
+ // Listen for OAuth completion via postMessage
105
97
  return new Promise((resolve, reject) => {
106
- pollOAuthPopup(authWindow, window.location.origin, async (idToken) => {
98
+ const cleanup = listenForOAuthMessage(authWindow, window.location.origin, async () => {
107
99
  try {
108
100
  // Complete OAuth authentication with wallet-core
101
+ // The backend has stored the OAuth session in a cookie
109
102
  await wallet.auth({
110
103
  type: 'oauth',
111
104
  provider: parameters.provider,
112
- credential: idToken,
113
105
  });
114
106
  const [session, eoaAccount] = await Promise.all([
115
107
  wallet.getSession(),
@@ -124,7 +116,10 @@ export async function authenticateOAuth(config, parameters) {
124
116
  catch (err) {
125
117
  reject(err);
126
118
  }
127
- }, reject);
119
+ }, (error) => {
120
+ cleanup();
121
+ reject(error);
122
+ });
128
123
  });
129
124
  }
130
125
  /**
@@ -148,7 +143,6 @@ export async function sendOTP(config, parameters) {
148
143
  });
149
144
  return {
150
145
  otpId: result.otpId,
151
- subOrganizationId: result.subOrganizationId,
152
146
  };
153
147
  }
154
148
  /**
@@ -166,7 +160,6 @@ export async function verifyOTP(config, parameters) {
166
160
  mode: 'verifyOtp',
167
161
  otpId: parameters.otpId,
168
162
  otpCode: parameters.code,
169
- subOrganizationId: parameters.subOrganizationId,
170
163
  });
171
164
  const [session, eoaAccount] = await Promise.all([
172
165
  wallet.getSession(),
@@ -193,6 +186,22 @@ export async function refreshSession(config, parameters = {}) {
193
186
  store.getState().setSession(newSession || null);
194
187
  return newSession;
195
188
  }
189
+ /**
190
+ * Get user email
191
+ */
192
+ export async function getUserEmail(config, parameters) {
193
+ const connector = parameters.connector ?? getZeroDevConnector(config);
194
+ // @ts-expect-error - getStore is a custom method
195
+ const store = await connector.getStore();
196
+ const wallet = store.getState().wallet;
197
+ if (!wallet)
198
+ throw new Error('Wallet not initialized');
199
+ // Call the core SDK method
200
+ return await wallet.client.getUserEmail({
201
+ organizationId: parameters.organizationId,
202
+ projectId: parameters.projectId,
203
+ });
204
+ }
196
205
  /**
197
206
  * Export wallet
198
207
  */
@@ -203,7 +212,6 @@ export async function exportWallet(config, parameters) {
203
212
  const wallet = store.getState().wallet;
204
213
  if (!wallet)
205
214
  throw new Error('Wallet not initialized');
206
- const { exportWallet: exportWalletSdk, createIframeStamper } = await import('@zerodev/wallet-core');
207
215
  const iframeContainer = document.getElementById(parameters.iframeContainerId);
208
216
  if (!iframeContainer) {
209
217
  throw new Error('Iframe container not found');
@@ -223,3 +231,33 @@ export async function exportWallet(config, parameters) {
223
231
  throw new Error('Failed to inject export bundle');
224
232
  }
225
233
  }
234
+ /**
235
+ * Export private key
236
+ */
237
+ export async function exportPrivateKey(config, parameters) {
238
+ const connector = parameters.connector ?? getZeroDevConnector(config);
239
+ // @ts-expect-error - getStore is a custom method
240
+ const store = await connector.getStore();
241
+ const wallet = store.getState().wallet;
242
+ if (!wallet)
243
+ throw new Error('Wallet not initialized');
244
+ const iframeContainer = document.getElementById(parameters.iframeContainerId);
245
+ if (!iframeContainer) {
246
+ throw new Error('Iframe container not found');
247
+ }
248
+ const iframeStamper = await createIframeStamper({
249
+ iframeUrl: 'https://export.turnkey.com',
250
+ iframeContainer,
251
+ iframeElementId: 'export-private-key-iframe',
252
+ });
253
+ const publicKey = await iframeStamper.init();
254
+ const { exportBundle, organizationId } = await exportPrivateKeySdk({
255
+ wallet,
256
+ targetPublicKey: publicKey,
257
+ ...(parameters.address && { address: parameters.address }),
258
+ });
259
+ const success = await iframeStamper.injectKeyExportBundle(exportBundle, organizationId, parameters.keyFormat ?? 'Hexadecimal');
260
+ if (success !== true) {
261
+ throw new Error('Failed to inject export bundle');
262
+ }
263
+ }
@@ -1,11 +1,59 @@
1
1
  import { createConnector } from '@wagmi/core';
2
2
  import { createKernelAccount, createKernelAccountClient, createZeroDevPaymasterClient, } from '@zerodev/sdk';
3
3
  import { getEntryPoint, KERNEL_V3_3 } from '@zerodev/sdk/constants';
4
- import { createZeroDevWallet } from '@zerodev/wallet-core';
4
+ import { createZeroDevWallet, KMS_SERVER_URL } from '@zerodev/wallet-core';
5
5
  import { createPublicClient, http } from 'viem';
6
+ import { handleOAuthCallback } from './oauth.js';
6
7
  import { createProvider } from './provider.js';
7
8
  import { createZeroDevWalletStore } from './store.js';
8
9
  import { getAAUrl } from './utils/aaUtils.js';
10
+ // OAuth URL parameter used to detect callback
11
+ const OAUTH_SUCCESS_PARAM = 'oauth_success';
12
+ const OAUTH_PROVIDER_PARAM = 'oauth_provider';
13
+ /**
14
+ * Detect OAuth callback from URL params and handle it.
15
+ * - If in popup: sends postMessage to opener and closes
16
+ * - If not in popup: completes auth directly
17
+ */
18
+ async function detectAndHandleOAuthCallback(wallet, store) {
19
+ if (typeof window === 'undefined')
20
+ return false;
21
+ const params = new URLSearchParams(window.location.search);
22
+ const isOAuthCallback = params.get(OAUTH_SUCCESS_PARAM) === 'true';
23
+ if (!isOAuthCallback)
24
+ return false;
25
+ // If in popup, use the existing handler to notify opener
26
+ if (window.opener) {
27
+ handleOAuthCallback(OAUTH_SUCCESS_PARAM);
28
+ return true;
29
+ }
30
+ // Not in popup - complete auth directly (redirect flow)
31
+ console.log('OAuth callback detected, completing authentication...');
32
+ const provider = (params.get(OAUTH_PROVIDER_PARAM) ||
33
+ 'google');
34
+ try {
35
+ await wallet.auth({ type: 'oauth', provider });
36
+ const [session, eoaAccount] = await Promise.all([
37
+ wallet.getSession(),
38
+ wallet.toAccount(),
39
+ ]);
40
+ store.getState().setEoaAccount(eoaAccount);
41
+ store.getState().setSession(session || null);
42
+ // Clean up URL params
43
+ params.delete(OAUTH_SUCCESS_PARAM);
44
+ params.delete(OAUTH_PROVIDER_PARAM);
45
+ const newUrl = params.toString()
46
+ ? `${window.location.pathname}?${params.toString()}`
47
+ : window.location.pathname;
48
+ window.history.replaceState({}, '', newUrl);
49
+ console.log('OAuth authentication completed');
50
+ return true;
51
+ }
52
+ catch (error) {
53
+ console.error('OAuth authentication failed:', error);
54
+ return false;
55
+ }
56
+ }
9
57
  export function zeroDevWallet(params) {
10
58
  return createConnector((wagmiConfig) => {
11
59
  let store;
@@ -30,10 +78,11 @@ export function zeroDevWallet(params) {
30
78
  // Create store
31
79
  store = createZeroDevWalletStore();
32
80
  store.getState().setWallet(wallet);
33
- // Store OAuth config if provided
34
- if (params.oauthConfig) {
35
- store.getState().setOAuthConfig(params.oauthConfig);
36
- }
81
+ // Store OAuth config - uses proxyBaseUrl and projectId from params
82
+ store.getState().setOAuthConfig({
83
+ backendUrl: params.proxyBaseUrl || `${KMS_SERVER_URL}/api/v1`,
84
+ projectId: params.projectId,
85
+ });
37
86
  // Create EIP-1193 provider
38
87
  provider = createProvider({
39
88
  store,
@@ -48,6 +97,8 @@ export function zeroDevWallet(params) {
48
97
  store.getState().setEoaAccount(eoaAccount);
49
98
  store.getState().setSession(session);
50
99
  }
100
+ // Auto-detect OAuth callback (when popup redirects back with ?oauth_success=true)
101
+ await detectAndHandleOAuthCallback(wallet, store);
51
102
  console.log('ZeroDevWallet connector initialized');
52
103
  };
53
104
  return {
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { useMutation, } from '@tanstack/react-query';
3
+ import { useConfig } from 'wagmi';
4
+ import { exportPrivateKey } from '../actions.js';
5
+ /**
6
+ * Hook to export private key
7
+ */
8
+ export function useExportPrivateKey(parameters = {}) {
9
+ const { mutation } = parameters;
10
+ const config = useConfig(parameters);
11
+ return useMutation({
12
+ ...mutation,
13
+ async mutationFn(variables) {
14
+ return exportPrivateKey(config, variables);
15
+ },
16
+ mutationKey: ['exportPrivateKey'],
17
+ });
18
+ }
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { useQuery, } from '@tanstack/react-query';
3
+ import { useConfig } from 'wagmi';
4
+ import { getUserEmail } from '../actions.js';
5
+ /**
6
+ * Hook to fetch user email address
7
+ */
8
+ export function useGetUserEmail(parameters) {
9
+ const { organizationId, projectId, query } = parameters;
10
+ const config = useConfig(parameters);
11
+ return useQuery({
12
+ ...query,
13
+ queryKey: ['getUserEmail', { organizationId, projectId }],
14
+ queryFn: async () => {
15
+ return getUserEmail(config, { organizationId, projectId });
16
+ },
17
+ enabled: Boolean(organizationId && projectId),
18
+ });
19
+ }
@@ -1,10 +1,12 @@
1
1
  export { zeroDevWallet } from './connector.js';
2
2
  export { useAuthenticateOAuth } from './hooks/useAuthenticateOAuth.js';
3
+ export { useExportPrivateKey } from './hooks/useExportPrivateKey.js';
3
4
  export { useExportWallet } from './hooks/useExportWallet.js';
5
+ export { useGetUserEmail } from './hooks/useGetUserEmail.js';
4
6
  export { useLoginPasskey } from './hooks/useLoginPasskey.js';
5
7
  export { useRefreshSession } from './hooks/useRefreshSession.js';
6
8
  export { useRegisterPasskey } from './hooks/useRegisterPasskey.js';
7
9
  export { useSendOTP } from './hooks/useSendOTP.js';
8
10
  export { useVerifyOTP } from './hooks/useVerifyOTP.js';
9
- export { OAUTH_PROVIDERS } from './oauth.js';
11
+ export { buildBackendOAuthUrl, handleOAuthCallback, listenForOAuthMessage, OAUTH_PROVIDERS, } from './oauth.js';
10
12
  export { createZeroDevWalletStore } from './store.js';
@@ -2,33 +2,8 @@ import { sha256 } from 'viem';
2
2
  export const OAUTH_PROVIDERS = {
3
3
  GOOGLE: 'google',
4
4
  };
5
- const GOOGLE_AUTH_URL = 'https://accounts.google.com/o/oauth2/v2/auth';
6
5
  const POPUP_WIDTH = 500;
7
6
  const POPUP_HEIGHT = 600;
8
- export function buildOAuthUrl(params) {
9
- const { provider, clientId, redirectUri, nonce, state } = params;
10
- if (provider !== OAUTH_PROVIDERS.GOOGLE) {
11
- throw new Error(`Unsupported OAuth provider: ${provider}`);
12
- }
13
- const authUrl = new URL(GOOGLE_AUTH_URL);
14
- authUrl.searchParams.set('client_id', clientId);
15
- authUrl.searchParams.set('redirect_uri', redirectUri);
16
- authUrl.searchParams.set('response_type', 'id_token');
17
- authUrl.searchParams.set('scope', 'openid email profile');
18
- authUrl.searchParams.set('nonce', nonce);
19
- authUrl.searchParams.set('prompt', 'select_account');
20
- let stateParam = `provider=${provider}`;
21
- if (state) {
22
- const additionalState = Object.entries(state)
23
- .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
24
- .join('&');
25
- if (additionalState) {
26
- stateParam += `&${additionalState}`;
27
- }
28
- }
29
- authUrl.searchParams.set('state', stateParam);
30
- return authUrl.toString();
31
- }
32
7
  export function openOAuthPopup(url) {
33
8
  const width = POPUP_WIDTH;
34
9
  const height = POPUP_HEIGHT;
@@ -40,38 +15,81 @@ export function openOAuthPopup(url) {
40
15
  }
41
16
  return authWindow;
42
17
  }
43
- export function extractOAuthToken(url) {
44
- const hashParams = new URLSearchParams(url.split('#')[1]);
45
- let idToken = hashParams.get('id_token');
46
- if (!idToken) {
47
- const queryParams = new URLSearchParams(url.split('?')[1]);
48
- idToken = queryParams.get('id_token');
18
+ export function generateOAuthNonce(publicKey) {
19
+ return sha256(publicKey).replace(/^0x/, '');
20
+ }
21
+ /**
22
+ * Build OAuth URL that redirects to backend's OAuth endpoint
23
+ * The backend handles PKCE, client credentials, and token exchange
24
+ */
25
+ export function buildBackendOAuthUrl(params) {
26
+ const { provider, backendUrl, projectId, publicKey, returnTo } = params;
27
+ if (provider !== OAUTH_PROVIDERS.GOOGLE) {
28
+ throw new Error(`Unsupported OAuth provider: ${provider}`);
49
29
  }
50
- return idToken;
30
+ const oauthUrl = new URL(`${backendUrl}/oauth/google/login`);
31
+ oauthUrl.searchParams.set('project_id', projectId);
32
+ oauthUrl.searchParams.set('pub_key', publicKey.replace(/^0x/, ''));
33
+ oauthUrl.searchParams.set('return_to', returnTo);
34
+ return oauthUrl.toString();
51
35
  }
52
- export function pollOAuthPopup(authWindow, originUrl, onSuccess, onError) {
53
- const interval = setInterval(() => {
54
- try {
55
- if (authWindow.closed) {
56
- clearInterval(interval);
57
- onError(new Error('Authentication window was closed'));
58
- return;
59
- }
60
- const url = authWindow.location.href || '';
61
- if (url.startsWith(originUrl)) {
62
- const token = extractOAuthToken(url);
63
- if (token) {
64
- authWindow.close();
65
- clearInterval(interval);
66
- onSuccess(token);
67
- }
68
- }
36
+ /**
37
+ * Listen for OAuth completion via postMessage from popup
38
+ * The popup sends a message when it detects a successful redirect
39
+ */
40
+ export function listenForOAuthMessage(authWindow, expectedOrigin, onSuccess, onError) {
41
+ let cleaned = false;
42
+ const handleMessage = (event) => {
43
+ // Only trust messages from expected origin
44
+ if (event.origin !== expectedOrigin)
45
+ return;
46
+ if (!event.data || typeof event.data !== 'object')
47
+ return;
48
+ if (event.data.type === 'oauth_success') {
49
+ cleanup();
50
+ onSuccess();
69
51
  }
70
- catch {
71
- // Ignore cross-origin errors
52
+ else if (event.data.type === 'oauth_error') {
53
+ cleanup();
54
+ onError(new Error(event.data.error || 'OAuth authentication failed'));
55
+ }
56
+ };
57
+ const checkWindowClosed = setInterval(() => {
58
+ if (authWindow.closed) {
59
+ cleanup();
60
+ onError(new Error('Authentication window was closed'));
72
61
  }
73
62
  }, 500);
63
+ const cleanup = () => {
64
+ if (cleaned)
65
+ return;
66
+ cleaned = true;
67
+ window.removeEventListener('message', handleMessage);
68
+ clearInterval(checkWindowClosed);
69
+ };
70
+ window.addEventListener('message', handleMessage);
71
+ return cleanup;
74
72
  }
75
- export function generateOAuthNonce(publicKey) {
76
- return sha256(publicKey).replace(/^0x/, '');
73
+ /**
74
+ * Handle OAuth callback on the return page
75
+ * Call this on the page that receives the OAuth redirect
76
+ * It sends a postMessage to the opener and closes the window
77
+ */
78
+ export function handleOAuthCallback(successParam = 'oauth_success') {
79
+ const urlParams = new URLSearchParams(window.location.search);
80
+ const isSuccess = urlParams.get(successParam) === 'true';
81
+ const error = urlParams.get('error');
82
+ if (window.opener) {
83
+ if (isSuccess) {
84
+ window.opener.postMessage({ type: 'oauth_success' }, window.location.origin);
85
+ window.close();
86
+ return true;
87
+ }
88
+ if (error) {
89
+ window.opener.postMessage({ type: 'oauth_error', error }, window.location.origin);
90
+ window.close();
91
+ return false;
92
+ }
93
+ }
94
+ return false;
77
95
  }
@@ -32,16 +32,15 @@ export declare namespace loginPasskey {
32
32
  }
33
33
  /**
34
34
  * Authenticate with OAuth (opens popup)
35
+ * Uses backend OAuth flow where the backend handles PKCE and token exchange
35
36
  */
36
37
  export declare function authenticateOAuth(config: Config, parameters: {
37
38
  provider: OAuthProvider;
38
- clientId?: string;
39
39
  connector?: Connector;
40
40
  }): Promise<void>;
41
41
  export declare namespace authenticateOAuth {
42
42
  type Parameters = {
43
43
  provider: OAuthProvider;
44
- clientId?: string;
45
44
  connector?: Connector;
46
45
  };
47
46
  type ReturnType = void;
@@ -58,7 +57,6 @@ export declare function sendOTP(config: Config, parameters: {
58
57
  connector?: Connector;
59
58
  }): Promise<{
60
59
  otpId: string;
61
- subOrganizationId: string;
62
60
  }>;
63
61
  export declare namespace sendOTP {
64
62
  type Parameters = {
@@ -70,7 +68,6 @@ export declare namespace sendOTP {
70
68
  };
71
69
  type ReturnType = {
72
70
  otpId: string;
73
- subOrganizationId: string;
74
71
  };
75
72
  type ErrorType = Error;
76
73
  }
@@ -80,14 +77,12 @@ export declare namespace sendOTP {
80
77
  export declare function verifyOTP(config: Config, parameters: {
81
78
  code: string;
82
79
  otpId: string;
83
- subOrganizationId: string;
84
80
  connector?: Connector;
85
81
  }): Promise<void>;
86
82
  export declare namespace verifyOTP {
87
83
  type Parameters = {
88
84
  code: string;
89
85
  otpId: string;
90
- subOrganizationId: string;
91
86
  connector?: Connector;
92
87
  };
93
88
  type ReturnType = void;
@@ -106,6 +101,27 @@ export declare namespace refreshSession {
106
101
  type ReturnType = unknown;
107
102
  type ErrorType = Error;
108
103
  }
104
+ /**
105
+ * Get user email
106
+ */
107
+ export declare function getUserEmail(config: Config, parameters: {
108
+ organizationId: string;
109
+ projectId: string;
110
+ connector?: Connector;
111
+ }): Promise<{
112
+ email: string;
113
+ }>;
114
+ export declare namespace getUserEmail {
115
+ type Parameters = {
116
+ organizationId: string;
117
+ projectId: string;
118
+ connector?: Connector;
119
+ };
120
+ type ReturnType = {
121
+ email: string;
122
+ };
123
+ type ErrorType = Error;
124
+ }
109
125
  /**
110
126
  * Export wallet
111
127
  */
@@ -121,4 +137,23 @@ export declare namespace exportWallet {
121
137
  type ReturnType = void;
122
138
  type ErrorType = Error;
123
139
  }
140
+ /**
141
+ * Export private key
142
+ */
143
+ export declare function exportPrivateKey(config: Config, parameters: {
144
+ iframeContainerId: string;
145
+ address?: string;
146
+ keyFormat?: 'Hexadecimal' | 'Solana';
147
+ connector?: Connector;
148
+ }): Promise<void>;
149
+ export declare namespace exportPrivateKey {
150
+ type Parameters = {
151
+ iframeContainerId: string;
152
+ address?: string;
153
+ keyFormat?: 'Hexadecimal' | 'Solana';
154
+ connector?: Connector;
155
+ };
156
+ type ReturnType = void;
157
+ type ErrorType = Error;
158
+ }
124
159
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { type CreateConnectorFn } from '@wagmi/core';
2
2
  import type { StorageAdapter } from '@zerodev/wallet-core';
3
3
  import { type Chain } from 'viem';
4
- import type { OAuthConfig } from './oauth.js';
5
4
  export type ZeroDevWalletConnectorParams = {
6
5
  projectId: string;
7
6
  organizationId?: string;
@@ -12,7 +11,6 @@ export type ZeroDevWalletConnectorParams = {
12
11
  sessionStorage?: StorageAdapter;
13
12
  autoRefreshSession?: boolean;
14
13
  sessionWarningThreshold?: number;
15
- oauthConfig?: OAuthConfig;
16
14
  };
17
15
  export declare function zeroDevWallet(params: ZeroDevWalletConnectorParams): CreateConnectorFn;
18
16
  //# sourceMappingURL=connector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,aAAa,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7C,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,4BAA4B,GACnC,iBAAiB,CAgTnB"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,aAAa,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,MAAM,CAAA;AAgE3D,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,4BAA4B,GACnC,iBAAiB,CAoTnB"}
@@ -0,0 +1,18 @@
1
+ import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
2
+ import { type Config, type ResolvedRegister } from 'wagmi';
3
+ import { exportPrivateKey } from '../actions.js';
4
+ type ConfigParameter<config extends Config = Config> = {
5
+ config?: Config | config | undefined;
6
+ };
7
+ /**
8
+ * Hook to export private key
9
+ */
10
+ export declare function useExportPrivateKey<config extends Config = ResolvedRegister['config'], context = unknown>(parameters?: useExportPrivateKey.Parameters<config, context>): useExportPrivateKey.ReturnType<context>;
11
+ export declare namespace useExportPrivateKey {
12
+ type Parameters<config extends Config = Config, context = unknown> = ConfigParameter<config> & {
13
+ mutation?: UseMutationOptions<exportPrivateKey.ReturnType, exportPrivateKey.ErrorType, exportPrivateKey.Parameters, context> | undefined;
14
+ };
15
+ type ReturnType<context = unknown> = UseMutationResult<exportPrivateKey.ReturnType, exportPrivateKey.ErrorType, exportPrivateKey.Parameters, context>;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=useExportPrivateKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExportPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExportPrivateKey.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAa,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,KAAK,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACrC,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,SAAS,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAClD,OAAO,GAAG,OAAO,EAEjB,UAAU,GAAE,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAM,GAC/D,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAWzC;AAED,MAAM,CAAC,OAAO,WAAW,mBAAmB,CAAC;IAC3C,KAAK,UAAU,CACb,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,GAAG,OAAO,IACf,eAAe,CAAC,MAAM,CAAC,GAAG;QAC5B,QAAQ,CAAC,EACL,kBAAkB,CAChB,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,UAAU,EAC3B,OAAO,CACR,GACD,SAAS,CAAA;KACd,CAAA;IAED,KAAK,UAAU,CAAC,OAAO,GAAG,OAAO,IAAI,iBAAiB,CACpD,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,UAAU,EAC3B,OAAO,CACR,CAAA;CACF"}
@@ -0,0 +1,20 @@
1
+ import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
2
+ import { type Config, type ResolvedRegister } from 'wagmi';
3
+ import { getUserEmail } from '../actions.js';
4
+ type ConfigParameter<config extends Config = Config> = {
5
+ config?: Config | config | undefined;
6
+ };
7
+ /**
8
+ * Hook to fetch user email address
9
+ */
10
+ export declare function useGetUserEmail<config extends Config = ResolvedRegister['config']>(parameters: useGetUserEmail.Parameters<config>): useGetUserEmail.ReturnType;
11
+ export declare namespace useGetUserEmail {
12
+ type Parameters<config extends Config = Config> = ConfigParameter<config> & {
13
+ organizationId: string;
14
+ projectId: string;
15
+ query?: Omit<UseQueryOptions<getUserEmail.ReturnType, getUserEmail.ErrorType, getUserEmail.ReturnType>, 'queryKey' | 'queryFn'> | undefined;
16
+ };
17
+ type ReturnType = UseQueryResult<getUserEmail.ReturnType, getUserEmail.ErrorType>;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=useGetUserEmail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetUserEmail.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGetUserEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAa,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,KAAK,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACrC,CAAA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAClD,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,CAY5E;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,KAAK,UAAU,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG;QAC1E,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,CAAC,EACF,IAAI,CACF,eAAe,CACb,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,SAAS,EACtB,YAAY,CAAC,UAAU,CACxB,EACD,UAAU,GAAG,SAAS,CACvB,GACD,SAAS,CAAA;KACd,CAAA;IAED,KAAK,UAAU,GAAG,cAAc,CAC9B,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,SAAS,CACvB,CAAA;CACF"}
@@ -1,14 +1,16 @@
1
1
  export type { ZeroDevWalletConnectorParams } from './connector.js';
2
2
  export { zeroDevWallet } from './connector.js';
3
3
  export { useAuthenticateOAuth } from './hooks/useAuthenticateOAuth.js';
4
+ export { useExportPrivateKey } from './hooks/useExportPrivateKey.js';
4
5
  export { useExportWallet } from './hooks/useExportWallet.js';
6
+ export { useGetUserEmail } from './hooks/useGetUserEmail.js';
5
7
  export { useLoginPasskey } from './hooks/useLoginPasskey.js';
6
8
  export { useRefreshSession } from './hooks/useRefreshSession.js';
7
9
  export { useRegisterPasskey } from './hooks/useRegisterPasskey.js';
8
10
  export { useSendOTP } from './hooks/useSendOTP.js';
9
11
  export { useVerifyOTP } from './hooks/useVerifyOTP.js';
10
- export type { OAuthConfig, OAuthProvider } from './oauth.js';
11
- export { OAUTH_PROVIDERS } from './oauth.js';
12
+ export type { OAuthMessageData, OAuthProvider } from './oauth.js';
13
+ export { buildBackendOAuthUrl, handleOAuthCallback, listenForOAuthMessage, OAUTH_PROVIDERS, } from './oauth.js';
12
14
  export type { ZeroDevProvider } from './provider.js';
13
15
  export type { ZeroDevWalletState } from './store.js';
14
16
  export { createZeroDevWalletStore } from './store.js';