@dynamic-labs/sdk-react-core 3.0.0-alpha.5 → 3.0.0-alpha.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +11 -11
  5. package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +2 -1
  6. package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +2 -1
  7. package/src/lib/components/QRCode/QRCode.d.ts +15 -0
  8. package/src/lib/context/DynamicContext/DynamicContext.cjs +1 -1
  9. package/src/lib/context/DynamicContext/DynamicContext.js +1 -1
  10. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +2 -2
  11. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +2 -2
  12. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +3 -67
  13. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +3 -67
  14. package/src/lib/data/api/externalAuth/externalAuth.d.ts +5 -0
  15. package/src/lib/data/api/externalAuth/index.d.ts +1 -0
  16. package/src/lib/data/api/index.d.ts +1 -0
  17. package/src/lib/events/auth.d.ts +1 -0
  18. package/src/lib/events/embeddedWallet.d.ts +1 -1
  19. package/src/lib/locale/en/translation.cjs +4 -4
  20. package/src/lib/locale/en/translation.d.ts +2 -2
  21. package/src/lib/locale/en/translation.js +4 -4
  22. package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +1 -3
  23. package/src/lib/styles/index.shadow.cjs +1 -1
  24. package/src/lib/styles/index.shadow.js +1 -1
  25. package/src/lib/utils/functions/walletListBuilder/walletListBuilder.cjs +2 -1
  26. package/src/lib/utils/functions/walletListBuilder/walletListBuilder.js +2 -1
  27. package/src/lib/utils/hooks/index.d.ts +1 -0
  28. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +1 -2
  29. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +1 -2
  30. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +6 -4
  31. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +6 -4
  32. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +1 -2
  33. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +1 -2
  34. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +1 -2
  35. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +1 -2
  36. package/src/lib/utils/hooks/useExternalAuth/index.d.ts +1 -0
  37. package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.d.ts +9 -0
  38. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +1 -6
  39. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +1 -6
  40. package/src/lib/utils/hooks/useSwitchWallet/useSwitchWallet.cjs +1 -1
  41. package/src/lib/utils/hooks/useSwitchWallet/useSwitchWallet.js +1 -1
  42. package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +4 -1
  43. package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +4 -1
  44. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.cjs +1 -1
  45. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.js +1 -1
  46. package/src/lib/views/EmailVerification/EmailVerification.cjs +8 -5
  47. package/src/lib/views/EmailVerification/EmailVerification.js +8 -5
  48. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +2 -2
  49. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +2 -2
@@ -82,7 +82,8 @@ const walletListBuilder = ({ authMode, userWallets, multiWallet, numberOfWallets
82
82
  if (walletConnectorCore.isEmbeddedConnector(wallet.walletConnector)) {
83
83
  return;
84
84
  }
85
- else if (wallet.key === 'unknown') {
85
+ else if (wallet.key === 'unknown' ||
86
+ !wallet.walletConnector.isAvailable) {
86
87
  return;
87
88
  }
88
89
  else if (isRecommendedWallet) {
@@ -78,7 +78,8 @@ const walletListBuilder = ({ authMode, userWallets, multiWallet, numberOfWallets
78
78
  if (isEmbeddedConnector(wallet.walletConnector)) {
79
79
  return;
80
80
  }
81
- else if (wallet.key === 'unknown') {
81
+ else if (wallet.key === 'unknown' ||
82
+ !wallet.walletConnector.isAvailable) {
82
83
  return;
83
84
  }
84
85
  else if (isRecommendedWallet) {
@@ -58,3 +58,4 @@ export { useUserAuth } from './useUserAuth';
58
58
  export { useSwitchWallet } from './useSwitchWallet';
59
59
  export { useSyncEmbeddedWalletFlow } from './useSyncEmbeddedWalletFlow';
60
60
  export { useSyncOnboardingFlow } from './useSyncOnboardingFlow';
61
+ export { useExternalAuth } from './useExternalAuth';
@@ -24,7 +24,6 @@ require('../../../context/CaptchaContext/CaptchaContext.cjs');
24
24
  require('../../../context/ErrorContext/ErrorContext.cjs');
25
25
  var errors = require('../../constants/errors.cjs');
26
26
  require('@dynamic-labs/multi-wallet');
27
- var getAuthToken = require('../../functions/getAuthToken/getAuthToken.cjs');
28
27
  require('react-international-phone');
29
28
  require('../../../config/ApiEndpoint.cjs');
30
29
  require('@dynamic-labs/store');
@@ -133,7 +132,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
133
132
  });
134
133
  setPrimaryWalletId(smartWallet$1.id);
135
134
  }
136
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, getAuthToken.getAuthToken(), updatedUser);
135
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, updatedUser);
137
136
  setShowAuthFlow(false, { performMultiWalletChecks: false });
138
137
  }
139
138
  catch (err) {
@@ -20,7 +20,6 @@ import '../../../context/CaptchaContext/CaptchaContext.js';
20
20
  import '../../../context/ErrorContext/ErrorContext.js';
21
21
  import { USER_NOT_LOGGED_IN } from '../../constants/errors.js';
22
22
  import '@dynamic-labs/multi-wallet';
23
- import { getAuthToken } from '../../functions/getAuthToken/getAuthToken.js';
24
23
  import 'react-international-phone';
25
24
  import '../../../config/ApiEndpoint.js';
26
25
  import '@dynamic-labs/store';
@@ -129,7 +128,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
129
128
  });
130
129
  setPrimaryWalletId(smartWallet.id);
131
130
  }
132
- dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, getAuthToken(), updatedUser);
131
+ dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, updatedUser);
133
132
  setShowAuthFlow(false, { performMultiWalletChecks: false });
134
133
  }
135
134
  catch (err) {
@@ -14,9 +14,10 @@ require('@dynamic-labs/wallet-connector-core');
14
14
  require('react/jsx-runtime');
15
15
  require('../../../context/ViewContext/ViewContext.cjs');
16
16
  require('@dynamic-labs/wallet-book');
17
+ var localStorage$1 = require('../../constants/localStorage.cjs');
17
18
  require('../../constants/colors.cjs');
18
19
  var values = require('../../constants/values.cjs');
19
- require('../../../shared/utils/classes/storage/localStorage.cjs');
20
+ var localStorage = require('../../../shared/utils/classes/storage/localStorage.cjs');
20
21
  require('../../../shared/utils/classes/storage/sessionStorage.cjs');
21
22
  require('../../../shared/consts/index.cjs');
22
23
  require('../../../events/dynamicEvents.cjs');
@@ -102,7 +103,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
102
103
  * }
103
104
  */
104
105
  const useEmbeddedWallet = () => {
105
- const { user, projectSettings, primaryWalletId, setPrimaryWalletId } = useInternalDynamicContext.useInternalDynamicContext();
106
+ const { user, projectSettings, setPrimaryWalletId } = useInternalDynamicContext.useInternalDynamicContext();
106
107
  const { isTurnkeyWallet } = useIsTurnkeyWallet.useIsTurnkeyWallet();
107
108
  const { createEmbeddedWallet: createMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet.useMPCEmbeddedWallet();
108
109
  const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet.useSecureEnclaveEmbeddedWallet();
@@ -143,7 +144,8 @@ const useEmbeddedWallet = () => {
143
144
  var _a, _b;
144
145
  const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled.isTurnkeyEnabled(projectSettings) ||
145
146
  isCoinbaseWaasEnabled.isCoinbaseWaasEnabled(projectSettings);
146
- if (!hasEmbeddedWalletProviderEnabled || primaryWalletId) {
147
+ const hasPrimaryWallet = localStorage.LocalStorage.getFromLS(localStorage$1.PRIMARY_WALLET_ID);
148
+ if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
147
149
  return false;
148
150
  }
149
151
  // Turnkey specific rules
@@ -166,7 +168,7 @@ const useEmbeddedWallet = () => {
166
168
  return false;
167
169
  }
168
170
  return true;
169
- }, [primaryWalletId, projectSettings]);
171
+ }, [projectSettings, setPrimaryWalletId]);
170
172
  return {
171
173
  createEmbeddedWallet,
172
174
  createOrRestoreSession,
@@ -10,9 +10,10 @@ import '@dynamic-labs/wallet-connector-core';
10
10
  import 'react/jsx-runtime';
11
11
  import '../../../context/ViewContext/ViewContext.js';
12
12
  import '@dynamic-labs/wallet-book';
13
+ import { PRIMARY_WALLET_ID } from '../../constants/localStorage.js';
13
14
  import '../../constants/colors.js';
14
15
  import { ChainEnumToVerifiedCredentialName } from '../../constants/values.js';
15
- import '../../../shared/utils/classes/storage/localStorage.js';
16
+ import { LocalStorage } from '../../../shared/utils/classes/storage/localStorage.js';
16
17
  import '../../../shared/utils/classes/storage/sessionStorage.js';
17
18
  import '../../../shared/consts/index.js';
18
19
  import '../../../events/dynamicEvents.js';
@@ -98,7 +99,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
98
99
  * }
99
100
  */
100
101
  const useEmbeddedWallet = () => {
101
- const { user, projectSettings, primaryWalletId, setPrimaryWalletId } = useInternalDynamicContext();
102
+ const { user, projectSettings, setPrimaryWalletId } = useInternalDynamicContext();
102
103
  const { isTurnkeyWallet } = useIsTurnkeyWallet();
103
104
  const { createEmbeddedWallet: createMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet();
104
105
  const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet();
@@ -139,7 +140,8 @@ const useEmbeddedWallet = () => {
139
140
  var _a, _b;
140
141
  const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled(projectSettings) ||
141
142
  isCoinbaseWaasEnabled(projectSettings);
142
- if (!hasEmbeddedWalletProviderEnabled || primaryWalletId) {
143
+ const hasPrimaryWallet = LocalStorage.getFromLS(PRIMARY_WALLET_ID);
144
+ if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
143
145
  return false;
144
146
  }
145
147
  // Turnkey specific rules
@@ -162,7 +164,7 @@ const useEmbeddedWallet = () => {
162
164
  return false;
163
165
  }
164
166
  return true;
165
- }, [primaryWalletId, projectSettings]);
167
+ }, [projectSettings, setPrimaryWalletId]);
166
168
  return {
167
169
  createEmbeddedWallet,
168
170
  createOrRestoreSession,
@@ -13,7 +13,6 @@ var findEmbeddedWalletFromVerifiedCredentials = require('../../../../functions/f
13
13
  require('../../../../constants/values.cjs');
14
14
  var errors = require('../../../../constants/errors.cjs');
15
15
  require('@dynamic-labs/multi-wallet');
16
- var getAuthToken = require('../../../../functions/getAuthToken/getAuthToken.cjs');
17
16
  var logger = require('../../../../../shared/logger.cjs');
18
17
  require('@dynamic-labs/iconic');
19
18
  require('react/jsx-runtime');
@@ -171,7 +170,7 @@ const useCoinbaseMPC = () => {
171
170
  id: newSelectedCredentialWallet.id,
172
171
  key: (_c = newSelectedCredentialWallet.walletName) !== null && _c !== void 0 ? _c : connector.key,
173
172
  };
174
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken.getAuthToken(), updatedUser);
173
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, updatedUser);
175
174
  return coinbaseMPCWallet;
176
175
  }
177
176
  catch (error) {
@@ -9,7 +9,6 @@ import { findEmbeddedWalletFromVerifiedCredentials } from '../../../../functions
9
9
  import '../../../../constants/values.js';
10
10
  import { USER_NOT_LOGGED_IN } from '../../../../constants/errors.js';
11
11
  import '@dynamic-labs/multi-wallet';
12
- import { getAuthToken } from '../../../../functions/getAuthToken/getAuthToken.js';
13
12
  import { logger } from '../../../../../shared/logger.js';
14
13
  import '@dynamic-labs/iconic';
15
14
  import 'react/jsx-runtime';
@@ -167,7 +166,7 @@ const useCoinbaseMPC = () => {
167
166
  id: newSelectedCredentialWallet.id,
168
167
  key: (_c = newSelectedCredentialWallet.walletName) !== null && _c !== void 0 ? _c : connector.key,
169
168
  };
170
- dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken(), updatedUser);
169
+ dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, updatedUser);
171
170
  return coinbaseMPCWallet;
172
171
  }
173
172
  catch (error) {
@@ -25,7 +25,6 @@ require('../../../../../context/ErrorContext/ErrorContext.cjs');
25
25
  var findEmbeddedWalletFromVerifiedCredentials = require('../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
26
26
  var findTurnkeyWallet = require('../../../../functions/findTurnkeyWallet/findTurnkeyWallet.cjs');
27
27
  require('@dynamic-labs/multi-wallet');
28
- var getAuthToken = require('../../../../functions/getAuthToken/getAuthToken.cjs');
29
28
  require('react-international-phone');
30
29
  require('../../../../../config/ApiEndpoint.cjs');
31
30
  require('@dynamic-labs/store');
@@ -213,7 +212,7 @@ const useTurnkey = () => {
213
212
  key: (_j = embeddedWalletVerifiedCredential.walletName) !== null && _j !== void 0 ? _j : walletConnector.key,
214
213
  };
215
214
  setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
216
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken.getAuthToken(), user);
215
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
217
216
  }
218
217
  }
219
218
  setShowAuthFlow(false, { performMultiWalletChecks: false });
@@ -21,7 +21,6 @@ import '../../../../../context/ErrorContext/ErrorContext.js';
21
21
  import { findEmbeddedWalletFromVerifiedCredentials } from '../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
22
22
  import { findTurnkeyWalletByChain } from '../../../../functions/findTurnkeyWallet/findTurnkeyWallet.js';
23
23
  import '@dynamic-labs/multi-wallet';
24
- import { getAuthToken } from '../../../../functions/getAuthToken/getAuthToken.js';
25
24
  import 'react-international-phone';
26
25
  import '../../../../../config/ApiEndpoint.js';
27
26
  import '@dynamic-labs/store';
@@ -209,7 +208,7 @@ const useTurnkey = () => {
209
208
  key: (_j = embeddedWalletVerifiedCredential.walletName) !== null && _j !== void 0 ? _j : walletConnector.key,
210
209
  };
211
210
  setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
212
- dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken(), user);
211
+ dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
213
212
  }
214
213
  }
215
214
  setShowAuthFlow(false, { performMultiWalletChecks: false });
@@ -0,0 +1 @@
1
+ export * from './useExternalAuth';
@@ -0,0 +1,9 @@
1
+ import { UserProfile } from '../../../..';
2
+ type Props = {
3
+ externalUserId: string;
4
+ externalJwt?: string;
5
+ };
6
+ export declare const useExternalAuth: () => {
7
+ signInWithExternalJwt: ({ externalUserId, externalJwt, }: Props) => Promise<UserProfile | undefined>;
8
+ };
9
+ export {};
@@ -5,11 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
- var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
8
  var UserWalletsContext = require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
10
9
  require('@dynamic-labs/sdk-api-core');
11
10
  require('../../../shared/logger.cjs');
12
11
  require('@dynamic-labs/iconic');
12
+ require('@dynamic-labs/wallet-connector-core');
13
13
  require('react/jsx-runtime');
14
14
  require('../../../context/ViewContext/ViewContext.cjs');
15
15
  require('@dynamic-labs/wallet-book');
@@ -103,11 +103,6 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
103
103
  const numberOfLinkedWallets = verifiedCredentials.filter((account) => account.walletName === ((wallet === null || wallet === void 0 ? void 0 : wallet.connector.key) || '')).length;
104
104
  // If there's only 1, it's the one being removed and we can kill the session
105
105
  if (numberOfLinkedWallets === 1) {
106
- if (wallet && walletConnectorCore.isBitcoinConnector(wallet.connector)) {
107
- // to avoid the infinite wallet popup issue experienced with the ME wallet
108
- // we only want to clear the cached connected accounts when we unlink, but not on logout
109
- yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.clearConnectedAccounts());
110
- }
111
106
  yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
112
107
  }
113
108
  removedWalletsIds.current.push(walletId);
@@ -1,11 +1,11 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
3
  import { useCallback } from 'react';
4
- import { isBitcoinConnector } from '@dynamic-labs/wallet-connector-core';
5
4
  import { useInternalUserWallets } from '../../../context/UserWalletsContext/UserWalletsContext.js';
6
5
  import '@dynamic-labs/sdk-api-core';
7
6
  import '../../../shared/logger.js';
8
7
  import '@dynamic-labs/iconic';
8
+ import '@dynamic-labs/wallet-connector-core';
9
9
  import 'react/jsx-runtime';
10
10
  import '../../../context/ViewContext/ViewContext.js';
11
11
  import '@dynamic-labs/wallet-book';
@@ -99,11 +99,6 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
99
99
  const numberOfLinkedWallets = verifiedCredentials.filter((account) => account.walletName === ((wallet === null || wallet === void 0 ? void 0 : wallet.connector.key) || '')).length;
100
100
  // If there's only 1, it's the one being removed and we can kill the session
101
101
  if (numberOfLinkedWallets === 1) {
102
- if (wallet && isBitcoinConnector(wallet.connector)) {
103
- // to avoid the infinite wallet popup issue experienced with the ME wallet
104
- // we only want to clear the cached connected accounts when we unlink, but not on logout
105
- yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.clearConnectedAccounts());
106
- }
107
102
  yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
108
103
  }
109
104
  removedWalletsIds.current.push(walletId);
@@ -112,7 +112,7 @@ const useSwitchWallet = () => {
112
112
  throw new Error(`Wallet with id ${walletId} not found`);
113
113
  }
114
114
  if (((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown') {
115
- throw new Error("Cannot switch to this wallet, as it doesn't have an initialized wallet connector on this platform (desktop/mobile)");
115
+ throw new Error("Cannot make this wallet active, since this wallet doesn't have a compatible connector on this device.");
116
116
  }
117
117
  const { connector } = wallet;
118
118
  const email = (_b = user === null || user === void 0 ? void 0 : user.verifiedCredentials.find((verifiedCredential) => verifiedCredential.format === 'email')) === null || _b === void 0 ? void 0 : _b.email;
@@ -108,7 +108,7 @@ const useSwitchWallet = () => {
108
108
  throw new Error(`Wallet with id ${walletId} not found`);
109
109
  }
110
110
  if (((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown') {
111
- throw new Error("Cannot switch to this wallet, as it doesn't have an initialized wallet connector on this platform (desktop/mobile)");
111
+ throw new Error("Cannot make this wallet active, since this wallet doesn't have a compatible connector on this device.");
112
112
  }
113
113
  const { connector } = wallet;
114
114
  const email = (_b = user === null || user === void 0 ? void 0 : user.verifiedCredentials.find((verifiedCredential) => verifiedCredential.format === 'email')) === null || _b === void 0 ? void 0 : _b.email;
@@ -83,7 +83,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
83
83
 
84
84
  const sleepToShowSuccessMessage = () => utils.sleep(1500);
85
85
  const useUserAuth = ({ authMethod, }) => {
86
- const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, } = useInternalDynamicContext.useInternalDynamicContext();
86
+ const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, walletConnectorOptions, } = useInternalDynamicContext.useInternalDynamicContext();
87
87
  const { view, setView, goToInitialView } = ViewContext.useViewContext();
88
88
  const { setLoading } = LoadingContext.useLoadingContext();
89
89
  const { setErrorMessage, setError } = ErrorContext.useErrorContext();
@@ -110,6 +110,9 @@ const useUserAuth = ({ authMethod, }) => {
110
110
  verifiedUser = verifyResponse;
111
111
  }
112
112
  onVerifySuccess === null || onVerifySuccess === void 0 ? void 0 : onVerifySuccess(verifiedUser);
113
+ walletConnectorOptions.forEach((walletOption) => {
114
+ walletOption.walletConnector.setVerifiedCredentials(verifiedUser.verifiedCredentials);
115
+ });
113
116
  if ((_b = verifiedUser.scope) === null || _b === void 0 ? void 0 : _b.includes('requiresAdditionalAuth')) {
114
117
  const devices = yield mfa.getUserMfaDevices({ environmentId });
115
118
  if (devices.length === 0) {
@@ -79,7 +79,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
79
79
 
80
80
  const sleepToShowSuccessMessage = () => sleep(1500);
81
81
  const useUserAuth = ({ authMethod, }) => {
82
- const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, } = useInternalDynamicContext();
82
+ const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, walletConnectorOptions, } = useInternalDynamicContext();
83
83
  const { view, setView, goToInitialView } = useViewContext();
84
84
  const { setLoading } = useLoadingContext();
85
85
  const { setErrorMessage, setError } = useErrorContext();
@@ -106,6 +106,9 @@ const useUserAuth = ({ authMethod, }) => {
106
106
  verifiedUser = verifyResponse;
107
107
  }
108
108
  onVerifySuccess === null || onVerifySuccess === void 0 ? void 0 : onVerifySuccess(verifiedUser);
109
+ walletConnectorOptions.forEach((walletOption) => {
110
+ walletOption.walletConnector.setVerifiedCredentials(verifiedUser.verifiedCredentials);
111
+ });
109
112
  if ((_b = verifiedUser.scope) === null || _b === void 0 ? void 0 : _b.includes('requiresAdditionalAuth')) {
110
113
  const devices = yield getUserMfaDevices({ environmentId });
111
114
  if (devices.length === 0) {
@@ -17,7 +17,7 @@ const findWallet = (account, walletOptions) => {
17
17
  }
18
18
  // if we cannot find the correct connector for the wallet, we default to the unknown
19
19
  // this way the wallet will appear in user wallets, but will not be able to be interacted with
20
- return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'unknown'));
20
+ return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'fallbackconnector'));
21
21
  };
22
22
 
23
23
  exports.findWallet = findWallet;
@@ -13,7 +13,7 @@ const findWallet = (account, walletOptions) => {
13
13
  }
14
14
  // if we cannot find the correct connector for the wallet, we default to the unknown
15
15
  // this way the wallet will appear in user wallets, but will not be able to be interacted with
16
- return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'unknown'));
16
+ return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'fallbackconnector'));
17
17
  };
18
18
 
19
19
  export { findWallet };
@@ -102,7 +102,7 @@ require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
102
102
  const SECONDS_TO_RETRY = 15;
103
103
  const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _showRetryButton = true, showTransferMessage: _showTransferMessage = false, }) => {
104
104
  var _a, _b, _c, _d;
105
- const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, } = useInternalDynamicContext.useInternalDynamicContext();
105
+ const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, walletConnectorOptions, } = useInternalDynamicContext.useInternalDynamicContext();
106
106
  const { setView, goToInitialView } = ViewContext.useViewContext();
107
107
  const { error, setError, setErrorMessage } = ErrorContext.useErrorContext();
108
108
  const { loading, setLoading } = LoadingContext.useLoadingContext();
@@ -177,19 +177,21 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
177
177
  if (!embeddedWalletVerifiedCredential) {
178
178
  throw new Error('Could not find an embedded wallet');
179
179
  }
180
+ const walletOption = walletConnectorOptions === null || walletConnectorOptions === void 0 ? void 0 : walletConnectorOptions.find((option) => option.key === embeddedWalletVerifiedCredential.walletName);
181
+ if (!(walletOption === null || walletOption === void 0 ? void 0 : walletOption.walletConnector)) {
182
+ throw new Error('Could not find connector for embedded wallet');
183
+ }
180
184
  const wallet = {
181
185
  address: embeddedWalletVerifiedCredential.address,
182
186
  authenticated: false,
183
187
  chain: embeddedWalletVerifiedCredential.chain,
184
188
  connected: true,
185
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
186
- // @ts-ignore
187
- connector: undefined,
189
+ connector: walletOption.walletConnector,
188
190
  id: embeddedWalletVerifiedCredential.id,
189
191
  key: (_k = embeddedWalletVerifiedCredential.walletName) !== null && _k !== void 0 ? _k : '',
190
192
  };
191
193
  setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
192
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, updateUserProfileResponse.jwt, user);
194
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
193
195
  }
194
196
  if (isUsingPregeneratedWallets || !isAutomaticWalletCreation) {
195
197
  setShowAuthFlow(false);
@@ -210,6 +212,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
210
212
  setShowAuthFlow,
211
213
  setView,
212
214
  user,
215
+ walletConnectorOptions,
213
216
  ]);
214
217
  const handleEmailVerification = React.useCallback((verificationToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
215
218
  setError(undefined);
@@ -98,7 +98,7 @@ import '../../context/IpConfigurationContext/IpConfigurationContext.js';
98
98
  const SECONDS_TO_RETRY = 15;
99
99
  const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _showRetryButton = true, showTransferMessage: _showTransferMessage = false, }) => {
100
100
  var _a, _b, _c, _d;
101
- const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, } = useInternalDynamicContext();
101
+ const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, walletConnectorOptions, } = useInternalDynamicContext();
102
102
  const { setView, goToInitialView } = useViewContext();
103
103
  const { error, setError, setErrorMessage } = useErrorContext();
104
104
  const { loading, setLoading } = useLoadingContext();
@@ -173,19 +173,21 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
173
173
  if (!embeddedWalletVerifiedCredential) {
174
174
  throw new Error('Could not find an embedded wallet');
175
175
  }
176
+ const walletOption = walletConnectorOptions === null || walletConnectorOptions === void 0 ? void 0 : walletConnectorOptions.find((option) => option.key === embeddedWalletVerifiedCredential.walletName);
177
+ if (!(walletOption === null || walletOption === void 0 ? void 0 : walletOption.walletConnector)) {
178
+ throw new Error('Could not find connector for embedded wallet');
179
+ }
176
180
  const wallet = {
177
181
  address: embeddedWalletVerifiedCredential.address,
178
182
  authenticated: false,
179
183
  chain: embeddedWalletVerifiedCredential.chain,
180
184
  connected: true,
181
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
182
- // @ts-ignore
183
- connector: undefined,
185
+ connector: walletOption.walletConnector,
184
186
  id: embeddedWalletVerifiedCredential.id,
185
187
  key: (_k = embeddedWalletVerifiedCredential.walletName) !== null && _k !== void 0 ? _k : '',
186
188
  };
187
189
  setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
188
- dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, updateUserProfileResponse.jwt, user);
190
+ dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
189
191
  }
190
192
  if (isUsingPregeneratedWallets || !isAutomaticWalletCreation) {
191
193
  setShowAuthFlow(false);
@@ -206,6 +208,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
206
208
  setShowAuthFlow,
207
209
  setView,
208
210
  user,
211
+ walletConnectorOptions,
209
212
  ]);
210
213
  const handleEmailVerification = useCallback((verificationToken) => __awaiter(void 0, void 0, void 0, function* () {
211
214
  setError(undefined);
@@ -88,7 +88,7 @@ require('../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
88
88
  var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
89
89
 
90
90
  const Wallet = ({ wallet, ens }) => {
91
- var _a;
91
+ var _a, _b;
92
92
  const { connector, address } = wallet;
93
93
  const switchWallet = useSwitchWallet.useSwitchWallet();
94
94
  const { setSelectedWalletWithAction, projectSettings, authMode } = useInternalDynamicContext.useInternalDynamicContext();
@@ -97,7 +97,7 @@ const Wallet = ({ wallet, ens }) => {
97
97
  {
98
98
  Icon: jsxRuntime.jsx(switchHorizontal.ReactComponent, {}),
99
99
  callback: () => switchWallet(wallet.id),
100
- hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown',
100
+ hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown' || !((_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.isAvailable),
101
101
  text: 'Select wallet',
102
102
  },
103
103
  ];
@@ -84,7 +84,7 @@ import '../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
84
84
  import { useInternalDynamicContext } from '../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
85
85
 
86
86
  const Wallet = ({ wallet, ens }) => {
87
- var _a;
87
+ var _a, _b;
88
88
  const { connector, address } = wallet;
89
89
  const switchWallet = useSwitchWallet();
90
90
  const { setSelectedWalletWithAction, projectSettings, authMode } = useInternalDynamicContext();
@@ -93,7 +93,7 @@ const Wallet = ({ wallet, ens }) => {
93
93
  {
94
94
  Icon: jsx(SvgSwitchHorizontal, {}),
95
95
  callback: () => switchWallet(wallet.id),
96
- hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown',
96
+ hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown' || !((_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.isAvailable),
97
97
  text: 'Select wallet',
98
98
  },
99
99
  ];