@dynamic-labs/sdk-react-core 0.18.100-viem.2 → 0.18.100-viem.21

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 (177) hide show
  1. package/CHANGELOG.md +179 -0
  2. package/package.cjs +3 -3
  3. package/package.js +3 -3
  4. package/package.json +10 -10
  5. package/src/index.cjs +3 -2
  6. package/src/index.d.ts +1 -1
  7. package/src/index.js +2 -1
  8. package/src/lib/components/MenuList/Dropdown/Dropdown.cjs +1 -1
  9. package/src/lib/components/MenuList/Dropdown/Dropdown.js +1 -1
  10. package/src/lib/components/ModalHeaderBanner/ModalHeaderBanner.cjs +6 -2
  11. package/src/lib/components/ModalHeaderBanner/ModalHeaderBanner.d.ts +2 -1
  12. package/src/lib/components/ModalHeaderBanner/ModalHeaderBanner.js +6 -2
  13. package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +2 -2
  14. package/src/lib/components/OTPVerificationView/OTPVerificationView.d.ts +1 -0
  15. package/src/lib/components/OTPVerificationView/OTPVerificationView.js +2 -2
  16. package/src/lib/components/SignMessagePreview/SignMessagePreview.cjs +27 -0
  17. package/src/lib/components/SignMessagePreview/SignMessagePreview.d.ts +6 -0
  18. package/src/lib/components/SignMessagePreview/SignMessagePreview.js +23 -0
  19. package/src/lib/components/SignMessagePreview/SignMessagePreview.types.d.ts +8 -0
  20. package/src/lib/components/SignMessagePreview/components/SignTypedDataPreview/SignTypedDataPreview.cjs +44 -0
  21. package/src/lib/components/SignMessagePreview/components/SignTypedDataPreview/SignTypedDataPreview.d.ts +8 -0
  22. package/src/lib/components/SignMessagePreview/components/SignTypedDataPreview/SignTypedDataPreview.js +40 -0
  23. package/src/lib/components/SignMessagePreview/components/SignTypedDataPreview/index.d.ts +1 -0
  24. package/src/lib/components/SignMessagePreview/components/index.d.ts +1 -0
  25. package/src/lib/components/SignMessagePreview/index.d.ts +1 -0
  26. package/src/lib/components/SignMessagePreview/utils/index.d.ts +1 -0
  27. package/src/lib/components/SignMessagePreview/utils/isSignTypedData/index.d.ts +1 -0
  28. package/src/lib/components/SignMessagePreview/utils/isSignTypedData/isSignTypedData.cjs +17 -0
  29. package/src/lib/components/SignMessagePreview/utils/isSignTypedData/isSignTypedData.d.ts +2 -0
  30. package/src/lib/components/SignMessagePreview/utils/isSignTypedData/isSignTypedData.js +13 -0
  31. package/src/lib/components/Typography/Typography.cjs +1 -0
  32. package/src/lib/components/Typography/Typography.js +1 -0
  33. package/src/lib/components/Typography/Typography.types.d.ts +1 -1
  34. package/src/lib/components/UserProfile/UserProfile.cjs +1 -1
  35. package/src/lib/components/UserProfile/UserProfile.js +1 -1
  36. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +1 -1
  37. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +1 -1
  38. package/src/lib/components/index.d.ts +1 -0
  39. package/src/lib/context/DynamicContext/DynamicContext.cjs +22 -7
  40. package/src/lib/context/DynamicContext/DynamicContext.d.ts +11 -1
  41. package/src/lib/context/DynamicContext/DynamicContext.js +23 -8
  42. package/src/lib/context/DynamicContext/helpers.cjs +42 -3
  43. package/src/lib/context/DynamicContext/helpers.d.ts +7 -1
  44. package/src/lib/context/DynamicContext/helpers.js +38 -4
  45. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.cjs +5 -2
  46. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.d.ts +4 -2
  47. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.js +5 -2
  48. package/src/lib/context/DynamicContext/internalEvents/index.d.ts +2 -0
  49. package/src/lib/context/DynamicContext/internalEvents/internalEvents.cjs +14 -0
  50. package/src/lib/context/DynamicContext/internalEvents/internalEvents.d.ts +8 -0
  51. package/src/lib/context/DynamicContext/internalEvents/internalEvents.js +6 -0
  52. package/src/lib/context/DynamicContext/types/index.d.ts +7 -1
  53. package/src/lib/context/DynamicContext/useDynamicContext.cjs +2 -1
  54. package/src/lib/context/DynamicContext/useDynamicContext.d.ts +1 -1
  55. package/src/lib/context/DynamicContext/useDynamicContext.js +2 -1
  56. package/src/lib/context/ErrorContext/ErrorContext.cjs +1 -0
  57. package/src/lib/context/ErrorContext/ErrorContext.js +1 -0
  58. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +2 -1
  59. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +2 -1
  60. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  61. package/src/lib/context/WalletContext/WalletContext.cjs +2 -16
  62. package/src/lib/context/WalletContext/WalletContext.js +2 -16
  63. package/src/lib/data/api.cjs +37 -13
  64. package/src/lib/data/api.d.ts +5 -3
  65. package/src/lib/data/api.js +37 -14
  66. package/src/lib/main.global.cjs +1 -1
  67. package/src/lib/main.global.js +1 -1
  68. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +2 -1
  69. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +2 -1
  70. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.cjs +2 -1
  71. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.js +2 -1
  72. package/src/lib/shared/types/index.d.ts +4 -0
  73. package/src/lib/shared/utils/hooks/usePreventPageScroll/usePreventPageScroll.cjs +28 -2
  74. package/src/lib/shared/utils/hooks/usePreventPageScroll/usePreventPageScroll.js +28 -2
  75. package/src/lib/styles/index.shadow.cjs +1 -1
  76. package/src/lib/styles/index.shadow.js +1 -1
  77. package/src/lib/utils/constants/localStorage.cjs +4 -0
  78. package/src/lib/utils/constants/localStorage.d.ts +2 -0
  79. package/src/lib/utils/constants/localStorage.js +3 -1
  80. package/src/lib/utils/functions/createUserProfile/createUserProfile.cjs +1 -1
  81. package/src/lib/utils/functions/createUserProfile/createUserProfile.js +1 -1
  82. package/src/lib/utils/functions/digestSHA256/digestSHA256.cjs +11 -0
  83. package/src/lib/utils/functions/digestSHA256/digestSHA256.d.ts +1 -0
  84. package/src/lib/utils/functions/digestSHA256/digestSHA256.js +7 -0
  85. package/src/lib/utils/functions/digestSHA256/index.d.ts +1 -0
  86. package/src/lib/utils/functions/encodeBase64URL/encodeBase64URL.cjs +14 -0
  87. package/src/lib/utils/functions/encodeBase64URL/encodeBase64URL.d.ts +1 -0
  88. package/src/lib/utils/functions/encodeBase64URL/encodeBase64URL.js +10 -0
  89. package/src/lib/utils/functions/encodeBase64URL/index.d.ts +1 -0
  90. package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.cjs +6 -1
  91. package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.js +6 -1
  92. package/src/lib/utils/functions/getRedirectURIOrigin/getRedirectURIOrigin.cjs +33 -0
  93. package/src/lib/utils/functions/getRedirectURIOrigin/getRedirectURIOrigin.d.ts +1 -0
  94. package/src/lib/utils/functions/getRedirectURIOrigin/getRedirectURIOrigin.js +29 -0
  95. package/src/lib/utils/functions/getRedirectURIOrigin/index.d.ts +1 -0
  96. package/src/lib/utils/functions/index.d.ts +6 -0
  97. package/src/lib/utils/functions/randomString/index.d.ts +1 -0
  98. package/src/lib/utils/functions/randomString/randomString.cjs +14 -0
  99. package/src/lib/utils/functions/randomString/randomString.d.ts +1 -0
  100. package/src/lib/utils/functions/randomString/randomString.js +10 -0
  101. package/src/lib/utils/functions/sendTransactionWithAutoNonce/index.d.ts +1 -0
  102. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.cjs +48 -0
  103. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.d.ts +18 -0
  104. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.js +43 -0
  105. package/src/lib/utils/functions/stringifyURIQuery/index.d.ts +1 -0
  106. package/src/lib/utils/functions/stringifyURIQuery/stringifyURIQuery.cjs +13 -0
  107. package/src/lib/utils/functions/stringifyURIQuery/stringifyURIQuery.d.ts +1 -0
  108. package/src/lib/utils/functions/stringifyURIQuery/stringifyURIQuery.js +9 -0
  109. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +10 -5
  110. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +10 -5
  111. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +6 -2
  112. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +6 -2
  113. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +13 -4
  114. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.d.ts +1 -19
  115. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +13 -4
  116. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +22 -32
  117. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +1 -2
  118. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +23 -33
  119. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.cjs +7 -6
  120. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.js +7 -6
  121. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +10 -1
  122. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +10 -1
  123. package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.cjs +15 -1
  124. package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.js +15 -1
  125. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +6 -2
  126. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.d.ts +2 -1
  127. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +6 -2
  128. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +132 -24
  129. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.d.ts +5 -1
  130. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +134 -26
  131. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +13 -3
  132. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +13 -3
  133. package/src/lib/utils/hooks/useWallets/useWallets.cjs +20 -26
  134. package/src/lib/utils/hooks/useWallets/useWallets.d.ts +3 -2
  135. package/src/lib/utils/hooks/useWallets/useWallets.js +21 -27
  136. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +3 -3
  137. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +3 -3
  138. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +1 -1
  139. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +1 -1
  140. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +1 -1
  141. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +1 -1
  142. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +3 -2
  143. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +3 -2
  144. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +3 -2
  145. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +3 -2
  146. package/src/lib/views/SendBalanceView/components/TransactionStage/TransactionStage.cjs +4 -10
  147. package/src/lib/views/SendBalanceView/components/TransactionStage/TransactionStage.js +4 -10
  148. package/src/lib/views/WalletGroupView/components/WalletGroupItem/WalletGroupItem.cjs +1 -0
  149. package/src/lib/views/WalletGroupView/components/WalletGroupItem/WalletGroupItem.js +1 -0
  150. package/src/lib/views/WalletList/WalletListItem/WalletListItem.cjs +1 -1
  151. package/src/lib/views/WalletList/WalletListItem/WalletListItem.js +1 -1
  152. package/src/lib/views/WalletList/data.cjs +2 -14
  153. package/src/lib/views/WalletList/data.d.ts +4 -2
  154. package/src/lib/views/WalletList/data.js +2 -13
  155. package/src/lib/views/viewToComponentMap.cjs +1 -0
  156. package/src/lib/views/viewToComponentMap.js +1 -0
  157. package/src/lib/widgets/DynamicBridgeWidget/views/EditProfileView/EditProfileView.cjs +3 -3
  158. package/src/lib/widgets/DynamicBridgeWidget/views/EditProfileView/EditProfileView.js +3 -3
  159. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +7 -10
  160. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.d.ts +1 -0
  161. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +8 -11
  162. package/src/lib/widgets/DynamicWidget/hooks/index.d.ts +1 -0
  163. package/src/lib/widgets/DynamicWidget/hooks/useFetchCurrency/useFetchCurrency.cjs +4 -1
  164. package/src/lib/widgets/DynamicWidget/hooks/useFetchCurrency/useFetchCurrency.js +4 -1
  165. package/src/lib/widgets/DynamicWidget/hooks/useViewController/index.d.ts +1 -0
  166. package/src/lib/widgets/DynamicWidget/hooks/useViewController/useViewController.cjs +17 -0
  167. package/src/lib/widgets/DynamicWidget/hooks/useViewController/useViewController.d.ts +6 -0
  168. package/src/lib/widgets/DynamicWidget/hooks/useViewController/useViewController.js +13 -0
  169. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +3 -3
  170. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +3 -3
  171. package/src/lib/widgets/DynamicWidget/views/SendBalanceWidgetView/SendBalanceWidgetView.cjs +2 -3
  172. package/src/lib/widgets/DynamicWidget/views/SendBalanceWidgetView/SendBalanceWidgetView.js +2 -3
  173. package/src/lib/widgets/OAuthIFrameContainer/OAuthIFrameContainer.cjs +13 -0
  174. package/src/lib/widgets/OAuthIFrameContainer/OAuthIFrameContainer.d.ts +2 -0
  175. package/src/lib/widgets/OAuthIFrameContainer/OAuthIFrameContainer.js +9 -0
  176. package/src/lib/widgets/OAuthIFrameContainer/index.d.ts +1 -0
  177. package/src/lib/widgets/index.d.ts +1 -0
@@ -0,0 +1,40 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { Typography } from '../../../Typography/Typography.js';
3
+ import { capitalize } from '../../../../shared/utils/functions/capitalize/capitalize.js';
4
+ import '@dynamic-labs/sdk-api';
5
+ import '../../../../shared/logger.js';
6
+ import '@dynamic-labs/iconic';
7
+ import '@dynamic-labs/wallet-connector-core';
8
+ import '../../../../context/ViewContext/ViewContext.js';
9
+ import 'react';
10
+ import '@dynamic-labs/wallet-book';
11
+ import { shortenWalletAddress } from '../../../../shared/utils/functions/shortenWalletAddress/shortenWalletAddress.js';
12
+ import '@dynamic-labs/utils';
13
+ import '../../../../utils/constants/colors.js';
14
+ import '../../../../shared/utils/classes/storage/localStorage.js';
15
+ import 'viem';
16
+ import '../../../../shared/consts/index.js';
17
+
18
+ const TypeTitle = ({ children }) => (jsx(Typography, { color: 'secondary', weight: 'medium', children: children }));
19
+ const AttributeName = TypeTitle;
20
+ const AttributeValue = ({ children, title, }) => (jsx(Typography, { as: 'span', weight: 'regular', color: 'primary', title: title, children: children }));
21
+ const SignTypedDataPreview = ({ currentType, types, showTypeName = false, data }) => {
22
+ const fields = types[currentType].map((field) => {
23
+ const { type } = field;
24
+ const isKnownType = type in types;
25
+ if (isKnownType) {
26
+ return (jsxs("div", { children: [jsx(TypeTitle, { children: capitalize(field.name) }), jsx("div", { className: 'sign-typed-data-preview--type-container', children: jsx(SignTypedDataPreview, { currentType: type, types: types, data: data === null || data === void 0 ? void 0 : data[field.name] }) })] }, field.name));
27
+ }
28
+ const fieldData = data === null || data === void 0 ? void 0 : data[field.name];
29
+ const fieldType = field.type;
30
+ return (jsxs("div", { className: 'sign-typed-data-preview--attribute-row', children: [jsxs(AttributeName, { children: [capitalize(field.name), ": "] }), jsx(AttributeValue, { title: fieldData, children: fieldType === 'address'
31
+ ? shortenWalletAddress(fieldData, 4, 4)
32
+ : fieldData })] }, field.name));
33
+ });
34
+ if (showTypeName) {
35
+ return (jsxs(Fragment, { children: [jsx(TypeTitle, { children: currentType }), jsx("div", { className: 'sign-typed-data-preview--type-container', children: fields })] }));
36
+ }
37
+ return jsx("div", { className: 'sign-typed-data-preview--fields-list', children: fields });
38
+ };
39
+
40
+ export { SignTypedDataPreview };
@@ -0,0 +1 @@
1
+ export { SignTypedDataPreview } from './SignTypedDataPreview';
@@ -0,0 +1 @@
1
+ export * from './SignTypedDataPreview';
@@ -0,0 +1 @@
1
+ export { SignMessagePreview } from './SignMessagePreview';
@@ -0,0 +1 @@
1
+ export * from './isSignTypedData';
@@ -0,0 +1 @@
1
+ export { isSignTypedData } from './isSignTypedData';
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const isSignTypedData = (data) => {
6
+ if (typeof data !== 'object' || data === null) {
7
+ return false;
8
+ }
9
+ const { types, message, primaryType } = data;
10
+ return (typeof types === 'object' &&
11
+ types !== null &&
12
+ typeof message === 'object' &&
13
+ message !== null &&
14
+ typeof primaryType === 'string');
15
+ };
16
+
17
+ exports.isSignTypedData = isSignTypedData;
@@ -0,0 +1,2 @@
1
+ import { SignTypedData } from '../../SignMessagePreview.types';
2
+ export declare const isSignTypedData: (data: SignTypedData | unknown) => data is SignTypedData;
@@ -0,0 +1,13 @@
1
+ const isSignTypedData = (data) => {
2
+ if (typeof data !== 'object' || data === null) {
3
+ return false;
4
+ }
5
+ const { types, message, primaryType } = data;
6
+ return (typeof types === 'object' &&
7
+ types !== null &&
8
+ typeof message === 'object' &&
9
+ message !== null &&
10
+ typeof primaryType === 'string');
11
+ };
12
+
13
+ export { isSignTypedData };
@@ -29,6 +29,7 @@ const Typography = (_a) => {
29
29
  'brand-primary': 'typography--brand-primary',
30
30
  'error-1': 'typography--dynamic-error-1',
31
31
  'error-2': 'typography--dynamic-error-2',
32
+ 'green-1': 'typography--connection-green-1',
32
33
  link: 'typography--link',
33
34
  primary: 'typography--primary',
34
35
  secondary: 'typography--secondary',
@@ -25,6 +25,7 @@ const Typography = (_a) => {
25
25
  'brand-primary': 'typography--brand-primary',
26
26
  'error-1': 'typography--dynamic-error-1',
27
27
  'error-2': 'typography--dynamic-error-2',
28
+ 'green-1': 'typography--connection-green-1',
28
29
  link: 'typography--link',
29
30
  primary: 'typography--primary',
30
31
  secondary: 'typography--secondary',
@@ -1,7 +1,7 @@
1
1
  import { ComponentPropsWithoutRef, ElementType, ReactElement } from 'react';
2
2
  export type TypographyTag = ElementType;
3
3
  export type TypographyVariant = 'title' | 'body_normal' | 'body_small' | 'body_mini' | 'button_primary' | 'button_secondary' | 'button_tertiary' | 'numbers_big' | 'numbers_medium' | 'numbers_small';
4
- export type TypographyColor = 'primary' | 'secondary' | 'brand-primary' | 'tertiary' | 'link' | 'error-1' | 'error-2' | 'tooltip';
4
+ export type TypographyColor = 'primary' | 'secondary' | 'brand-primary' | 'tertiary' | 'link' | 'error-1' | 'error-2' | 'tooltip' | 'green-1';
5
5
  export type TypographyWeight = 'regular' | 'medium' | 'bold';
6
6
  export type TypographyTransform = 'uppercase';
7
7
  export type TypographyProps<TAG extends ElementType = 'p'> = {
@@ -43,7 +43,7 @@ const UserProfile = ({ rootClassName }) => {
43
43
  const { label } = index$1.getValueByKey(fieldsConfig.fieldsConfig, name);
44
44
  const value = mapFieldKeyToValue(name);
45
45
  return (jsxRuntime.jsx(UserProfileField.UserProfileField, { name: name, label: label, value: value }, name));
46
- }) }) })), (providers === null || providers === void 0 ? void 0 : providers.length) > 0 && (jsxRuntime.jsx(UserProfileSection.UserProfileSection, { title: 'Social accounts', children: jsxRuntime.jsx("div", { className: 'user-profile__social-accounts', children: providers.map(({ authorizationUrl, provider }) => (jsxRuntime.jsx(UserProfileSocialAccount.UserProfileSocialAccount, { provider: provider }, provider))) }) }))] }));
46
+ }) }) })), (providers === null || providers === void 0 ? void 0 : providers.length) > 0 && (jsxRuntime.jsx(UserProfileSection.UserProfileSection, { title: 'Social accounts', children: jsxRuntime.jsx("div", { className: 'user-profile__social-accounts', children: providers.map(({ provider }) => (jsxRuntime.jsx(UserProfileSocialAccount.UserProfileSocialAccount, { provider: provider }, provider))) }) }))] }));
47
47
  };
48
48
 
49
49
  exports.UserProfile = UserProfile;
@@ -39,7 +39,7 @@ const UserProfile = ({ rootClassName }) => {
39
39
  const { label } = getValueByKey(fieldsConfig, name);
40
40
  const value = mapFieldKeyToValue(name);
41
41
  return (jsx(UserProfileField, { name: name, label: label, value: value }, name));
42
- }) }) })), (providers === null || providers === void 0 ? void 0 : providers.length) > 0 && (jsx(UserProfileSection, { title: 'Social accounts', children: jsx("div", { className: 'user-profile__social-accounts', children: providers.map(({ authorizationUrl, provider }) => (jsx(UserProfileSocialAccount, { provider: provider }, provider))) }) }))] }));
42
+ }) }) })), (providers === null || providers === void 0 ? void 0 : providers.length) > 0 && (jsx(UserProfileSection, { title: 'Social accounts', children: jsx("div", { className: 'user-profile__social-accounts', children: providers.map(({ provider }) => (jsx(UserProfileSocialAccount, { provider: provider }, provider))) }) }))] }));
43
43
  };
44
44
 
45
45
  export { UserProfile };
@@ -57,7 +57,7 @@ const UserProfileSocialAccount = ({ provider, }) => {
57
57
  const isProviderLinked = isLinked(provider);
58
58
  const connectedAccountInfo = getLinkedAccountInformation(provider);
59
59
  const iconThemeVariant = useIconThemeVariant.useIconThemeVariant();
60
- return (jsxRuntime.jsxs("div", { className: 'user-profile-social-account', "data-testid": `social-account-${provider}`, children: [jsxRuntime.jsx("div", { className: 'user-profile-social-account__icon', children: isProviderLinked ? (jsxRuntime.jsx(ConnectedAccountAvatar.ConnectedAccountAvatar, { provider: provider, avatarUrl: connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.avatar, iconThemeVariant: iconThemeVariant })) : (jsxRuntime.jsx(iconic.SocialIcon, { name: provider, variant: iconThemeVariant })) }), jsxRuntime.jsx("div", { className: 'user-profile-social-account__label', children: jsxRuntime.jsx(Typography.Typography, { weight: 'medium', variant: 'body_normal', color: 'primary', children: (_a = connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.publicIdentifier) !== null && _a !== void 0 ? _a : helpers.capitalize(provider) }) }), isProviderLinked ? (jsxRuntime.jsx(Button.Button, { buttonClassName: 'user-profile-social-account__button', buttonVariant: 'secondary', buttonRounded: 'small', buttonPadding: 'none', onClick: () => unlinkSocialAccount(provider), loading: isProcessing, dataTestId: 'social-account-disconnect-button', typographyProps: {
60
+ return (jsxRuntime.jsxs("div", { className: 'user-profile-social-account', "data-testid": `social-account-${provider}`, children: [jsxRuntime.jsx("div", { className: 'user-profile-social-account__icon', children: isProviderLinked ? (jsxRuntime.jsx(ConnectedAccountAvatar.ConnectedAccountAvatar, { provider: provider, avatarUrl: connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.avatar })) : (jsxRuntime.jsx(iconic.SocialIcon, { name: provider, variant: iconThemeVariant })) }), jsxRuntime.jsx("div", { className: 'user-profile-social-account__label', children: jsxRuntime.jsx(Typography.Typography, { weight: 'medium', variant: 'body_normal', color: 'primary', children: (_a = connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.publicIdentifier) !== null && _a !== void 0 ? _a : helpers.capitalize(provider) }) }), isProviderLinked ? (jsxRuntime.jsx(Button.Button, { buttonClassName: 'user-profile-social-account__button', buttonVariant: 'secondary', buttonRounded: 'small', buttonPadding: 'none', onClick: () => unlinkSocialAccount(provider), loading: isProcessing, dataTestId: 'social-account-disconnect-button', typographyProps: {
61
61
  color: 'secondary',
62
62
  variant: 'button_tertiary',
63
63
  }, startSlot:
@@ -53,7 +53,7 @@ const UserProfileSocialAccount = ({ provider, }) => {
53
53
  const isProviderLinked = isLinked(provider);
54
54
  const connectedAccountInfo = getLinkedAccountInformation(provider);
55
55
  const iconThemeVariant = useIconThemeVariant();
56
- return (jsxs("div", { className: 'user-profile-social-account', "data-testid": `social-account-${provider}`, children: [jsx("div", { className: 'user-profile-social-account__icon', children: isProviderLinked ? (jsx(ConnectedAccountAvatar, { provider: provider, avatarUrl: connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.avatar, iconThemeVariant: iconThemeVariant })) : (jsx(SocialIcon, { name: provider, variant: iconThemeVariant })) }), jsx("div", { className: 'user-profile-social-account__label', children: jsx(Typography, { weight: 'medium', variant: 'body_normal', color: 'primary', children: (_a = connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.publicIdentifier) !== null && _a !== void 0 ? _a : capitalize(provider) }) }), isProviderLinked ? (jsx(Button, { buttonClassName: 'user-profile-social-account__button', buttonVariant: 'secondary', buttonRounded: 'small', buttonPadding: 'none', onClick: () => unlinkSocialAccount(provider), loading: isProcessing, dataTestId: 'social-account-disconnect-button', typographyProps: {
56
+ return (jsxs("div", { className: 'user-profile-social-account', "data-testid": `social-account-${provider}`, children: [jsx("div", { className: 'user-profile-social-account__icon', children: isProviderLinked ? (jsx(ConnectedAccountAvatar, { provider: provider, avatarUrl: connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.avatar })) : (jsx(SocialIcon, { name: provider, variant: iconThemeVariant })) }), jsx("div", { className: 'user-profile-social-account__label', children: jsx(Typography, { weight: 'medium', variant: 'body_normal', color: 'primary', children: (_a = connectedAccountInfo === null || connectedAccountInfo === void 0 ? void 0 : connectedAccountInfo.publicIdentifier) !== null && _a !== void 0 ? _a : capitalize(provider) }) }), isProviderLinked ? (jsx(Button, { buttonClassName: 'user-profile-social-account__button', buttonVariant: 'secondary', buttonRounded: 'small', buttonPadding: 'none', onClick: () => unlinkSocialAccount(provider), loading: isProcessing, dataTestId: 'social-account-disconnect-button', typographyProps: {
57
57
  color: 'secondary',
58
58
  variant: 'button_tertiary',
59
59
  }, startSlot:
@@ -46,3 +46,4 @@ export * from './ModalCard';
46
46
  export * from './InlineWidget';
47
47
  export * from './WalletInformationCard';
48
48
  export * from './MenuList';
49
+ export * from './SignMessagePreview';
@@ -79,6 +79,7 @@ require('../../views/CollectUserDataView/fieldsConfig.cjs');
79
79
  require('../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
80
80
  var FundingWidget = require('../../widgets/FundingWidget/FundingWidget.cjs');
81
81
  var DynamicBridgeWidgetContext = require('../../widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.cjs');
82
+ var OAuthIFrameContainer = require('../../widgets/OAuthIFrameContainer/OAuthIFrameContainer.cjs');
82
83
  var EmailVerificationContext = require('../EmailVerificationContext/EmailVerificationContext.cjs');
83
84
  var FundingContext = require('../FundingContext/FundingContext.cjs');
84
85
  var SendBalanceContext = require('../SendBalanceContext/SendBalanceContext.cjs');
@@ -93,13 +94,17 @@ var useVerificationInProgress = require('./hooks/useVerificationInProgress/useVe
93
94
  var useCustomerCallbacks = require('./useCustomerCallbacks/useCustomerCallbacks.cjs');
94
95
  var useCustomerAuthFlowCallbacks = require('./useCustomerCallbacks/useCustomerAuthFlowCallbacks.cjs');
95
96
  var validators = require('./validators.cjs');
97
+ var internalEvents = require('./internalEvents/internalEvents.cjs');
96
98
 
97
99
  const PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID = '2762a57b-faa4-41ce-9f16-abff9300e2c9';
98
100
  const EMPTY_INITIAL_USER = undefined;
99
101
  const DynamicContext = React.createContext(undefined);
100
102
  const DynamicContextProvider = ({ children, theme, settings, }) => {
101
103
  var _a, _b, _c, _d, _e, _f, _g, _h;
102
- const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, walletsByChain, 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', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, } = settings;
104
+ const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, deepLinkPreference = 'native', walletsByChain, 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', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, showLockedWalletView = true, } = settings;
105
+ // The following event related methods are temporary and should be removed after QNTM-180 is done
106
+ // ============ START REMOVE AFTER QNTM-180 ============
107
+ const internalEventsRef = React.useRef(internalEvents.getInternalEvents());
103
108
  let { walletConnectV1Bridge, appLogoUrl = 'https://demo.dynamic.xyz/assets/dynamic-logo.svg', appName = 'Dynamic Example', } = settings;
104
109
  if (!environmentId) {
105
110
  throw new utils.MissingEnvironmentIdError();
@@ -169,6 +174,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
169
174
  const { wallets } = useWallets.useWallets({
170
175
  appLogoUrl,
171
176
  appName,
177
+ deepLinkPreference,
172
178
  flowNetwork,
173
179
  networkConfigurations: serverNetworkConfigurations,
174
180
  projectSettings,
@@ -178,7 +184,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
178
184
  walletUiUtils,
179
185
  });
180
186
  const [authMode, setAuthMode] = useLocalStorage.useLocalStorage(localStorage$1.AUTH_MODE, initialAuthenticationMode);
181
- const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId.usePrimaryWalletId();
187
+ const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId.usePrimaryWalletId(internalEventsRef.current);
182
188
  const { connectWallet, removeConnectedWalletsInfo, connectedWalletsInfo, connectedWallet, getConnectedWalletById, connectedWallets, unlinkConnectedWallet, refreshConnectedWallet, } = useConnectWallet.useConnectWallet({
183
189
  authMode,
184
190
  clearPrimaryWalletId,
@@ -229,7 +235,9 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
229
235
  walletBook: walletBook$1,
230
236
  });
231
237
  const setShowAuthFlowWithInit = useSetShowAuthFlowWithInit.useSetShowAuthFlowWithInit({
238
+ isMultiWalletEnabled: multiWallet,
232
239
  setShowAuthFlow,
240
+ user,
233
241
  wallets,
234
242
  });
235
243
  // until user completes onboarding, jwt is only stored in onboardingOnlyJwt
@@ -445,6 +453,8 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
445
453
  handleUnlinkWallet: authMode === 'connect-only'
446
454
  ? unlinkConnectedWallet
447
455
  : handleUnlinkWallet,
456
+ internalEvents: internalEventsRef,
457
+ internalSetShowAuthFlow: setShowAuthFlow,
448
458
  isAuthenticated,
449
459
  isBridgeFlow,
450
460
  isFullyConnected,
@@ -507,6 +517,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
507
517
  showAuthFlow,
508
518
  showBridgeWidget,
509
519
  showDynamicUserProfile,
520
+ showLockedWalletView,
510
521
  showQrcodeModal,
511
522
  showWidgetStatePopup,
512
523
  signWithEmailWalletName,
@@ -561,13 +572,12 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
561
572
  handleUnlinkWallet,
562
573
  isAuthenticated,
563
574
  isBridgeFlow,
575
+ isFullyConnected,
564
576
  isProjectSettingsLoading,
565
577
  isSingleWalletAccount,
566
- isFullyConnected,
567
578
  isVerificationInProgress,
568
- primaryWallet,
569
- secondaryWallets,
570
579
  legacyIsVerifying,
580
+ linkedWallets,
571
581
  loadingNetwork,
572
582
  loginWithEmail,
573
583
  multiWallet,
@@ -580,6 +590,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
580
590
  imageUserInAccessList,
581
591
  onboardingImageUrl,
582
592
  policiesConsentInnerComponent,
593
+ primaryWallet,
583
594
  primaryWalletId,
584
595
  privacyPolicyUrl,
585
596
  projectSettings,
@@ -587,12 +598,15 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
587
598
  removeConnectedWalletsInfo,
588
599
  rpcProviders,
589
600
  sdkHasLoaded,
601
+ secondaryWallets,
590
602
  selectedWalletConnector,
591
603
  selectedWalletWithAction,
604
+ sendWagmiSettings,
592
605
  setAuthMode,
593
606
  setAuthorizationViewDisplayOrder,
594
607
  setCallback,
595
608
  setIsFullyConnected,
609
+ setIsVerificationInProgress,
596
610
  setLogInWithEmail,
597
611
  setMultiWallet,
598
612
  setMultiWalletWidgetState,
@@ -607,6 +621,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
607
621
  showAuthFlow,
608
622
  showBridgeWidget,
609
623
  showDynamicUserProfile,
624
+ showLockedWalletView,
610
625
  showQrcodeModal,
611
626
  showWidgetStatePopup,
612
627
  signWithEmailWalletName,
@@ -624,7 +639,6 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
624
639
  walletsByChain,
625
640
  walletsFilter,
626
641
  walletsToConnectByChain,
627
- linkedWallets,
628
642
  ]);
629
643
  React.useEffect(() => {
630
644
  const addPrefetch = (attr) => {
@@ -672,8 +686,9 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
672
686
  connectedWallets,
673
687
  isBridgeFlow,
674
688
  isFullyConnected,
689
+ isMultiWalletEnabled: multiWallet,
675
690
  loginWithEmail,
676
- }), children: jsxRuntime.jsx(AccountExistsContext.AccountExistsContextProvider, { children: jsxRuntime.jsx(WalletContext.WalletContextProvider, { canSync: didConnectedStateLoad, children: jsxRuntime.jsx(QrCodeContext.QrCodeContextProvider, { children: jsxRuntime.jsx(EmailVerificationContext.EmailVerificationContextProvider, { children: jsxRuntime.jsx(ErrorContext.ErrorContextProvider, { children: jsxRuntime.jsx(DynamicWidgetContext.DynamicWidgetContextProvider, { children: jsxRuntime.jsx(DynamicBridgeWidgetContext.DynamicBridgeWidgetContextProvider, { children: jsxRuntime.jsx(CaptchaContext.CaptchaContextProvider, { children: jsxRuntime.jsx(FundingContext.FundingContextProvider, { children: jsxRuntime.jsx(AccessDeniedContext.AccessDeniedContextProvider, { children: jsxRuntime.jsx(SendBalanceContext.SendBalanceContextProvider, { children: jsxRuntime.jsxs(WalletGroupContext.WalletGroupContextProvider, { children: [jsxRuntime.jsx(app.DynamicAuthFlow, {}), jsxRuntime.jsx(Toolkit.Toolkit, {}), jsxRuntime.jsx(FundingWidget.FundingWidget, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
691
+ }), children: jsxRuntime.jsx(AccountExistsContext.AccountExistsContextProvider, { children: jsxRuntime.jsx(WalletContext.WalletContextProvider, { canSync: didConnectedStateLoad, children: jsxRuntime.jsx(QrCodeContext.QrCodeContextProvider, { children: jsxRuntime.jsx(EmailVerificationContext.EmailVerificationContextProvider, { children: jsxRuntime.jsx(ErrorContext.ErrorContextProvider, { children: jsxRuntime.jsx(DynamicWidgetContext.DynamicWidgetContextProvider, { children: jsxRuntime.jsx(DynamicBridgeWidgetContext.DynamicBridgeWidgetContextProvider, { children: jsxRuntime.jsx(CaptchaContext.CaptchaContextProvider, { children: jsxRuntime.jsx(FundingContext.FundingContextProvider, { children: jsxRuntime.jsx(AccessDeniedContext.AccessDeniedContextProvider, { children: jsxRuntime.jsx(SendBalanceContext.SendBalanceContextProvider, { children: jsxRuntime.jsxs(WalletGroupContext.WalletGroupContextProvider, { children: [jsxRuntime.jsx(app.DynamicAuthFlow, {}), jsxRuntime.jsx(Toolkit.Toolkit, {}), jsxRuntime.jsx(FundingWidget.FundingWidget, {}), jsxRuntime.jsx(OAuthIFrameContainer.OAuthIFrameContainer, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
677
692
  };
678
693
 
679
694
  exports.DynamicContext = DynamicContext;
@@ -1,7 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { LogLevel } from '@dynamic-labs/logger';
3
3
  import { EvmNetwork, SocialProviderFilter } from '@dynamic-labs/types';
4
- import { WalletConnectorsMethod } from '@dynamic-labs/wallet-connector-core';
4
+ import { DeepLinkVariant, WalletConnectorsMethod } from '@dynamic-labs/wallet-connector-core';
5
5
  import { AccessDeniedCustomButton, AuthModeType, ChainToWalletMap, DynamicEventsCallbacks, WalletOption } from '../../shared';
6
6
  import { SocialNetworkIconType } from '../../utils/functions/getSocialNetworkIcon';
7
7
  import { ThemeData, ThemeSetting } from '../ThemeContext';
@@ -19,6 +19,15 @@ export interface DynamicContextProps {
19
19
  appName?: string;
20
20
  cssOverrides?: string | JSX.Element;
21
21
  debugError?: boolean;
22
+ /**
23
+ * Used to control the type of deep link used when connecting
24
+ * a mobile wallet. Defaults to 'native'. This is useful for
25
+ * example if your app is running in a webview of a native
26
+ * mobile app, and you want to be able to link out to any
27
+ * wallet without having to modify your iOS build config.
28
+ * In this case, you can set this to 'universal'.
29
+ */
30
+ deepLinkPreference?: DeepLinkVariant;
22
31
  defaultNumberOfWalletsToShow?: number;
23
32
  displaySiweStatement?: boolean;
24
33
  enableVisitTrackingOnConnectOnly?: boolean;
@@ -36,6 +45,7 @@ export interface DynamicContextProps {
36
45
  * @default WARN
37
46
  */
38
47
  logLevel?: keyof typeof LogLevel;
48
+ showLockedWalletView?: boolean;
39
49
  newToWeb3WalletChainMap?: ChainToWalletMap;
40
50
  notInTheListImageUrl?: string;
41
51
  onboardingImageUrl?: string;
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from '../../../../_virtual/_tslib.js';
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { createContext, useState, useEffect, useCallback, useMemo } from 'react';
3
+ import { createContext, useRef, useState, useEffect, useCallback, useMemo } from 'react';
4
4
  import { ICONIC_SPRITE_URL } from '@dynamic-labs/iconic';
5
5
  import { MissingEnvironmentIdError } from '@dynamic-labs/utils';
6
6
  import { useWalletBookCdn, getWalletBookCdnUrl, WalletBookContextProvider } from '@dynamic-labs/wallet-book';
@@ -75,6 +75,7 @@ import '../../views/CollectUserDataView/fieldsConfig.js';
75
75
  import '../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js';
76
76
  import { FundingWidget } from '../../widgets/FundingWidget/FundingWidget.js';
77
77
  import { DynamicBridgeWidgetContextProvider } from '../../widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.js';
78
+ import { OAuthIFrameContainer } from '../../widgets/OAuthIFrameContainer/OAuthIFrameContainer.js';
78
79
  import { EmailVerificationContextProvider } from '../EmailVerificationContext/EmailVerificationContext.js';
79
80
  import { FundingContextProvider } from '../FundingContext/FundingContext.js';
80
81
  import { SendBalanceContextProvider } from '../SendBalanceContext/SendBalanceContext.js';
@@ -89,13 +90,17 @@ import { useVerificationInProgress } from './hooks/useVerificationInProgress/use
89
90
  import { useCustomerCallbacks } from './useCustomerCallbacks/useCustomerCallbacks.js';
90
91
  import { useCustomerAuthFlowCallbacks } from './useCustomerCallbacks/useCustomerAuthFlowCallbacks.js';
91
92
  import { validateAuthUser } from './validators.js';
93
+ import { getInternalEvents } from './internalEvents/internalEvents.js';
92
94
 
93
95
  const PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID = '2762a57b-faa4-41ce-9f16-abff9300e2c9';
94
96
  const EMPTY_INITIAL_USER = undefined;
95
97
  const DynamicContext = createContext(undefined);
96
98
  const DynamicContextProvider = ({ children, theme, settings, }) => {
97
99
  var _a, _b, _c, _d, _e, _f, _g, _h;
98
- const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, walletsByChain, 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', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, } = settings;
100
+ const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, deepLinkPreference = 'native', walletsByChain, 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', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, showLockedWalletView = true, } = settings;
101
+ // The following event related methods are temporary and should be removed after QNTM-180 is done
102
+ // ============ START REMOVE AFTER QNTM-180 ============
103
+ const internalEventsRef = useRef(getInternalEvents());
99
104
  let { walletConnectV1Bridge, appLogoUrl = 'https://demo.dynamic.xyz/assets/dynamic-logo.svg', appName = 'Dynamic Example', } = settings;
100
105
  if (!environmentId) {
101
106
  throw new MissingEnvironmentIdError();
@@ -165,6 +170,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
165
170
  const { wallets } = useWallets({
166
171
  appLogoUrl,
167
172
  appName,
173
+ deepLinkPreference,
168
174
  flowNetwork,
169
175
  networkConfigurations: serverNetworkConfigurations,
170
176
  projectSettings,
@@ -174,7 +180,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
174
180
  walletUiUtils,
175
181
  });
176
182
  const [authMode, setAuthMode] = useLocalStorage(AUTH_MODE, initialAuthenticationMode);
177
- const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId();
183
+ const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId(internalEventsRef.current);
178
184
  const { connectWallet, removeConnectedWalletsInfo, connectedWalletsInfo, connectedWallet, getConnectedWalletById, connectedWallets, unlinkConnectedWallet, refreshConnectedWallet, } = useConnectWallet({
179
185
  authMode,
180
186
  clearPrimaryWalletId,
@@ -225,7 +231,9 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
225
231
  walletBook,
226
232
  });
227
233
  const setShowAuthFlowWithInit = useSetShowAuthFlowWithInit({
234
+ isMultiWalletEnabled: multiWallet,
228
235
  setShowAuthFlow,
236
+ user,
229
237
  wallets,
230
238
  });
231
239
  // until user completes onboarding, jwt is only stored in onboardingOnlyJwt
@@ -441,6 +449,8 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
441
449
  handleUnlinkWallet: authMode === 'connect-only'
442
450
  ? unlinkConnectedWallet
443
451
  : handleUnlinkWallet,
452
+ internalEvents: internalEventsRef,
453
+ internalSetShowAuthFlow: setShowAuthFlow,
444
454
  isAuthenticated,
445
455
  isBridgeFlow,
446
456
  isFullyConnected,
@@ -503,6 +513,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
503
513
  showAuthFlow,
504
514
  showBridgeWidget,
505
515
  showDynamicUserProfile,
516
+ showLockedWalletView,
506
517
  showQrcodeModal,
507
518
  showWidgetStatePopup,
508
519
  signWithEmailWalletName,
@@ -557,13 +568,12 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
557
568
  handleUnlinkWallet,
558
569
  isAuthenticated,
559
570
  isBridgeFlow,
571
+ isFullyConnected,
560
572
  isProjectSettingsLoading,
561
573
  isSingleWalletAccount,
562
- isFullyConnected,
563
574
  isVerificationInProgress,
564
- primaryWallet,
565
- secondaryWallets,
566
575
  legacyIsVerifying,
576
+ linkedWallets,
567
577
  loadingNetwork,
568
578
  loginWithEmail,
569
579
  multiWallet,
@@ -576,6 +586,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
576
586
  imageUserInAccessList,
577
587
  onboardingImageUrl,
578
588
  policiesConsentInnerComponent,
589
+ primaryWallet,
579
590
  primaryWalletId,
580
591
  privacyPolicyUrl,
581
592
  projectSettings,
@@ -583,12 +594,15 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
583
594
  removeConnectedWalletsInfo,
584
595
  rpcProviders,
585
596
  sdkHasLoaded,
597
+ secondaryWallets,
586
598
  selectedWalletConnector,
587
599
  selectedWalletWithAction,
600
+ sendWagmiSettings,
588
601
  setAuthMode,
589
602
  setAuthorizationViewDisplayOrder,
590
603
  setCallback,
591
604
  setIsFullyConnected,
605
+ setIsVerificationInProgress,
592
606
  setLogInWithEmail,
593
607
  setMultiWallet,
594
608
  setMultiWalletWidgetState,
@@ -603,6 +617,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
603
617
  showAuthFlow,
604
618
  showBridgeWidget,
605
619
  showDynamicUserProfile,
620
+ showLockedWalletView,
606
621
  showQrcodeModal,
607
622
  showWidgetStatePopup,
608
623
  signWithEmailWalletName,
@@ -620,7 +635,6 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
620
635
  walletsByChain,
621
636
  walletsFilter,
622
637
  walletsToConnectByChain,
623
- linkedWallets,
624
638
  ]);
625
639
  useEffect(() => {
626
640
  const addPrefetch = (attr) => {
@@ -668,8 +682,9 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
668
682
  connectedWallets,
669
683
  isBridgeFlow,
670
684
  isFullyConnected,
685
+ isMultiWalletEnabled: multiWallet,
671
686
  loginWithEmail,
672
- }), children: jsx(AccountExistsContextProvider, { children: jsx(WalletContextProvider, { canSync: didConnectedStateLoad, children: jsx(QrCodeContextProvider, { children: jsx(EmailVerificationContextProvider, { children: jsx(ErrorContextProvider, { children: jsx(DynamicWidgetContextProvider, { children: jsx(DynamicBridgeWidgetContextProvider, { children: jsx(CaptchaContextProvider, { children: jsx(FundingContextProvider, { children: jsx(AccessDeniedContextProvider, { children: jsx(SendBalanceContextProvider, { children: jsxs(WalletGroupContextProvider, { children: [jsx(DynamicAuthFlow, {}), jsx(Toolkit, {}), jsx(FundingWidget, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
687
+ }), children: jsx(AccountExistsContextProvider, { children: jsx(WalletContextProvider, { canSync: didConnectedStateLoad, children: jsx(QrCodeContextProvider, { children: jsx(EmailVerificationContextProvider, { children: jsx(ErrorContextProvider, { children: jsx(DynamicWidgetContextProvider, { children: jsx(DynamicBridgeWidgetContextProvider, { children: jsx(CaptchaContextProvider, { children: jsx(FundingContextProvider, { children: jsx(AccessDeniedContextProvider, { children: jsx(SendBalanceContextProvider, { children: jsxs(WalletGroupContextProvider, { children: [jsx(DynamicAuthFlow, {}), jsx(Toolkit, {}), jsx(FundingWidget, {}), jsx(OAuthIFrameContainer, {}), confirmationModal, children] }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
673
688
  };
674
689
 
675
690
  export { DynamicContext, DynamicContextProvider, PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID };
@@ -11,12 +11,16 @@ require('react');
11
11
  require('../../shared/logger.cjs');
12
12
  require('@dynamic-labs/wallet-book');
13
13
  require('@dynamic-labs/utils');
14
+ var localStorage$1 = require('../../utils/constants/localStorage.cjs');
14
15
  require('../../utils/constants/colors.cjs');
15
- require('../../shared/utils/classes/storage/localStorage.cjs');
16
+ var localStorage = require('../../shared/utils/classes/storage/localStorage.cjs');
16
17
  require('viem');
17
18
  var getAuthToken = require('../../utils/functions/getAuthToken/getAuthToken.cjs');
18
19
 
19
20
  let logoutTimer;
21
+ let dynamicContextSettingsTimer;
22
+ let wagmiSettingsTimer;
23
+ const sdkSettingsTimeout = 24 * 60 * 60 * 1000; // 24 hours
20
24
  const isAuthTokenExpired = (token) => {
21
25
  const decoded = decodeJwt.decodeJwt(token);
22
26
  if (!decoded) {
@@ -54,19 +58,54 @@ const initExpirationTime = (logout) => {
54
58
  const expiryTimeout = Math.min(expirationTimeInMs, 2147483647);
55
59
  logoutTimer = setTimeout(logout, expiryTimeout);
56
60
  };
57
- const getInitialView = ({ connectedWallets, loginWithEmail, isBridgeFlow, isFullyConnected, }) => {
61
+ const getInitialView = ({ connectedWallets, loginWithEmail, isBridgeFlow, isFullyConnected, isMultiWalletEnabled, }) => {
58
62
  if (loginWithEmail) {
59
63
  return 'login-with-email-or-wallet';
60
64
  }
61
65
  if (isFullyConnected) {
62
- return 'wallet-list';
66
+ return isMultiWalletEnabled ? 'multi-wallet-wallet-list' : 'wallet-list';
63
67
  }
64
68
  if (isBridgeFlow && !connectedWallets.length) {
65
69
  return 'bridge-welcome';
66
70
  }
67
71
  return 'wallet-list';
68
72
  };
73
+ const setDynamicContextSessionSettings = () => {
74
+ setSessionSettings(localStorage$1.DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS);
75
+ dynamicContextSettingsTimer = setTimeout(isDynamicContextSessionSettingExpired, sdkSettingsTimeout);
76
+ };
77
+ const setWagmiSessionSettings = () => {
78
+ setSessionSettings(localStorage$1.WAGMI_LAST_SESSION_SETTINGS);
79
+ wagmiSettingsTimer = setTimeout(isWagmiSessionSettingExpired, sdkSettingsTimeout);
80
+ };
81
+ const setSessionSettings = (lsKey) => {
82
+ const timestamp = new Date().getTime();
83
+ localStorage.LocalStorage.setToLS(lsKey, timestamp.toString());
84
+ };
85
+ const isDynamicContextSessionSettingExpired = () => isSettingExpired(localStorage$1.DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS, dynamicContextSettingsTimer);
86
+ const isWagmiSessionSettingExpired = () => isSettingExpired(localStorage$1.WAGMI_LAST_SESSION_SETTINGS, wagmiSettingsTimer);
87
+ const isSettingExpired = (lsKey, timer) => {
88
+ const lastSentTime = localStorage.LocalStorage.getFromLS(lsKey);
89
+ // should set new time
90
+ if (!lastSentTime) {
91
+ return true;
92
+ }
93
+ const lastSentTimestamp = parseInt(lastSentTime);
94
+ const currentTime = new Date().getTime();
95
+ if (currentTime - lastSentTimestamp > sdkSettingsTimeout) {
96
+ // Reset session-related data here
97
+ clearTimeout(timer);
98
+ localStorage.LocalStorage.removeFromLS(lsKey);
99
+ return true;
100
+ }
101
+ return false;
102
+ };
69
103
 
70
104
  exports.getInitialView = getInitialView;
71
105
  exports.initExpirationTime = initExpirationTime;
72
106
  exports.isAuthTokenExpired = isAuthTokenExpired;
107
+ exports.isDynamicContextSessionSettingExpired = isDynamicContextSessionSettingExpired;
108
+ exports.isWagmiSessionSettingExpired = isWagmiSessionSettingExpired;
109
+ exports.sdkSettingsTimeout = sdkSettingsTimeout;
110
+ exports.setDynamicContextSessionSettings = setDynamicContextSessionSettings;
111
+ exports.setWagmiSessionSettings = setWagmiSessionSettings;
@@ -1,10 +1,16 @@
1
1
  import { Wallet } from '../../shared';
2
2
  import { ViewType } from '../ViewContext';
3
+ export declare const sdkSettingsTimeout: number;
3
4
  export declare const isAuthTokenExpired: (token: string) => boolean;
4
5
  export declare const initExpirationTime: (logout: VoidFunction) => void;
5
- export declare const getInitialView: ({ connectedWallets, loginWithEmail, isBridgeFlow, isFullyConnected, }: {
6
+ export declare const getInitialView: ({ connectedWallets, loginWithEmail, isBridgeFlow, isFullyConnected, isMultiWalletEnabled, }: {
6
7
  connectedWallets: Wallet[];
7
8
  loginWithEmail: boolean;
8
9
  isBridgeFlow: boolean;
9
10
  isFullyConnected: boolean;
11
+ isMultiWalletEnabled: boolean;
10
12
  }) => ViewType;
13
+ export declare const setDynamicContextSessionSettings: () => void;
14
+ export declare const setWagmiSessionSettings: () => void;
15
+ export declare const isDynamicContextSessionSettingExpired: () => boolean;
16
+ export declare const isWagmiSessionSettingExpired: () => boolean;