@dynamic-labs/sdk-react-core 2.1.0-alpha.25 → 2.1.0-alpha.27

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 (88) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +13 -13
  5. package/src/lib/context/DynamicContext/DynamicContext.cjs +3 -5
  6. package/src/lib/context/DynamicContext/DynamicContext.js +3 -5
  7. package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +0 -1
  8. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +0 -1
  9. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +0 -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/validators/validators.d.ts +2 -2
  13. package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +30 -14
  14. package/src/lib/data/api/embeddedWallets/embeddedWallets.d.ts +3 -2
  15. package/src/lib/data/api/embeddedWallets/embeddedWallets.js +30 -14
  16. package/src/lib/data/api/mfa/mfa.cjs +10 -5
  17. package/src/lib/data/api/mfa/mfa.d.ts +1 -1
  18. package/src/lib/data/api/mfa/mfa.js +10 -5
  19. package/src/lib/data/api/wallets/wallets.cjs +6 -3
  20. package/src/lib/data/api/wallets/wallets.d.ts +1 -1
  21. package/src/lib/data/api/wallets/wallets.js +6 -3
  22. package/src/lib/events/embeddedWallet.d.ts +2 -1
  23. package/src/lib/locale/en/translation.cjs +2 -2
  24. package/src/lib/locale/en/translation.d.ts +1 -1
  25. package/src/lib/locale/en/translation.js +2 -2
  26. package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +1 -1
  27. package/src/lib/shared/types/localStorage.d.ts +0 -13
  28. package/src/lib/store/actions/networkConfigurationsActions/index.d.ts +1 -0
  29. package/src/lib/store/actions/networkConfigurationsActions/networkConfigurationsActions.cjs +10 -0
  30. package/src/lib/store/actions/networkConfigurationsActions/networkConfigurationsActions.d.ts +7 -0
  31. package/src/lib/store/actions/networkConfigurationsActions/networkConfigurationsActions.js +6 -0
  32. package/src/lib/store/hooks/useNetworkConfigurations/index.d.ts +1 -0
  33. package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.cjs +139 -0
  34. package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.d.ts +12 -0
  35. package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.js +135 -0
  36. package/src/lib/store/index.d.ts +3 -1
  37. package/src/lib/store/store.cjs +1 -0
  38. package/src/lib/store/store.js +1 -0
  39. package/src/lib/store/types.d.ts +6 -1
  40. package/src/lib/store/utils/clearExpiredData/clearExpiredData.cjs +4 -1
  41. package/src/lib/store/utils/clearExpiredData/clearExpiredData.js +4 -1
  42. package/src/lib/utils/constants/localStorage.cjs +0 -2
  43. package/src/lib/utils/constants/localStorage.js +1 -2
  44. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +12 -15
  45. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +12 -15
  46. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +3 -3
  47. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +3 -3
  48. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +11 -10
  49. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +11 -10
  50. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +5 -6
  51. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +5 -6
  52. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +1 -1
  53. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +1 -1
  54. package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.cjs +2 -6
  55. package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.js +2 -6
  56. package/src/lib/utils/hooks/useMfa/useMfa.cjs +1 -4
  57. package/src/lib/utils/hooks/useMfa/useMfa.js +1 -4
  58. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +29 -21
  59. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +29 -21
  60. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +1 -1
  61. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +1 -1
  62. package/src/lib/utils/hooks/useSocialAuth/farcaster.cjs +13 -4
  63. package/src/lib/utils/hooks/useSocialAuth/farcaster.d.ts +2 -0
  64. package/src/lib/utils/hooks/useSocialAuth/farcaster.js +13 -4
  65. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +4 -4
  66. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +7 -6
  67. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +5 -5
  68. package/src/lib/utils/hooks/useTransferWallet/useTransferWallet.cjs +3 -5
  69. package/src/lib/utils/hooks/useTransferWallet/useTransferWallet.js +3 -5
  70. package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +4 -1
  71. package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +5 -2
  72. package/src/lib/utils/hooks/useWalletsConnectionState/index.d.ts +0 -1
  73. package/src/lib/views/EmailVerification/EmailVerification.cjs +6 -6
  74. package/src/lib/views/EmailVerification/EmailVerification.js +6 -6
  75. package/src/lib/views/MfaSecureDeviceView/MfaSecureDeviceView.cjs +2 -2
  76. package/src/lib/views/MfaSecureDeviceView/MfaSecureDeviceView.js +2 -2
  77. package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.cjs +5 -4
  78. package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.js +5 -4
  79. package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.cjs +5 -6
  80. package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.d.ts +1 -2
  81. package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.js +5 -6
  82. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +8 -18
  83. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.d.ts +4 -12
  84. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +8 -18
  85. package/src/lib/utils/hooks/useProcessNetworkConfigurations/index.d.ts +0 -1
  86. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.cjs +0 -117
  87. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.d.ts +0 -14
  88. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.js +0 -113
@@ -8,6 +8,7 @@ var React = require('react');
8
8
  var sdkApiCore = require('@dynamic-labs/sdk-api-core');
9
9
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
10
10
  var utils = require('@dynamic-labs/utils');
11
+ var createUserProfile = require('../../../../functions/createUserProfile/createUserProfile.cjs');
11
12
  var findEmbeddedWalletFromVerifiedCredentials = require('../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
12
13
  require('../../../../constants/values.cjs');
13
14
  var errors = require('../../../../constants/errors.cjs');
@@ -28,7 +29,6 @@ require('viem');
28
29
  require('viem/chains');
29
30
  var findCoinbaseMPCWallet = require('../../../../functions/findCoinbaseMPCWallet/findCoinbaseMPCWallet.cjs');
30
31
  var getCoinbaseMPCConnectorFetchers = require('../../../../functions/getCoinbaseMPCConnectorFetchers/getCoinbaseMPCConnectorFetchers.cjs');
31
- var updateJWTAndCreateUserProfile = require('../../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
32
32
  require('../../../../../context/DynamicContext/DynamicContext.cjs');
33
33
  var dynamicEvents = require('../../../../../events/dynamicEvents.cjs');
34
34
  require('../../../../../context/CaptchaContext/CaptchaContext.cjs');
@@ -90,7 +90,7 @@ var useInternalDynamicContext = require('../../../../../context/DynamicContext/u
90
90
 
91
91
  const DYNAMIC_PASSWORD_LENGTH = 20;
92
92
  const useCoinbaseMPC = () => {
93
- const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement, setUser, handleLogOut, setShowAuthFlow, } = useInternalDynamicContext.useInternalDynamicContext();
93
+ const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement, handleLogOut, setShowAuthFlow, } = useInternalDynamicContext.useInternalDynamicContext();
94
94
  const { setError } = ErrorContext.useErrorContext();
95
95
  const returnExistingCoinbaseMPCWallet = React.useCallback((validatedUser, connector, embeddedWalletVerifiedCredential) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
96
96
  connector.setVerifiedCredentials(validatedUser.verifiedCredentials);
@@ -125,23 +125,24 @@ const useCoinbaseMPC = () => {
125
125
  ? { password, passwordSource: source }
126
126
  : {};
127
127
  const response = yield wallets.linkWallet(environmentId, Object.assign(Object.assign(Object.assign({}, passcodeArgs), verifyArgs), { backup: backupCode }));
128
- const user = updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(response === null || response === void 0 ? void 0 : response.jwt, response === null || response === void 0 ? void 0 : response.minifiedJwt);
129
- const newSelectedCredentialWallet = user.verifiedCredentials.find((cred) => cred.id === user.lastVerifiedCredentialId &&
128
+ if (!response) {
129
+ throw new utils.DynamicError('Unable to link wallet');
130
+ }
131
+ const updatedUserProfile = createUserProfile.createUserProfileFromSdkUser(response.user);
132
+ const newSelectedCredentialWallet = updatedUserProfile.verifiedCredentials.find((cred) => cred.id === updatedUserProfile.lastVerifiedCredentialId &&
130
133
  cred.format === 'blockchain');
131
134
  if (!newSelectedCredentialWallet) {
132
135
  throw new utils.DynamicError('No primary wallet found');
133
136
  }
134
137
  setPrimaryWalletId(newSelectedCredentialWallet.id);
135
- setUser(user);
136
- connector.setVerifiedCredentials(user.verifiedCredentials);
137
- return { newSelectedCredentialWallet };
138
+ connector.setVerifiedCredentials(updatedUserProfile.verifiedCredentials);
139
+ return { newSelectedCredentialWallet, updatedUser: updatedUserProfile };
138
140
  }), [
139
141
  appName,
140
142
  consumeNonce,
141
143
  displaySiweStatement,
142
144
  environmentId,
143
145
  setPrimaryWalletId,
144
- setUser,
145
146
  siweStatement,
146
147
  ]);
147
148
  const createNewCoinbaseMPCWallet = React.useCallback((connector, password) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
@@ -153,7 +154,7 @@ const useCoinbaseMPC = () => {
153
154
  : sdkApiCore.PasswordSourceTypeEnum.Dynamic;
154
155
  try {
155
156
  const backupCode = yield connector.generateWallet(source, initialWalletPassword);
156
- const { newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
157
+ const { updatedUser, newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
157
158
  backupCode,
158
159
  connector,
159
160
  password: initialWalletPassword,
@@ -167,7 +168,7 @@ const useCoinbaseMPC = () => {
167
168
  connector,
168
169
  id: newSelectedCredentialWallet.id,
169
170
  };
170
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken.getAuthToken());
171
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken.getAuthToken(), updatedUser);
171
172
  return coinbaseMPCWallet;
172
173
  }
173
174
  catch (error) {
@@ -4,6 +4,7 @@ import { useCallback } from 'react';
4
4
  import { PasswordSourceTypeEnum, ChainEnum } from '@dynamic-labs/sdk-api-core';
5
5
  import { isCoinbaseMpcWalletConnector } from '@dynamic-labs/wallet-connector-core';
6
6
  import { DynamicError } from '@dynamic-labs/utils';
7
+ import { createUserProfileFromSdkUser } from '../../../../functions/createUserProfile/createUserProfile.js';
7
8
  import { findEmbeddedWalletFromVerifiedCredentials } from '../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
8
9
  import '../../../../constants/values.js';
9
10
  import { USER_NOT_LOGGED_IN } from '../../../../constants/errors.js';
@@ -24,7 +25,6 @@ import 'viem';
24
25
  import 'viem/chains';
25
26
  import { findCoinbaseMPCWallet } from '../../../../functions/findCoinbaseMPCWallet/findCoinbaseMPCWallet.js';
26
27
  import { getCoinbaseMPCConnectorFetchers } from '../../../../functions/getCoinbaseMPCConnectorFetchers/getCoinbaseMPCConnectorFetchers.js';
27
- import { updateJWTAndCreateUserProfile } from '../../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
28
28
  import '../../../../../context/DynamicContext/DynamicContext.js';
29
29
  import { dynamicEvents } from '../../../../../events/dynamicEvents.js';
30
30
  import '../../../../../context/CaptchaContext/CaptchaContext.js';
@@ -86,7 +86,7 @@ import { useInternalDynamicContext } from '../../../../../context/DynamicContext
86
86
 
87
87
  const DYNAMIC_PASSWORD_LENGTH = 20;
88
88
  const useCoinbaseMPC = () => {
89
- const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement, setUser, handleLogOut, setShowAuthFlow, } = useInternalDynamicContext();
89
+ const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement, handleLogOut, setShowAuthFlow, } = useInternalDynamicContext();
90
90
  const { setError } = useErrorContext();
91
91
  const returnExistingCoinbaseMPCWallet = useCallback((validatedUser, connector, embeddedWalletVerifiedCredential) => __awaiter(void 0, void 0, void 0, function* () {
92
92
  connector.setVerifiedCredentials(validatedUser.verifiedCredentials);
@@ -121,23 +121,24 @@ const useCoinbaseMPC = () => {
121
121
  ? { password, passwordSource: source }
122
122
  : {};
123
123
  const response = yield linkWallet(environmentId, Object.assign(Object.assign(Object.assign({}, passcodeArgs), verifyArgs), { backup: backupCode }));
124
- const user = updateJWTAndCreateUserProfile(response === null || response === void 0 ? void 0 : response.jwt, response === null || response === void 0 ? void 0 : response.minifiedJwt);
125
- const newSelectedCredentialWallet = user.verifiedCredentials.find((cred) => cred.id === user.lastVerifiedCredentialId &&
124
+ if (!response) {
125
+ throw new DynamicError('Unable to link wallet');
126
+ }
127
+ const updatedUserProfile = createUserProfileFromSdkUser(response.user);
128
+ const newSelectedCredentialWallet = updatedUserProfile.verifiedCredentials.find((cred) => cred.id === updatedUserProfile.lastVerifiedCredentialId &&
126
129
  cred.format === 'blockchain');
127
130
  if (!newSelectedCredentialWallet) {
128
131
  throw new DynamicError('No primary wallet found');
129
132
  }
130
133
  setPrimaryWalletId(newSelectedCredentialWallet.id);
131
- setUser(user);
132
- connector.setVerifiedCredentials(user.verifiedCredentials);
133
- return { newSelectedCredentialWallet };
134
+ connector.setVerifiedCredentials(updatedUserProfile.verifiedCredentials);
135
+ return { newSelectedCredentialWallet, updatedUser: updatedUserProfile };
134
136
  }), [
135
137
  appName,
136
138
  consumeNonce,
137
139
  displaySiweStatement,
138
140
  environmentId,
139
141
  setPrimaryWalletId,
140
- setUser,
141
142
  siweStatement,
142
143
  ]);
143
144
  const createNewCoinbaseMPCWallet = useCallback((connector, password) => __awaiter(void 0, void 0, void 0, function* () {
@@ -149,7 +150,7 @@ const useCoinbaseMPC = () => {
149
150
  : PasswordSourceTypeEnum.Dynamic;
150
151
  try {
151
152
  const backupCode = yield connector.generateWallet(source, initialWalletPassword);
152
- const { newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
153
+ const { updatedUser, newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
153
154
  backupCode,
154
155
  connector,
155
156
  password: initialWalletPassword,
@@ -163,7 +164,7 @@ const useCoinbaseMPC = () => {
163
164
  connector,
164
165
  id: newSelectedCredentialWallet.id,
165
166
  };
166
- dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken());
167
+ dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken(), updatedUser);
167
168
  return coinbaseMPCWallet;
168
169
  }
169
170
  catch (error) {
@@ -35,7 +35,6 @@ require('../../../../config/ApiEndpoint.cjs');
35
35
  var embeddedWallets = require('../../../../data/api/embeddedWallets/embeddedWallets.cjs');
36
36
  require('@dynamic-labs/store');
37
37
  require('../../../../locale/locale.cjs');
38
- var updateJWTAndCreateUserProfile = require('../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
39
38
  var getUserVerifiedCredentialType = require('../../../functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.cjs');
40
39
  var hasEmbeddedWallet = require('../../../functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs');
41
40
  var getEmbeddedWalletAuthHandler = require('../../../functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.cjs');
@@ -115,7 +114,7 @@ var useInternalDynamicContext = require('../../../../context/DynamicContext/useD
115
114
  */
116
115
  const useSecureEnclaveEmbeddedWallet = () => {
117
116
  var _a, _b, _c, _d;
118
- const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, setUser, } = useInternalDynamicContext.useInternalDynamicContext();
117
+ const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, } = useInternalDynamicContext.useInternalDynamicContext();
119
118
  const { createTurnkeyWallet } = useTurnkey.useTurnkey();
120
119
  const { hasRecoveryEmail } = useIsTurnkeyWallet.useIsTurnkeyWallet();
121
120
  const { createRootElement } = useElementById.useElementById();
@@ -247,20 +246,20 @@ const useSecureEnclaveEmbeddedWallet = () => {
247
246
  challenge,
248
247
  turnkeySubOrganizationId,
249
248
  });
250
- const passkeyResponse = yield embeddedWallets.completePasskeyRecovery({
249
+ const updatedUser = yield embeddedWallets.completePasskeyRecovery({
251
250
  attestation: attestation,
252
251
  challenge,
253
252
  environmentId,
254
253
  walletId: turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.id,
255
254
  });
256
- const { jwt: updatedJwt, minifiedJwt } = passkeyResponse;
257
- setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(updatedJwt, minifiedJwt));
255
+ if (!updatedUser) {
256
+ throw new utils.DynamicError('Error completing passkey recovery');
257
+ }
258
258
  return { attestation, challenge, displayName };
259
259
  }), [
260
260
  createOrRestoreSession,
261
261
  environmentId,
262
262
  projectSettings,
263
- setUser,
264
263
  user,
265
264
  walletConnectorOptions,
266
265
  ]);
@@ -31,7 +31,6 @@ import '../../../../config/ApiEndpoint.js';
31
31
  import { completePasskeyRecovery, getUserPasskeys, initEmbeddedWalletSession } from '../../../../data/api/embeddedWallets/embeddedWallets.js';
32
32
  import '@dynamic-labs/store';
33
33
  import '../../../../locale/locale.js';
34
- import { updateJWTAndCreateUserProfile } from '../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
35
34
  import { getUserVerifiedCredentialType } from '../../../functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.js';
36
35
  import { hasEmbeddedWallet } from '../../../functions/hasEmbeddedWallet/hasEmbeddedWallet.js';
37
36
  import { getEmbeddedWalletAuthHandler } from '../../../functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.js';
@@ -111,7 +110,7 @@ import { useInternalDynamicContext } from '../../../../context/DynamicContext/us
111
110
  */
112
111
  const useSecureEnclaveEmbeddedWallet = () => {
113
112
  var _a, _b, _c, _d;
114
- const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, setUser, } = useInternalDynamicContext();
113
+ const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, } = useInternalDynamicContext();
115
114
  const { createTurnkeyWallet } = useTurnkey();
116
115
  const { hasRecoveryEmail } = useIsTurnkeyWallet();
117
116
  const { createRootElement } = useElementById();
@@ -243,20 +242,20 @@ const useSecureEnclaveEmbeddedWallet = () => {
243
242
  challenge,
244
243
  turnkeySubOrganizationId,
245
244
  });
246
- const passkeyResponse = yield completePasskeyRecovery({
245
+ const updatedUser = yield completePasskeyRecovery({
247
246
  attestation: attestation,
248
247
  challenge,
249
248
  environmentId,
250
249
  walletId: turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.id,
251
250
  });
252
- const { jwt: updatedJwt, minifiedJwt } = passkeyResponse;
253
- setUser(updateJWTAndCreateUserProfile(updatedJwt, minifiedJwt));
251
+ if (!updatedUser) {
252
+ throw new DynamicError('Error completing passkey recovery');
253
+ }
254
254
  return { attestation, challenge, displayName };
255
255
  }), [
256
256
  createOrRestoreSession,
257
257
  environmentId,
258
258
  projectSettings,
259
- setUser,
260
259
  user,
261
260
  walletConnectorOptions,
262
261
  ]);
@@ -210,7 +210,7 @@ const useTurnkey = () => {
210
210
  id: embeddedWalletVerifiedCredential.id,
211
211
  };
212
212
  setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
213
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken.getAuthToken());
213
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken.getAuthToken(), user);
214
214
  }
215
215
  }
216
216
  setShowAuthFlow(false, { performMultiWalletChecks: false });
@@ -206,7 +206,7 @@ const useTurnkey = () => {
206
206
  id: embeddedWalletVerifiedCredential.id,
207
207
  };
208
208
  setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
209
- dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken());
209
+ dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken(), user);
210
210
  }
211
211
  }
212
212
  setShowAuthFlow(false, { performMultiWalletChecks: false });
@@ -29,7 +29,6 @@ var getEOAWallet = require('../../functions/getEOAWallet/getEOAWallet.cjs');
29
29
  require('../../../config/ApiEndpoint.cjs');
30
30
  require('@dynamic-labs/store');
31
31
  require('../../../locale/locale.cjs');
32
- var updateJWTAndCreateUserProfile = require('../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
33
32
  require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
34
33
  require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
35
34
  require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
@@ -84,7 +83,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
84
83
 
85
84
  // This hook needs to be async that's why it's not using useMutation
86
85
  const useInitEmbeddedWalletAuthMethod = () => {
87
- const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow, setUser, } = useInternalDynamicContext.useInternalDynamicContext();
86
+ const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow, } = useInternalDynamicContext.useInternalDynamicContext();
88
87
  const { setView } = ViewContext.useViewContext();
89
88
  const [isLoading, setIsLoading] = React.useState(false);
90
89
  const [error, setError] = React.useState();
@@ -102,7 +101,7 @@ const useInitEmbeddedWalletAuthMethod = () => {
102
101
  .getAuthenticatorHandler()
103
102
  .isSessionActive();
104
103
  try {
105
- const result = yield passkeyRecovery.initEmbeddedWalletSession({
104
+ yield passkeyRecovery.initEmbeddedWalletSession({
106
105
  authenticatorType,
107
106
  environmentId,
108
107
  iframeContainer,
@@ -111,9 +110,6 @@ const useInitEmbeddedWalletAuthMethod = () => {
111
110
  user,
112
111
  wallet,
113
112
  });
114
- if (result && result.passkeyRecoveryResponse) {
115
- setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(result.passkeyRecoveryResponse.jwt, result.passkeyRecoveryResponse.minifiedJwt));
116
- }
117
113
  if (showEmailBundle) {
118
114
  setView('passkey-recovery-bundle', {
119
115
  authenticatorType,
@@ -25,7 +25,6 @@ import { getEOAWallet } from '../../functions/getEOAWallet/getEOAWallet.js';
25
25
  import '../../../config/ApiEndpoint.js';
26
26
  import '@dynamic-labs/store';
27
27
  import '../../../locale/locale.js';
28
- import { updateJWTAndCreateUserProfile } from '../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
29
28
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
30
29
  import '../../../context/AccountExistsContext/AccountExistsContext.js';
31
30
  import '../../../context/UserWalletsContext/UserWalletsContext.js';
@@ -80,7 +79,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
80
79
 
81
80
  // This hook needs to be async that's why it's not using useMutation
82
81
  const useInitEmbeddedWalletAuthMethod = () => {
83
- const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow, setUser, } = useInternalDynamicContext();
82
+ const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow, } = useInternalDynamicContext();
84
83
  const { setView } = useViewContext();
85
84
  const [isLoading, setIsLoading] = useState(false);
86
85
  const [error, setError] = useState();
@@ -98,7 +97,7 @@ const useInitEmbeddedWalletAuthMethod = () => {
98
97
  .getAuthenticatorHandler()
99
98
  .isSessionActive();
100
99
  try {
101
- const result = yield initEmbeddedWalletSession({
100
+ yield initEmbeddedWalletSession({
102
101
  authenticatorType,
103
102
  environmentId,
104
103
  iframeContainer,
@@ -107,9 +106,6 @@ const useInitEmbeddedWalletAuthMethod = () => {
107
106
  user,
108
107
  wallet,
109
108
  });
110
- if (result && result.passkeyRecoveryResponse) {
111
- setUser(updateJWTAndCreateUserProfile(result.passkeyRecoveryResponse.jwt, result.passkeyRecoveryResponse.minifiedJwt));
112
- }
113
109
  if (showEmailBundle) {
114
110
  setView('passkey-recovery-bundle', {
115
111
  authenticatorType,
@@ -27,8 +27,8 @@ require('react-international-phone');
27
27
  require('viem');
28
28
  require('viem/chains');
29
29
  require('../../../config/ApiEndpoint.cjs');
30
- var mfa = require('../../../data/api/mfa/mfa.cjs');
31
30
  require('@dynamic-labs/store');
31
+ var mfa = require('../../../data/api/mfa/mfa.cjs');
32
32
  require('../../../locale/locale.cjs');
33
33
  require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
34
34
  require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
@@ -156,9 +156,6 @@ const useMfa = ({ onMfaCompleteOnce, } = {}) => {
156
156
  environmentId,
157
157
  type,
158
158
  });
159
- if (!response) {
160
- throw new Error('Failed to authenticate device');
161
- }
162
159
  yield ((_b = listeners.onMfaCompleteOnce) === null || _b === void 0 ? void 0 : _b.call(listeners, {
163
160
  mfaToken: response.mfaToken,
164
161
  }));
@@ -23,8 +23,8 @@ import 'react-international-phone';
23
23
  import 'viem';
24
24
  import 'viem/chains';
25
25
  import '../../../config/ApiEndpoint.js';
26
- import { getUserMfaDevices, updateUserMfaDevice, deleteMfaDevice, addMfaDevice, authMfaDevice, authMfaRecovery, verifyMfaDevice, createNewRecoveryCodes, getRecoveryCodes } from '../../../data/api/mfa/mfa.js';
27
26
  import '@dynamic-labs/store';
27
+ import { getUserMfaDevices, updateUserMfaDevice, deleteMfaDevice, addMfaDevice, authMfaDevice, authMfaRecovery, verifyMfaDevice, createNewRecoveryCodes, getRecoveryCodes } from '../../../data/api/mfa/mfa.js';
28
28
  import '../../../locale/locale.js';
29
29
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
30
30
  import '../../../context/AccountExistsContext/AccountExistsContext.js';
@@ -152,9 +152,6 @@ const useMfa = ({ onMfaCompleteOnce, } = {}) => {
152
152
  environmentId,
153
153
  type,
154
154
  });
155
- if (!response) {
156
- throw new Error('Failed to authenticate device');
157
- }
158
155
  yield ((_b = listeners.onMfaCompleteOnce) === null || _b === void 0 ? void 0 : _b.call(listeners, {
159
156
  mfaToken: response.mfaToken,
160
157
  }));
@@ -21,8 +21,8 @@ require('../../../shared/consts/index.cjs');
21
21
  var dynamicEvents = require('../../../events/dynamicEvents.cjs');
22
22
  require('../../../context/CaptchaContext/CaptchaContext.cjs');
23
23
  require('../../../context/ErrorContext/ErrorContext.cjs');
24
+ var errors = require('../../constants/errors.cjs');
24
25
  require('@dynamic-labs/multi-wallet');
25
- var getAuthToken = require('../../functions/getAuthToken/getAuthToken.cjs');
26
26
  require('react-international-phone');
27
27
  var isTurnkeyEnabled = require('../../functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
28
28
  var getEnabledEmbeddedWalletsAuthenticators = require('../../functions/getEnabledEmbeddedWalletsAuthenticators/getEnabledEmbeddedWalletsAuthenticators.cjs');
@@ -33,7 +33,6 @@ require('../../../config/ApiEndpoint.cjs');
33
33
  require('@dynamic-labs/store');
34
34
  require('../../../locale/locale.cjs');
35
35
  var user = require('../../../data/api/user/user.cjs');
36
- var updateJWTAndCreateUserProfile = require('../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
37
36
  var getEmbeddedWalletSessionExpiration = require('../../functions/getEmbeddedWalletSessionExpiration/getEmbeddedWalletSessionExpiration.cjs');
38
37
  require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
39
38
  require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
@@ -94,7 +93,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
94
93
  // Hook exposed to customers and used internally to trigger passkey recovery
95
94
  const usePasskeyRecovery = () => {
96
95
  var _a, _b;
97
- const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user: user$1, setUser, } = useInternalDynamicContext.useInternalDynamicContext();
96
+ const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user: user$1, } = useInternalDynamicContext.useInternalDynamicContext();
98
97
  const { createRootElement } = useElementById.useElementById();
99
98
  const iframeContainerRef = createRootElement(constants.iframeContainerId);
100
99
  const { userHasEmbeddedWallet } = useEmbeddedWallet.useEmbeddedWallet();
@@ -145,17 +144,30 @@ const usePasskeyRecovery = () => {
145
144
  }), [wallet, isTurnkeyWalletWithoutAuthenticator, isSessionRestored]);
146
145
  const initPasskeyRecoveryProcess = React.useCallback((authenticatorType, currentAction) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
147
146
  var _e;
147
+ const validateRecoveryRequest = () => {
148
+ if (!user$1) {
149
+ throw new Error(errors.USER_NOT_LOGGED_IN);
150
+ }
151
+ if (!isTurnkeyEnabled.isTurnkeyEnabled(projectSettings)) {
152
+ throw new Error('Dynamic embedded wallet is not enabled. Go to the dashboard and make sure to have both Dynamic embedded wallet and at least one EVM network enabled. Also, check if EthereumWalletConnectors is in the DynamicContextProvider > settings > walletConnectors.');
153
+ }
154
+ if (!userHasEmbeddedWallet()) {
155
+ throw new Error('Dynamic embedded wallet not found');
156
+ }
157
+ if (wallet && !walletConnectorCore.isPasskeyWalletConnector(wallet.connector)) {
158
+ throw new Error('Dynamic embedded wallet not found.');
159
+ }
160
+ };
148
161
  validateRecoveryRequest();
149
162
  const turnkeyRecoveryHandler = (wallet === null || wallet === void 0 ? void 0 : wallet.connector).getAuthenticatorHandler();
150
163
  // email auth - session is still up, so create passkey authenticator usign the same session
151
164
  if (authenticatorType === 'passkey' &&
152
165
  turnkeyRecoveryHandler.isSessionActive()) {
153
- const { passkeyRecoveryResponse } = yield passkeyRecovery.addNewPasskeyAuthenticator({
166
+ yield passkeyRecovery.addNewPasskeyAuthenticator({
154
167
  environmentId,
155
168
  user: user$1,
156
169
  wallet,
157
170
  });
158
- setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(passkeyRecoveryResponse.jwt, passkeyRecoveryResponse.minifiedJwt));
159
171
  setShowAuthFlow(false);
160
172
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
161
173
  return wallet;
@@ -198,22 +210,18 @@ const usePasskeyRecovery = () => {
198
210
  dynamicEvents.dynamicEvents.once('passkeyRecoveryCompleted', (wallet) => resolve(wallet));
199
211
  dynamicEvents.dynamicEvents.once('passkeyRecoveryFailed', (error) => reject(error));
200
212
  });
201
- }), [setShowAuthFlow, projectSettings, setView, userHasEmbeddedWallet]);
202
- const validateRecoveryRequest = () => {
203
- const jwt = getAuthToken.getAuthToken();
204
- if (!jwt) {
205
- throw new Error('User is not logged in');
206
- }
207
- if (!isTurnkeyEnabled.isTurnkeyEnabled(projectSettings)) {
208
- throw new Error('Passkey embedded wallet is not enabled. Go to the dashboard and make sure to have both Turnkey/Passkey Embedded wallets and at least one EVM network enabled. Also, check if EthereumWalletConnectors is in the DynamicContextProvider > settings > walletConnectors.');
209
- }
210
- if (!userHasEmbeddedWallet()) {
211
- throw new Error('Passkey embedded wallet not found');
212
- }
213
- if (wallet && !walletConnectorCore.isPasskeyWalletConnector(wallet.connector)) {
214
- throw new Error('Passkey embedded wallet not found.');
215
- }
216
- };
213
+ }), [
214
+ wallet,
215
+ projectSettings,
216
+ hasRecoveryEmail,
217
+ userHasEmbeddedWallet,
218
+ environmentId,
219
+ user$1,
220
+ setShowAuthFlow,
221
+ setView,
222
+ initAuthMethod,
223
+ iframeContainerRef,
224
+ ]);
217
225
  const addRecoveryEmail = (emailInput) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
218
226
  try {
219
227
  let updatedUser = user$1;
@@ -17,8 +17,8 @@ import '../../../shared/consts/index.js';
17
17
  import { dynamicEvents } from '../../../events/dynamicEvents.js';
18
18
  import '../../../context/CaptchaContext/CaptchaContext.js';
19
19
  import '../../../context/ErrorContext/ErrorContext.js';
20
+ import { USER_NOT_LOGGED_IN } from '../../constants/errors.js';
20
21
  import '@dynamic-labs/multi-wallet';
21
- import { getAuthToken } from '../../functions/getAuthToken/getAuthToken.js';
22
22
  import 'react-international-phone';
23
23
  import { isTurnkeyEnabled } from '../../functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
24
24
  import { getEnabledEmbeddedWalletsAuthenticators } from '../../functions/getEnabledEmbeddedWalletsAuthenticators/getEnabledEmbeddedWalletsAuthenticators.js';
@@ -29,7 +29,6 @@ import '../../../config/ApiEndpoint.js';
29
29
  import '@dynamic-labs/store';
30
30
  import '../../../locale/locale.js';
31
31
  import { updateUserProfileFields } from '../../../data/api/user/user.js';
32
- import { updateJWTAndCreateUserProfile } from '../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
33
32
  import { getEmbeddedWalletSessionExpiration } from '../../functions/getEmbeddedWalletSessionExpiration/getEmbeddedWalletSessionExpiration.js';
34
33
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
35
34
  import '../../../context/AccountExistsContext/AccountExistsContext.js';
@@ -90,7 +89,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
90
89
  // Hook exposed to customers and used internally to trigger passkey recovery
91
90
  const usePasskeyRecovery = () => {
92
91
  var _a, _b;
93
- const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user, setUser, } = useInternalDynamicContext();
92
+ const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user, } = useInternalDynamicContext();
94
93
  const { createRootElement } = useElementById();
95
94
  const iframeContainerRef = createRootElement(iframeContainerId);
96
95
  const { userHasEmbeddedWallet } = useEmbeddedWallet();
@@ -141,17 +140,30 @@ const usePasskeyRecovery = () => {
141
140
  }), [wallet, isTurnkeyWalletWithoutAuthenticator, isSessionRestored]);
142
141
  const initPasskeyRecoveryProcess = useCallback((authenticatorType, currentAction) => __awaiter(void 0, void 0, void 0, function* () {
143
142
  var _e;
143
+ const validateRecoveryRequest = () => {
144
+ if (!user) {
145
+ throw new Error(USER_NOT_LOGGED_IN);
146
+ }
147
+ if (!isTurnkeyEnabled(projectSettings)) {
148
+ throw new Error('Dynamic embedded wallet is not enabled. Go to the dashboard and make sure to have both Dynamic embedded wallet and at least one EVM network enabled. Also, check if EthereumWalletConnectors is in the DynamicContextProvider > settings > walletConnectors.');
149
+ }
150
+ if (!userHasEmbeddedWallet()) {
151
+ throw new Error('Dynamic embedded wallet not found');
152
+ }
153
+ if (wallet && !isPasskeyWalletConnector(wallet.connector)) {
154
+ throw new Error('Dynamic embedded wallet not found.');
155
+ }
156
+ };
144
157
  validateRecoveryRequest();
145
158
  const turnkeyRecoveryHandler = (wallet === null || wallet === void 0 ? void 0 : wallet.connector).getAuthenticatorHandler();
146
159
  // email auth - session is still up, so create passkey authenticator usign the same session
147
160
  if (authenticatorType === 'passkey' &&
148
161
  turnkeyRecoveryHandler.isSessionActive()) {
149
- const { passkeyRecoveryResponse } = yield addNewPasskeyAuthenticator({
162
+ yield addNewPasskeyAuthenticator({
150
163
  environmentId,
151
164
  user,
152
165
  wallet,
153
166
  });
154
- setUser(updateJWTAndCreateUserProfile(passkeyRecoveryResponse.jwt, passkeyRecoveryResponse.minifiedJwt));
155
167
  setShowAuthFlow(false);
156
168
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
157
169
  return wallet;
@@ -194,22 +206,18 @@ const usePasskeyRecovery = () => {
194
206
  dynamicEvents.once('passkeyRecoveryCompleted', (wallet) => resolve(wallet));
195
207
  dynamicEvents.once('passkeyRecoveryFailed', (error) => reject(error));
196
208
  });
197
- }), [setShowAuthFlow, projectSettings, setView, userHasEmbeddedWallet]);
198
- const validateRecoveryRequest = () => {
199
- const jwt = getAuthToken();
200
- if (!jwt) {
201
- throw new Error('User is not logged in');
202
- }
203
- if (!isTurnkeyEnabled(projectSettings)) {
204
- throw new Error('Passkey embedded wallet is not enabled. Go to the dashboard and make sure to have both Turnkey/Passkey Embedded wallets and at least one EVM network enabled. Also, check if EthereumWalletConnectors is in the DynamicContextProvider > settings > walletConnectors.');
205
- }
206
- if (!userHasEmbeddedWallet()) {
207
- throw new Error('Passkey embedded wallet not found');
208
- }
209
- if (wallet && !isPasskeyWalletConnector(wallet.connector)) {
210
- throw new Error('Passkey embedded wallet not found.');
211
- }
212
- };
209
+ }), [
210
+ wallet,
211
+ projectSettings,
212
+ hasRecoveryEmail,
213
+ userHasEmbeddedWallet,
214
+ environmentId,
215
+ user,
216
+ setShowAuthFlow,
217
+ setView,
218
+ initAuthMethod,
219
+ iframeContainerRef,
220
+ ]);
213
221
  const addRecoveryEmail = (emailInput) => __awaiter(void 0, void 0, void 0, function* () {
214
222
  try {
215
223
  let updatedUser = user;
@@ -31,9 +31,9 @@ var isSocialKycEnabled = require('../../functions/isSocialKycEnabled/isSocialKyc
31
31
  require('viem');
32
32
  require('viem/chains');
33
33
  require('../../../config/ApiEndpoint.cjs');
34
+ require('@dynamic-labs/store');
34
35
  var oauth = require('../../../data/api/oauth/oauth.cjs');
35
36
  require('../../../locale/locale.cjs');
36
- require('@dynamic-labs/store');
37
37
  require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
38
38
  require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
39
39
  require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
@@ -27,9 +27,9 @@ import { isSocialKycEnabled } from '../../functions/isSocialKycEnabled/isSocialK
27
27
  import 'viem';
28
28
  import 'viem/chains';
29
29
  import '../../../config/ApiEndpoint.js';
30
+ import '@dynamic-labs/store';
30
31
  import { unlinkOAuth } from '../../../data/api/oauth/oauth.js';
31
32
  import '../../../locale/locale.js';
32
- import '@dynamic-labs/store';
33
33
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
34
34
  import '../../../context/AccountExistsContext/AccountExistsContext.js';
35
35
  import '../../../context/UserWalletsContext/UserWalletsContext.js';