@dynamic-labs/sdk-react-core 2.0.0-alpha.6 → 2.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/package.cjs +4 -4
  3. package/package.js +4 -4
  4. package/package.json +16 -16
  5. package/src/index.cjs +3 -7
  6. package/src/index.d.ts +1 -2
  7. package/src/index.js +2 -2
  8. package/src/lib/components/Alert/Alert.cjs +1 -0
  9. package/src/lib/components/Alert/Alert.js +1 -0
  10. package/src/lib/components/Alert/Alert.types.d.ts +1 -1
  11. package/src/lib/components/ErrorContainer/ErrorContainer.cjs +1 -1
  12. package/src/lib/components/ErrorContainer/ErrorContainer.js +1 -1
  13. package/src/lib/components/NetworkPicker/NetworkPicker.cjs +4 -2
  14. package/src/lib/components/NetworkPicker/NetworkPicker.js +4 -2
  15. package/src/lib/components/ShadowDOM/ShadowDOM.cjs +2 -0
  16. package/src/lib/components/ShadowDOM/ShadowDOM.js +2 -1
  17. package/src/lib/components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.cjs +26 -10
  18. package/src/lib/components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.js +27 -11
  19. package/src/lib/components/index.d.ts +1 -0
  20. package/src/lib/context/DynamicContext/DynamicContext.cjs +16 -16
  21. package/src/lib/context/DynamicContext/DynamicContext.d.ts +3 -4
  22. package/src/lib/context/DynamicContext/DynamicContext.js +17 -17
  23. package/src/lib/context/DynamicContext/helpers/helpers.cjs +10 -0
  24. package/src/lib/context/DynamicContext/helpers/helpers.d.ts +5 -0
  25. package/src/lib/context/DynamicContext/helpers/helpers.js +10 -1
  26. package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +0 -1
  27. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +1 -1
  28. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +1 -1
  29. package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.cjs +1 -0
  30. package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.d.ts +8 -7
  31. package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.js +1 -0
  32. package/src/lib/context/DynamicContext/types/index.d.ts +14 -2
  33. package/src/lib/context/ErrorContext/ErrorContext.cjs +4 -0
  34. package/src/lib/context/ErrorContext/ErrorContext.d.ts +1 -0
  35. package/src/lib/context/ErrorContext/ErrorContext.js +4 -0
  36. package/src/lib/context/FundingContext/FundingContext.cjs +3 -1
  37. package/src/lib/context/FundingContext/FundingContext.js +3 -1
  38. package/src/lib/context/PasskeyContext/PasskeyContext.cjs +1 -0
  39. package/src/lib/context/PasskeyContext/PasskeyContext.js +1 -0
  40. package/src/lib/context/ViewContext/ViewContext.cjs +7 -0
  41. package/src/lib/context/ViewContext/ViewContext.js +7 -0
  42. package/src/lib/context/ViewContext/types/index.d.ts +5 -3
  43. package/src/lib/locale/en/translation.cjs +30 -16
  44. package/src/lib/locale/en/translation.d.ts +22 -8
  45. package/src/lib/locale/en/translation.js +30 -16
  46. package/src/lib/shared/types/localStorage.d.ts +1 -1
  47. package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.cjs +10 -28
  48. package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.d.ts +1 -5
  49. package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.js +10 -28
  50. package/src/lib/styles/index.shadow.cjs +1 -1
  51. package/src/lib/styles/index.shadow.js +1 -1
  52. package/src/lib/utils/functions/index.d.ts +1 -0
  53. package/src/lib/utils/functions/mergeNetworks/index.d.ts +1 -0
  54. package/src/lib/utils/functions/mergeNetworks/mergeNetworks.cjs +26 -0
  55. package/src/lib/utils/functions/mergeNetworks/mergeNetworks.d.ts +13 -0
  56. package/src/lib/utils/functions/mergeNetworks/mergeNetworks.js +22 -0
  57. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +4 -2
  58. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +4 -2
  59. package/src/lib/utils/hooks/authenticationHooks/useEmailVerificationRequest/useEmailVerificationRequest.cjs +1 -0
  60. package/src/lib/utils/hooks/authenticationHooks/useEmailVerificationRequest/useEmailVerificationRequest.js +1 -0
  61. package/src/lib/utils/hooks/index.d.ts +1 -0
  62. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +1 -1
  63. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +1 -1
  64. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.cjs +1 -0
  65. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.js +1 -0
  66. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +33 -8
  67. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +33 -8
  68. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +1 -0
  69. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +1 -0
  70. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +27 -5
  71. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +27 -5
  72. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.cjs +7 -6
  73. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.d.ts +1 -1
  74. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.js +7 -6
  75. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +2 -6
  76. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +2 -6
  77. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.cjs +20 -54
  78. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.d.ts +5 -3
  79. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.js +20 -54
  80. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/index.d.ts +1 -0
  81. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +38 -0
  82. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.d.ts +2 -0
  83. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +34 -0
  84. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +1 -0
  85. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +1 -0
  86. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +8 -11
  87. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +8 -11
  88. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs +1 -0
  89. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js +1 -0
  90. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +1 -0
  91. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +1 -0
  92. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.cjs +4 -7
  93. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.js +4 -7
  94. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +1 -1
  95. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +1 -1
  96. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.cjs +1 -1
  97. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.js +1 -1
  98. package/src/lib/views/CoinbaseMPCClaimIntro/CoinbaseMPCClaimIntro.cjs +1 -1
  99. package/src/lib/views/CoinbaseMPCClaimIntro/CoinbaseMPCClaimIntro.js +1 -1
  100. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +3 -8
  101. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +3 -8
  102. package/src/lib/views/{CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs → CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.cjs} +5 -4
  103. package/src/lib/views/CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.d.ts +13 -0
  104. package/src/lib/views/{CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js → CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.js} +5 -4
  105. package/src/lib/views/CollectUserDataViewNoWallet/index.d.ts +1 -0
  106. package/src/lib/views/CreatePasswordView/CreatePasswordStep/CreatePasswordStep.cjs +17 -2
  107. package/src/lib/views/CreatePasswordView/CreatePasswordStep/CreatePasswordStep.js +17 -2
  108. package/src/lib/views/CreatePasswordView/CreatePasswordView.cjs +12 -13
  109. package/src/lib/views/CreatePasswordView/CreatePasswordView.d.ts +2 -0
  110. package/src/lib/views/CreatePasswordView/CreatePasswordView.js +12 -13
  111. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +1 -0
  112. package/src/lib/views/EmailUpdate/EmailUpdate.js +1 -0
  113. package/src/lib/views/EmailVerification/EmailVerification.cjs +10 -17
  114. package/src/lib/views/EmailVerification/EmailVerification.js +10 -17
  115. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +40 -13
  116. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.d.ts +2 -3
  117. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +40 -13
  118. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.d.ts +1 -1
  119. package/src/lib/views/EnterPasswordView/EnterPasswordView.cjs +8 -1
  120. package/src/lib/views/EnterPasswordView/EnterPasswordView.js +8 -1
  121. package/src/lib/views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs +1 -0
  122. package/src/lib/views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.js +1 -0
  123. package/src/lib/views/LoginView/useLoginView/useLoginView.cjs +11 -5
  124. package/src/lib/views/LoginView/useLoginView/useLoginView.js +11 -5
  125. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +1 -0
  126. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +1 -0
  127. package/src/lib/views/Passkey/EmbeddedAuthChoice/EmbeddedAuthChoice.d.ts +2 -3
  128. package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.d.ts +2 -3
  129. package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.d.ts +2 -3
  130. package/src/lib/views/Passkey/RenamePasskeyView/RenamePasskeyView.cjs +1 -0
  131. package/src/lib/views/Passkey/RenamePasskeyView/RenamePasskeyView.js +1 -0
  132. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +31 -7
  133. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +31 -7
  134. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -0
  135. package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -0
  136. package/src/lib/views/viewToComponentMap.cjs +4 -4
  137. package/src/lib/views/viewToComponentMap.d.ts +60 -2
  138. package/src/lib/views/viewToComponentMap.js +4 -4
  139. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs +1 -1
  140. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js +1 -1
  141. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +6 -4
  142. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +6 -4
  143. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +5 -2
  144. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +5 -2
  145. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.cjs +2 -14
  146. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.js +2 -14
  147. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.cjs +3 -1
  148. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.js +4 -2
  149. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.cjs +2 -14
  150. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.js +2 -14
  151. package/src/lib/widgets/DynamicWidget/views/WalletSettingsView/WalletSettingsView.cjs +18 -9
  152. package/src/lib/widgets/DynamicWidget/views/WalletSettingsView/WalletSettingsView.js +18 -9
  153. package/src/lib/utils/functions/isSameWalletName/index.d.ts +0 -1
  154. package/src/lib/utils/functions/isSameWalletName/isSameWalletName.cjs +0 -9
  155. package/src/lib/utils/functions/isSameWalletName/isSameWalletName.d.ts +0 -1
  156. package/src/lib/utils/functions/isSameWalletName/isSameWalletName.js +0 -5
  157. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/index.d.ts +0 -1
  158. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/index.d.ts +0 -1
  159. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.cjs +0 -16
  160. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.d.ts +0 -2
  161. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.js +0 -12
  162. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.d.ts +0 -2
  163. package/src/lib/views/CollectUserDataViewLoginWithEmail/index.d.ts +0 -1
@@ -49,6 +49,7 @@ var useValidateSession = require('../../utils/hooks/useValidateSession/useValida
49
49
  var useWalletConnectorOptions = require('../../utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.cjs');
50
50
  var useWalletConnectors = require('../../utils/hooks/useWalletConnectors/useWalletConnectors.cjs');
51
51
  var useWalletUiUtils = require('../../utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs');
52
+ var useSetWalletConnectorFetchers = require('../../utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs');
52
53
  require('../../components/Alert/Alert.cjs');
53
54
  require('../../components/ShadowDOM/ShadowDOM.cjs');
54
55
  require('../../components/IconButton/IconButton.cjs');
@@ -72,13 +73,13 @@ require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/Secondar
72
73
  require('i18next');
73
74
  require('@hcaptcha/react-hcaptcha');
74
75
  var LoadingContext = require('../LoadingContext/LoadingContext.cjs');
76
+ var ApiEndpoint = require('../../config/ApiEndpoint.cjs');
75
77
  require('../FooterAnimationContext/index.cjs');
76
78
  require('../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs');
77
79
  var WalletGroupContext = require('../WalletGroupContext/WalletGroupContext.cjs');
78
80
  var PasskeyContext = require('../PasskeyContext/PasskeyContext.cjs');
79
81
  var SyncEmbeddedWalletAuthFlow = require('../../components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.cjs');
80
82
  var Toolkit = require('../../components/Toolkit/Toolkit.cjs');
81
- var ApiEndpoint = require('../../config/ApiEndpoint.cjs');
82
83
  var locale = require('../../locale/locale.cjs');
83
84
  var getMissingChains = require('../../utils/functions/getMissingChains/getMissingChains.cjs');
84
85
  var parseTheme = require('../../utils/functions/parseTheme/parseTheme.cjs');
@@ -128,10 +129,11 @@ const DynamicContext = React.createContext(undefined);
128
129
  /** The context provider itself we only use internally */
129
130
  const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale$1, }) => {
130
131
  var _a, _b, _c, _d, _e;
131
- const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, enableConnectOnlyFallback = false, deepLinkPreference = 'native', bridgeChains, cssOverrides, defaultNumberOfWalletsToShow = values.DEFAULT_NUMBER_OF_WALLETS_TO_SHOW, flowNetwork, initialAuthenticationMode = 'connect-and-sign', debugError = false, displaySiweStatement = true, newToWeb3WalletChainMap, enableVisitTrackingOnConnectOnly = true, environmentId, localStorageSuffix, eventsCallbacks, evmNetworks, walletsFilter, logLevel = 'WARN', mobileExperience = 'in-app-browser', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, showLockedWalletView = false, walletConnectPreferredChains, walletConnectorExtensions, recommendedWallets, hideEmbeddedWalletUIs, } = settings;
132
- const enableForcedNetworkValidation = bridgeChains
133
- ? true
134
- : (_a = settings.enableForcedNetworkValidation) !== null && _a !== void 0 ? _a : true;
132
+ const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, enableConnectOnlyFallback = false, deepLinkPreference = 'native', bridgeChains, cssOverrides, defaultNumberOfWalletsToShow = values.DEFAULT_NUMBER_OF_WALLETS_TO_SHOW, flowNetwork, initialAuthenticationMode = 'connect-and-sign', debugError = false, displaySiweStatement = true, newToWeb3WalletChainMap, enableVisitTrackingOnConnectOnly = true, environmentId, localStorageSuffix, eventsCallbacks, walletsFilter, logLevel = 'WARN', mobileExperience = 'in-app-browser', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, showLockedWalletView = false, walletConnectPreferredChains, walletConnectorExtensions, recommendedWallets, hideEmbeddedWalletUIs, } = settings;
133
+ const networkValidationMode = helpers.resolveNetworkValidationMode({
134
+ bridgeChains: settings.bridgeChains,
135
+ networkValidationMode: settings.networkValidationMode,
136
+ });
135
137
  let { appLogoUrl = 'https://demo.dynamic.xyz/assets/dynamic-logo.svg', appName = 'Dynamic Example', } = settings;
136
138
  if (!environmentId) {
137
139
  throw new utils.MissingEnvironmentIdError();
@@ -141,7 +143,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
141
143
  if (environmentId === PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID) {
142
144
  logger.logger.warn(`WARNING: DYNAMIC is using a test environment ID ${environmentId}. Please sign up on https://app.dynamic.xyz/ to get your production environment ID.`);
143
145
  }
144
- ApiEndpoint.setBaseUrl((_b = process.env.DYNAMIC_API_BASE_URL) !== null && _b !== void 0 ? _b : apiBaseUrl);
146
+ ApiEndpoint.setBaseUrl((_a = process.env.DYNAMIC_API_BASE_URL) !== null && _a !== void 0 ? _a : apiBaseUrl);
145
147
  localStorage.LocalStorage.setSuffix(localStorageSuffix);
146
148
  const i18nSDKInstance = locale.Locale.setup(locale$1);
147
149
  const isAuthenticated = Boolean(getAuthToken.getAuthToken());
@@ -168,7 +170,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
168
170
  });
169
171
  const { multiWallet, setMultiWallet } = useMultiWallet.useMultiWallet({
170
172
  isBridgeFlow,
171
- multiWalletSettings: (_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _c === void 0 ? void 0 : _c.multiWallet,
173
+ multiWalletSettings: (_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.multiWallet,
172
174
  toolkitEnabled: toolkitEnabled || false,
173
175
  });
174
176
  // ensures that when user comes back to site and primary wallet is out of sync, we don't show widget popup
@@ -178,10 +180,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
178
180
  // Set to true when a customer starts any auth verification process and set to false when it ends
179
181
  const [isVerificationInProgress, setIsVerificationInProgress] = useVerificationInProgress.useVerificationInProgress();
180
182
  const walletBook$1 = walletBook.useWalletBookCdn();
181
- const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations.useProcessNetworkConfigurations({
183
+ const { networkConfigurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations.useProcessNetworkConfigurations({
182
184
  authToken: getAuthToken.getAuthToken(),
183
185
  environmentId,
184
- evmNetworks,
186
+ evmNetworksOverrides: (_c = settings.overrides) === null || _c === void 0 ? void 0 : _c.evmNetworks,
185
187
  projectSettings,
186
188
  });
187
189
  const { imageUserInAccessList, imageUserNotInAccessList, displayName, appLogo, } = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general) || {};
@@ -259,6 +261,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
259
261
  // until user completes onboarding, jwt is only stored in onboardingOnlyJwt
260
262
  const authToken = (_d = getAuthToken.getAuthToken()) !== null && _d !== void 0 ? _d : onboardingOnlyJwt;
261
263
  useSetWalletConnectorVerifiedCredentials.useSetWalletConnectorVerifiedCredentials(authToken, walletConnectorOptions);
264
+ useSetWalletConnectorFetchers.useSetWalletConnectorFetchers(authToken, walletConnectorOptions, environmentId);
262
265
  const { didConnectedStateLoad, primaryWallet, showQrcodeModal, secondaryWallets, setPrimaryWallet, setShowQrcodeModal, wallets: linkedOrConnectedWallets, } = useWalletConnectors.useWalletConnectors({
263
266
  authMode,
264
267
  authToken: getAuthToken.getAuthToken() || onboardingOnlyJwt,
@@ -275,7 +278,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
275
278
  walletConnectorOptions,
276
279
  });
277
280
  const walletConnectors = linkedOrConnectedWallets.map((wallet) => wallet.connector);
278
- const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading.useGlobalLoading({
281
+ const sdkHasLoaded = useGlobalLoading.useGlobalLoading({
279
282
  authMode,
280
283
  connectedInfo: connectedWalletsInfo[0],
281
284
  connectedWallets,
@@ -318,7 +321,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
318
321
  setLegacyIsVerifying,
319
322
  setMultiWalletWidgetState,
320
323
  setOnboardingOnlyJwt,
321
- setSdkHasLoaded,
322
324
  setShowAuthFlow,
323
325
  setShowBridgeWidget,
324
326
  setShowDynamicUserProfile,
@@ -451,7 +453,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
451
453
  disconnectWallet,
452
454
  displaySiweStatement,
453
455
  enableConnectOnlyFallback,
454
- enableForcedNetworkValidation,
455
456
  environmentId,
456
457
  eventsCallbacks,
457
458
  getConnectedWalletById,
@@ -477,6 +478,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
477
478
  multiWalletWidgetState,
478
479
  network,
479
480
  networkConfigurations: serverNetworkConfigurations,
481
+ networkValidationMode,
480
482
  newToWeb3WalletChainMap: walletsForChainsMap,
481
483
  notInTheListImageUrl: imageUserNotInAccessList || notInTheListImageUrl,
482
484
  onboardingImageUrl: imageUserInAccessList || onboardingImageUrl,
@@ -515,7 +517,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
515
517
  setPrimaryWallet,
516
518
  setPrimaryWalletId,
517
519
  setQrcodeUri,
518
- setSdkHasLoaded,
519
520
  setSelectedWalletConnectorKey,
520
521
  setSelectedWalletWithAction,
521
522
  setShowAuthFlow,
@@ -552,7 +553,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
552
553
  accessDeniedMessagePrimary,
553
554
  accessDeniedMessageSecondary,
554
555
  accountSwitchState,
555
- enableForcedNetworkValidation,
556
556
  appLogoUrl,
557
557
  appName,
558
558
  authMode,
@@ -589,6 +589,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
589
589
  isVerificationInProgress,
590
590
  legacyIsVerifying,
591
591
  user,
592
+ networkValidationMode,
592
593
  linkedOrConnectedWallets,
593
594
  loadingNetwork,
594
595
  loginWithEmail,
@@ -626,7 +627,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
626
627
  setNetwork,
627
628
  setPrimaryWallet,
628
629
  setPrimaryWalletId,
629
- setSdkHasLoaded,
630
630
  setSelectedWalletConnectorKey,
631
631
  setShowAuthFlow,
632
632
  setShowLinkNewWalletModal,
@@ -697,7 +697,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
697
697
  isBridgeFlow,
698
698
  isFullyConnected,
699
699
  isMultiWalletEnabled: multiWallet,
700
- }), children: [enableForcedNetworkValidation && jsxRuntime.jsx(UseNetworkValidation.UseNetworkValidation, {}), jsxRuntime.jsx(CaptchaContext.CaptchaContextProvider, { children: jsxRuntime.jsx(AccountExistsContext.AccountExistsContextProvider, { children: jsxRuntime.jsx(WalletContext.WalletContextProvider, { canSync: didConnectedStateLoad, children: jsxRuntime.jsx(PasskeyContext.PasskeyContextProvider, { children: jsxRuntime.jsx(VerificationContext.VerificationProvider, { children: jsxRuntime.jsx(DynamicWidgetContext.DynamicWidgetContextProvider, { children: jsxRuntime.jsx(DynamicBridgeWidgetContext.DynamicBridgeWidgetContextProvider, { children: jsxRuntime.jsx(FundingContext.FundingContextProvider, { children: jsxRuntime.jsx(AccessDeniedContext.AccessDeniedContextProvider, { children: jsxRuntime.jsx(SendBalanceContext.SendBalanceContextProvider, { children: jsxRuntime.jsx(WalletGroupContext.WalletGroupContextProvider, { children: jsxRuntime.jsx(UserFieldEditorContext.UserFieldEditorContextProvider, { children: jsxRuntime.jsx(ConnectWithEmailOtpProvider.ConnectWithEmailOtpProvider, { children: jsxRuntime.jsxs(PhantomRedirectContext.PhantomRedirectContextProvider, { children: [jsxRuntime.jsx(app.DynamicAuthFlow, {}), jsxRuntime.jsx(Toolkit.Toolkit, {}), jsxRuntime.jsx(FundingWidget.FundingWidget, {}), jsxRuntime.jsx(SyncEmbeddedWalletAuthFlow.SyncEmbeddedWalletAuthFlow, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) })] }) }) }) }) }) }));
700
+ }), children: [networkValidationMode === 'always' && jsxRuntime.jsx(UseNetworkValidation.UseNetworkValidation, {}), jsxRuntime.jsx(CaptchaContext.CaptchaContextProvider, { children: jsxRuntime.jsx(AccountExistsContext.AccountExistsContextProvider, { children: jsxRuntime.jsx(WalletContext.WalletContextProvider, { canSync: didConnectedStateLoad, children: jsxRuntime.jsx(PasskeyContext.PasskeyContextProvider, { children: jsxRuntime.jsx(VerificationContext.VerificationProvider, { children: jsxRuntime.jsx(DynamicWidgetContext.DynamicWidgetContextProvider, { children: jsxRuntime.jsx(DynamicBridgeWidgetContext.DynamicBridgeWidgetContextProvider, { children: jsxRuntime.jsx(FundingContext.FundingContextProvider, { children: jsxRuntime.jsx(AccessDeniedContext.AccessDeniedContextProvider, { children: jsxRuntime.jsx(SendBalanceContext.SendBalanceContextProvider, { children: jsxRuntime.jsx(WalletGroupContext.WalletGroupContextProvider, { children: jsxRuntime.jsx(UserFieldEditorContext.UserFieldEditorContextProvider, { children: jsxRuntime.jsx(ConnectWithEmailOtpProvider.ConnectWithEmailOtpProvider, { children: jsxRuntime.jsxs(PhantomRedirectContext.PhantomRedirectContextProvider, { children: [jsxRuntime.jsx(app.DynamicAuthFlow, {}), jsxRuntime.jsx(Toolkit.Toolkit, {}), jsxRuntime.jsx(FundingWidget.FundingWidget, {}), jsxRuntime.jsx(SyncEmbeddedWalletAuthFlow.SyncEmbeddedWalletAuthFlow, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) })] }) }) }) }) }) }));
701
701
  };
702
702
  /** The context provider you need to have access too all of Dynamic's hooks */
703
703
  const DynamicContextProvider = (props) => (jsxRuntime.jsx(ErrorContext.ErrorContextProvider, { children: jsxRuntime.jsx(UserWalletsContext.UserWalletsProvider, { children: jsxRuntime.jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }));
@@ -1,18 +1,18 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { LogLevel } from '@dynamic-labs/logger';
3
- import { EvmNetwork, SocialProviderFilter } from '@dynamic-labs/types';
3
+ import { SocialProviderFilter } from '@dynamic-labs/types';
4
4
  import { DeepLinkVariant, WalletConnectorExtension, WalletConnectorsMethod } from '@dynamic-labs/wallet-connector-core';
5
5
  import { LocaleResource } from '../../locale';
6
6
  import { AccessDeniedCustomButton, AuthModeType, ChainToWalletMap, DynamicEventsCallbacks, RecommendedWallet, WalletOption } from '../../shared';
7
7
  import { SocialNetworkIconType } from '../../utils/functions/getSocialNetworkIcon';
8
8
  import { ThemeData, ThemeSetting } from '../ThemeContext';
9
- import { ChainsToConnect, IDynamicContext, SettingsOverrides } from './types';
9
+ import { ChainsToConnect, IDynamicContext, NetworkValidationMode, SettingsOverrides } from './types';
10
10
  export declare const PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID = "2762a57b-faa4-41ce-9f16-abff9300e2c9";
11
11
  export interface DynamicContextProps {
12
12
  children: ReactNode;
13
13
  settings: {
14
14
  enableConnectOnlyFallback?: boolean;
15
- enableForcedNetworkValidation?: boolean;
15
+ networkValidationMode?: NetworkValidationMode;
16
16
  overrides?: SettingsOverrides;
17
17
  bridgeChains?: ChainsToConnect[];
18
18
  accessDeniedMessagePrimary?: string;
@@ -38,7 +38,6 @@ export interface DynamicContextProps {
38
38
  environmentId: string;
39
39
  localStorageSuffix?: string;
40
40
  eventsCallbacks?: DynamicEventsCallbacks;
41
- evmNetworks?: EvmNetwork[];
42
41
  /**
43
42
  * @deprecated Set flow network in dashboard instead
44
43
  */
@@ -45,6 +45,7 @@ import { useValidateSession } from '../../utils/hooks/useValidateSession/useVali
45
45
  import { useWalletConnectorOptions } from '../../utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.js';
46
46
  import { useWalletConnectors } from '../../utils/hooks/useWalletConnectors/useWalletConnectors.js';
47
47
  import { useWalletUiUtils } from '../../utils/hooks/useWalletUiUtils/useWalletUiUtils.js';
48
+ import { useSetWalletConnectorFetchers } from '../../utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js';
48
49
  import '../../components/Alert/Alert.js';
49
50
  import '../../components/ShadowDOM/ShadowDOM.js';
50
51
  import '../../components/IconButton/IconButton.js';
@@ -68,13 +69,13 @@ import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/Secondary
68
69
  import 'i18next';
69
70
  import '@hcaptcha/react-hcaptcha';
70
71
  import { LoadingContextProvider } from '../LoadingContext/LoadingContext.js';
72
+ import ApiEndpoint from '../../config/ApiEndpoint.js';
71
73
  import '../FooterAnimationContext/index.js';
72
74
  import '../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.js';
73
75
  import { WalletGroupContextProvider } from '../WalletGroupContext/WalletGroupContext.js';
74
76
  import { PasskeyContextProvider } from '../PasskeyContext/PasskeyContext.js';
75
77
  import { SyncEmbeddedWalletAuthFlow } from '../../components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.js';
76
78
  import { Toolkit } from '../../components/Toolkit/Toolkit.js';
77
- import ApiEndpoint from '../../config/ApiEndpoint.js';
78
79
  import { Locale } from '../../locale/locale.js';
79
80
  import { getMissingChains } from '../../utils/functions/getMissingChains/getMissingChains.js';
80
81
  import { parseTheme } from '../../utils/functions/parseTheme/parseTheme.js';
@@ -104,7 +105,7 @@ import { SendBalanceContextProvider } from '../SendBalanceContext/SendBalanceCon
104
105
  import { UseNetworkValidation } from '../UseNetworkValidation/UseNetworkValidation.js';
105
106
  import { UserWalletsProvider } from '../UserWalletsContext/UserWalletsContext.js';
106
107
  import { handleDisconnectWallet } from './handleDisconnectWallet/handleDisconnectWallet.js';
107
- import { initExpirationTime, getInitialView } from './helpers/helpers.js';
108
+ import { resolveNetworkValidationMode, initExpirationTime, getInitialView } from './helpers/helpers.js';
108
109
  import { useDisplayOrderState } from './hooks/useDisplayOrderState/useDisplayOrderState.js';
109
110
  import { useEmailLoginState } from './hooks/useEmailLoginState/useEmailLoginState.js';
110
111
  import { useHandleLogout } from './hooks/useHandleLogout/useHandleLogout.js';
@@ -124,10 +125,11 @@ const DynamicContext = createContext(undefined);
124
125
  /** The context provider itself we only use internally */
125
126
  const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) => {
126
127
  var _a, _b, _c, _d, _e;
127
- const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, enableConnectOnlyFallback = false, deepLinkPreference = 'native', bridgeChains, cssOverrides, defaultNumberOfWalletsToShow = DEFAULT_NUMBER_OF_WALLETS_TO_SHOW, flowNetwork, initialAuthenticationMode = 'connect-and-sign', debugError = false, displaySiweStatement = true, newToWeb3WalletChainMap, enableVisitTrackingOnConnectOnly = true, environmentId, localStorageSuffix, eventsCallbacks, evmNetworks, walletsFilter, logLevel = 'WARN', mobileExperience = 'in-app-browser', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, showLockedWalletView = false, walletConnectPreferredChains, walletConnectorExtensions, recommendedWallets, hideEmbeddedWalletUIs, } = settings;
128
- const enableForcedNetworkValidation = bridgeChains
129
- ? true
130
- : (_a = settings.enableForcedNetworkValidation) !== null && _a !== void 0 ? _a : true;
128
+ const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, enableConnectOnlyFallback = false, deepLinkPreference = 'native', bridgeChains, cssOverrides, defaultNumberOfWalletsToShow = DEFAULT_NUMBER_OF_WALLETS_TO_SHOW, flowNetwork, initialAuthenticationMode = 'connect-and-sign', debugError = false, displaySiweStatement = true, newToWeb3WalletChainMap, enableVisitTrackingOnConnectOnly = true, environmentId, localStorageSuffix, eventsCallbacks, walletsFilter, logLevel = 'WARN', mobileExperience = 'in-app-browser', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, showLockedWalletView = false, walletConnectPreferredChains, walletConnectorExtensions, recommendedWallets, hideEmbeddedWalletUIs, } = settings;
129
+ const networkValidationMode = resolveNetworkValidationMode({
130
+ bridgeChains: settings.bridgeChains,
131
+ networkValidationMode: settings.networkValidationMode,
132
+ });
131
133
  let { appLogoUrl = 'https://demo.dynamic.xyz/assets/dynamic-logo.svg', appName = 'Dynamic Example', } = settings;
132
134
  if (!environmentId) {
133
135
  throw new MissingEnvironmentIdError();
@@ -137,7 +139,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
137
139
  if (environmentId === PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID) {
138
140
  logger.warn(`WARNING: DYNAMIC is using a test environment ID ${environmentId}. Please sign up on https://app.dynamic.xyz/ to get your production environment ID.`);
139
141
  }
140
- ApiEndpoint.setBaseUrl((_b = process.env.DYNAMIC_API_BASE_URL) !== null && _b !== void 0 ? _b : apiBaseUrl);
142
+ ApiEndpoint.setBaseUrl((_a = process.env.DYNAMIC_API_BASE_URL) !== null && _a !== void 0 ? _a : apiBaseUrl);
141
143
  LocalStorage.setSuffix(localStorageSuffix);
142
144
  const i18nSDKInstance = Locale.setup(locale);
143
145
  const isAuthenticated = Boolean(getAuthToken());
@@ -164,7 +166,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
164
166
  });
165
167
  const { multiWallet, setMultiWallet } = useMultiWallet({
166
168
  isBridgeFlow,
167
- multiWalletSettings: (_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _c === void 0 ? void 0 : _c.multiWallet,
169
+ multiWalletSettings: (_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.multiWallet,
168
170
  toolkitEnabled: toolkitEnabled || false,
169
171
  });
170
172
  // ensures that when user comes back to site and primary wallet is out of sync, we don't show widget popup
@@ -174,10 +176,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
174
176
  // Set to true when a customer starts any auth verification process and set to false when it ends
175
177
  const [isVerificationInProgress, setIsVerificationInProgress] = useVerificationInProgress();
176
178
  const walletBook = useWalletBookCdn();
177
- const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations({
179
+ const { networkConfigurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations({
178
180
  authToken: getAuthToken(),
179
181
  environmentId,
180
- evmNetworks,
182
+ evmNetworksOverrides: (_c = settings.overrides) === null || _c === void 0 ? void 0 : _c.evmNetworks,
181
183
  projectSettings,
182
184
  });
183
185
  const { imageUserInAccessList, imageUserNotInAccessList, displayName, appLogo, } = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general) || {};
@@ -255,6 +257,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
255
257
  // until user completes onboarding, jwt is only stored in onboardingOnlyJwt
256
258
  const authToken = (_d = getAuthToken()) !== null && _d !== void 0 ? _d : onboardingOnlyJwt;
257
259
  useSetWalletConnectorVerifiedCredentials(authToken, walletConnectorOptions);
260
+ useSetWalletConnectorFetchers(authToken, walletConnectorOptions, environmentId);
258
261
  const { didConnectedStateLoad, primaryWallet, showQrcodeModal, secondaryWallets, setPrimaryWallet, setShowQrcodeModal, wallets: linkedOrConnectedWallets, } = useWalletConnectors({
259
262
  authMode,
260
263
  authToken: getAuthToken() || onboardingOnlyJwt,
@@ -271,7 +274,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
271
274
  walletConnectorOptions,
272
275
  });
273
276
  const walletConnectors = linkedOrConnectedWallets.map((wallet) => wallet.connector);
274
- const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading({
277
+ const sdkHasLoaded = useGlobalLoading({
275
278
  authMode,
276
279
  connectedInfo: connectedWalletsInfo[0],
277
280
  connectedWallets,
@@ -314,7 +317,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
314
317
  setLegacyIsVerifying,
315
318
  setMultiWalletWidgetState,
316
319
  setOnboardingOnlyJwt,
317
- setSdkHasLoaded,
318
320
  setShowAuthFlow,
319
321
  setShowBridgeWidget,
320
322
  setShowDynamicUserProfile,
@@ -447,7 +449,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
447
449
  disconnectWallet,
448
450
  displaySiweStatement,
449
451
  enableConnectOnlyFallback,
450
- enableForcedNetworkValidation,
451
452
  environmentId,
452
453
  eventsCallbacks,
453
454
  getConnectedWalletById,
@@ -473,6 +474,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
473
474
  multiWalletWidgetState,
474
475
  network,
475
476
  networkConfigurations: serverNetworkConfigurations,
477
+ networkValidationMode,
476
478
  newToWeb3WalletChainMap: walletsForChainsMap,
477
479
  notInTheListImageUrl: imageUserNotInAccessList || notInTheListImageUrl,
478
480
  onboardingImageUrl: imageUserInAccessList || onboardingImageUrl,
@@ -511,7 +513,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
511
513
  setPrimaryWallet,
512
514
  setPrimaryWalletId,
513
515
  setQrcodeUri,
514
- setSdkHasLoaded,
515
516
  setSelectedWalletConnectorKey,
516
517
  setSelectedWalletWithAction,
517
518
  setShowAuthFlow,
@@ -548,7 +549,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
548
549
  accessDeniedMessagePrimary,
549
550
  accessDeniedMessageSecondary,
550
551
  accountSwitchState,
551
- enableForcedNetworkValidation,
552
552
  appLogoUrl,
553
553
  appName,
554
554
  authMode,
@@ -585,6 +585,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
585
585
  isVerificationInProgress,
586
586
  legacyIsVerifying,
587
587
  user,
588
+ networkValidationMode,
588
589
  linkedOrConnectedWallets,
589
590
  loadingNetwork,
590
591
  loginWithEmail,
@@ -622,7 +623,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
622
623
  setNetwork,
623
624
  setPrimaryWallet,
624
625
  setPrimaryWalletId,
625
- setSdkHasLoaded,
626
626
  setSelectedWalletConnectorKey,
627
627
  setShowAuthFlow,
628
628
  setShowLinkNewWalletModal,
@@ -693,7 +693,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
693
693
  isBridgeFlow,
694
694
  isFullyConnected,
695
695
  isMultiWalletEnabled: multiWallet,
696
- }), children: [enableForcedNetworkValidation && jsx(UseNetworkValidation, {}), jsx(CaptchaContextProvider, { children: jsx(AccountExistsContextProvider, { children: jsx(WalletContextProvider, { canSync: didConnectedStateLoad, children: jsx(PasskeyContextProvider, { children: jsx(VerificationProvider, { children: jsx(DynamicWidgetContextProvider, { children: jsx(DynamicBridgeWidgetContextProvider, { children: jsx(FundingContextProvider, { children: jsx(AccessDeniedContextProvider, { children: jsx(SendBalanceContextProvider, { children: jsx(WalletGroupContextProvider, { children: jsx(UserFieldEditorContextProvider, { children: jsx(ConnectWithEmailOtpProvider, { children: jsxs(PhantomRedirectContextProvider, { children: [jsx(DynamicAuthFlow, {}), jsx(Toolkit, {}), jsx(FundingWidget, {}), jsx(SyncEmbeddedWalletAuthFlow, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) })] }) }) }) }) }) }));
696
+ }), children: [networkValidationMode === 'always' && jsx(UseNetworkValidation, {}), jsx(CaptchaContextProvider, { children: jsx(AccountExistsContextProvider, { children: jsx(WalletContextProvider, { canSync: didConnectedStateLoad, children: jsx(PasskeyContextProvider, { children: jsx(VerificationProvider, { children: jsx(DynamicWidgetContextProvider, { children: jsx(DynamicBridgeWidgetContextProvider, { children: jsx(FundingContextProvider, { children: jsx(AccessDeniedContextProvider, { children: jsx(SendBalanceContextProvider, { children: jsx(WalletGroupContextProvider, { children: jsx(UserFieldEditorContextProvider, { children: jsx(ConnectWithEmailOtpProvider, { children: jsxs(PhantomRedirectContextProvider, { children: [jsx(DynamicAuthFlow, {}), jsx(Toolkit, {}), jsx(FundingWidget, {}), jsx(SyncEmbeddedWalletAuthFlow, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) })] }) }) }) }) }) }));
697
697
  };
698
698
  /** The context provider you need to have access too all of Dynamic's hooks */
699
699
  const DynamicContextProvider = (props) => (jsx(ErrorContextProvider, { children: jsx(UserWalletsProvider, { children: jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }));
@@ -103,12 +103,22 @@ const isSettingExpired = (lsKey, timer) => {
103
103
  }
104
104
  return false;
105
105
  };
106
+ const resolveNetworkValidationMode = ({ networkValidationMode, bridgeChains, }) => {
107
+ if (networkValidationMode) {
108
+ return networkValidationMode;
109
+ }
110
+ if (bridgeChains) {
111
+ return 'always';
112
+ }
113
+ return 'sign-in';
114
+ };
106
115
 
107
116
  exports.getInitialView = getInitialView;
108
117
  exports.initExpirationTime = initExpirationTime;
109
118
  exports.isAuthTokenExpired = isAuthTokenExpired;
110
119
  exports.isDynamicContextSessionSettingExpired = isDynamicContextSessionSettingExpired;
111
120
  exports.isWagmiSessionSettingExpired = isWagmiSessionSettingExpired;
121
+ exports.resolveNetworkValidationMode = resolveNetworkValidationMode;
112
122
  exports.sdkSettingsTimeout = sdkSettingsTimeout;
113
123
  exports.setDynamicContextSessionSettings = setDynamicContextSessionSettings;
114
124
  exports.setWagmiSessionSettings = setWagmiSessionSettings;
@@ -1,5 +1,6 @@
1
1
  import { Wallet } from '../../../shared';
2
2
  import { ViewState, ViewType } from '../../ViewContext';
3
+ import { ChainsToConnect, NetworkValidationMode } from '../types';
3
4
  export declare const sdkSettingsTimeout: number;
4
5
  export declare const isAuthTokenExpired: (token: string) => boolean;
5
6
  export declare const initExpirationTime: (logout: VoidFunction) => void;
@@ -14,3 +15,7 @@ export declare const setDynamicContextSessionSettings: () => void;
14
15
  export declare const setWagmiSessionSettings: () => void;
15
16
  export declare const isDynamicContextSessionSettingExpired: () => boolean;
16
17
  export declare const isWagmiSessionSettingExpired: () => boolean;
18
+ export declare const resolveNetworkValidationMode: ({ networkValidationMode, bridgeChains, }: {
19
+ networkValidationMode: NetworkValidationMode | undefined;
20
+ bridgeChains: ChainsToConnect[] | undefined;
21
+ }) => NetworkValidationMode;
@@ -99,5 +99,14 @@ const isSettingExpired = (lsKey, timer) => {
99
99
  }
100
100
  return false;
101
101
  };
102
+ const resolveNetworkValidationMode = ({ networkValidationMode, bridgeChains, }) => {
103
+ if (networkValidationMode) {
104
+ return networkValidationMode;
105
+ }
106
+ if (bridgeChains) {
107
+ return 'always';
108
+ }
109
+ return 'sign-in';
110
+ };
102
111
 
103
- export { getInitialView, initExpirationTime, isAuthTokenExpired, isDynamicContextSessionSettingExpired, isWagmiSessionSettingExpired, sdkSettingsTimeout, setDynamicContextSessionSettings, setWagmiSessionSettings };
112
+ export { getInitialView, initExpirationTime, isAuthTokenExpired, isDynamicContextSessionSettingExpired, isWagmiSessionSettingExpired, resolveNetworkValidationMode, sdkSettingsTimeout, setDynamicContextSessionSettings, setWagmiSessionSettings };
@@ -6,7 +6,6 @@ import { ChainsToConnect } from '../../types';
6
6
  import { SetShowAuthFlow } from '../useShowAuthFlow';
7
7
  export type UseHandleLogoutParams = {
8
8
  removeUser: () => void;
9
- setSdkHasLoaded: Dispatch<SetStateAction<boolean>>;
10
9
  clearAllWalletConnectSessions: () => void;
11
10
  setBridgeChainsToConnect: Dispatch<SetStateAction<ChainsToConnect[] | undefined>>;
12
11
  bridgeChains: ChainsToConnect[] | undefined;
@@ -65,6 +65,7 @@ require('../../../../widgets/DynamicBridgeWidget/views/WalletsView/components/Se
65
65
  require('i18next');
66
66
  require('@hcaptcha/react-hcaptcha');
67
67
  require('../../../LoadingContext/LoadingContext.cjs');
68
+ require('../../../../config/ApiEndpoint.cjs');
68
69
  require('../../../FooterAnimationContext/index.cjs');
69
70
  require('../../../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs');
70
71
  require('../../../WalletGroupContext/WalletGroupContext.cjs');
@@ -80,7 +81,6 @@ const useHandleLogout = (params) => {
80
81
  paramsRef.current = params;
81
82
  const logout = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
82
83
  const p = paramsRef.current;
83
- p.setSdkHasLoaded(false);
84
84
  p.clearAllWalletConnectSessions();
85
85
  p.setBridgeChainsToConnect(p.bridgeChains);
86
86
  p.setShowDynamicUserProfile(false);
@@ -61,6 +61,7 @@ import '../../../../widgets/DynamicBridgeWidget/views/WalletsView/components/Sec
61
61
  import 'i18next';
62
62
  import '@hcaptcha/react-hcaptcha';
63
63
  import '../../../LoadingContext/LoadingContext.js';
64
+ import '../../../../config/ApiEndpoint.js';
64
65
  import '../../../FooterAnimationContext/index.js';
65
66
  import '../../../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.js';
66
67
  import '../../../WalletGroupContext/WalletGroupContext.js';
@@ -76,7 +77,6 @@ const useHandleLogout = (params) => {
76
77
  paramsRef.current = params;
77
78
  const logout = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
78
79
  const p = paramsRef.current;
79
- p.setSdkHasLoaded(false);
80
80
  p.clearAllWalletConnectSessions();
81
81
  p.setBridgeChainsToConnect(p.bridgeChains);
82
82
  p.setShowDynamicUserProfile(false);
@@ -62,6 +62,7 @@ const useShowAuthFlow = ({ isAuthenticated, isRenderingEmbeddedAuthFlow, isMulti
62
62
  isMultiWalletEnabled,
63
63
  isRenderingEmbeddedAuthFlow,
64
64
  setError,
65
+ setShowDynamicUserProfile,
65
66
  showAuthFlow,
66
67
  walletConnectorOptions,
67
68
  ]);
@@ -25,16 +25,17 @@ export type SetShowAuthFlowOptions = {
25
25
  clearErrors?: boolean;
26
26
  };
27
27
  export type SetShowAuthFlow = (value: SetStateAction<boolean>, options?: SetShowAuthFlowOptions) => void;
28
+ export type UseShowAuthFlowParams = {
29
+ isMultiWalletEnabled: boolean;
30
+ isRenderingEmbeddedAuthFlow: IDynamicContext['isRenderingEmbeddedAuthFlow'];
31
+ walletConnectorOptions: WalletOption[];
32
+ isAuthenticated: boolean;
33
+ setShowDynamicUserProfile: IDynamicContext['setShowDynamicUserProfile'];
34
+ };
28
35
  /**
29
36
  * There are a multitude of scenarios where we want to ignore or insert functionality to calls
30
37
  * to setShowAuthFlow. This hook wraps it with an options parameter to allow encapsulating these
31
38
  * different scenarios and makes it especially easy to customize exactly which version of this method
32
39
  * is being passed to useDynamicContext.
33
40
  */
34
- export declare const useShowAuthFlow: ({ isAuthenticated, isRenderingEmbeddedAuthFlow, isMultiWalletEnabled, walletConnectorOptions, setShowDynamicUserProfile, }: {
35
- isMultiWalletEnabled: boolean;
36
- isRenderingEmbeddedAuthFlow: IDynamicContext['isRenderingEmbeddedAuthFlow'];
37
- walletConnectorOptions: WalletOption[];
38
- isAuthenticated: boolean;
39
- setShowDynamicUserProfile: IDynamicContext['setShowDynamicUserProfile'];
40
- }) => [boolean, SetShowAuthFlow];
41
+ export declare const useShowAuthFlow: ({ isAuthenticated, isRenderingEmbeddedAuthFlow, isMultiWalletEnabled, walletConnectorOptions, setShowDynamicUserProfile, }: UseShowAuthFlowParams) => [boolean, SetShowAuthFlow];
@@ -58,6 +58,7 @@ const useShowAuthFlow = ({ isAuthenticated, isRenderingEmbeddedAuthFlow, isMulti
58
58
  isMultiWalletEnabled,
59
59
  isRenderingEmbeddedAuthFlow,
60
60
  setError,
61
+ setShowDynamicUserProfile,
61
62
  showAuthFlow,
62
63
  walletConnectorOptions,
63
64
  ]);
@@ -1,6 +1,6 @@
1
1
  import { Dispatch, MutableRefObject, ReactElement, ReactNode, SetStateAction } from 'react';
2
2
  import { DynamicJwt, NameServiceData, ProjectSettings, SdkView } from '@dynamic-labs/sdk-api';
3
- import { NetworkConfigurationMap, SocialProviderFilter, WalletUiUtils } from '@dynamic-labs/types';
3
+ import { GenericNetwork, NetworkConfigurationMap, SocialProviderFilter, WalletUiUtils } from '@dynamic-labs/types';
4
4
  import { Chain, FetchPublicAddressOpts, WalletConnector } from '@dynamic-labs/wallet-connector-core';
5
5
  import { PasskeySuccessEnum } from '../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner';
6
6
  import { AccessDeniedCustomButton, AccountSwitchState, AuthModeType, AwaitingSignatureState, ChainToWalletMap, DynamicEventsCallbacks, DynamicRPCProviders, MultiWalletWidgetState, RecommendedWallet, UserProfile, Wallet, WalletOption, WalletWithAction } from '../../../shared';
@@ -31,13 +31,25 @@ export type WalletListViewSettings = {
31
31
  };
32
32
  };
33
33
  export type ViewsOverrides = SdkView | WalletListViewSettings;
34
+ export type EvmNetworksOverrides = GenericNetwork[] | ((dashboardNetworks: GenericNetwork[]) => GenericNetwork[]);
34
35
  export type SettingsOverrides = {
35
36
  views?: Array<ViewsOverrides>;
37
+ /**
38
+ * Allows overriding which evm networks the SDK has access to.
39
+ * If an array is provided, it is used instead of whatever is obtained from dashboard configs.
40
+ * If a callback is passed, the callback will be called with the values obtained from dashboard, and
41
+ * it must return the network values that will be used.
42
+ *
43
+ * WARNING: this callback must be memoized as it will be used in a dependency array to ensure
44
+ * the SDK can react to this value changing (for ex, toggling a chain off).
45
+ */
46
+ evmNetworks?: EvmNetworksOverrides;
36
47
  };
37
48
  export type ConnectWalletResult = {
38
49
  address: string;
39
50
  id: string;
40
51
  };
52
+ export type NetworkValidationMode = 'always' | 'sign-in' | 'never';
41
53
  export interface IDynamicContext {
42
54
  accessDeniedMessagePrimary?: string;
43
55
  accessDeniedMessageSecondary?: string;
@@ -45,9 +57,9 @@ export interface IDynamicContext {
45
57
  accessDeniedButton?: AccessDeniedCustomButton;
46
58
  accountSwitchState: AccountSwitchState;
47
59
  appLogoUrl?: string;
60
+ networkValidationMode: NetworkValidationMode;
48
61
  appName?: string;
49
62
  isBridgeFlow: boolean;
50
- enableForcedNetworkValidation: boolean;
51
63
  authMode: AuthModeType;
52
64
  authToken: string | undefined;
53
65
  authorizationViewDisplayOrder: DisplayOrder;
@@ -33,7 +33,11 @@ const ErrorContextProvider = ({ children }) => {
33
33
  var _a;
34
34
  setError((_a = errorMessageMap[status]) !== null && _a !== void 0 ? _a : 'Something went wrong. Please try again.');
35
35
  }, []);
36
+ const clearError = React.useCallback(() => {
37
+ setError(undefined);
38
+ }, []);
36
39
  return (jsxRuntime.jsx(ErrorContext.Provider, { value: {
40
+ clearError,
37
41
  error,
38
42
  setError,
39
43
  setErrorMessage,
@@ -3,6 +3,7 @@ interface ErrorContextProps {
3
3
  error: string | undefined;
4
4
  setError(error: string | undefined): void;
5
5
  setErrorMessage: (status: string) => void;
6
+ clearError(): void;
6
7
  }
7
8
  export declare const ErrorContext: import("react").Context<ErrorContextProps | undefined>;
8
9
  export declare const ErrorContextProvider: ({ children }: {
@@ -29,7 +29,11 @@ const ErrorContextProvider = ({ children }) => {
29
29
  var _a;
30
30
  setError((_a = errorMessageMap[status]) !== null && _a !== void 0 ? _a : 'Something went wrong. Please try again.');
31
31
  }, []);
32
+ const clearError = useCallback(() => {
33
+ setError(undefined);
34
+ }, []);
32
35
  return (jsx(ErrorContext.Provider, { value: {
36
+ clearError,
33
37
  error,
34
38
  setError,
35
39
  setErrorMessage,
@@ -64,6 +64,7 @@ require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/Secondar
64
64
  require('i18next');
65
65
  require('@hcaptcha/react-hcaptcha');
66
66
  require('../LoadingContext/LoadingContext.cjs');
67
+ require('../../config/ApiEndpoint.cjs');
67
68
  require('../FooterAnimationContext/index.cjs');
68
69
  require('../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs');
69
70
  require('../WalletGroupContext/WalletGroupContext.cjs');
@@ -95,11 +96,12 @@ const FundingContextProvider = ({ children, }) => {
95
96
  return;
96
97
  const bitcoinAddress = walletConnectorCore.isBitcoinConnector(primaryWallet.connector) &&
97
98
  getWalletAdditionalAddressByType.getWalletAdditionalAddressByType(sdkApi.WalletAddressType.Payment, primaryWallet);
99
+ const chainHasNetwork = network && chainName === 'evm';
98
100
  try {
99
101
  const [{ url }] = yield api.getOnrampProviders({
100
102
  chain: chainName,
101
103
  environmentId,
102
- networkId: network ? network.toString() : undefined,
104
+ networkId: chainHasNetwork ? network.toString() : undefined,
103
105
  token,
104
106
  walletAddress: address || bitcoinAddress || primaryWallet.address,
105
107
  });
@@ -60,6 +60,7 @@ import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/Secondary
60
60
  import 'i18next';
61
61
  import '@hcaptcha/react-hcaptcha';
62
62
  import '../LoadingContext/LoadingContext.js';
63
+ import '../../config/ApiEndpoint.js';
63
64
  import '../FooterAnimationContext/index.js';
64
65
  import '../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.js';
65
66
  import '../WalletGroupContext/WalletGroupContext.js';
@@ -91,11 +92,12 @@ const FundingContextProvider = ({ children, }) => {
91
92
  return;
92
93
  const bitcoinAddress = isBitcoinConnector(primaryWallet.connector) &&
93
94
  getWalletAdditionalAddressByType(WalletAddressType.Payment, primaryWallet);
95
+ const chainHasNetwork = network && chainName === 'evm';
94
96
  try {
95
97
  const [{ url }] = yield getOnrampProviders({
96
98
  chain: chainName,
97
99
  environmentId,
98
- networkId: network ? network.toString() : undefined,
100
+ networkId: chainHasNetwork ? network.toString() : undefined,
99
101
  token,
100
102
  walletAddress: address || bitcoinAddress || primaryWallet.address,
101
103
  });
@@ -69,6 +69,7 @@ require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/Secondar
69
69
  require('i18next');
70
70
  require('@hcaptcha/react-hcaptcha');
71
71
  require('../LoadingContext/LoadingContext.cjs');
72
+ require('../../config/ApiEndpoint.cjs');
72
73
  require('../FooterAnimationContext/index.cjs');
73
74
  require('../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs');
74
75
  require('../WalletGroupContext/WalletGroupContext.cjs');