@dynamic-labs/sdk-react-core 4.9.2 → 4.9.3

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 (37) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +12 -12
  5. package/src/index.cjs +1 -1
  6. package/src/index.js +1 -1
  7. package/src/lib/components/TosAndPp/TosAndPp.cjs +3 -1
  8. package/src/lib/components/TosAndPp/TosAndPp.js +3 -1
  9. package/src/lib/context/ErrorContext/hooks/useErrorText/useErrorText.cjs +1 -0
  10. package/src/lib/context/ErrorContext/hooks/useErrorText/useErrorText.js +1 -0
  11. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +1 -0
  12. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +1 -0
  13. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -0
  14. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -0
  15. package/src/lib/locale/en/translation.cjs +1 -0
  16. package/src/lib/locale/en/translation.d.ts +1 -0
  17. package/src/lib/locale/en/translation.js +1 -0
  18. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -0
  19. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +1 -0
  20. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +1 -0
  21. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +1 -0
  22. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +1 -0
  23. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +1 -0
  24. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +8 -8
  25. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +8 -8
  26. package/src/lib/utils/hooks/useValidateSession/handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.cjs +1 -3
  27. package/src/lib/utils/hooks/useValidateSession/handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.d.ts +1 -2
  28. package/src/lib/utils/hooks/useValidateSession/handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.js +1 -3
  29. package/src/lib/utils/hooks/useValidateSession/handleUserDataOutOfSync/handleUserDataOutOfSync.cjs +3 -5
  30. package/src/lib/utils/hooks/useValidateSession/handleUserDataOutOfSync/handleUserDataOutOfSync.d.ts +1 -2
  31. package/src/lib/utils/hooks/useValidateSession/handleUserDataOutOfSync/handleUserDataOutOfSync.js +3 -5
  32. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.cjs +37 -0
  33. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.d.ts +9 -0
  34. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.js +33 -0
  35. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/index.d.ts +1 -0
  36. package/src/lib/utils/hooks/useValidateSession/useValidateSession.cjs +2 -0
  37. package/src/lib/utils/hooks/useValidateSession/useValidateSession.js +2 -0
package/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
1
 
2
+ ### [4.9.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.9.2...v4.9.3) (2025-03-14)
3
+
4
+
5
+ ### Features
6
+
7
+ * allow adding extra text to ToS and PP footer using custom css ([#8290](https://github.com/dynamic-labs/dynamic-auth/issues/8290)) ([0f6eb26](https://github.com/dynamic-labs/dynamic-auth/commit/0f6eb2666ea93a32360710ba5ac14eac53e07e2d))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * log out if there is a mismatch in user and wallet state ([#8300](https://github.com/dynamic-labs/dynamic-auth/issues/8300)) ([82ec2ad](https://github.com/dynamic-labs/dynamic-auth/commit/82ec2add1682a576d00dfe13aa1b9cccecf96688))
13
+ * sol sponsored tx for v3 ([#8288](https://github.com/dynamic-labs/dynamic-auth/issues/8288)) ([c466fba](https://github.com/dynamic-labs/dynamic-auth/commit/c466fba417d39641631e29104ec9c156dfdf7647))
14
+ * v3 existing wallet could not log in again ([#8282](https://github.com/dynamic-labs/dynamic-auth/issues/8282)) ([c2d68ad](https://github.com/dynamic-labs/dynamic-auth/commit/c2d68adf575fcce371e438076184ef590f346c9f))
15
+
2
16
  ### [4.9.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.9.1...v4.9.2) (2025-03-12)
3
17
 
4
18
 
package/package.cjs CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.9.2";
6
+ var version = "4.9.3";
7
7
  var dependencies = {
8
- "@dynamic-labs/sdk-api-core": "0.0.640",
8
+ "@dynamic-labs/sdk-api-core": "0.0.642",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
10
10
  "@thumbmarkjs/thumbmarkjs": "0.16.0",
11
11
  "country-list": "2.3.0",
package/package.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client'
2
- var version = "4.9.2";
2
+ var version = "4.9.3";
3
3
  var dependencies = {
4
- "@dynamic-labs/sdk-api-core": "0.0.640",
4
+ "@dynamic-labs/sdk-api-core": "0.0.642",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
6
6
  "@thumbmarkjs/thumbmarkjs": "0.16.0",
7
7
  "country-list": "2.3.0",
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "4.9.2",
3
+ "version": "4.9.3",
4
4
  "dependencies": {
5
- "@dynamic-labs/sdk-api-core": "0.0.640",
5
+ "@dynamic-labs/sdk-api-core": "0.0.642",
6
6
  "@hcaptcha/react-hcaptcha": "1.4.4",
7
7
  "@thumbmarkjs/thumbmarkjs": "0.16.0",
8
8
  "country-list": "2.3.0",
@@ -14,16 +14,16 @@
14
14
  "yup": "0.32.11",
15
15
  "react-international-phone": "4.2.5",
16
16
  "bs58": "5.0.0",
17
- "@dynamic-labs/assert-package-version": "4.9.2",
18
- "@dynamic-labs/iconic": "4.9.2",
19
- "@dynamic-labs/logger": "4.9.2",
20
- "@dynamic-labs/multi-wallet": "4.9.2",
21
- "@dynamic-labs/rpc-providers": "4.9.2",
22
- "@dynamic-labs/store": "4.9.2",
23
- "@dynamic-labs/types": "4.9.2",
24
- "@dynamic-labs/utils": "4.9.2",
25
- "@dynamic-labs/wallet-book": "4.9.2",
26
- "@dynamic-labs/wallet-connector-core": "4.9.2",
17
+ "@dynamic-labs/assert-package-version": "4.9.3",
18
+ "@dynamic-labs/iconic": "4.9.3",
19
+ "@dynamic-labs/logger": "4.9.3",
20
+ "@dynamic-labs/multi-wallet": "4.9.3",
21
+ "@dynamic-labs/rpc-providers": "4.9.3",
22
+ "@dynamic-labs/store": "4.9.3",
23
+ "@dynamic-labs/types": "4.9.3",
24
+ "@dynamic-labs/utils": "4.9.3",
25
+ "@dynamic-labs/wallet-book": "4.9.3",
26
+ "@dynamic-labs/wallet-connector-core": "4.9.3",
27
27
  "eventemitter3": "5.0.1"
28
28
  },
29
29
  "devDependencies": {
package/src/index.cjs CHANGED
@@ -91,10 +91,10 @@ require('./lib/context/UserFieldEditorContext/UserFieldEditorContext.cjs');
91
91
  require('./lib/context/FieldsStateContext/FieldsStateContext.cjs');
92
92
  var useRpcProviders = require('./lib/utils/hooks/useRpcProviders/useRpcProviders.cjs');
93
93
  require('./lib/store/state/loadingAndLifecycle.cjs');
94
+ require('./lib/store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
94
95
  require('./lib/context/AccessDeniedContext/AccessDeniedContext.cjs');
95
96
  require('./lib/context/AccountExistsContext/AccountExistsContext.cjs');
96
97
  require('./lib/context/ErrorContext/ErrorContext.cjs');
97
- require('./lib/store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
98
98
  require('@dynamic-labs/wallet-book');
99
99
  require('./lib/store/state/walletOptions/walletOptions.cjs');
100
100
  var useWalletItemActions = require('./lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs');
package/src/index.js CHANGED
@@ -87,10 +87,10 @@ import './lib/context/UserFieldEditorContext/UserFieldEditorContext.js';
87
87
  import './lib/context/FieldsStateContext/FieldsStateContext.js';
88
88
  export { useRpcProviders } from './lib/utils/hooks/useRpcProviders/useRpcProviders.js';
89
89
  import './lib/store/state/loadingAndLifecycle.js';
90
+ import './lib/store/state/connectedWalletsInfo/connectedWalletsInfo.js';
90
91
  import './lib/context/AccessDeniedContext/AccessDeniedContext.js';
91
92
  import './lib/context/AccountExistsContext/AccountExistsContext.js';
92
93
  import './lib/context/ErrorContext/ErrorContext.js';
93
- import './lib/store/state/connectedWalletsInfo/connectedWalletsInfo.js';
94
94
  import '@dynamic-labs/wallet-book';
95
95
  import './lib/store/state/walletOptions/walletOptions.js';
96
96
  export { useWalletItemActions } from './lib/utils/hooks/useWalletItemActions/useWalletItemActions.js';
@@ -114,7 +114,9 @@ const TosAndPp = () => {
114
114
  }
115
115
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [termsOfServiceUrl && jsxRuntime.jsx(jsxRuntime.Fragment, { children: "\u00A0&\u00A0" }), jsxRuntime.jsx("a", { className: 'tos-and-pp__link', href: privacyPolicyUrl, target: '_blank', rel: 'noreferrer', children: "Privacy Policy" })] }));
116
116
  };
117
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [(privacyPolicyUrl || termsOfServiceUrl) && (jsxRuntime.jsxs(Typography.Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', children: ["By ", connectionType, ", you agree to", jsxRuntime.jsx("br", {}), "our\u00A0", renderTermsOfServices(), renderPrivacyPolicy(), "."] })), customTermsOfServices, customPrivacyPolicy] }));
117
+ const renderInjectedTextStart = () => (jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', id: 'custom-tos-and-pp-footer-start', "data-testid": 'custom-tos-and-pp-footer-start' }));
118
+ const renderInjectedTextEnd = () => (jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', id: 'custom-tos-and-pp-footer-end', "data-testid": 'custom-tos-and-pp-footer-end' }));
119
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [renderInjectedTextStart(), (privacyPolicyUrl || termsOfServiceUrl) && (jsxRuntime.jsxs(Typography.Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', children: ["By ", connectionType, ", you agree to", jsxRuntime.jsx("br", {}), "our\u00A0", renderTermsOfServices(), renderPrivacyPolicy(), "."] })), customTermsOfServices, customPrivacyPolicy, renderInjectedTextEnd()] }));
118
120
  };
119
121
 
120
122
  exports.TosAndPp = TosAndPp;
@@ -110,7 +110,9 @@ const TosAndPp = () => {
110
110
  }
111
111
  return (jsxs(Fragment, { children: [termsOfServiceUrl && jsx(Fragment, { children: "\u00A0&\u00A0" }), jsx("a", { className: 'tos-and-pp__link', href: privacyPolicyUrl, target: '_blank', rel: 'noreferrer', children: "Privacy Policy" })] }));
112
112
  };
113
- return (jsxs(Fragment, { children: [(privacyPolicyUrl || termsOfServiceUrl) && (jsxs(Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', children: ["By ", connectionType, ", you agree to", jsx("br", {}), "our\u00A0", renderTermsOfServices(), renderPrivacyPolicy(), "."] })), customTermsOfServices, customPrivacyPolicy] }));
113
+ const renderInjectedTextStart = () => (jsx(Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', id: 'custom-tos-and-pp-footer-start', "data-testid": 'custom-tos-and-pp-footer-start' }));
114
+ const renderInjectedTextEnd = () => (jsx(Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', id: 'custom-tos-and-pp-footer-end', "data-testid": 'custom-tos-and-pp-footer-end' }));
115
+ return (jsxs(Fragment, { children: [renderInjectedTextStart(), (privacyPolicyUrl || termsOfServiceUrl) && (jsxs(Typography, { variant: 'body_small', weight: 'regular', className: 'tos-and-pp__text', children: ["By ", connectionType, ", you agree to", jsx("br", {}), "our\u00A0", renderTermsOfServices(), renderPrivacyPolicy(), "."] })), customTermsOfServices, customPrivacyPolicy, renderInjectedTextEnd()] }));
114
116
  };
115
117
 
116
118
  export { TosAndPp };
@@ -19,6 +19,7 @@ const mapErrorCodeToTranslation = {
19
19
  [utils.ErrorCode.ACCOUNT_ALREADY_LINKED_TO_DIFFERENT_PROFILE]: 'dyn_error.account_already_linked_to_different_profile',
20
20
  [utils.ErrorCode.CONNECTION_REJECTED]: 'dyn_error.connection_rejected',
21
21
  [utils.ErrorCode.MISSING_PUBLIC_ADDRESS]: 'dyn_error.missing_public_address',
22
+ [utils.ErrorCode.CONNECTION_PROPOSAL_EXPIRED]: 'dyn_error.connection_proposal_expired',
22
23
  };
23
24
  /** A hook that listens to the error context and returns a translated value */
24
25
  const useErrorText = () => {
@@ -15,6 +15,7 @@ const mapErrorCodeToTranslation = {
15
15
  [ErrorCode.ACCOUNT_ALREADY_LINKED_TO_DIFFERENT_PROFILE]: 'dyn_error.account_already_linked_to_different_profile',
16
16
  [ErrorCode.CONNECTION_REJECTED]: 'dyn_error.connection_rejected',
17
17
  [ErrorCode.MISSING_PUBLIC_ADDRESS]: 'dyn_error.missing_public_address',
18
+ [ErrorCode.CONNECTION_PROPOSAL_EXPIRED]: 'dyn_error.connection_proposal_expired',
18
19
  };
19
20
  /** A hook that listens to the error context and returns a translated value */
20
21
  const useErrorText = () => {
@@ -54,6 +54,7 @@ require('../FieldsStateContext/FieldsStateContext.cjs');
54
54
  require('../UserFieldEditorContext/UserFieldEditorContext.cjs');
55
55
  require('@dynamic-labs/rpc-providers');
56
56
  require('../../store/state/loadingAndLifecycle.cjs');
57
+ require('../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
57
58
  require('../../store/state/walletOptions/walletOptions.cjs');
58
59
  require('react-i18next');
59
60
  require('../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
@@ -50,6 +50,7 @@ import '../FieldsStateContext/FieldsStateContext.js';
50
50
  import '../UserFieldEditorContext/UserFieldEditorContext.js';
51
51
  import '@dynamic-labs/rpc-providers';
52
52
  import '../../store/state/loadingAndLifecycle.js';
53
+ import '../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
53
54
  import '../../store/state/walletOptions/walletOptions.js';
54
55
  import 'react-i18next';
55
56
  import '../../components/Accordion/components/AccordionItem/AccordionItem.js';
@@ -54,6 +54,7 @@ require('../UserFieldEditorContext/UserFieldEditorContext.cjs');
54
54
  require('@dynamic-labs/rpc-providers');
55
55
  require('../../store/state/loadingAndLifecycle.cjs');
56
56
  require('../../store/state/dynamicContextProps/dynamicContextProps.cjs');
57
+ require('../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
57
58
  require('../../store/state/walletOptions/walletOptions.cjs');
58
59
  require('react-i18next');
59
60
  require('../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
@@ -50,6 +50,7 @@ import '../UserFieldEditorContext/UserFieldEditorContext.js';
50
50
  import '@dynamic-labs/rpc-providers';
51
51
  import '../../store/state/loadingAndLifecycle.js';
52
52
  import '../../store/state/dynamicContextProps/dynamicContextProps.js';
53
+ import '../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
53
54
  import '../../store/state/walletOptions/walletOptions.js';
54
55
  import 'react-i18next';
55
56
  import '../../components/Accordion/components/AccordionItem/AccordionItem.js';
@@ -2479,6 +2479,7 @@ const translation = {
2479
2479
  account_already_linked_to_different_profile: 'This social account is already linked to a different profile.',
2480
2480
  connection_rejected: 'Connection rejected. Please try again.',
2481
2481
  missing_public_address: 'Connection cancelled. Please try again',
2482
+ connection_proposal_expired: 'Connection proposal expired. Please try again.',
2482
2483
  },
2483
2484
  };
2484
2485
 
@@ -2475,5 +2475,6 @@ export declare const translation: {
2475
2475
  account_already_linked_to_different_profile: string;
2476
2476
  connection_rejected: string;
2477
2477
  missing_public_address: string;
2478
+ connection_proposal_expired: string;
2478
2479
  };
2479
2480
  };
@@ -2475,6 +2475,7 @@ const translation = {
2475
2475
  account_already_linked_to_different_profile: 'This social account is already linked to a different profile.',
2476
2476
  connection_rejected: 'Connection rejected. Please try again.',
2477
2477
  missing_public_address: 'Connection cancelled. Please try again',
2478
+ connection_proposal_expired: 'Connection proposal expired. Please try again.',
2478
2479
  },
2479
2480
  };
2480
2481
 
@@ -57,6 +57,7 @@ require('../../../../context/FieldsStateContext/FieldsStateContext.cjs');
57
57
  require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
58
58
  require('@dynamic-labs/rpc-providers');
59
59
  require('../../../../store/state/loadingAndLifecycle.cjs');
60
+ require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
60
61
  require('../../../../store/state/walletOptions/walletOptions.cjs');
61
62
  require('react-i18next');
62
63
  require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
@@ -53,6 +53,7 @@ import '../../../../context/FieldsStateContext/FieldsStateContext.js';
53
53
  import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
54
54
  import '@dynamic-labs/rpc-providers';
55
55
  import '../../../../store/state/loadingAndLifecycle.js';
56
+ import '../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
56
57
  import '../../../../store/state/walletOptions/walletOptions.js';
57
58
  import 'react-i18next';
58
59
  import '../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
@@ -57,6 +57,7 @@ require('../../../../context/FieldsStateContext/FieldsStateContext.cjs');
57
57
  require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
58
58
  require('@dynamic-labs/rpc-providers');
59
59
  require('../../../../store/state/loadingAndLifecycle.cjs');
60
+ require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
60
61
  require('../../../../store/state/walletOptions/walletOptions.cjs');
61
62
  require('react-i18next');
62
63
  require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
@@ -53,6 +53,7 @@ import '../../../../context/FieldsStateContext/FieldsStateContext.js';
53
53
  import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
54
54
  import '@dynamic-labs/rpc-providers';
55
55
  import '../../../../store/state/loadingAndLifecycle.js';
56
+ import '../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
56
57
  import '../../../../store/state/walletOptions/walletOptions.js';
57
58
  import 'react-i18next';
58
59
  import '../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
@@ -51,6 +51,7 @@ require('../../../../context/FieldsStateContext/FieldsStateContext.cjs');
51
51
  require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
52
52
  require('@dynamic-labs/rpc-providers');
53
53
  require('../../../../store/state/loadingAndLifecycle.cjs');
54
+ require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
54
55
  require('../../../../store/state/walletOptions/walletOptions.cjs');
55
56
  require('react-i18next');
56
57
  require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
@@ -47,6 +47,7 @@ import '../../../../context/FieldsStateContext/FieldsStateContext.js';
47
47
  import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
48
48
  import '@dynamic-labs/rpc-providers';
49
49
  import '../../../../store/state/loadingAndLifecycle.js';
50
+ import '../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
50
51
  import '../../../../store/state/walletOptions/walletOptions.js';
51
52
  import 'react-i18next';
52
53
  import '../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
@@ -162,23 +162,23 @@ const useEmbeddedWallet = () => {
162
162
  const shouldPromptForKeyExport = React.useCallback(() => { var _a; return Boolean((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _a === void 0 ? void 0 : _a.promptForKeyExport); }, [projectSettings]);
163
163
  const embeddedWalletSettingVersion = React.useCallback(() => { var _a; return (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _a === void 0 ? void 0 : _a.defaultWalletVersion; }, [projectSettings]);
164
164
  const shouldAutoCreateEmbeddedWallet = React.useCallback((verifiedUser) => {
165
- var _a, _b, _c, _d, _e, _f;
165
+ var _a, _b, _c, _d, _e;
166
166
  const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled.isTurnkeyEnabled(projectSettings);
167
- const defaultWalletVersion = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _a === void 0 ? void 0 : _a.defaultWalletVersion;
168
167
  const hasPrimaryWallet = primaryWalletId.getPrimaryWalletId();
169
- if (defaultWalletVersion === sdkApiCore.EmbeddedWalletVersionEnum.V3) {
168
+ if (embeddedWalletSettingVersion() === sdkApiCore.EmbeddedWalletVersionEnum.V3 &&
169
+ !verifiedUser) {
170
170
  return false;
171
171
  }
172
172
  if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
173
173
  return false;
174
174
  }
175
- // Turnkey specific rules
175
+ // Turnkey and WAAS specific rules
176
176
  if (verifiedUser) {
177
177
  const primaryEmbeddedChain = findPrimaryEmbeddedChain.findPrimaryEmbeddedChain(projectSettings);
178
- const embeddedWalletVerifiedCredentialId = (_b = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(verifiedUser, [
178
+ const embeddedWalletVerifiedCredentialId = (_a = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(verifiedUser, [
179
179
  primaryEmbeddedChain,
180
- ])) === null || _b === void 0 ? void 0 : _b.id;
181
- const AAWalletCredentialId = (_d = (_c = verifiedUser.verifiedCredentials) === null || _c === void 0 ? void 0 : _c.find((vc) => vc.walletProvider === sdkApiCore.WalletProviderEnum.SmartContractWallet)) === null || _d === void 0 ? void 0 : _d.id;
180
+ ])) === null || _a === void 0 ? void 0 : _a.id;
181
+ const AAWalletCredentialId = (_c = (_b = verifiedUser.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find((vc) => vc.walletProvider === sdkApiCore.WalletProviderEnum.SmartContractWallet)) === null || _c === void 0 ? void 0 : _c.id;
182
182
  const targetPrimaryWalletId = AAWalletCredentialId
183
183
  ? AAWalletCredentialId
184
184
  : embeddedWalletVerifiedCredentialId;
@@ -188,7 +188,7 @@ const useEmbeddedWallet = () => {
188
188
  }
189
189
  }
190
190
  if (isTurnkeyEnabled.isTurnkeyEnabled(projectSettings) &&
191
- !((_f = (_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _e === void 0 ? void 0 : _e.embeddedWallets) === null || _f === void 0 ? void 0 : _f.automaticEmbeddedWalletCreation)) {
191
+ !((_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _d === void 0 ? void 0 : _d.embeddedWallets) === null || _e === void 0 ? void 0 : _e.automaticEmbeddedWalletCreation)) {
192
192
  return false;
193
193
  }
194
194
  return true;
@@ -158,23 +158,23 @@ const useEmbeddedWallet = () => {
158
158
  const shouldPromptForKeyExport = useCallback(() => { var _a; return Boolean((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _a === void 0 ? void 0 : _a.promptForKeyExport); }, [projectSettings]);
159
159
  const embeddedWalletSettingVersion = useCallback(() => { var _a; return (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _a === void 0 ? void 0 : _a.defaultWalletVersion; }, [projectSettings]);
160
160
  const shouldAutoCreateEmbeddedWallet = useCallback((verifiedUser) => {
161
- var _a, _b, _c, _d, _e, _f;
161
+ var _a, _b, _c, _d, _e;
162
162
  const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled(projectSettings);
163
- const defaultWalletVersion = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _a === void 0 ? void 0 : _a.defaultWalletVersion;
164
163
  const hasPrimaryWallet = getPrimaryWalletId();
165
- if (defaultWalletVersion === EmbeddedWalletVersionEnum.V3) {
164
+ if (embeddedWalletSettingVersion() === EmbeddedWalletVersionEnum.V3 &&
165
+ !verifiedUser) {
166
166
  return false;
167
167
  }
168
168
  if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
169
169
  return false;
170
170
  }
171
- // Turnkey specific rules
171
+ // Turnkey and WAAS specific rules
172
172
  if (verifiedUser) {
173
173
  const primaryEmbeddedChain = findPrimaryEmbeddedChain(projectSettings);
174
- const embeddedWalletVerifiedCredentialId = (_b = findEmbeddedWalletFromVerifiedCredentials(verifiedUser, [
174
+ const embeddedWalletVerifiedCredentialId = (_a = findEmbeddedWalletFromVerifiedCredentials(verifiedUser, [
175
175
  primaryEmbeddedChain,
176
- ])) === null || _b === void 0 ? void 0 : _b.id;
177
- const AAWalletCredentialId = (_d = (_c = verifiedUser.verifiedCredentials) === null || _c === void 0 ? void 0 : _c.find((vc) => vc.walletProvider === WalletProviderEnum.SmartContractWallet)) === null || _d === void 0 ? void 0 : _d.id;
176
+ ])) === null || _a === void 0 ? void 0 : _a.id;
177
+ const AAWalletCredentialId = (_c = (_b = verifiedUser.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find((vc) => vc.walletProvider === WalletProviderEnum.SmartContractWallet)) === null || _c === void 0 ? void 0 : _c.id;
178
178
  const targetPrimaryWalletId = AAWalletCredentialId
179
179
  ? AAWalletCredentialId
180
180
  : embeddedWalletVerifiedCredentialId;
@@ -184,7 +184,7 @@ const useEmbeddedWallet = () => {
184
184
  }
185
185
  }
186
186
  if (isTurnkeyEnabled(projectSettings) &&
187
- !((_f = (_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _e === void 0 ? void 0 : _e.embeddedWallets) === null || _f === void 0 ? void 0 : _f.automaticEmbeddedWalletCreation)) {
187
+ !((_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _d === void 0 ? void 0 : _d.embeddedWallets) === null || _e === void 0 ? void 0 : _e.automaticEmbeddedWalletCreation)) {
188
188
  return false;
189
189
  }
190
190
  return true;
@@ -8,19 +8,17 @@ var dynamicContextProps = require('../../../../store/state/dynamicContextProps/d
8
8
 
9
9
  /**
10
10
  * Detects envId mismtach with store.
11
- * @returns true if there is no mismatch.
12
11
  */
13
12
  const handleStoreAndEnvironmentMismatch = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, }) {
14
13
  const storeEnvId = dynamicContextProps.getEnvironmentId();
15
14
  if (!storeEnvId || environmentId === storeEnvId) {
16
- return true;
15
+ return;
17
16
  }
18
17
  yield logout('store and environment are out of sync', {
19
18
  currentEnvId: environmentId,
20
19
  storedEnvId: storeEnvId,
21
20
  });
22
21
  dynamicContextProps.setEnvironmentId(environmentId);
23
- return false;
24
22
  });
25
23
 
26
24
  exports.handleStoreAndEnvironmentMismatch = handleStoreAndEnvironmentMismatch;
@@ -4,6 +4,5 @@ export type HandleStoreAndEnvironmentMismatchParams = {
4
4
  };
5
5
  /**
6
6
  * Detects envId mismtach with store.
7
- * @returns true if there is no mismatch.
8
7
  */
9
- export declare const handleStoreAndEnvironmentMismatch: ({ environmentId, logout, }: HandleStoreAndEnvironmentMismatchParams) => Promise<boolean>;
8
+ export declare const handleStoreAndEnvironmentMismatch: ({ environmentId, logout, }: HandleStoreAndEnvironmentMismatchParams) => Promise<void>;
@@ -4,19 +4,17 @@ import { getEnvironmentId, setEnvironmentId } from '../../../../store/state/dyna
4
4
 
5
5
  /**
6
6
  * Detects envId mismtach with store.
7
- * @returns true if there is no mismatch.
8
7
  */
9
8
  const handleStoreAndEnvironmentMismatch = (_a) => __awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, }) {
10
9
  const storeEnvId = getEnvironmentId();
11
10
  if (!storeEnvId || environmentId === storeEnvId) {
12
- return true;
11
+ return;
13
12
  }
14
13
  yield logout('store and environment are out of sync', {
15
14
  currentEnvId: environmentId,
16
15
  storedEnvId: storeEnvId,
17
16
  });
18
17
  setEnvironmentId(environmentId);
19
- return false;
20
18
  });
21
19
 
22
20
  export { handleStoreAndEnvironmentMismatch };
@@ -14,14 +14,13 @@ var getAuthToken = require('../../../functions/getAuthToken/getAuthToken.cjs');
14
14
 
15
15
  /**
16
16
  * Detects mismatch between user and auth token.
17
- * @returns true if there is no mismatch.
18
17
  */
19
18
  const handleUserDataOutOfSync = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, projectSettings, }) {
20
19
  const cookieEnabled = isCookieEnabled.isCookieEnabled(projectSettings);
21
20
  const authToken = getAuthToken.getAuthToken();
22
21
  const user$2 = user.getUser();
23
22
  if (authToken || !user$2) {
24
- return true;
23
+ return;
25
24
  }
26
25
  if (user$2 && !authToken && cookieEnabled) {
27
26
  try {
@@ -33,16 +32,15 @@ const handleUserDataOutOfSync = (_a) => _tslib.__awaiter(void 0, [_a], void 0, f
33
32
  authToken,
34
33
  user: user$2,
35
34
  });
36
- return false;
35
+ return;
37
36
  }
38
37
  }
39
- return true;
38
+ return;
40
39
  }
41
40
  yield logout('user data out of sync', {
42
41
  authToken,
43
42
  user: user$2,
44
43
  });
45
- return false;
46
44
  });
47
45
 
48
46
  exports.handleUserDataOutOfSync = handleUserDataOutOfSync;
@@ -6,6 +6,5 @@ export type HandleUserDataOutOfSyncParams = {
6
6
  };
7
7
  /**
8
8
  * Detects mismatch between user and auth token.
9
- * @returns true if there is no mismatch.
10
9
  */
11
- export declare const handleUserDataOutOfSync: ({ environmentId, logout, projectSettings, }: HandleUserDataOutOfSyncParams) => Promise<boolean>;
10
+ export declare const handleUserDataOutOfSync: ({ environmentId, logout, projectSettings, }: HandleUserDataOutOfSyncParams) => Promise<void>;
@@ -10,14 +10,13 @@ import { getAuthToken } from '../../../functions/getAuthToken/getAuthToken.js';
10
10
 
11
11
  /**
12
12
  * Detects mismatch between user and auth token.
13
- * @returns true if there is no mismatch.
14
13
  */
15
14
  const handleUserDataOutOfSync = (_a) => __awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, projectSettings, }) {
16
15
  const cookieEnabled = isCookieEnabled(projectSettings);
17
16
  const authToken = getAuthToken();
18
17
  const user = getUser();
19
18
  if (authToken || !user) {
20
- return true;
19
+ return;
21
20
  }
22
21
  if (user && !authToken && cookieEnabled) {
23
22
  try {
@@ -29,16 +28,15 @@ const handleUserDataOutOfSync = (_a) => __awaiter(void 0, [_a], void 0, function
29
28
  authToken,
30
29
  user,
31
30
  });
32
- return false;
31
+ return;
33
32
  }
34
33
  }
35
- return true;
34
+ return;
36
35
  }
37
36
  yield logout('user data out of sync', {
38
37
  authToken,
39
38
  user,
40
39
  });
41
- return false;
42
40
  });
43
41
 
44
42
  export { handleUserDataOutOfSync };
@@ -0,0 +1,37 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../../../_virtual/_tslib.cjs');
7
+ var user = require('../../../../store/state/user/user.cjs');
8
+ require('@dynamic-labs/utils');
9
+ require('../../../constants/values.cjs');
10
+ require('@dynamic-labs/sdk-api-core');
11
+ require('../../../../store/state/projectSettings/projectSettings.cjs');
12
+ var primaryWalletId = require('../../../../store/state/primaryWalletId/primaryWalletId.cjs');
13
+ var connectedWalletsInfo = require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
14
+
15
+ /**
16
+ * Detects mismatch between wallet info.
17
+ * If there is primary wallet id, but no user or connected wallets info,
18
+ * it means it's in a bad state and we should log out.
19
+ */
20
+ const handleWalletInfoOutOfSync = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ logout, }) {
21
+ const primaryWalletId$1 = primaryWalletId.getPrimaryWalletId();
22
+ if (!primaryWalletId$1) {
23
+ return;
24
+ }
25
+ const user$1 = user.getUser();
26
+ const connectedWallets = connectedWalletsInfo.getConnectedWalletsInfo();
27
+ if (user$1 || connectedWallets.length > 0) {
28
+ return;
29
+ }
30
+ yield logout('wallet info is out of sync', {
31
+ connectedWallets,
32
+ primaryWalletId: primaryWalletId$1,
33
+ user: user$1,
34
+ });
35
+ });
36
+
37
+ exports.handleWalletInfoOutOfSync = handleWalletInfoOutOfSync;
@@ -0,0 +1,9 @@
1
+ export type HandleWalletInfoOutOfSyncParams = {
2
+ logout: (reason: string, params: any) => Promise<void>;
3
+ };
4
+ /**
5
+ * Detects mismatch between wallet info.
6
+ * If there is primary wallet id, but no user or connected wallets info,
7
+ * it means it's in a bad state and we should log out.
8
+ */
9
+ export declare const handleWalletInfoOutOfSync: ({ logout, }: HandleWalletInfoOutOfSyncParams) => Promise<void>;
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../../_virtual/_tslib.js';
3
+ import { getUser } from '../../../../store/state/user/user.js';
4
+ import '@dynamic-labs/utils';
5
+ import '../../../constants/values.js';
6
+ import '@dynamic-labs/sdk-api-core';
7
+ import '../../../../store/state/projectSettings/projectSettings.js';
8
+ import { getPrimaryWalletId } from '../../../../store/state/primaryWalletId/primaryWalletId.js';
9
+ import { getConnectedWalletsInfo } from '../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
10
+
11
+ /**
12
+ * Detects mismatch between wallet info.
13
+ * If there is primary wallet id, but no user or connected wallets info,
14
+ * it means it's in a bad state and we should log out.
15
+ */
16
+ const handleWalletInfoOutOfSync = (_a) => __awaiter(void 0, [_a], void 0, function* ({ logout, }) {
17
+ const primaryWalletId = getPrimaryWalletId();
18
+ if (!primaryWalletId) {
19
+ return;
20
+ }
21
+ const user = getUser();
22
+ const connectedWallets = getConnectedWalletsInfo();
23
+ if (user || connectedWallets.length > 0) {
24
+ return;
25
+ }
26
+ yield logout('wallet info is out of sync', {
27
+ connectedWallets,
28
+ primaryWalletId,
29
+ user,
30
+ });
31
+ });
32
+
33
+ export { handleWalletInfoOutOfSync };
@@ -0,0 +1 @@
1
+ export * from './handleWalletInfoOutOfSync';
@@ -11,6 +11,7 @@ var useDynamicEvents = require('../events/useDynamicEvents/useDynamicEvents.cjs'
11
11
  var projectSettings = require('../../../store/state/projectSettings/projectSettings.cjs');
12
12
  var handleStoreAndEnvironmentMismatch = require('./handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.cjs');
13
13
  var handleUserDataOutOfSync = require('./handleUserDataOutOfSync/handleUserDataOutOfSync.cjs');
14
+ var handleWalletInfoOutOfSync = require('./handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.cjs');
14
15
 
15
16
  const useValidateSession = ({ environmentId, handleLogOut }) => {
16
17
  const didRunRef = React.useRef(false);
@@ -30,6 +31,7 @@ const useValidateSession = ({ environmentId, handleLogOut }) => {
30
31
  yield Promise.all([
31
32
  handleStoreAndEnvironmentMismatch.handleStoreAndEnvironmentMismatch(params),
32
33
  handleUserDataOutOfSync.handleUserDataOutOfSync(params),
34
+ handleWalletInfoOutOfSync.handleWalletInfoOutOfSync(params),
33
35
  ]);
34
36
  // Regardless of whether we logged out or not, session validation is now complete
35
37
  loadingAndLifecycle.setLoadingAndLifecycle({ sessionValidation: true });
@@ -7,6 +7,7 @@ import { useInternalDynamicEvents } from '../events/useDynamicEvents/useDynamicE
7
7
  import { useProjectSettings } from '../../../store/state/projectSettings/projectSettings.js';
8
8
  import { handleStoreAndEnvironmentMismatch } from './handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.js';
9
9
  import { handleUserDataOutOfSync } from './handleUserDataOutOfSync/handleUserDataOutOfSync.js';
10
+ import { handleWalletInfoOutOfSync } from './handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.js';
10
11
 
11
12
  const useValidateSession = ({ environmentId, handleLogOut }) => {
12
13
  const didRunRef = useRef(false);
@@ -26,6 +27,7 @@ const useValidateSession = ({ environmentId, handleLogOut }) => {
26
27
  yield Promise.all([
27
28
  handleStoreAndEnvironmentMismatch(params),
28
29
  handleUserDataOutOfSync(params),
30
+ handleWalletInfoOutOfSync(params),
29
31
  ]);
30
32
  // Regardless of whether we logged out or not, session validation is now complete
31
33
  setLoadingAndLifecycle({ sessionValidation: true });