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

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 (166) hide show
  1. package/CHANGELOG.md +21 -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 -17
  21. package/src/lib/context/DynamicContext/DynamicContext.d.ts +3 -4
  22. package/src/lib/context/DynamicContext/DynamicContext.js +17 -18
  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/multiWallet/useMultiWallet/useMultiWallet.cjs +3 -13
  63. package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.d.ts +1 -2
  64. package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.js +3 -13
  65. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +1 -1
  66. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +1 -1
  67. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.cjs +1 -0
  68. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.js +1 -0
  69. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +33 -8
  70. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +33 -8
  71. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +1 -0
  72. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +1 -0
  73. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +27 -5
  74. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +27 -5
  75. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.cjs +7 -6
  76. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.d.ts +1 -1
  77. package/src/lib/utils/hooks/useEmbeddedWalletPassword/useEmbeddedWalletPassword.js +7 -6
  78. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +2 -6
  79. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +2 -6
  80. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.cjs +20 -54
  81. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.d.ts +5 -3
  82. package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.js +20 -54
  83. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/index.d.ts +1 -0
  84. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +38 -0
  85. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.d.ts +2 -0
  86. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +34 -0
  87. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +1 -0
  88. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +1 -0
  89. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +8 -11
  90. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +8 -11
  91. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs +1 -0
  92. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js +1 -0
  93. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +1 -0
  94. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +1 -0
  95. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.cjs +4 -7
  96. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.js +4 -7
  97. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +1 -1
  98. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +1 -1
  99. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.cjs +1 -1
  100. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.js +1 -1
  101. package/src/lib/views/CoinbaseMPCClaimIntro/CoinbaseMPCClaimIntro.cjs +1 -1
  102. package/src/lib/views/CoinbaseMPCClaimIntro/CoinbaseMPCClaimIntro.js +1 -1
  103. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +3 -8
  104. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +3 -8
  105. package/src/lib/views/{CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs → CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.cjs} +5 -4
  106. package/src/lib/views/CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.d.ts +13 -0
  107. package/src/lib/views/{CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js → CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.js} +5 -4
  108. package/src/lib/views/CollectUserDataViewNoWallet/index.d.ts +1 -0
  109. package/src/lib/views/CreatePasswordView/CreatePasswordStep/CreatePasswordStep.cjs +17 -2
  110. package/src/lib/views/CreatePasswordView/CreatePasswordStep/CreatePasswordStep.js +17 -2
  111. package/src/lib/views/CreatePasswordView/CreatePasswordView.cjs +12 -13
  112. package/src/lib/views/CreatePasswordView/CreatePasswordView.d.ts +2 -0
  113. package/src/lib/views/CreatePasswordView/CreatePasswordView.js +12 -13
  114. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +1 -0
  115. package/src/lib/views/EmailUpdate/EmailUpdate.js +1 -0
  116. package/src/lib/views/EmailVerification/EmailVerification.cjs +10 -17
  117. package/src/lib/views/EmailVerification/EmailVerification.js +10 -17
  118. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +40 -13
  119. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.d.ts +2 -3
  120. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +40 -13
  121. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.d.ts +1 -1
  122. package/src/lib/views/EnterPasswordView/EnterPasswordView.cjs +8 -1
  123. package/src/lib/views/EnterPasswordView/EnterPasswordView.js +8 -1
  124. package/src/lib/views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs +1 -0
  125. package/src/lib/views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.js +1 -0
  126. package/src/lib/views/LoginView/useLoginView/useLoginView.cjs +11 -5
  127. package/src/lib/views/LoginView/useLoginView/useLoginView.js +11 -5
  128. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +1 -0
  129. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +1 -0
  130. package/src/lib/views/Passkey/EmbeddedAuthChoice/EmbeddedAuthChoice.d.ts +2 -3
  131. package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.d.ts +2 -3
  132. package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.d.ts +2 -3
  133. package/src/lib/views/Passkey/RenamePasskeyView/RenamePasskeyView.cjs +1 -0
  134. package/src/lib/views/Passkey/RenamePasskeyView/RenamePasskeyView.js +1 -0
  135. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +31 -7
  136. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +31 -7
  137. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -0
  138. package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -0
  139. package/src/lib/views/viewToComponentMap.cjs +4 -4
  140. package/src/lib/views/viewToComponentMap.d.ts +60 -2
  141. package/src/lib/views/viewToComponentMap.js +4 -4
  142. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs +1 -1
  143. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js +1 -1
  144. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +6 -4
  145. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +6 -4
  146. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +5 -2
  147. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +5 -2
  148. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.cjs +2 -14
  149. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.js +2 -14
  150. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.cjs +3 -1
  151. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.js +4 -2
  152. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.cjs +2 -14
  153. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.js +2 -14
  154. package/src/lib/widgets/DynamicWidget/views/WalletSettingsView/WalletSettingsView.cjs +18 -9
  155. package/src/lib/widgets/DynamicWidget/views/WalletSettingsView/WalletSettingsView.js +18 -9
  156. package/src/lib/utils/functions/isSameWalletName/index.d.ts +0 -1
  157. package/src/lib/utils/functions/isSameWalletName/isSameWalletName.cjs +0 -9
  158. package/src/lib/utils/functions/isSameWalletName/isSameWalletName.d.ts +0 -1
  159. package/src/lib/utils/functions/isSameWalletName/isSameWalletName.js +0 -5
  160. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/index.d.ts +0 -1
  161. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/index.d.ts +0 -1
  162. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.cjs +0 -16
  163. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.d.ts +0 -2
  164. package/src/lib/utils/hooks/useProcessNetworkConfigurations/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.js +0 -12
  165. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.d.ts +0 -2
  166. 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,8 +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,
172
- toolkitEnabled: toolkitEnabled || false,
173
+ multiWalletSettings: (_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.multiWallet,
173
174
  });
174
175
  // ensures that when user comes back to site and primary wallet is out of sync, we don't show widget popup
175
176
  const [showWidgetStatePopup, setShowWidgetStatePopup] = React.useState(!multiWallet);
@@ -178,10 +179,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
178
179
  // Set to true when a customer starts any auth verification process and set to false when it ends
179
180
  const [isVerificationInProgress, setIsVerificationInProgress] = useVerificationInProgress.useVerificationInProgress();
180
181
  const walletBook$1 = walletBook.useWalletBookCdn();
181
- const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations.useProcessNetworkConfigurations({
182
+ const { networkConfigurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations.useProcessNetworkConfigurations({
182
183
  authToken: getAuthToken.getAuthToken(),
183
184
  environmentId,
184
- evmNetworks,
185
+ evmNetworksOverrides: (_c = settings.overrides) === null || _c === void 0 ? void 0 : _c.evmNetworks,
185
186
  projectSettings,
186
187
  });
187
188
  const { imageUserInAccessList, imageUserNotInAccessList, displayName, appLogo, } = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general) || {};
@@ -259,6 +260,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
259
260
  // until user completes onboarding, jwt is only stored in onboardingOnlyJwt
260
261
  const authToken = (_d = getAuthToken.getAuthToken()) !== null && _d !== void 0 ? _d : onboardingOnlyJwt;
261
262
  useSetWalletConnectorVerifiedCredentials.useSetWalletConnectorVerifiedCredentials(authToken, walletConnectorOptions);
263
+ useSetWalletConnectorFetchers.useSetWalletConnectorFetchers(authToken, walletConnectorOptions, environmentId);
262
264
  const { didConnectedStateLoad, primaryWallet, showQrcodeModal, secondaryWallets, setPrimaryWallet, setShowQrcodeModal, wallets: linkedOrConnectedWallets, } = useWalletConnectors.useWalletConnectors({
263
265
  authMode,
264
266
  authToken: getAuthToken.getAuthToken() || onboardingOnlyJwt,
@@ -275,7 +277,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
275
277
  walletConnectorOptions,
276
278
  });
277
279
  const walletConnectors = linkedOrConnectedWallets.map((wallet) => wallet.connector);
278
- const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading.useGlobalLoading({
280
+ const sdkHasLoaded = useGlobalLoading.useGlobalLoading({
279
281
  authMode,
280
282
  connectedInfo: connectedWalletsInfo[0],
281
283
  connectedWallets,
@@ -318,7 +320,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
318
320
  setLegacyIsVerifying,
319
321
  setMultiWalletWidgetState,
320
322
  setOnboardingOnlyJwt,
321
- setSdkHasLoaded,
322
323
  setShowAuthFlow,
323
324
  setShowBridgeWidget,
324
325
  setShowDynamicUserProfile,
@@ -451,7 +452,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
451
452
  disconnectWallet,
452
453
  displaySiweStatement,
453
454
  enableConnectOnlyFallback,
454
- enableForcedNetworkValidation,
455
455
  environmentId,
456
456
  eventsCallbacks,
457
457
  getConnectedWalletById,
@@ -477,6 +477,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
477
477
  multiWalletWidgetState,
478
478
  network,
479
479
  networkConfigurations: serverNetworkConfigurations,
480
+ networkValidationMode,
480
481
  newToWeb3WalletChainMap: walletsForChainsMap,
481
482
  notInTheListImageUrl: imageUserNotInAccessList || notInTheListImageUrl,
482
483
  onboardingImageUrl: imageUserInAccessList || onboardingImageUrl,
@@ -515,7 +516,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
515
516
  setPrimaryWallet,
516
517
  setPrimaryWalletId,
517
518
  setQrcodeUri,
518
- setSdkHasLoaded,
519
519
  setSelectedWalletConnectorKey,
520
520
  setSelectedWalletWithAction,
521
521
  setShowAuthFlow,
@@ -552,7 +552,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
552
552
  accessDeniedMessagePrimary,
553
553
  accessDeniedMessageSecondary,
554
554
  accountSwitchState,
555
- enableForcedNetworkValidation,
556
555
  appLogoUrl,
557
556
  appName,
558
557
  authMode,
@@ -589,6 +588,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
589
588
  isVerificationInProgress,
590
589
  legacyIsVerifying,
591
590
  user,
591
+ networkValidationMode,
592
592
  linkedOrConnectedWallets,
593
593
  loadingNetwork,
594
594
  loginWithEmail,
@@ -626,7 +626,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
626
626
  setNetwork,
627
627
  setPrimaryWallet,
628
628
  setPrimaryWalletId,
629
- setSdkHasLoaded,
630
629
  setSelectedWalletConnectorKey,
631
630
  setShowAuthFlow,
632
631
  setShowLinkNewWalletModal,
@@ -697,7 +696,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
697
696
  isBridgeFlow,
698
697
  isFullyConnected,
699
698
  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] }) }) }) }) }) }) }) }) }) }) }) }) }) })] }) }) }) }) }) }));
699
+ }), 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
700
  };
702
701
  /** The context provider you need to have access too all of Dynamic's hooks */
703
702
  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,8 +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,
168
- toolkitEnabled: toolkitEnabled || false,
169
+ multiWalletSettings: (_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.multiWallet,
169
170
  });
170
171
  // ensures that when user comes back to site and primary wallet is out of sync, we don't show widget popup
171
172
  const [showWidgetStatePopup, setShowWidgetStatePopup] = useState(!multiWallet);
@@ -174,10 +175,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
174
175
  // Set to true when a customer starts any auth verification process and set to false when it ends
175
176
  const [isVerificationInProgress, setIsVerificationInProgress] = useVerificationInProgress();
176
177
  const walletBook = useWalletBookCdn();
177
- const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations({
178
+ const { networkConfigurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations({
178
179
  authToken: getAuthToken(),
179
180
  environmentId,
180
- evmNetworks,
181
+ evmNetworksOverrides: (_c = settings.overrides) === null || _c === void 0 ? void 0 : _c.evmNetworks,
181
182
  projectSettings,
182
183
  });
183
184
  const { imageUserInAccessList, imageUserNotInAccessList, displayName, appLogo, } = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general) || {};
@@ -255,6 +256,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
255
256
  // until user completes onboarding, jwt is only stored in onboardingOnlyJwt
256
257
  const authToken = (_d = getAuthToken()) !== null && _d !== void 0 ? _d : onboardingOnlyJwt;
257
258
  useSetWalletConnectorVerifiedCredentials(authToken, walletConnectorOptions);
259
+ useSetWalletConnectorFetchers(authToken, walletConnectorOptions, environmentId);
258
260
  const { didConnectedStateLoad, primaryWallet, showQrcodeModal, secondaryWallets, setPrimaryWallet, setShowQrcodeModal, wallets: linkedOrConnectedWallets, } = useWalletConnectors({
259
261
  authMode,
260
262
  authToken: getAuthToken() || onboardingOnlyJwt,
@@ -271,7 +273,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
271
273
  walletConnectorOptions,
272
274
  });
273
275
  const walletConnectors = linkedOrConnectedWallets.map((wallet) => wallet.connector);
274
- const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading({
276
+ const sdkHasLoaded = useGlobalLoading({
275
277
  authMode,
276
278
  connectedInfo: connectedWalletsInfo[0],
277
279
  connectedWallets,
@@ -314,7 +316,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
314
316
  setLegacyIsVerifying,
315
317
  setMultiWalletWidgetState,
316
318
  setOnboardingOnlyJwt,
317
- setSdkHasLoaded,
318
319
  setShowAuthFlow,
319
320
  setShowBridgeWidget,
320
321
  setShowDynamicUserProfile,
@@ -447,7 +448,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
447
448
  disconnectWallet,
448
449
  displaySiweStatement,
449
450
  enableConnectOnlyFallback,
450
- enableForcedNetworkValidation,
451
451
  environmentId,
452
452
  eventsCallbacks,
453
453
  getConnectedWalletById,
@@ -473,6 +473,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
473
473
  multiWalletWidgetState,
474
474
  network,
475
475
  networkConfigurations: serverNetworkConfigurations,
476
+ networkValidationMode,
476
477
  newToWeb3WalletChainMap: walletsForChainsMap,
477
478
  notInTheListImageUrl: imageUserNotInAccessList || notInTheListImageUrl,
478
479
  onboardingImageUrl: imageUserInAccessList || onboardingImageUrl,
@@ -511,7 +512,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
511
512
  setPrimaryWallet,
512
513
  setPrimaryWalletId,
513
514
  setQrcodeUri,
514
- setSdkHasLoaded,
515
515
  setSelectedWalletConnectorKey,
516
516
  setSelectedWalletWithAction,
517
517
  setShowAuthFlow,
@@ -548,7 +548,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
548
548
  accessDeniedMessagePrimary,
549
549
  accessDeniedMessageSecondary,
550
550
  accountSwitchState,
551
- enableForcedNetworkValidation,
552
551
  appLogoUrl,
553
552
  appName,
554
553
  authMode,
@@ -585,6 +584,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
585
584
  isVerificationInProgress,
586
585
  legacyIsVerifying,
587
586
  user,
587
+ networkValidationMode,
588
588
  linkedOrConnectedWallets,
589
589
  loadingNetwork,
590
590
  loginWithEmail,
@@ -622,7 +622,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
622
622
  setNetwork,
623
623
  setPrimaryWallet,
624
624
  setPrimaryWalletId,
625
- setSdkHasLoaded,
626
625
  setSelectedWalletConnectorKey,
627
626
  setShowAuthFlow,
628
627
  setShowLinkNewWalletModal,
@@ -693,7 +692,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
693
692
  isBridgeFlow,
694
693
  isFullyConnected,
695
694
  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] }) }) }) }) }) }) }) }) }) }) }) }) }) })] }) }) }) }) }) }));
695
+ }), 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
696
  };
698
697
  /** The context provider you need to have access too all of Dynamic's hooks */
699
698
  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');