@dynamic-labs/sdk-react-core 2.1.0-alpha.22 → 2.1.0-alpha.23

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 (170) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +13 -13
  5. package/src/index.d.ts +5 -1
  6. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.cjs +2 -6
  7. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.js +2 -6
  8. package/src/lib/components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.cjs +11 -5
  9. package/src/lib/components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.js +11 -5
  10. package/src/lib/context/DynamicContext/DynamicContext.cjs +8 -17
  11. package/src/lib/context/DynamicContext/DynamicContext.js +8 -17
  12. package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +0 -1
  13. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +0 -2
  14. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +1 -3
  15. package/src/lib/context/DynamicContext/hooks/useIsAuthenticated/index.d.ts +1 -0
  16. package/src/lib/context/DynamicContext/hooks/useIsAuthenticated/useIsAuthenticated.cjs +37 -0
  17. package/src/lib/context/DynamicContext/hooks/useIsAuthenticated/useIsAuthenticated.d.ts +1 -0
  18. package/src/lib/context/DynamicContext/hooks/useIsAuthenticated/useIsAuthenticated.js +33 -0
  19. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +9 -1
  20. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +9 -1
  21. package/src/lib/context/DynamicContext/types/index.d.ts +1 -4
  22. package/src/lib/context/LoadingContext/LoadingContext.cjs +1 -1
  23. package/src/lib/context/LoadingContext/LoadingContext.js +1 -1
  24. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +1 -1
  25. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +1 -1
  26. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -1
  27. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -1
  28. package/src/lib/data/api/api.cjs +1 -3
  29. package/src/lib/data/api/api.js +1 -3
  30. package/src/lib/data/api/user/user.cjs +9 -6
  31. package/src/lib/data/api/user/user.d.ts +5 -5
  32. package/src/lib/data/api/user/user.js +9 -6
  33. package/src/lib/data/api/wallets/wallets.cjs +6 -3
  34. package/src/lib/data/api/wallets/wallets.d.ts +3 -2
  35. package/src/lib/data/api/wallets/wallets.js +7 -4
  36. package/src/lib/events/auth.d.ts +38 -0
  37. package/src/lib/events/dynamicEvents.d.ts +8 -32
  38. package/src/lib/events/embeddedWallet.d.ts +14 -0
  39. package/src/lib/events/otp.d.ts +5 -0
  40. package/src/lib/events/passkey.d.ts +5 -0
  41. package/src/lib/events/social.d.ts +3 -0
  42. package/src/lib/events/ui.d.ts +10 -0
  43. package/src/lib/events/wallets.d.ts +7 -0
  44. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +6 -1
  45. package/src/lib/layout/DynamicAuthLayout/Header/header.js +6 -1
  46. package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +11 -0
  47. package/src/lib/store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.cjs +1 -2
  48. package/src/lib/store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.d.ts +6 -2
  49. package/src/lib/store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.js +1 -2
  50. package/src/lib/utils/constants/index.d.ts +1 -1
  51. package/src/lib/utils/constants/localStorage.cjs +0 -2
  52. package/src/lib/utils/constants/localStorage.d.ts +0 -1
  53. package/src/lib/utils/constants/localStorage.js +1 -2
  54. package/src/lib/utils/functions/index.d.ts +0 -1
  55. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -1
  56. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +1 -1
  57. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +1 -1
  58. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +1 -1
  59. package/src/lib/utils/hooks/authenticationHooks/useOtpVerificationRequest/useOtpVerificationRequest.cjs +12 -7
  60. package/src/lib/utils/hooks/authenticationHooks/useOtpVerificationRequest/useOtpVerificationRequest.js +13 -8
  61. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +1 -1
  62. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +1 -1
  63. package/src/lib/utils/hooks/events/useDynamicEvents/useDynamicEvents.d.ts +2 -2
  64. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +1 -2
  65. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.d.ts +1 -2
  66. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +1 -2
  67. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.cjs +29 -14
  68. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.js +29 -14
  69. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +4 -3
  70. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +4 -3
  71. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +1 -1
  72. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +2 -2
  73. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +4 -5
  74. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +5 -6
  75. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +0 -1
  76. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +0 -1
  77. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.cjs +2 -2
  78. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.js +2 -2
  79. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +8 -6
  80. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +8 -6
  81. package/src/lib/utils/hooks/useHandleVerificationRequired/useHandleVerificationRequired.cjs +4 -4
  82. package/src/lib/utils/hooks/useHandleVerificationRequired/useHandleVerificationRequired.d.ts +4 -3
  83. package/src/lib/utils/hooks/useHandleVerificationRequired/useHandleVerificationRequired.js +4 -4
  84. package/src/lib/utils/hooks/useHandleVerifiedUser/useHandleVerifiedUser.cjs +1 -16
  85. package/src/lib/utils/hooks/useHandleVerifiedUser/useHandleVerifiedUser.d.ts +1 -4
  86. package/src/lib/utils/hooks/useHandleVerifiedUser/useHandleVerifiedUser.js +1 -16
  87. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.cjs +1 -1
  88. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.js +1 -1
  89. package/src/lib/utils/hooks/useMfa/useMfa.cjs +37 -20
  90. package/src/lib/utils/hooks/useMfa/useMfa.js +37 -20
  91. package/src/lib/utils/hooks/useNetworkNotSupported/useNetworkNotSupported.cjs +1 -1
  92. package/src/lib/utils/hooks/useNetworkNotSupported/useNetworkNotSupported.js +1 -1
  93. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +13 -12
  94. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +13 -12
  95. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +6 -11
  96. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.d.ts +3 -2
  97. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +6 -11
  98. package/src/lib/utils/hooks/useSetWalletConnectorVerifiedCredentials/useSetWalletConnectorVerifiedCredentials.cjs +3 -22
  99. package/src/lib/utils/hooks/useSetWalletConnectorVerifiedCredentials/useSetWalletConnectorVerifiedCredentials.d.ts +2 -1
  100. package/src/lib/utils/hooks/useSetWalletConnectorVerifiedCredentials/useSetWalletConnectorVerifiedCredentials.js +3 -22
  101. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +8 -8
  102. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +8 -8
  103. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +39 -27
  104. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +5 -3
  105. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +39 -27
  106. package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +39 -33
  107. package/src/lib/utils/hooks/useUserAuth/useUserAuth.d.ts +2 -2
  108. package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +39 -33
  109. package/src/lib/utils/hooks/useUserAuth/useUserAuth.types.d.ts +7 -24
  110. package/src/lib/utils/hooks/useUserDataForm/useUserDataForm.cjs +1 -1
  111. package/src/lib/utils/hooks/useUserDataForm/useUserDataForm.js +1 -1
  112. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs +9 -16
  113. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js +10 -17
  114. package/src/lib/utils/hooks/useValidateSession/useValidateSession.cjs +1 -1
  115. package/src/lib/utils/hooks/useValidateSession/useValidateSession.js +1 -1
  116. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +21 -3
  117. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +21 -3
  118. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +10 -26
  119. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.d.ts +1 -2
  120. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +10 -26
  121. package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +4 -6
  122. package/src/lib/views/CollectUserDataView/CollectUserDataView.js +4 -6
  123. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +3 -5
  124. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +3 -5
  125. package/src/lib/views/CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.cjs +3 -5
  126. package/src/lib/views/CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.js +3 -5
  127. package/src/lib/views/EmailVerification/EmailVerification.cjs +8 -5
  128. package/src/lib/views/EmailVerification/EmailVerification.js +8 -5
  129. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +5 -0
  130. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +5 -0
  131. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +3 -6
  132. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +3 -6
  133. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +7 -13
  134. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.d.ts +3 -3
  135. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +8 -14
  136. package/src/lib/views/LoginView/LoginView.cjs +3 -21
  137. package/src/lib/views/LoginView/LoginView.js +4 -22
  138. package/src/lib/views/LoginView/sections/PhoneNumberSignInSection/useSubmitPhoneNumber/useSubmitPhoneNumber.cjs +11 -1
  139. package/src/lib/views/LoginView/sections/PhoneNumberSignInSection/useSubmitPhoneNumber/useSubmitPhoneNumber.js +11 -1
  140. package/src/lib/views/MergeUserAccountsWithSameEmailView/MergeUserAccountsWithSameEmailView.cjs +3 -3
  141. package/src/lib/views/MergeUserAccountsWithSameEmailView/MergeUserAccountsWithSameEmailView.js +3 -3
  142. package/src/lib/views/NoAccess/NoAccess.cjs +2 -2
  143. package/src/lib/views/NoAccess/NoAccess.js +2 -2
  144. package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +2 -8
  145. package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +2 -8
  146. package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.cjs +3 -3
  147. package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.js +3 -3
  148. package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.cjs +1 -2
  149. package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.js +1 -2
  150. package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.cjs +1 -4
  151. package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.d.ts +1 -2
  152. package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.js +1 -4
  153. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +15 -20
  154. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.d.ts +8 -13
  155. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +15 -20
  156. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +11 -8
  157. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +11 -8
  158. package/src/lib/views/viewToComponentMap.cjs +1 -1
  159. package/src/lib/views/viewToComponentMap.d.ts +1 -1
  160. package/src/lib/views/viewToComponentMap.js +1 -1
  161. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +1 -1
  162. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +1 -1
  163. package/src/lib/utils/functions/getOnboardingAuthToken/getOnboardingAuthToken.cjs +0 -31
  164. package/src/lib/utils/functions/getOnboardingAuthToken/getOnboardingAuthToken.d.ts +0 -1
  165. package/src/lib/utils/functions/getOnboardingAuthToken/getOnboardingAuthToken.js +0 -27
  166. package/src/lib/utils/functions/getOnboardingAuthToken/index.d.ts +0 -1
  167. package/src/lib/utils/functions/handleUnlinkHelper/handleUnlinkHelper.cjs +0 -49
  168. package/src/lib/utils/functions/handleUnlinkHelper/handleUnlinkHelper.d.ts +0 -13
  169. package/src/lib/utils/functions/handleUnlinkHelper/handleUnlinkHelper.js +0 -45
  170. package/src/lib/utils/functions/handleUnlinkHelper/index.d.ts +0 -1
@@ -1,6 +1,7 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
3
  import { DynamicError, EmailAlreadyExistsError, CustomFieldNotUniqueError, UsernameAlreadyExistsError, TooManyEmailVerificationsError, InvalidPhoneNumberError, NoAccessError, AccountExistsError, UserHasAccountWithEmailError, sleep } from '@dynamic-labs/utils';
4
+ import { useAccountExistsContext } from '../../../context/AccountExistsContext/AccountExistsContext.js';
4
5
  import 'react';
5
6
  import '../../../context/DynamicContext/DynamicContext.js';
6
7
  import '@dynamic-labs/sdk-api-core';
@@ -10,27 +11,25 @@ import '@dynamic-labs/wallet-connector-core';
10
11
  import 'react/jsx-runtime';
11
12
  import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
12
13
  import '@dynamic-labs/wallet-book';
13
- import { AUTH_ONBOARDING_TOKEN } from '../../constants/localStorage.js';
14
14
  import '../../constants/colors.js';
15
15
  import '../../constants/values.js';
16
- import { LocalStorage } from '../../../shared/utils/classes/storage/localStorage.js';
16
+ import '../../../shared/utils/classes/storage/localStorage.js';
17
17
  import '../../../shared/consts/index.js';
18
18
  import '../../../events/dynamicEvents.js';
19
19
  import '../../../context/CaptchaContext/CaptchaContext.js';
20
20
  import { useErrorContext } from '../../../context/ErrorContext/ErrorContext.js';
21
- import { createUserProfileFromSdkUser } from '../../functions/createUserProfile/createUserProfile.js';
22
21
  import '@dynamic-labs/multi-wallet';
23
22
  import 'react-international-phone';
24
23
  import 'viem';
25
24
  import 'viem/chains';
26
25
  import '../../../config/ApiEndpoint.js';
26
+ import { getUserMfaDevices } from '../../../data/api/mfa/mfa.js';
27
27
  import '../../../locale/locale.js';
28
- import '@dynamic-labs/store';
28
+ import { storeAuthTokenAndUser } from '../../../store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.js';
29
+ import { updateJWTAndCreateUserProfile } from '../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
29
30
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
30
- import { useAccountExistsContext } from '../../../context/AccountExistsContext/AccountExistsContext.js';
31
31
  import '../../../context/UserWalletsContext/UserWalletsContext.js';
32
32
  import { useVerification } from '../../../context/VerificationContext/VerificationContext.js';
33
- import { useCreateUserProfileByJWTCallback } from '../useCreateUserProfileByJWTCallback/useCreateUserProfileByJWTCallback.js';
34
33
  import 'react-dom';
35
34
  import { useEmbeddedWallet } from '../useEmbeddedWallet/useEmbeddedWallet.js';
36
35
  import '../../../context/WalletContext/WalletContext.js';
@@ -43,6 +42,7 @@ import '../../../context/MockContext/MockContext.js';
43
42
  import '../../../views/CollectUserDataView/useFields.js';
44
43
  import '../useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
45
44
  import '../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
45
+ import '@dynamic-labs/store';
46
46
  import '@dynamic-labs/rpc-providers';
47
47
  import 'react-i18next';
48
48
  import '../../../components/Alert/Alert.js';
@@ -80,39 +80,49 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
80
80
 
81
81
  const sleepToShowSuccessMessage = () => sleep(1500);
82
82
  const useUserAuth = ({ authMethod, }) => {
83
- const { handleLogOut, setOnboardingOnlyJwt, setShowAuthFlow, setCallback, onboardingOnlyJwt, setMultiWalletWidgetState, } = useInternalDynamicContext();
83
+ const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, } = useInternalDynamicContext();
84
84
  const { view, setView, goToInitialView } = useViewContext();
85
85
  const { setLoading } = useLoadingContext();
86
86
  const { setErrorMessage, setError } = useErrorContext();
87
87
  const { setExistentAccountData } = useAccountExistsContext();
88
- const { handleVerifiedUserWithJWT, handleVerifiedUserWithUser } = useHandleVerifiedUser();
89
- const { createUserProfileByJWT } = useCreateUserProfileByJWTCallback();
88
+ const handleVerifiedUser = useHandleVerifiedUser();
90
89
  const { displayedDestination: formattedPhone } = useVerification();
91
90
  const { shouldAutoCreateEmbeddedWallet } = useEmbeddedWallet();
92
91
  const initAuth = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isSignIn = true, verifyFunction, onVerifySuccess, onSettled, onError, showSuccessMessage = false, skipDefaultErrorHandling = false, }) {
93
- var _b;
92
+ var _b, _c;
94
93
  logger.debug('initAuth', { authMethod, isSignIn });
95
94
  try {
96
95
  const { jwt, minifiedJwt, user } = (yield verifyFunction()) || {};
97
- if (!jwt || !minifiedJwt || !user) {
96
+ if (!user) {
98
97
  yield cancelAuth();
99
- throw new DynamicError('No jwt returned from verify function');
98
+ throw new DynamicError('No user returned from verify function');
100
99
  }
101
- const userProfile = createUserProfileFromSdkUser(user);
100
+ const userProfile = storeAuthTokenAndUser({ jwt, minifiedJwt, user });
102
101
  onVerifySuccess === null || onVerifySuccess === void 0 ? void 0 : onVerifySuccess(userProfile);
103
102
  if (isSignIn && ((_b = userProfile.missingFields) === null || _b === void 0 ? void 0 : _b.length)) {
104
- yield handleOnboarding(jwt, showSuccessMessage, onSettled);
103
+ yield handleOnboarding(showSuccessMessage, onSettled);
104
+ return;
105
+ }
106
+ if ((_c = user.scope) === null || _c === void 0 ? void 0 : _c.includes('requiresAdditionalAuth')) {
107
+ // this is needed because useMfa relies on the jwt being available in LS
108
+ // this function only stores the jwt and creates the user, but does not set
109
+ // the user state
110
+ updateJWTAndCreateUserProfile(jwt, minifiedJwt);
111
+ const devices = yield getUserMfaDevices({ environmentId });
112
+ if (devices.length === 0) {
113
+ setView('mfa-choose-device');
114
+ }
115
+ else {
116
+ setView('mfa-verification');
117
+ }
105
118
  return;
106
119
  }
107
120
  setMultiWalletWidgetState('idle');
108
- setOnboardingOnlyJwt(undefined);
109
- LocalStorage.removeFromLS(AUTH_ONBOARDING_TOKEN);
110
- yield handleVerifiedUserWithUser(userProfile);
121
+ yield handleVerifiedUser(userProfile);
111
122
  if (showSuccessMessage) {
112
123
  // this timeout is set to make sure that the user will see success message
113
124
  yield sleepToShowSuccessMessage();
114
125
  }
115
- yield createUserProfileByJWT(jwt, minifiedJwt);
116
126
  if (isSignIn) {
117
127
  setCallback('authSuccess');
118
128
  }
@@ -137,9 +147,7 @@ const useUserAuth = ({ authMethod, }) => {
137
147
  onSettled === null || onSettled === void 0 ? void 0 : onSettled();
138
148
  }
139
149
  });
140
- const handleOnboarding = (jwt, showSuccessMessage, onSettled) => __awaiter(void 0, void 0, void 0, function* () {
141
- setOnboardingOnlyJwt(jwt);
142
- LocalStorage.setToLS(AUTH_ONBOARDING_TOKEN, jwt, true);
150
+ const handleOnboarding = (showSuccessMessage, onSettled) => __awaiter(void 0, void 0, void 0, function* () {
143
151
  if (showSuccessMessage) {
144
152
  yield sleepToShowSuccessMessage();
145
153
  }
@@ -180,7 +188,7 @@ const useUserAuth = ({ authMethod, }) => {
180
188
  // Handle the case where the user has already an account with the email
181
189
  if (error instanceof UserHasAccountWithEmailError) {
182
190
  setView('merge-user-accounts-with-same-email', {
183
- returnToView: options.isEmailRecoveryFlow
191
+ returnToView: 'isEmailRecoveryFlow' in options && options.isEmailRecoveryFlow
184
192
  ? 'passkey-recovery-add-email'
185
193
  : undefined,
186
194
  });
@@ -197,7 +205,7 @@ const useUserAuth = ({ authMethod, }) => {
197
205
  setError(error.message);
198
206
  }
199
207
  };
200
- const handleVerifyMissingFields = (_c) => __awaiter(void 0, [_c], void 0, function* ({ missingFields, isEmailVerificationRequired, isSmsVerificationRequired, }) {
208
+ const handleVerifyMissingFields = (_d) => __awaiter(void 0, [_d], void 0, function* ({ missingFields, isEmailVerificationRequired, isSmsVerificationRequired, }) {
201
209
  if (isEmailVerificationRequired &&
202
210
  missingFields.find((field) => field.name === 'email')) {
203
211
  setView('verify-email');
@@ -210,13 +218,16 @@ const useUserAuth = ({ authMethod, }) => {
210
218
  }
211
219
  setView(view.type);
212
220
  });
213
- const completeAuth = (_d) => __awaiter(void 0, [_d], void 0, function* ({ completeSignInFlow, updateJwtFunction, onValidUpdatedJwt, options = {}, }) {
221
+ const completeAuth = (_e) => __awaiter(void 0, [_e], void 0, function* ({ completeSignInFlow, updateJwtFunction, onValidUpdatedJwt, options = {}, }) {
214
222
  logger.debug('completeAuth', { authMethod });
215
223
  try {
216
224
  const { updateUserProfileResponse, isSmsVerificationRequired, isEmailVerificationRequired, missingFields, } = yield updateJwtFunction();
217
225
  onValidUpdatedJwt === null || onValidUpdatedJwt === void 0 ? void 0 : onValidUpdatedJwt();
218
- setOnboardingOnlyJwt(updateUserProfileResponse.jwt);
219
- LocalStorage.setToLS(AUTH_ONBOARDING_TOKEN, updateUserProfileResponse.minifiedJwt, true);
226
+ const updatedUser = storeAuthTokenAndUser({
227
+ jwt: updateUserProfileResponse.jwt,
228
+ minifiedJwt: updateUserProfileResponse.minifiedJwt,
229
+ user: updateUserProfileResponse.user,
230
+ });
220
231
  if (missingFields.length > 0) {
221
232
  yield handleVerifyMissingFields({
222
233
  isEmailVerificationRequired,
@@ -225,13 +236,8 @@ const useUserAuth = ({ authMethod, }) => {
225
236
  });
226
237
  return;
227
238
  }
228
- // no more onboarding needed, clean up onboarding jwt
229
- if (onboardingOnlyJwt) {
230
- yield handleVerifiedUserWithJWT(updateUserProfileResponse.jwt);
231
- setOnboardingOnlyJwt(undefined);
232
- LocalStorage.removeFromLS(AUTH_ONBOARDING_TOKEN);
233
- setCallback('authSuccess');
234
- }
239
+ yield handleVerifiedUser(updatedUser);
240
+ setCallback('authSuccess');
235
241
  if (completeSignInFlow) {
236
242
  const shouldReturn = yield completeSignInFlow(updateUserProfileResponse);
237
243
  if (shouldReturn) {
@@ -1,26 +1,9 @@
1
- import { ProviderEnum, UpdateSelfResponse, VerifyResponse } from '@dynamic-labs/sdk-api-core';
2
- import { UserProfile, WalletConnector } from '../../../..';
1
+ import { UpdateSelfResponse, VerifyResponse } from '@dynamic-labs/sdk-api-core';
2
+ import { AuthMethod, AuthOptions } from '@dynamic-labs/types';
3
+ import { UserProfile } from '../../../..';
3
4
  import { UpdateUserReturnPayload } from '../useUserUpdateRequest';
4
- export type AuthOptions = {
5
- email: EmailOptions;
6
- sms: SmsOptions;
7
- social: SocialOptions;
8
- wallet: WalletOptions;
9
- };
10
- export type AuthMethod = keyof AuthOptions;
11
- export type EmailOptions = {
12
- email?: string;
13
- isEmailRecoveryFlow?: boolean;
14
- };
15
- export type SmsOptions = {
16
- phone?: string;
17
- };
18
- export type SocialOptions = {
19
- provider?: ProviderEnum;
20
- };
21
- export type WalletOptions = {
22
- walletAddress?: string;
23
- walletConnector?: WalletConnector;
5
+ export type UseUserAuthOptions = {
6
+ [K in AuthMethod]: Partial<AuthOptions[K]>;
24
7
  };
25
8
  export type OnErrorCallback = (error: unknown) => void;
26
9
  export type OnSettledCallback = () => void;
@@ -62,7 +45,7 @@ export type InitUserAuthProps<T extends AuthMethod> = {
62
45
  * Props specific to the auth method.
63
46
  * (e.g. isRecoveryFlow for email auth, provider for social auth, etc.)
64
47
  */
65
- options?: AuthOptions[T];
48
+ options?: UseUserAuthOptions[T];
66
49
  };
67
50
  export type CompleteUserAuthProps<T extends AuthMethod> = {
68
51
  /**
@@ -82,5 +65,5 @@ export type CompleteUserAuthProps<T extends AuthMethod> = {
82
65
  * Props specific to the auth method.
83
66
  * (e.g. isRecoveryFlow for email auth, provider for social auth, etc.)
84
67
  */
85
- options?: AuthOptions[T];
68
+ options?: UseUserAuthOptions[T];
86
69
  };
@@ -78,7 +78,7 @@ const useUserDataForm = ({ onSubmit, onError, userProfile, shouldEnforcePolicies
78
78
  formikHelper.setErrors({ username: 'Username already exists' });
79
79
  }
80
80
  else if (e instanceof utils.InvalidPhoneNumberError) {
81
- formikHelper.setErrors({ phoneNumber: 'Invalid phone number' });
81
+ formikHelper.setErrors({ phoneNumber: e.message });
82
82
  }
83
83
  else {
84
84
  formikHelper.setErrors({
@@ -74,7 +74,7 @@ const useUserDataForm = ({ onSubmit, onError, userProfile, shouldEnforcePolicies
74
74
  formikHelper.setErrors({ username: 'Username already exists' });
75
75
  }
76
76
  else if (e instanceof InvalidPhoneNumberError) {
77
- formikHelper.setErrors({ phoneNumber: 'Invalid phone number' });
77
+ formikHelper.setErrors({ phoneNumber: e.message });
78
78
  }
79
79
  else {
80
80
  formikHelper.setErrors({
@@ -7,7 +7,6 @@ var _tslib = require('../../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
8
  var yup = require('yup');
9
9
  require('../../../../context/DynamicContext/DynamicContext.cjs');
10
- var decodeJwt = require('../../../../shared/utils/functions/decodeJwt/decodeJwt.cjs');
11
10
  require('@dynamic-labs/sdk-api-core');
12
11
  require('../../../../shared/logger.cjs');
13
12
  require('@dynamic-labs/iconic');
@@ -30,11 +29,11 @@ require('viem/chains');
30
29
  require('../../../../config/ApiEndpoint.cjs');
31
30
  require('../../../../locale/locale.cjs');
32
31
  var user = require('../../../../data/api/user/user.cjs');
32
+ require('@dynamic-labs/store');
33
33
  require('../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
34
34
  require('../../../../context/AccountExistsContext/AccountExistsContext.cjs');
35
35
  require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
36
36
  var VerificationContext = require('../../../../context/VerificationContext/VerificationContext.cjs');
37
- var useUpdateUserProfileByJWTCallback = require('../../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.cjs');
38
37
  require('react-dom');
39
38
  require('../../../../context/WalletContext/WalletContext.cjs');
40
39
  require('../../../../context/ThemeContext/ThemeContext.cjs');
@@ -44,7 +43,6 @@ require('../../../../context/LoadingContext/LoadingContext.cjs');
44
43
  require('../../../../context/MockContext/MockContext.cjs');
45
44
  require('../../../../views/CollectUserDataView/useFields.cjs');
46
45
  require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
47
- require('@dynamic-labs/store');
48
46
  require('@dynamic-labs/rpc-providers');
49
47
  require('react-i18next');
50
48
  require('../../../../components/Alert/Alert.cjs');
@@ -104,9 +102,7 @@ const userFieldsSchema = yup.object().shape({
104
102
  username: yup.string(),
105
103
  });
106
104
  const useUpdateUser = (validationSchemaStripUnknown) => {
107
- const { minAuthToken, onboardingOnlyJwt, environmentId, decodedOnboardingOnlyToken, } = useInternalDynamicContext.useInternalDynamicContext();
108
- const jwtToken = onboardingOnlyJwt || minAuthToken;
109
- const { updateUserProfileByJWT } = useUpdateUserProfileByJWTCallback.useUpdateUserProfileByJWTCallback();
105
+ const { environmentId, userWithMissingFields, setCallback } = useInternalDynamicContext.useInternalDynamicContext();
110
106
  const { setRetryData } = VerificationContext.useVerification();
111
107
  const { selectedPhoneCountry } = FieldsStateContext.useFieldsState();
112
108
  const updateUser = React.useCallback((userFields, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
@@ -116,7 +112,7 @@ const useUpdateUser = (validationSchemaStripUnknown) => {
116
112
  let { metadata } = userFields;
117
113
  // when a user has already logged in but a custom field was added to env, in order to not clear the old fields
118
114
  metadata = metadata
119
- ? Object.assign(Object.assign({}, decodedOnboardingOnlyToken === null || decodedOnboardingOnlyToken === void 0 ? void 0 : decodedOnboardingOnlyToken.metadata), metadata) : decodedOnboardingOnlyToken === null || decodedOnboardingOnlyToken === void 0 ? void 0 : decodedOnboardingOnlyToken.metadata;
115
+ ? Object.assign(Object.assign({}, userWithMissingFields === null || userWithMissingFields === void 0 ? void 0 : userWithMissingFields.metadata), metadata) : userWithMissingFields === null || userWithMissingFields === void 0 ? void 0 : userWithMissingFields.metadata;
120
116
  // we dont add user.metadata from edit profile because it is already in the metadata request for updateUser
121
117
  const validatedUserFields = yield userFieldsSchema.validate(userFields, {
122
118
  stripUnknown: validationSchemaStripUnknown,
@@ -133,17 +129,15 @@ const useUpdateUser = (validationSchemaStripUnknown) => {
133
129
  });
134
130
  const updateUserProfileResponse = yield user.updateUserProfileFields((_a = options === null || options === void 0 ? void 0 : options.userEnvironmentId) !== null && _a !== void 0 ? _a : environmentId, Object.assign(Object.assign({}, validatedUserFields), { metadata }));
135
131
  // check if decoded JWT still somehow has missing fields, we can't proceed if it does
136
- const decodedJwt = decodeJwt.decodeJwt(updateUserProfileResponse.jwt);
137
- const missingFields = (_b = decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields) !== null && _b !== void 0 ? _b : [];
138
- const requiredVerificationDestination = useHandleVerificationRequired.isVerificationRequired(updateUserProfileResponse);
132
+ const missingFields = (_b = updateUserProfileResponse.user.missingFields) !== null && _b !== void 0 ? _b : [];
133
+ const requiredVerificationDestination = useHandleVerificationRequired.getVerificationDestination(updateUserProfileResponse.nextView);
139
134
  if (requiredVerificationDestination && handleVerificationRequired.current)
140
135
  return handleVerificationRequired.current({
141
136
  destination: requiredVerificationDestination,
142
137
  missingFields,
143
138
  updateUserProfileResponse,
144
139
  });
145
- // If verification is not needed then we can update the user profile immediately.
146
- yield updateUserProfileByJWT(updateUserProfileResponse.jwt, updateUserProfileResponse.minifiedJwt);
140
+ setCallback('userProfileUpdate');
147
141
  return {
148
142
  isEmailVerificationRequired: false,
149
143
  isSmsVerificationRequired: false,
@@ -151,13 +145,12 @@ const useUpdateUser = (validationSchemaStripUnknown) => {
151
145
  updateUserProfileResponse,
152
146
  };
153
147
  }), [
148
+ userWithMissingFields === null || userWithMissingFields === void 0 ? void 0 : userWithMissingFields.metadata,
154
149
  validationSchemaStripUnknown,
155
150
  selectedPhoneCountry,
156
- jwtToken,
157
- environmentId,
158
- updateUserProfileByJWT,
159
151
  setRetryData,
160
- decodedOnboardingOnlyToken,
152
+ environmentId,
153
+ setCallback,
161
154
  ]);
162
155
  // This is necessary to avoid a circular declaration issue
163
156
  const handleVerificationRequired = React.useRef(undefined);
@@ -3,7 +3,6 @@ import { __awaiter } from '../../../../../../_virtual/_tslib.js';
3
3
  import { useCallback, useRef } from 'react';
4
4
  import { object, string, boolean } from 'yup';
5
5
  import '../../../../context/DynamicContext/DynamicContext.js';
6
- import { decodeJwt } from '../../../../shared/utils/functions/decodeJwt/decodeJwt.js';
7
6
  import '@dynamic-labs/sdk-api-core';
8
7
  import '../../../../shared/logger.js';
9
8
  import '@dynamic-labs/iconic';
@@ -26,21 +25,20 @@ import 'viem/chains';
26
25
  import '../../../../config/ApiEndpoint.js';
27
26
  import '../../../../locale/locale.js';
28
27
  import { updateUserProfileFields } from '../../../../data/api/user/user.js';
28
+ import '@dynamic-labs/store';
29
29
  import '../../../../context/AccessDeniedContext/AccessDeniedContext.js';
30
30
  import '../../../../context/AccountExistsContext/AccountExistsContext.js';
31
31
  import '../../../../context/UserWalletsContext/UserWalletsContext.js';
32
32
  import { useVerification } from '../../../../context/VerificationContext/VerificationContext.js';
33
- import { useUpdateUserProfileByJWTCallback } from '../../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.js';
34
33
  import 'react-dom';
35
34
  import '../../../../context/WalletContext/WalletContext.js';
36
35
  import '../../../../context/ThemeContext/ThemeContext.js';
37
- import { useHandleVerificationRequired, isVerificationRequired } from '../../useHandleVerificationRequired/useHandleVerificationRequired.js';
36
+ import { useHandleVerificationRequired, getVerificationDestination } from '../../useHandleVerificationRequired/useHandleVerificationRequired.js';
38
37
  import '@dynamic-labs/types';
39
38
  import '../../../../context/LoadingContext/LoadingContext.js';
40
39
  import '../../../../context/MockContext/MockContext.js';
41
40
  import '../../../../views/CollectUserDataView/useFields.js';
42
41
  import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
43
- import '@dynamic-labs/store';
44
42
  import '@dynamic-labs/rpc-providers';
45
43
  import 'react-i18next';
46
44
  import '../../../../components/Alert/Alert.js';
@@ -100,9 +98,7 @@ const userFieldsSchema = object().shape({
100
98
  username: string(),
101
99
  });
102
100
  const useUpdateUser = (validationSchemaStripUnknown) => {
103
- const { minAuthToken, onboardingOnlyJwt, environmentId, decodedOnboardingOnlyToken, } = useInternalDynamicContext();
104
- const jwtToken = onboardingOnlyJwt || minAuthToken;
105
- const { updateUserProfileByJWT } = useUpdateUserProfileByJWTCallback();
101
+ const { environmentId, userWithMissingFields, setCallback } = useInternalDynamicContext();
106
102
  const { setRetryData } = useVerification();
107
103
  const { selectedPhoneCountry } = useFieldsState();
108
104
  const updateUser = useCallback((userFields, options) => __awaiter(void 0, void 0, void 0, function* () {
@@ -112,7 +108,7 @@ const useUpdateUser = (validationSchemaStripUnknown) => {
112
108
  let { metadata } = userFields;
113
109
  // when a user has already logged in but a custom field was added to env, in order to not clear the old fields
114
110
  metadata = metadata
115
- ? Object.assign(Object.assign({}, decodedOnboardingOnlyToken === null || decodedOnboardingOnlyToken === void 0 ? void 0 : decodedOnboardingOnlyToken.metadata), metadata) : decodedOnboardingOnlyToken === null || decodedOnboardingOnlyToken === void 0 ? void 0 : decodedOnboardingOnlyToken.metadata;
111
+ ? Object.assign(Object.assign({}, userWithMissingFields === null || userWithMissingFields === void 0 ? void 0 : userWithMissingFields.metadata), metadata) : userWithMissingFields === null || userWithMissingFields === void 0 ? void 0 : userWithMissingFields.metadata;
116
112
  // we dont add user.metadata from edit profile because it is already in the metadata request for updateUser
117
113
  const validatedUserFields = yield userFieldsSchema.validate(userFields, {
118
114
  stripUnknown: validationSchemaStripUnknown,
@@ -129,17 +125,15 @@ const useUpdateUser = (validationSchemaStripUnknown) => {
129
125
  });
130
126
  const updateUserProfileResponse = yield updateUserProfileFields((_a = options === null || options === void 0 ? void 0 : options.userEnvironmentId) !== null && _a !== void 0 ? _a : environmentId, Object.assign(Object.assign({}, validatedUserFields), { metadata }));
131
127
  // check if decoded JWT still somehow has missing fields, we can't proceed if it does
132
- const decodedJwt = decodeJwt(updateUserProfileResponse.jwt);
133
- const missingFields = (_b = decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields) !== null && _b !== void 0 ? _b : [];
134
- const requiredVerificationDestination = isVerificationRequired(updateUserProfileResponse);
128
+ const missingFields = (_b = updateUserProfileResponse.user.missingFields) !== null && _b !== void 0 ? _b : [];
129
+ const requiredVerificationDestination = getVerificationDestination(updateUserProfileResponse.nextView);
135
130
  if (requiredVerificationDestination && handleVerificationRequired.current)
136
131
  return handleVerificationRequired.current({
137
132
  destination: requiredVerificationDestination,
138
133
  missingFields,
139
134
  updateUserProfileResponse,
140
135
  });
141
- // If verification is not needed then we can update the user profile immediately.
142
- yield updateUserProfileByJWT(updateUserProfileResponse.jwt, updateUserProfileResponse.minifiedJwt);
136
+ setCallback('userProfileUpdate');
143
137
  return {
144
138
  isEmailVerificationRequired: false,
145
139
  isSmsVerificationRequired: false,
@@ -147,13 +141,12 @@ const useUpdateUser = (validationSchemaStripUnknown) => {
147
141
  updateUserProfileResponse,
148
142
  };
149
143
  }), [
144
+ userWithMissingFields === null || userWithMissingFields === void 0 ? void 0 : userWithMissingFields.metadata,
150
145
  validationSchemaStripUnknown,
151
146
  selectedPhoneCountry,
152
- jwtToken,
153
- environmentId,
154
- updateUserProfileByJWT,
155
147
  setRetryData,
156
- decodedOnboardingOnlyToken,
148
+ environmentId,
149
+ setCallback,
157
150
  ]);
158
151
  // This is necessary to avoid a circular declaration issue
159
152
  const handleVerificationRequired = useRef(undefined);
@@ -25,8 +25,8 @@ require('viem/chains');
25
25
  require('../../../config/ApiEndpoint.cjs');
26
26
  require('../../../locale/locale.cjs');
27
27
  var user = require('../../../data/api/user/user.cjs');
28
- var isCookieEnabled = require('../../functions/isCookieEnabled/isCookieEnabled.cjs');
29
28
  var userActions = require('../../../store/actions/userActions/userActions.cjs');
29
+ var isCookieEnabled = require('../../functions/isCookieEnabled/isCookieEnabled.cjs');
30
30
  require('@dynamic-labs/store');
31
31
 
32
32
  const useValidateSession = ({ environmentId, handleLogOut }) => {
@@ -21,8 +21,8 @@ import 'viem/chains';
21
21
  import '../../../config/ApiEndpoint.js';
22
22
  import '../../../locale/locale.js';
23
23
  import { getAuthenticatedUser } from '../../../data/api/user/user.js';
24
- import { isCookieEnabled } from '../../functions/isCookieEnabled/isCookieEnabled.js';
25
24
  import { getUser } from '../../../store/actions/userActions/userActions.js';
25
+ import { isCookieEnabled } from '../../functions/isCookieEnabled/isCookieEnabled.js';
26
26
  import '@dynamic-labs/store';
27
27
 
28
28
  const useValidateSession = ({ environmentId, handleLogOut }) => {
@@ -7,7 +7,7 @@ var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
7
  var utils = require('@dynamic-labs/utils');
8
8
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
9
  require('react');
10
- require('../../../events/dynamicEvents.cjs');
10
+ var dynamicEvents = require('../../../events/dynamicEvents.cjs');
11
11
  require('../../../context/DynamicContext/DynamicContext.cjs');
12
12
  require('@dynamic-labs/sdk-api-core');
13
13
  var logger = require('../../../shared/logger.cjs');
@@ -92,7 +92,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
92
92
  const { setDeniedAddress, setDeniedOauthProvider } = AccessDeniedContext.useAccessDeniedContext();
93
93
  const { setView, goToInitialView } = ViewContext.useViewContext();
94
94
  const { setErrorMessage, setError } = ErrorContext.useErrorContext();
95
- const { multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, authToken, setAuthMode, removeConnectedWalletsInfo, events, primaryWallet, enableConnectOnlyFallback, } = useInternalDynamicContext.useInternalDynamicContext();
95
+ const { multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, authToken, setAuthMode, removeConnectedWalletsInfo, events, primaryWallet, enableConnectOnlyFallback, selectedWalletConnector, } = useInternalDynamicContext.useInternalDynamicContext();
96
96
  const { addedWalletsIds } = UserWalletsContext.useInternalUserWallets();
97
97
  const { initAuth } = useUserAuth.useUserAuth({ authMethod: 'wallet' });
98
98
  // If the user is not already logged it means that we only need to verify
@@ -170,6 +170,15 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
170
170
  if (e.message === 'ignore') {
171
171
  return;
172
172
  }
173
+ // Emit failure if this wallet connector was currently selected for auth
174
+ if (selectedWalletConnector &&
175
+ selectedWalletConnector.key === walletConnector.key)
176
+ dynamicEvents.dynamicEvents.emit('authFailure', {
177
+ address,
178
+ connectorName: walletConnector.name,
179
+ option: walletConnector.name,
180
+ type: 'wallet',
181
+ }, { error: e });
173
182
  if (e instanceof utils.WalletUsedError) {
174
183
  handleDisconnectWallet({ endSession: false, walletConnector });
175
184
  return handleWalletUsedError(e);
@@ -233,6 +242,12 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
233
242
  };
234
243
  return (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ walletConnector, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }) {
235
244
  const walletProvider = getWalletProvider.getWalletProvider(walletConnector);
245
+ dynamicEvents.dynamicEvents.emit('authInit', {
246
+ address: publicWalletAddress,
247
+ connectorName: walletConnector.name,
248
+ option: walletConnector.name,
249
+ type: 'wallet',
250
+ });
236
251
  try {
237
252
  const { verifyFunction, verifyArgs } = yield generateJWT(walletConnector, walletProvider, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride);
238
253
  yield initAuth({
@@ -266,7 +281,10 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
266
281
  addedWalletsIds.current.push(walletId);
267
282
  }
268
283
  },
269
- options: { walletAddress: publicWalletAddress, walletConnector },
284
+ options: {
285
+ address: publicWalletAddress,
286
+ connectorName: walletConnector.name,
287
+ },
270
288
  skipDefaultErrorHandling: true,
271
289
  verifyFunction,
272
290
  });
@@ -3,7 +3,7 @@ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
3
  import { DynamicError, WalletUsedError, MergeAccountsConfirmationError, ChainalysisError, GateBlockedError, NoAccessError, AccountExistsError } from '@dynamic-labs/utils';
4
4
  import { isSocialWalletConnector } from '@dynamic-labs/wallet-connector-core';
5
5
  import 'react';
6
- import '../../../events/dynamicEvents.js';
6
+ import { dynamicEvents } from '../../../events/dynamicEvents.js';
7
7
  import '../../../context/DynamicContext/DynamicContext.js';
8
8
  import '@dynamic-labs/sdk-api-core';
9
9
  import { logger } from '../../../shared/logger.js';
@@ -88,7 +88,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
88
88
  const { setDeniedAddress, setDeniedOauthProvider } = useAccessDeniedContext();
89
89
  const { setView, goToInitialView } = useViewContext();
90
90
  const { setErrorMessage, setError } = useErrorContext();
91
- const { multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, authToken, setAuthMode, removeConnectedWalletsInfo, events, primaryWallet, enableConnectOnlyFallback, } = useInternalDynamicContext();
91
+ const { multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, authToken, setAuthMode, removeConnectedWalletsInfo, events, primaryWallet, enableConnectOnlyFallback, selectedWalletConnector, } = useInternalDynamicContext();
92
92
  const { addedWalletsIds } = useInternalUserWallets();
93
93
  const { initAuth } = useUserAuth({ authMethod: 'wallet' });
94
94
  // If the user is not already logged it means that we only need to verify
@@ -166,6 +166,15 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
166
166
  if (e.message === 'ignore') {
167
167
  return;
168
168
  }
169
+ // Emit failure if this wallet connector was currently selected for auth
170
+ if (selectedWalletConnector &&
171
+ selectedWalletConnector.key === walletConnector.key)
172
+ dynamicEvents.emit('authFailure', {
173
+ address,
174
+ connectorName: walletConnector.name,
175
+ option: walletConnector.name,
176
+ type: 'wallet',
177
+ }, { error: e });
169
178
  if (e instanceof WalletUsedError) {
170
179
  handleDisconnectWallet({ endSession: false, walletConnector });
171
180
  return handleWalletUsedError(e);
@@ -229,6 +238,12 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
229
238
  };
230
239
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ walletConnector, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }) {
231
240
  const walletProvider = getWalletProvider(walletConnector);
241
+ dynamicEvents.emit('authInit', {
242
+ address: publicWalletAddress,
243
+ connectorName: walletConnector.name,
244
+ option: walletConnector.name,
245
+ type: 'wallet',
246
+ });
232
247
  try {
233
248
  const { verifyFunction, verifyArgs } = yield generateJWT(walletConnector, walletProvider, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride);
234
249
  yield initAuth({
@@ -262,7 +277,10 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
262
277
  addedWalletsIds.current.push(walletId);
263
278
  }
264
279
  },
265
- options: { walletAddress: publicWalletAddress, walletConnector },
280
+ options: {
281
+ address: publicWalletAddress,
282
+ connectorName: walletConnector.name,
283
+ },
266
284
  skipDefaultErrorHandling: true,
267
285
  verifyFunction,
268
286
  });
@@ -8,7 +8,6 @@ var React = require('react');
8
8
  var utils = require('@dynamic-labs/utils');
9
9
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
10
10
  var UserWalletsContext = require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
11
- var decodeJwt = require('../../../shared/utils/functions/decodeJwt/decodeJwt.cjs');
12
11
  require('@dynamic-labs/sdk-api-core');
13
12
  var logger = require('../../../shared/logger.cjs');
14
13
  require('@dynamic-labs/iconic');
@@ -19,7 +18,6 @@ require('../../constants/colors.cjs');
19
18
  require('../../constants/values.cjs');
20
19
  require('../../../shared/utils/classes/storage/localStorage.cjs');
21
20
  require('../../../shared/consts/index.cjs');
22
- var createUserProfile = require('../../functions/createUserProfile/createUserProfile.cjs');
23
21
  require('@dynamic-labs/multi-wallet');
24
22
  require('react-international-phone');
25
23
  var getWalletIdentifier = require('../../functions/getWalletIdentifier/getWalletIdentifier.cjs');
@@ -33,39 +31,25 @@ var reconnectSocialWallet = require('./reconnectSocialWallet.cjs');
33
31
  var createLinkedWalletsFromWalletOptions = require('./utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs');
34
32
  var updateUserWalletsFromLinkedWallets = require('./utils/updateUserWalletsFromLinkedWallets/updateUserWalletsFromLinkedWallets.cjs');
35
33
 
36
- const useWalletConnectors = ({ authMode, connectedWallets, walletConnectorOptions, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, onboardingOnlyJwt, canHaveMultipleWalletsConnected, }) => {
34
+ const useWalletConnectors = ({ authMode, connectedWallets, walletConnectorOptions, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, canHaveMultipleWalletsConnected, }) => {
37
35
  const [showQrcodeModal, setShowQrcodeModal] = React.useState(false);
38
36
  const linkedWallets = React.useMemo(() => {
39
- if (!user && !onboardingOnlyJwt) {
37
+ if (!user) {
40
38
  return [];
41
39
  }
42
- if (user) {
43
- return createLinkedWalletsFromWalletOptions.createLinkedWalletsFromWalletOptions({
44
- primaryWalletId,
45
- user,
46
- walletConnectorOptions,
47
- });
48
- }
49
- const decodedJwt = decodeJwt.decodeJwt(onboardingOnlyJwt);
50
- if (!decodedJwt) {
51
- return [];
52
- }
53
- else {
54
- const onboardingUser = createUserProfile.createUserProfile(decodedJwt);
55
- return createLinkedWalletsFromWalletOptions.createLinkedWalletsFromWalletOptions({
56
- primaryWalletId,
57
- user: onboardingUser,
58
- walletConnectorOptions,
59
- });
60
- }
61
- }, [user, primaryWalletId, walletConnectorOptions, onboardingOnlyJwt]);
40
+ return createLinkedWalletsFromWalletOptions.createLinkedWalletsFromWalletOptions({
41
+ primaryWalletId,
42
+ user,
43
+ walletConnectorOptions,
44
+ });
45
+ }, [user, primaryWalletId, walletConnectorOptions]);
62
46
  const walletsBasedOnAuthMode = React.useMemo(() => {
63
47
  // Before signing the first message we are using connected wallets list
64
48
  // This is because we want the first connected wallet to have events applied by useWalletEventListeners
65
49
  // In connect-and-sign mode, events are only applied after the message is signed.
66
50
  // This change ensures that events will be applied even before the signature.
67
51
  // After signing the message user could be undefined in scenarios like OTP
68
- if (authMode === 'connect-and-sign' && (user || onboardingOnlyJwt)) {
52
+ if (authMode === 'connect-and-sign' && user) {
69
53
  return linkedWallets;
70
54
  }
71
55
  /**
@@ -77,7 +61,7 @@ const useWalletConnectors = ({ authMode, connectedWallets, walletConnectorOption
77
61
  return linkedWallets;
78
62
  }
79
63
  return connectedWallets !== null && connectedWallets !== void 0 ? connectedWallets : [];
80
- }, [authMode, connectedWallets, linkedWallets, user, onboardingOnlyJwt]);
64
+ }, [authMode, connectedWallets, linkedWallets, user]);
81
65
  /**
82
66
  * This useEffect is temporary.
83
67
  * While the wallet connectors don't use the event emitter, we need to manually