@dynamic-labs/sdk-react-core 0.19.3 → 1.0.0-alpha.1

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 (127) hide show
  1. package/CHANGELOG.md +41 -24
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +10 -10
  5. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.cjs +2 -1
  6. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.js +3 -2
  7. package/src/lib/components/DynamicConnectButton/DynamicConnectButton.cjs +3 -3
  8. package/src/lib/components/DynamicConnectButton/DynamicConnectButton.js +3 -3
  9. package/src/lib/context/CaptchaContext/CaptchaContext.cjs +27 -1
  10. package/src/lib/context/CaptchaContext/CaptchaContext.d.ts +14 -0
  11. package/src/lib/context/CaptchaContext/CaptchaContext.js +28 -3
  12. package/src/lib/context/DynamicContext/DynamicContext.cjs +11 -11
  13. package/src/lib/context/DynamicContext/DynamicContext.js +11 -11
  14. package/src/lib/context/DynamicContext/hooks/index.d.ts +1 -0
  15. package/src/lib/context/DynamicContext/hooks/useSelectedWalletConnector/index.d.ts +1 -0
  16. package/src/lib/context/DynamicContext/hooks/useSelectedWalletConnector/useSelectedWalletConnector.cjs +20 -0
  17. package/src/lib/context/DynamicContext/hooks/useSelectedWalletConnector/useSelectedWalletConnector.d.ts +10 -0
  18. package/src/lib/context/DynamicContext/hooks/useSelectedWalletConnector/useSelectedWalletConnector.js +16 -0
  19. package/src/lib/context/DynamicContext/types/index.d.ts +1 -1
  20. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +2 -3
  21. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +1 -1
  22. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
  23. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +1 -1
  24. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +6 -4
  25. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +6 -4
  26. package/src/lib/data/api.cjs +6 -3
  27. package/src/lib/data/api.d.ts +5 -3
  28. package/src/lib/data/api.js +6 -3
  29. package/src/lib/main.global.cjs +1 -1
  30. package/src/lib/main.global.js +1 -1
  31. package/src/lib/styles/index.shadow.cjs +1 -1
  32. package/src/lib/styles/index.shadow.js +1 -1
  33. package/src/lib/utils/hooks/authenticationHooks/helpers/showPendingConnectView.cjs +1 -1
  34. package/src/lib/utils/hooks/authenticationHooks/helpers/showPendingConnectView.js +1 -1
  35. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +42 -26
  36. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +42 -26
  37. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +9 -3
  38. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +9 -3
  39. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +5 -2
  40. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +5 -2
  41. package/src/lib/utils/hooks/index.d.ts +0 -1
  42. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.cjs +4 -4
  43. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.js +4 -4
  44. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.cjs +39 -5
  45. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.d.ts +1 -2
  46. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.js +40 -6
  47. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +13 -1
  48. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +13 -1
  49. package/src/lib/utils/hooks/useFetchNetworkConfigurations/useFetchNetworkConfigurations.cjs +10 -1
  50. package/src/lib/utils/hooks/useFetchNetworkConfigurations/useFetchNetworkConfigurations.js +10 -1
  51. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +8 -1
  52. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +9 -2
  53. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +1 -1
  54. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +1 -1
  55. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +4 -3
  56. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +5 -1
  57. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +4 -3
  58. package/src/lib/utils/hooks/useValidateSession/useValidateSession.cjs +3 -1
  59. package/src/lib/utils/hooks/useValidateSession/useValidateSession.js +3 -1
  60. package/src/lib/utils/hooks/useWalletConnectorEvent/useWalletConnectorEvent.cjs +0 -1
  61. package/src/lib/utils/hooks/useWalletConnectorEvent/useWalletConnectorEvent.js +0 -1
  62. package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs +15 -4
  63. package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js +15 -4
  64. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.cjs +9 -0
  65. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.d.ts +3 -0
  66. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.js +5 -0
  67. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/index.d.ts +1 -0
  68. package/src/lib/utils/hooks/useWalletConnectors/utils/smartWallet/index.d.ts +1 -0
  69. package/src/lib/utils/hooks/useWalletConnectors/utils/smartWallet/smartWallet.cjs +36 -0
  70. package/src/lib/utils/hooks/useWalletConnectors/utils/smartWallet/smartWallet.d.ts +10 -0
  71. package/src/lib/utils/hooks/useWalletConnectors/utils/smartWallet/smartWallet.js +29 -0
  72. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +4 -4
  73. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +3 -2
  74. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +4 -4
  75. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +8 -7
  76. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +8 -7
  77. package/src/lib/utils/hooks/useWallets/useWallets.cjs +0 -1
  78. package/src/lib/utils/hooks/useWallets/useWallets.js +0 -1
  79. package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.cjs +9 -41
  80. package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.d.ts +1 -1
  81. package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.js +9 -41
  82. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +1 -1
  83. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +1 -1
  84. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +38 -34
  85. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +38 -34
  86. package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.cjs +20 -3
  87. package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.js +20 -3
  88. package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.cjs +17 -2
  89. package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.js +17 -2
  90. package/src/lib/views/LoginView/sections/WalletSignInSection/ListItemButton/ListItemButton.cjs +1 -1
  91. package/src/lib/views/LoginView/sections/WalletSignInSection/ListItemButton/ListItemButton.js +1 -1
  92. package/src/lib/views/PasskeyIntroView/PasskeyIntroView.cjs +15 -3
  93. package/src/lib/views/PasskeyIntroView/PasskeyIntroView.js +15 -3
  94. package/src/lib/views/PasskeyIntroView/utils/createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.cjs +1 -2
  95. package/src/lib/views/PasskeyIntroView/utils/createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.d.ts +1 -1
  96. package/src/lib/views/PasskeyIntroView/utils/createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.js +1 -2
  97. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +16 -8
  98. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +16 -8
  99. package/src/lib/views/TransactionConfirmationView/hooks/useTransactionTotal/useTransactionTotal.cjs +5 -2
  100. package/src/lib/views/TransactionConfirmationView/hooks/useTransactionTotal/useTransactionTotal.d.ts +2 -1
  101. package/src/lib/views/TransactionConfirmationView/hooks/useTransactionTotal/useTransactionTotal.js +5 -2
  102. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +2 -2
  103. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +2 -2
  104. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.cjs +2 -1
  105. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.d.ts +1 -1
  106. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.js +2 -1
  107. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedUserProfile/DynamicEmbeddedUserProfile.cjs +2 -1
  108. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedUserProfile/DynamicEmbeddedUserProfile.d.ts +1 -1
  109. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedUserProfile/DynamicEmbeddedUserProfile.js +2 -1
  110. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs +6 -7
  111. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js +6 -7
  112. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +4 -3
  113. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +4 -3
  114. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +3 -5
  115. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +3 -5
  116. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +3 -3
  117. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +3 -3
  118. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/PendingSignModal.cjs +2 -2
  119. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/PendingSignModal.js +2 -2
  120. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +2 -4
  121. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +2 -4
  122. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +3 -5
  123. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +3 -5
  124. package/src/lib/utils/hooks/useMultiWalletFlag/index.d.ts +0 -1
  125. package/src/lib/utils/hooks/useMultiWalletFlag/useMultiWalletFlag.cjs +0 -36
  126. package/src/lib/utils/hooks/useMultiWalletFlag/useMultiWalletFlag.d.ts +0 -2
  127. package/src/lib/utils/hooks/useMultiWalletFlag/useMultiWalletFlag.js +0 -31
@@ -26,8 +26,8 @@ import { isProgrammableNetworkSwitchSupported } from '../../../functions/isProgr
26
26
 
27
27
  const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = true, } = {}) => {
28
28
  const { setView, goToInitialView } = useViewContext();
29
+ const { engageCaptcha, getCaptchaToken } = useCaptchaContext();
29
30
  const { setErrorMessage } = useErrorContext();
30
- const { captchaToken } = useCaptchaContext();
31
31
  const { authMode, connectWallet, consumeNonce, displaySiweStatement, environmentId, projectSettings, setIsSingleWalletAccount, user, walletUiUtils, setCallback, setIsVerificationInProgress, } = useInternalDynamicContext();
32
32
  const { handleWalletsToConnect } = useHandleWalletsToConnect();
33
33
  const verifyWallet = useVerifyWallet({
@@ -37,8 +37,35 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
37
37
  projectSettings,
38
38
  setIsSingleWalletAccount,
39
39
  });
40
+ const handleWalletVerify = (walletConnector, publicWalletAddress, captchaToken) => __awaiter(void 0, void 0, void 0, function* () {
41
+ if (!isEmailWalletConnector(walletConnector) ||
42
+ isBloctoConnector(walletConnector)) {
43
+ setView('pending-signature');
44
+ }
45
+ else {
46
+ walletUiUtils.disabledConfirmationOnce();
47
+ }
48
+ yield verifyWallet({
49
+ captchaToken,
50
+ publicWalletAddress,
51
+ walletConnector,
52
+ });
53
+ });
54
+ const handleWalletVerifyError = (err) => {
55
+ var _a;
56
+ const userCancelled = (err === null || err === void 0 ? void 0 : err.code) === 'user-cancelled';
57
+ if (!userCancelled)
58
+ logger.debug(err);
59
+ setErrorMessage((_a = err === null || err === void 0 ? void 0 : err.code) === null || _a === void 0 ? void 0 : _a.toString());
60
+ goToInitialView();
61
+ // Since auth failed, clear verification flag
62
+ // But if user cancelled, clearStatesOnBackClick will have already cleared it. So avoid
63
+ // clearing again since that would trigger a warning
64
+ if (!userCancelled)
65
+ setIsVerificationInProgress(false);
66
+ };
40
67
  return ({ walletConnector, fetchPublicAddressOpts = undefined, }) => __awaiter(void 0, void 0, void 0, function* () {
41
- var _a, _b;
68
+ var _a;
42
69
  // Raise verification ongoing flag
43
70
  setIsVerificationInProgress(true);
44
71
  try {
@@ -75,34 +102,23 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
75
102
  return;
76
103
  }
77
104
  if ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.hCaptcha) === null || _a === void 0 ? void 0 : _a.enabled) {
78
- setView('captcha');
105
+ engageCaptcha({
106
+ authMethod: 'wallet',
107
+ onCaptchaSuccess: (captchaToken) => __awaiter(void 0, void 0, void 0, function* () {
108
+ try {
109
+ yield handleWalletVerify(walletConnector, publicWalletAddress, captchaToken);
110
+ }
111
+ catch (e) {
112
+ handleWalletVerifyError(e);
113
+ }
114
+ }),
115
+ });
79
116
  return;
80
117
  }
81
- if (!isEmailWalletConnector(walletConnector) ||
82
- isBloctoConnector(walletConnector)) {
83
- setView('pending-signature');
84
- }
85
- else {
86
- walletUiUtils.disabledConfirmationOnce();
87
- }
88
- yield verifyWallet({
89
- captchaToken,
90
- publicWalletAddress,
91
- walletConnector,
92
- });
118
+ yield handleWalletVerify(walletConnector, publicWalletAddress, getCaptchaToken());
93
119
  }
94
120
  catch (err) {
95
- const userCancelled = (err === null || err === void 0 ? void 0 : err.code) === 'user-cancelled';
96
- if (!userCancelled)
97
- logger.debug(err);
98
- setErrorMessage((_b = err === null || err === void 0 ? void 0 : err.code) === null || _b === void 0 ? void 0 : _b.toString());
99
- goToInitialView();
100
- // Since auth failed, clear verification flag
101
- // But if user cancelled, clearStatesOnBackClick will have already cleared it. So avoid
102
- // clearing again since that would trigger a warning
103
- if (!userCancelled)
104
- setIsVerificationInProgress(false);
105
- return;
121
+ handleWalletVerifyError(err);
106
122
  }
107
123
  });
108
124
  };
@@ -28,7 +28,7 @@ var useHandleWalletsToConnect = require('../../useHandleWalletsToConnect/useHand
28
28
  const useConnectAndSignSplitSteps = () => {
29
29
  const { setView, goToInitialView } = ViewContext.useViewContext();
30
30
  const { setErrorMessage } = ErrorContext.useErrorContext();
31
- const { captchaToken } = CaptchaContext.useCaptchaContext();
31
+ const { getCaptchaToken, engageCaptcha } = CaptchaContext.useCaptchaContext();
32
32
  const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, user, authMode, setCallback, setIsVerificationInProgress, } = useInternalDynamicContext.useInternalDynamicContext();
33
33
  const { handleWalletsToConnect } = useHandleWalletsToConnect.useHandleWalletsToConnect();
34
34
  const verifyWallet = useVerifyWallet.useVerifyWallet({
@@ -56,7 +56,13 @@ const useConnectAndSignSplitSteps = () => {
56
56
  return;
57
57
  }
58
58
  if ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.hCaptcha) === null || _a === void 0 ? void 0 : _a.enabled) {
59
- setView('captcha');
59
+ engageCaptcha({
60
+ authMethod: 'wallet',
61
+ onCaptchaSuccess: (_captchaToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
62
+ setShowAuthFlow(true);
63
+ setView('pending-signature');
64
+ }),
65
+ });
60
66
  return;
61
67
  }
62
68
  setShowAuthFlow(true);
@@ -81,7 +87,7 @@ const useConnectAndSignSplitSteps = () => {
81
87
  return;
82
88
  }
83
89
  yield verifyWallet({
84
- captchaToken,
90
+ captchaToken: getCaptchaToken(),
85
91
  publicWalletAddress,
86
92
  walletConnector,
87
93
  });
@@ -24,7 +24,7 @@ import { useHandleWalletsToConnect } from '../../useHandleWalletsToConnect/useHa
24
24
  const useConnectAndSignSplitSteps = () => {
25
25
  const { setView, goToInitialView } = useViewContext();
26
26
  const { setErrorMessage } = useErrorContext();
27
- const { captchaToken } = useCaptchaContext();
27
+ const { getCaptchaToken, engageCaptcha } = useCaptchaContext();
28
28
  const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, user, authMode, setCallback, setIsVerificationInProgress, } = useInternalDynamicContext();
29
29
  const { handleWalletsToConnect } = useHandleWalletsToConnect();
30
30
  const verifyWallet = useVerifyWallet({
@@ -52,7 +52,13 @@ const useConnectAndSignSplitSteps = () => {
52
52
  return;
53
53
  }
54
54
  if ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.hCaptcha) === null || _a === void 0 ? void 0 : _a.enabled) {
55
- setView('captcha');
55
+ engageCaptcha({
56
+ authMethod: 'wallet',
57
+ onCaptchaSuccess: (_captchaToken) => __awaiter(void 0, void 0, void 0, function* () {
58
+ setShowAuthFlow(true);
59
+ setView('pending-signature');
60
+ }),
61
+ });
56
62
  return;
57
63
  }
58
64
  setShowAuthFlow(true);
@@ -77,7 +83,7 @@ const useConnectAndSignSplitSteps = () => {
77
83
  return;
78
84
  }
79
85
  yield verifyWallet({
80
- captchaToken,
86
+ captchaToken: getCaptchaToken(),
81
87
  publicWalletAddress,
82
88
  walletConnector,
83
89
  });
@@ -19,11 +19,13 @@ require('../../../../shared/utils/classes/storage/localStorage.cjs');
19
19
  require('viem');
20
20
  require('@dynamic-labs/utils');
21
21
  require('../../../../shared/consts/index.cjs');
22
+ var CaptchaContext = require('../../../../context/CaptchaContext/CaptchaContext.cjs');
22
23
 
23
24
  const useSignConnectOnlyUser = () => {
24
25
  const { setView } = ViewContext.useViewContext();
25
26
  const { setErrorMessage } = ErrorContext.useErrorContext();
26
- const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, setSelectedWalletConnector, walletUiUtils, } = useInternalDynamicContext.useInternalDynamicContext();
27
+ const { getCaptchaToken } = CaptchaContext.useCaptchaContext();
28
+ const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, setSelectedWalletConnectorKey, walletUiUtils, } = useInternalDynamicContext.useInternalDynamicContext();
27
29
  const verifyWallet = useVerifyWallet.useVerifyWallet({
28
30
  consumeNonce,
29
31
  displaySiweStatement,
@@ -41,7 +43,7 @@ const useSignConnectOnlyUser = () => {
41
43
  // We need this because in connect-only we don't want to show wallet-list
42
44
  // We don't want to show the back button in the pending signature view
43
45
  // because we don't want to go back to the wallet-list
44
- setSelectedWalletConnector(walletConnector);
46
+ setSelectedWalletConnectorKey(walletConnector.key);
45
47
  setView('pending-signature-without-back-button');
46
48
  setShowAuthFlow(true);
47
49
  // Wallet should be already connected at this point
@@ -51,6 +53,7 @@ const useSignConnectOnlyUser = () => {
51
53
  return;
52
54
  }
53
55
  yield verifyWallet({
56
+ captchaToken: getCaptchaToken(),
54
57
  publicWalletAddress,
55
58
  walletConnector,
56
59
  });
@@ -15,11 +15,13 @@ import '../../../../shared/utils/classes/storage/localStorage.js';
15
15
  import 'viem';
16
16
  import '@dynamic-labs/utils';
17
17
  import '../../../../shared/consts/index.js';
18
+ import { useCaptchaContext } from '../../../../context/CaptchaContext/CaptchaContext.js';
18
19
 
19
20
  const useSignConnectOnlyUser = () => {
20
21
  const { setView } = useViewContext();
21
22
  const { setErrorMessage } = useErrorContext();
22
- const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, setSelectedWalletConnector, walletUiUtils, } = useInternalDynamicContext();
23
+ const { getCaptchaToken } = useCaptchaContext();
24
+ const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, setSelectedWalletConnectorKey, walletUiUtils, } = useInternalDynamicContext();
23
25
  const verifyWallet = useVerifyWallet({
24
26
  consumeNonce,
25
27
  displaySiweStatement,
@@ -37,7 +39,7 @@ const useSignConnectOnlyUser = () => {
37
39
  // We need this because in connect-only we don't want to show wallet-list
38
40
  // We don't want to show the back button in the pending signature view
39
41
  // because we don't want to go back to the wallet-list
40
- setSelectedWalletConnector(walletConnector);
42
+ setSelectedWalletConnectorKey(walletConnector.key);
41
43
  setView('pending-signature-without-back-button');
42
44
  setShowAuthFlow(true);
43
45
  // Wallet should be already connected at this point
@@ -47,6 +49,7 @@ const useSignConnectOnlyUser = () => {
47
49
  return;
48
50
  }
49
51
  yield verifyWallet({
52
+ captchaToken: getCaptchaToken(),
50
53
  publicWalletAddress,
51
54
  walletConnector,
52
55
  });
@@ -14,7 +14,6 @@ export { useConfirmationModal } from './useConfirmationModal';
14
14
  export { useWalletUiUtils } from './useWalletUiUtils';
15
15
  export { useForceUpdate } from './useForceUpdate';
16
16
  export { useKYCFlag } from './useKYCFlag';
17
- export { useMultiWalletFlag } from './useMultiWalletFlag';
18
17
  export { useDefaultQrCode } from './useDefaultQrCode';
19
18
  export { useWalletItemActions } from './useWalletItemActions';
20
19
  export { usePromise } from './usePromise';
@@ -21,7 +21,7 @@ var isSupportedNetwork = require('../../functions/isSupportedNetwork/isSupported
21
21
  var isProgrammableNetworkSwitchSupported = require('../../functions/isProgrammableNetworkSwitchSupported/isProgrammableNetworkSwitchSupported.cjs');
22
22
 
23
23
  const useConnectedWalletsNetworkValidation = () => {
24
- const { connectedWallets, selectedWalletConnector, setSelectedWalletConnector, setShowAuthFlow, showAuthFlow, walletsToConnectByChain, sdkHasLoaded, } = useInternalDynamicContext.useInternalDynamicContext();
24
+ const { connectedWallets, selectedWalletConnector, setSelectedWalletConnectorKey, setShowAuthFlow, showAuthFlow, walletsToConnectByChain, sdkHasLoaded, } = useInternalDynamicContext.useInternalDynamicContext();
25
25
  const { setView } = ViewContext.useViewContext();
26
26
  React.useEffect(() => {
27
27
  /**
@@ -48,11 +48,11 @@ const useConnectedWalletsNetworkValidation = () => {
48
48
  // If we found wallets that require a change of network
49
49
  // then, one by one, in the first one we require a change of network.
50
50
  const [connectedWalletWithInvalidNetwork] = connectedWalletsWithInvalidNetwork;
51
- // Keeps the first wallet connectedWallet in setSelectedWalletConnector
51
+ // Keeps the first wallet connectedWallet in setSelectedWalletConnectorKey
52
52
  // This is required because NetworkNotSupported uses walletConnector to display wallet icon, address etc.
53
53
  if (connectedWalletWithInvalidNetwork.connector.name !==
54
54
  (selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name)) {
55
- setSelectedWalletConnector(connectedWalletWithInvalidNetwork.connector);
55
+ setSelectedWalletConnectorKey(connectedWalletWithInvalidNetwork.connector.key);
56
56
  }
57
57
  const networkNotSupportedView = isProgrammableNetworkSwitchSupported.isProgrammableNetworkSwitchSupported(connectedWalletWithInvalidNetwork.connector)
58
58
  ? 'network-not-supported'
@@ -69,7 +69,7 @@ const useConnectedWalletsNetworkValidation = () => {
69
69
  sdkHasLoaded,
70
70
  connectedWallets,
71
71
  selectedWalletConnector,
72
- setSelectedWalletConnector,
72
+ setSelectedWalletConnectorKey,
73
73
  setShowAuthFlow,
74
74
  setView,
75
75
  walletsToConnectByChain,
@@ -17,7 +17,7 @@ import { isSupportedNetwork } from '../../functions/isSupportedNetwork/isSupport
17
17
  import { isProgrammableNetworkSwitchSupported } from '../../functions/isProgrammableNetworkSwitchSupported/isProgrammableNetworkSwitchSupported.js';
18
18
 
19
19
  const useConnectedWalletsNetworkValidation = () => {
20
- const { connectedWallets, selectedWalletConnector, setSelectedWalletConnector, setShowAuthFlow, showAuthFlow, walletsToConnectByChain, sdkHasLoaded, } = useInternalDynamicContext();
20
+ const { connectedWallets, selectedWalletConnector, setSelectedWalletConnectorKey, setShowAuthFlow, showAuthFlow, walletsToConnectByChain, sdkHasLoaded, } = useInternalDynamicContext();
21
21
  const { setView } = useViewContext();
22
22
  useEffect(() => {
23
23
  /**
@@ -44,11 +44,11 @@ const useConnectedWalletsNetworkValidation = () => {
44
44
  // If we found wallets that require a change of network
45
45
  // then, one by one, in the first one we require a change of network.
46
46
  const [connectedWalletWithInvalidNetwork] = connectedWalletsWithInvalidNetwork;
47
- // Keeps the first wallet connectedWallet in setSelectedWalletConnector
47
+ // Keeps the first wallet connectedWallet in setSelectedWalletConnectorKey
48
48
  // This is required because NetworkNotSupported uses walletConnector to display wallet icon, address etc.
49
49
  if (connectedWalletWithInvalidNetwork.connector.name !==
50
50
  (selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name)) {
51
- setSelectedWalletConnector(connectedWalletWithInvalidNetwork.connector);
51
+ setSelectedWalletConnectorKey(connectedWalletWithInvalidNetwork.connector.key);
52
52
  }
53
53
  const networkNotSupportedView = isProgrammableNetworkSwitchSupported(connectedWalletWithInvalidNetwork.connector)
54
54
  ? 'network-not-supported'
@@ -65,7 +65,7 @@ const useConnectedWalletsNetworkValidation = () => {
65
65
  sdkHasLoaded,
66
66
  connectedWallets,
67
67
  selectedWalletConnector,
68
- setSelectedWalletConnector,
68
+ setSelectedWalletConnectorKey,
69
69
  setShowAuthFlow,
70
70
  setView,
71
71
  walletsToConnectByChain,
@@ -10,6 +10,19 @@ var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
10
10
  var useWalletItemActions = require('../useWalletItemActions/useWalletItemActions.cjs');
11
11
  var useConnectWithEmail = require('../useConnectWithEmail/useConnectWithEmail.cjs');
12
12
  var api = require('../../../data/api.cjs');
13
+ require('../../../shared/logger.cjs');
14
+ require('@dynamic-labs/iconic');
15
+ require('@dynamic-labs/wallet-connector-core');
16
+ require('react/jsx-runtime');
17
+ require('react');
18
+ require('@dynamic-labs/wallet-book');
19
+ require('../../constants/colors.cjs');
20
+ require('../../../shared/utils/classes/storage/localStorage.cjs');
21
+ require('viem');
22
+ require('@dynamic-labs/utils');
23
+ require('../../../shared/consts/index.cjs');
24
+ require('@dynamic-labs/multi-wallet');
25
+ var isTurnkeyEnabled = require('../../functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
13
26
 
14
27
  const useEmailProvider = ({ emailWalletConnector }) => {
15
28
  const { projectSettings, environmentId } = useInternalDynamicContext.useInternalDynamicContext();
@@ -26,8 +39,9 @@ const useEmailProvider = ({ emailWalletConnector }) => {
26
39
  Boolean(providers === null || providers === void 0 ? void 0 : providers.filter((provider) => provider.enabledAt &&
27
40
  (provider.provider === sdkApi.ProviderEnum.MagicLink ||
28
41
  provider.provider === sdkApi.ProviderEnum.Blocto)).length);
29
- const handleEmailOnlyLoginSubmit = (emailInput) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
42
+ const handleEmailOnlyLoginSubmit = (emailInput, captchaToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
30
43
  const { email, verificationUUID } = yield api.createEmailVerification({
44
+ captchaToken,
31
45
  email: emailInput,
32
46
  environmentId,
33
47
  });
@@ -38,17 +52,37 @@ const useEmailProvider = ({ emailWalletConnector }) => {
38
52
  const handleMagicLinkOrBloctoSubmit = (emailInput) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
39
53
  yield connectWithEmail(emailInput);
40
54
  });
41
- const submitEmail = (emailInput) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
55
+ const submitEmail = (emailInput, captchaToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
42
56
  if (isMagicOrBloctoEnabled) {
43
57
  yield handleMagicLinkOrBloctoSubmit(emailInput);
44
58
  return;
45
59
  }
46
- yield handleEmailOnlyLoginSubmit(emailInput);
60
+ yield handleEmailOnlyLoginSubmit(emailInput, captchaToken);
61
+ });
62
+ const handleEmailSubmitWithOptionalCaptcha = (emailInput, captchaToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
63
+ if ((emailWalletConnector !== undefined ||
64
+ isTurnkeyEnabled.isTurnkeyEnabled(projectSettings)) &&
65
+ (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmEmailProviderForVerify)) {
66
+ // see: https://linear.app/dynamic-labs/issue/DYN-2517
67
+ // if confirmWalletTransfers setting is true, check api first to confirm emailProvider
68
+ const { emailProvider } = yield api.getEmailProvider({
69
+ email: emailInput,
70
+ environmentId,
71
+ });
72
+ // For v0.19 we will support emailOnly and Dynamic as email providers
73
+ // For v0.20/v1 we need to remove emailOnly and leave Dynamic as the only one email provider
74
+ // Ticket: https://linear.app/dynamic-labs/issue/GVTY-213/remove-emailonly-as-a-provider-from-sdk
75
+ if (emailProvider === sdkApi.ProviderEnum.EmailOnly ||
76
+ emailProvider === sdkApi.ProviderEnum.Dynamic) {
77
+ yield handleEmailOnlyLoginSubmit(emailInput, captchaToken);
78
+ return;
79
+ }
80
+ }
81
+ yield submitEmail(emailInput, captchaToken);
47
82
  });
48
83
  return {
49
- handleEmailOnlyLoginSubmit,
84
+ handleEmailSubmitWithOptionalCaptcha,
50
85
  isEmailProviderLoading,
51
- submitEmail,
52
86
  };
53
87
  };
54
88
 
@@ -3,8 +3,7 @@ type Props = {
3
3
  emailWalletConnector: IEmailWalletConnector | undefined;
4
4
  };
5
5
  export declare const useEmailProvider: ({ emailWalletConnector }: Props) => {
6
- handleEmailOnlyLoginSubmit: (emailInput: string) => Promise<void>;
6
+ handleEmailSubmitWithOptionalCaptcha: (emailInput: string, captchaToken?: string) => Promise<void>;
7
7
  isEmailProviderLoading: boolean;
8
- submitEmail: (emailInput: string) => Promise<void>;
9
8
  };
10
9
  export {};
@@ -5,7 +5,20 @@ import { useEmailVerificationContext } from '../../../context/EmailVerificationC
5
5
  import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
6
6
  import { useWalletItemActions } from '../useWalletItemActions/useWalletItemActions.js';
7
7
  import { useConnectWithEmail } from '../useConnectWithEmail/useConnectWithEmail.js';
8
- import { createEmailVerification } from '../../../data/api.js';
8
+ import { getEmailProvider, createEmailVerification } from '../../../data/api.js';
9
+ import '../../../shared/logger.js';
10
+ import '@dynamic-labs/iconic';
11
+ import '@dynamic-labs/wallet-connector-core';
12
+ import 'react/jsx-runtime';
13
+ import 'react';
14
+ import '@dynamic-labs/wallet-book';
15
+ import '../../constants/colors.js';
16
+ import '../../../shared/utils/classes/storage/localStorage.js';
17
+ import 'viem';
18
+ import '@dynamic-labs/utils';
19
+ import '../../../shared/consts/index.js';
20
+ import '@dynamic-labs/multi-wallet';
21
+ import { isTurnkeyEnabled } from '../../functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
9
22
 
10
23
  const useEmailProvider = ({ emailWalletConnector }) => {
11
24
  const { projectSettings, environmentId } = useInternalDynamicContext();
@@ -22,8 +35,9 @@ const useEmailProvider = ({ emailWalletConnector }) => {
22
35
  Boolean(providers === null || providers === void 0 ? void 0 : providers.filter((provider) => provider.enabledAt &&
23
36
  (provider.provider === ProviderEnum.MagicLink ||
24
37
  provider.provider === ProviderEnum.Blocto)).length);
25
- const handleEmailOnlyLoginSubmit = (emailInput) => __awaiter(void 0, void 0, void 0, function* () {
38
+ const handleEmailOnlyLoginSubmit = (emailInput, captchaToken) => __awaiter(void 0, void 0, void 0, function* () {
26
39
  const { email, verificationUUID } = yield createEmailVerification({
40
+ captchaToken,
27
41
  email: emailInput,
28
42
  environmentId,
29
43
  });
@@ -34,17 +48,37 @@ const useEmailProvider = ({ emailWalletConnector }) => {
34
48
  const handleMagicLinkOrBloctoSubmit = (emailInput) => __awaiter(void 0, void 0, void 0, function* () {
35
49
  yield connectWithEmail(emailInput);
36
50
  });
37
- const submitEmail = (emailInput) => __awaiter(void 0, void 0, void 0, function* () {
51
+ const submitEmail = (emailInput, captchaToken) => __awaiter(void 0, void 0, void 0, function* () {
38
52
  if (isMagicOrBloctoEnabled) {
39
53
  yield handleMagicLinkOrBloctoSubmit(emailInput);
40
54
  return;
41
55
  }
42
- yield handleEmailOnlyLoginSubmit(emailInput);
56
+ yield handleEmailOnlyLoginSubmit(emailInput, captchaToken);
57
+ });
58
+ const handleEmailSubmitWithOptionalCaptcha = (emailInput, captchaToken) => __awaiter(void 0, void 0, void 0, function* () {
59
+ if ((emailWalletConnector !== undefined ||
60
+ isTurnkeyEnabled(projectSettings)) &&
61
+ (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmEmailProviderForVerify)) {
62
+ // see: https://linear.app/dynamic-labs/issue/DYN-2517
63
+ // if confirmWalletTransfers setting is true, check api first to confirm emailProvider
64
+ const { emailProvider } = yield getEmailProvider({
65
+ email: emailInput,
66
+ environmentId,
67
+ });
68
+ // For v0.19 we will support emailOnly and Dynamic as email providers
69
+ // For v0.20/v1 we need to remove emailOnly and leave Dynamic as the only one email provider
70
+ // Ticket: https://linear.app/dynamic-labs/issue/GVTY-213/remove-emailonly-as-a-provider-from-sdk
71
+ if (emailProvider === ProviderEnum.EmailOnly ||
72
+ emailProvider === ProviderEnum.Dynamic) {
73
+ yield handleEmailOnlyLoginSubmit(emailInput, captchaToken);
74
+ return;
75
+ }
76
+ }
77
+ yield submitEmail(emailInput, captchaToken);
43
78
  });
44
79
  return {
45
- handleEmailOnlyLoginSubmit,
80
+ handleEmailSubmitWithOptionalCaptcha,
46
81
  isEmailProviderLoading,
47
- submitEmail,
48
82
  };
49
83
  };
50
84
 
@@ -25,6 +25,7 @@ var isEmbeddedWalletPresent = require('../../functions/isEmbeddedWalletPresent/i
25
25
  var findEmbeddedWalletFromVerifiedCredentials = require('../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
26
26
  var findTurnkeyWallet = require('../../functions/findTurnkeyWallet/findTurnkeyWallet.cjs');
27
27
  var getUserWalletsFromVerifiedCredentials = require('../../functions/getUserWalletsFromVerifiedCredentials/getUserWalletsFromVerifiedCredentials.cjs');
28
+ var smartWallet = require('../useWalletConnectors/utils/smartWallet/smartWallet.cjs');
28
29
 
29
30
  // Hook exposed to customers and used internally to trigger embedded wallet creation
30
31
  const useEmbeddedWallet = () => {
@@ -68,7 +69,18 @@ const useEmbeddedWallet = () => {
68
69
  // if user already has embedded wallet, set it as primary wallet
69
70
  if (decodedJwt) {
70
71
  (_b = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _b === void 0 ? void 0 : _b.setVerifiedCredentials(decodedJwt.verifiedCredentials);
71
- setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
72
+ const smartWallet$1 = smartWallet.findSmartWallet(embeddedWalletVerifiedCredential, decodedJwt.verifiedCredentials);
73
+ if (smartWallet$1) {
74
+ setPrimaryWalletId(smartWallet$1.id);
75
+ smartWallet.initializeSmartWallet({
76
+ account: smartWallet$1,
77
+ verifiedCredentials: decodedJwt.verifiedCredentials,
78
+ walletOptions: wallets,
79
+ });
80
+ }
81
+ else {
82
+ setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
83
+ }
72
84
  }
73
85
  const passkeyWallet = {
74
86
  address: (yield ((_c = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _c === void 0 ? void 0 : _c.fetchPublicAddress())) || '',
@@ -21,6 +21,7 @@ import { isEmbeddedWalletPresent } from '../../functions/isEmbeddedWalletPresent
21
21
  import { findEmbeddedWalletFromVerifiedCredentials } from '../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
22
22
  import { findTurnkeyWallet } from '../../functions/findTurnkeyWallet/findTurnkeyWallet.js';
23
23
  import { getUserWalletsFromVerifiedCredentials } from '../../functions/getUserWalletsFromVerifiedCredentials/getUserWalletsFromVerifiedCredentials.js';
24
+ import { findSmartWallet, initializeSmartWallet } from '../useWalletConnectors/utils/smartWallet/smartWallet.js';
24
25
 
25
26
  // Hook exposed to customers and used internally to trigger embedded wallet creation
26
27
  const useEmbeddedWallet = () => {
@@ -64,7 +65,18 @@ const useEmbeddedWallet = () => {
64
65
  // if user already has embedded wallet, set it as primary wallet
65
66
  if (decodedJwt) {
66
67
  (_b = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _b === void 0 ? void 0 : _b.setVerifiedCredentials(decodedJwt.verifiedCredentials);
67
- setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
68
+ const smartWallet = findSmartWallet(embeddedWalletVerifiedCredential, decodedJwt.verifiedCredentials);
69
+ if (smartWallet) {
70
+ setPrimaryWalletId(smartWallet.id);
71
+ initializeSmartWallet({
72
+ account: smartWallet,
73
+ verifiedCredentials: decodedJwt.verifiedCredentials,
74
+ walletOptions: wallets,
75
+ });
76
+ }
77
+ else {
78
+ setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
79
+ }
68
80
  }
69
81
  const passkeyWallet = {
70
82
  address: (yield ((_c = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _c === void 0 ? void 0 : _c.fetchPublicAddress())) || '',
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var utils = require('@dynamic-labs/utils');
7
+ var validators = require('../../../context/DynamicContext/validators.cjs');
7
8
  var api = require('../../../data/api.cjs');
8
9
  require('@dynamic-labs/sdk-api');
9
10
  require('../../../shared/logger.cjs');
@@ -18,7 +19,7 @@ var localStorage$1 = require('../../../shared/utils/classes/storage/localStorage
18
19
  require('viem');
19
20
  var useLocalStorage = require('../../../shared/utils/hooks/useLocalStorage/useLocalStorage.cjs');
20
21
  require('../../../shared/consts/index.cjs');
21
- var validators = require('../../../context/DynamicContext/validators.cjs');
22
+ var usePrevious = require('../usePrevious/usePrevious.cjs');
22
23
  var mergeCustomerEvmNetworksWithServerNetworks = require('./utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.cjs');
23
24
 
24
25
  const MAX_RETRIES = 2;
@@ -54,6 +55,14 @@ const useFetchNetworkConfigurations = ({ authToken, environmentId, evmNetworks:
54
55
  handleRemoveLsNetworks();
55
56
  }
56
57
  }, [authToken, handleRemoveLsNetworks]);
58
+ // When customer networks change, we need to update ls networks
59
+ const previousCustomerEvmNetworks = usePrevious.usePrevious(customerEvmNetworks);
60
+ React.useEffect(() => {
61
+ if (JSON.stringify(customerEvmNetworks) ===
62
+ JSON.stringify(previousCustomerEvmNetworks))
63
+ return;
64
+ setlsNetworksExists(false);
65
+ }, [customerEvmNetworks, previousCustomerEvmNetworks]);
57
66
  React.useEffect(() => {
58
67
  var _a, _b;
59
68
  if (lsNetworksExists && customerEvmNetworksJson && !completed) {
@@ -1,5 +1,6 @@
1
1
  import { useState, useCallback, useEffect } from 'react';
2
2
  import { DynamicError } from '@dynamic-labs/utils';
3
+ import { validateLocalStorageExpiry } from '../../../context/DynamicContext/validators.js';
3
4
  import { fetchNetworkSettings } from '../../../data/api.js';
4
5
  import '@dynamic-labs/sdk-api';
5
6
  import '../../../shared/logger.js';
@@ -14,7 +15,7 @@ import { LocalStorage } from '../../../shared/utils/classes/storage/localStorage
14
15
  import 'viem';
15
16
  import { useLocalStorage } from '../../../shared/utils/hooks/useLocalStorage/useLocalStorage.js';
16
17
  import '../../../shared/consts/index.js';
17
- import { validateLocalStorageExpiry } from '../../../context/DynamicContext/validators.js';
18
+ import { usePrevious } from '../usePrevious/usePrevious.js';
18
19
  import { mergeCustomerEvmNetworksWithServerNetworks } from './utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.js';
19
20
 
20
21
  const MAX_RETRIES = 2;
@@ -50,6 +51,14 @@ const useFetchNetworkConfigurations = ({ authToken, environmentId, evmNetworks:
50
51
  handleRemoveLsNetworks();
51
52
  }
52
53
  }, [authToken, handleRemoveLsNetworks]);
54
+ // When customer networks change, we need to update ls networks
55
+ const previousCustomerEvmNetworks = usePrevious(customerEvmNetworks);
56
+ useEffect(() => {
57
+ if (JSON.stringify(customerEvmNetworks) ===
58
+ JSON.stringify(previousCustomerEvmNetworks))
59
+ return;
60
+ setlsNetworksExists(false);
61
+ }, [customerEvmNetworks, previousCustomerEvmNetworks]);
53
62
  useEffect(() => {
54
63
  var _a, _b;
55
64
  if (lsNetworksExists && customerEvmNetworksJson && !completed) {
@@ -14,9 +14,10 @@ require('../../../context/ViewContext/ViewContext.cjs');
14
14
  require('@dynamic-labs/wallet-book');
15
15
  var localStorage = require('../../constants/localStorage.cjs');
16
16
  require('../../constants/colors.cjs');
17
- require('../../../shared/utils/classes/storage/localStorage.cjs');
17
+ var localStorage$1 = require('../../../shared/utils/classes/storage/localStorage.cjs');
18
18
  require('viem');
19
19
  var useLocalStorage = require('../../../shared/utils/hooks/useLocalStorage/useLocalStorage.cjs');
20
+ var useEffectOnce = require('../../../shared/utils/hooks/useEffectOnce/useEffectOnce.cjs');
20
21
  require('../../../shared/consts/index.cjs');
21
22
  var validators = require('../../../context/DynamicContext/validators.cjs');
22
23
 
@@ -81,6 +82,12 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dyn
81
82
  }
82
83
  }, [environmentId, isLoading, lsSettingsExists, maxRetries, retries]);
83
84
  const settingsWithOverride = React.useMemo(() => overrideSettings(lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings, dynamicContextProps.settings.overrides), [lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings, dynamicContextProps.settings.overrides]);
85
+ useEffectOnce.useEffectOnce(() => {
86
+ const [connectedWalletData] = localStorage$1.LocalStorage.getFromLS(localStorage.CONNECTED_WALLETS_INFO) || [];
87
+ if (!authToken && !connectedWalletData) {
88
+ removeLsSettings();
89
+ }
90
+ });
84
91
  return {
85
92
  isLoading,
86
93
  projectSettings: settingsWithOverride,
@@ -8,11 +8,12 @@ import '@dynamic-labs/wallet-connector-core';
8
8
  import 'react/jsx-runtime';
9
9
  import '../../../context/ViewContext/ViewContext.js';
10
10
  import '@dynamic-labs/wallet-book';
11
- import { PROJECT_SETTINGS_STORAGE_KEY } from '../../constants/localStorage.js';
11
+ import { PROJECT_SETTINGS_STORAGE_KEY, CONNECTED_WALLETS_INFO } from '../../constants/localStorage.js';
12
12
  import '../../constants/colors.js';
13
- import '../../../shared/utils/classes/storage/localStorage.js';
13
+ import { LocalStorage } from '../../../shared/utils/classes/storage/localStorage.js';
14
14
  import 'viem';
15
15
  import { useLocalStorage } from '../../../shared/utils/hooks/useLocalStorage/useLocalStorage.js';
16
+ import { useEffectOnce } from '../../../shared/utils/hooks/useEffectOnce/useEffectOnce.js';
16
17
  import '../../../shared/consts/index.js';
17
18
  import { validateLocalStorageExpiry } from '../../../context/DynamicContext/validators.js';
18
19
 
@@ -77,6 +78,12 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dyn
77
78
  }
78
79
  }, [environmentId, isLoading, lsSettingsExists, maxRetries, retries]);
79
80
  const settingsWithOverride = useMemo(() => overrideSettings(lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings, dynamicContextProps.settings.overrides), [lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings, dynamicContextProps.settings.overrides]);
81
+ useEffectOnce(() => {
82
+ const [connectedWalletData] = LocalStorage.getFromLS(CONNECTED_WALLETS_INFO) || [];
83
+ if (!authToken && !connectedWalletData) {
84
+ removeLsSettings();
85
+ }
86
+ });
80
87
  return {
81
88
  isLoading,
82
89
  projectSettings: settingsWithOverride,