@dynamic-labs/sdk-react-core 4.59.2 → 4.60.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/package.cjs +4 -3
  3. package/package.js +4 -3
  4. package/package.json +15 -14
  5. package/src/index.cjs +6 -4
  6. package/src/index.d.ts +1 -1
  7. package/src/index.js +3 -2
  8. package/src/lib/context/ViewContext/types/index.d.ts +1 -1
  9. package/src/lib/events/embeddedWallet.d.ts +15 -3
  10. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +2 -1
  11. package/src/lib/layout/DynamicAuthLayout/Header/header.js +2 -1
  12. package/src/lib/shared/assets/{warning-circle-orange.cjs → error-circle-x.cjs} +12 -15
  13. package/src/lib/shared/assets/{warning-circle-orange.js → error-circle-x.js} +12 -15
  14. package/src/lib/shared/assets/index.d.ts +2 -1
  15. package/src/lib/shared/assets/setup-password-terms-illustration.cjs +83 -0
  16. package/src/lib/shared/assets/setup-password-terms-illustration.js +59 -0
  17. package/src/lib/shared/types/dynamicHandlers.d.ts +64 -0
  18. package/src/lib/shared/utils/functions/chain/getChainIcon.cjs +1 -0
  19. package/src/lib/shared/utils/functions/chain/getChainIcon.js +2 -1
  20. package/src/lib/styles/index.shadow.cjs +1 -1
  21. package/src/lib/styles/index.shadow.js +1 -1
  22. package/src/lib/utils/hooks/index.d.ts +4 -0
  23. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs +27 -9
  24. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.d.ts +3 -2
  25. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.js +27 -9
  26. package/src/lib/utils/hooks/useGetWalletPassword/index.d.ts +2 -0
  27. package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.cjs +130 -0
  28. package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.d.ts +6 -0
  29. package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.js +126 -0
  30. package/src/lib/utils/hooks/usePromptWalletUnlock/index.d.ts +2 -0
  31. package/src/lib/utils/hooks/usePromptWalletUnlock/usePromptWalletUnlock.cjs +144 -0
  32. package/src/lib/utils/hooks/usePromptWalletUnlock/usePromptWalletUnlock.d.ts +5 -0
  33. package/src/lib/utils/hooks/usePromptWalletUnlock/usePromptWalletUnlock.js +140 -0
  34. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +15 -15
  35. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +15 -15
  36. package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.cjs +25 -25
  37. package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.d.ts +3 -0
  38. package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.js +26 -26
  39. package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.cjs +1 -1
  40. package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.js +1 -1
  41. package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.cjs +1 -1
  42. package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.js +1 -1
  43. package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.cjs +1 -1
  44. package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.js +1 -1
  45. package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.cjs +1 -1
  46. package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.js +1 -1
  47. package/src/lib/utils/hooks/useWalletUnlock/index.d.ts +2 -0
  48. package/src/lib/utils/hooks/useWalletUnlock/useWalletUnlock.d.ts +15 -0
  49. package/src/lib/views/NoAccess/NoAccess.cjs +1 -1
  50. package/src/lib/views/NoAccess/NoAccess.js +1 -1
  51. package/src/lib/views/{SetupPasswordForWalletCreationView/SetupPasswordForWalletCreationView.cjs → UnlockWalletView/UnlockWalletView.cjs} +49 -13
  52. package/src/lib/views/UnlockWalletView/UnlockWalletView.d.ts +6 -0
  53. package/src/lib/views/{SetupPasswordForWalletCreationView/SetupPasswordForWalletCreationView.js → UnlockWalletView/UnlockWalletView.js} +49 -13
  54. package/src/lib/views/UnlockWalletView/index.d.ts +2 -0
  55. package/src/lib/views/index.d.ts +3 -3
  56. package/src/lib/views/viewToComponentMap.cjs +3 -3
  57. package/src/lib/views/viewToComponentMap.d.ts +1 -1
  58. package/src/lib/views/viewToComponentMap.js +3 -3
  59. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +1 -1
  60. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +1 -1
  61. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.cjs +43 -43
  62. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.js +43 -43
  63. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/MfaSection/MfaSection.cjs +33 -19
  64. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/MfaSection/MfaSection.js +33 -19
  65. package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/EnterPasswordView.cjs +71 -0
  66. package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/EnterPasswordView.d.ts +9 -0
  67. package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/EnterPasswordView.js +67 -0
  68. package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/index.d.ts +2 -0
  69. package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.cjs +7 -15
  70. package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.d.ts +0 -1
  71. package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.js +7 -15
  72. package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.cjs +10 -4
  73. package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.d.ts +1 -1
  74. package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.js +10 -4
  75. package/src/lib/widgets/DynamicWidget/views/SetupPasswordView/SetupPasswordView.cjs +15 -11
  76. package/src/lib/widgets/DynamicWidget/views/SetupPasswordView/SetupPasswordView.js +15 -11
  77. package/src/lib/widgets/DynamicWidget/views/index.d.ts +1 -0
  78. package/src/lib/views/SetupPasswordForWalletCreationView/SetupPasswordForWalletCreationView.d.ts +0 -2
  79. package/src/lib/views/SetupPasswordForWalletCreationView/index.d.ts +0 -1
@@ -0,0 +1,144 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
+ var React = require('react');
8
+ var utils = require('@dynamic-labs/utils');
9
+ require('../../../context/DynamicContext/DynamicContext.cjs');
10
+ require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
11
+ require('@dynamic-labs/iconic');
12
+ require('@dynamic-labs/wallet-connector-core');
13
+ require('react/jsx-runtime');
14
+ var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
15
+ require('../../../shared/logger.cjs');
16
+ require('@dynamic-labs/wallet-book');
17
+ require('../../constants/colors.cjs');
18
+ require('../../constants/values.cjs');
19
+ require('@dynamic-labs/sdk-api-core');
20
+ require('../../../shared/consts/index.cjs');
21
+ var dynamicEvents = require('../../../events/dynamicEvents.cjs');
22
+ require('../../../context/CaptchaContext/CaptchaContext.cjs');
23
+ require('../../../context/ErrorContext/ErrorContext.cjs');
24
+ require('@dynamic-labs/multi-wallet');
25
+ require('react-international-phone');
26
+ require('../../../store/state/nonce/nonce.cjs');
27
+ require('@dynamic-labs-sdk/client/core');
28
+ require('../../../client/client.cjs');
29
+ require('@dynamic-labs-sdk/client');
30
+ require('../../../config/ApiEndpoint.cjs');
31
+ require('@dynamic-labs/locale');
32
+ require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
33
+ require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
34
+ require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
35
+ require('../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.cjs');
36
+ require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
37
+ require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
38
+ require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
39
+ require('../../../store/state/authMode/authMode.cjs');
40
+ require('../../../context/VerificationContext/VerificationContext.cjs');
41
+ require('react-dom');
42
+ require('../../functions/compareChains/compareChains.cjs');
43
+ require('../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
44
+ require('../../../context/ThemeContext/ThemeContext.cjs');
45
+ require('../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
46
+ require('bs58');
47
+ require('@dynamic-labs/types');
48
+ require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
49
+ require('../../../context/LoadingContext/LoadingContext.cjs');
50
+ require('../../../context/WalletContext/WalletContext.cjs');
51
+ require('../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
52
+ require('yup');
53
+ require('../../../context/MockContext/MockContext.cjs');
54
+ require('../../../views/CollectUserDataView/useFields.cjs');
55
+ require('../../../context/FieldsStateContext/FieldsStateContext.cjs');
56
+ require('../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
57
+ require('@dynamic-labs/rpc-providers');
58
+ require('../../../store/state/walletOptions/walletOptions.cjs');
59
+ require('react-i18next');
60
+ require('../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
61
+ require('../../../components/Alert/Alert.cjs');
62
+ require('../../../components/ShadowDOM/ShadowDOM.cjs');
63
+ require('../../../components/IconButton/IconButton.cjs');
64
+ require('../../../components/InlineWidget/InlineWidget.cjs');
65
+ require('../../../components/Input/Input.cjs');
66
+ require('../../../components/IsBrowser/IsBrowser.cjs');
67
+ require('../../../components/MenuList/Dropdown/Dropdown.cjs');
68
+ require('../../../components/OverlayCard/OverlayCard.cjs');
69
+ require('../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
70
+ require('../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
71
+ require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
72
+ require('../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
73
+ require('../../../components/Popper/Popper/Popper.cjs');
74
+ require('../../../components/Popper/PopperContext/PopperContext.cjs');
75
+ require('react-focus-lock');
76
+ require('qrcode');
77
+ require('formik');
78
+ require('../useSubdomainCheck/useSubdomainCheck.cjs');
79
+ require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
80
+ require('../useWalletBackup/useWalletBackup.cjs');
81
+ require('../useWalletBackup/types.cjs');
82
+ require('../useWalletBackup/cloudProviders.cjs');
83
+ require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
84
+ require('../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
85
+ require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
86
+ require('@hcaptcha/react-hcaptcha');
87
+ require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
88
+ require('../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
89
+ require('../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
90
+ require('../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
91
+ require('../../../context/FooterAnimationContext/index.cjs');
92
+ require('../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
93
+ require('../../../context/PasskeyContext/PasskeyContext.cjs');
94
+ require('../../../context/OnrampContext/OnrampContext.cjs');
95
+ require('../../../store/state/sendBalances.cjs');
96
+ require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
97
+ require('../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
98
+ require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
99
+ require('../../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
100
+ require('../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
101
+ require('../../../widgets/DynamicWidget/views/CryptoComOnramp/CryptoComOnramp.cjs');
102
+ require('../../../../index.cjs');
103
+ require('../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
104
+ require('../../../store/state/tokenBalances.cjs');
105
+ require('../../../store/state/multichainBalances.cjs');
106
+ require('../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
107
+ var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
108
+
109
+ const usePromptWalletUnlock = () => {
110
+ const { setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
111
+ const { pushView } = ViewContext.useViewContext();
112
+ const promptWalletUnlock = React.useCallback((_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ accountAddress, chainName, }) {
113
+ const deferred = new utils.DeferredPromise();
114
+ setShowAuthFlow(true, { ignoreIfIsEmbeddedWidget: false });
115
+ pushView('unlock-wallet', { accountAddress, chainName });
116
+ const passwordProvidedHandler = (payload) => {
117
+ if (payload.accountAddress === accountAddress &&
118
+ payload.chainName === chainName) {
119
+ deferred.resolve(payload.password);
120
+ }
121
+ };
122
+ dynamicEvents.dynamicEvents.on('walletUnlockPasswordProvided', passwordProvidedHandler);
123
+ const cancelledHandler = (payload) => {
124
+ if (payload.accountAddress === accountAddress &&
125
+ payload.chainName === chainName) {
126
+ deferred.resolve(undefined);
127
+ }
128
+ };
129
+ dynamicEvents.dynamicEvents.on('walletUnlockCancelled', cancelledHandler);
130
+ const authFlowCloseHandler = () => {
131
+ deferred.resolve(undefined);
132
+ };
133
+ dynamicEvents.dynamicEvents.on('authFlowClose', authFlowCloseHandler);
134
+ deferred.promise.finally(() => {
135
+ dynamicEvents.dynamicEvents.off('walletUnlockPasswordProvided', passwordProvidedHandler);
136
+ dynamicEvents.dynamicEvents.off('walletUnlockCancelled', cancelledHandler);
137
+ dynamicEvents.dynamicEvents.off('authFlowClose', authFlowCloseHandler);
138
+ });
139
+ return deferred.promise;
140
+ }), [setShowAuthFlow, pushView]);
141
+ return promptWalletUnlock;
142
+ };
143
+
144
+ exports.usePromptWalletUnlock = usePromptWalletUnlock;
@@ -0,0 +1,5 @@
1
+ export type PromptWalletUnlockProps = {
2
+ accountAddress: string;
3
+ chainName: string;
4
+ };
5
+ export declare const usePromptWalletUnlock: () => ({ accountAddress, chainName, }: PromptWalletUnlockProps) => Promise<string | undefined>;
@@ -0,0 +1,140 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
+ import { useCallback } from 'react';
4
+ import { DeferredPromise } from '@dynamic-labs/utils';
5
+ import '../../../context/DynamicContext/DynamicContext.js';
6
+ import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
7
+ import '@dynamic-labs/iconic';
8
+ import '@dynamic-labs/wallet-connector-core';
9
+ import 'react/jsx-runtime';
10
+ import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
11
+ import '../../../shared/logger.js';
12
+ import '@dynamic-labs/wallet-book';
13
+ import '../../constants/colors.js';
14
+ import '../../constants/values.js';
15
+ import '@dynamic-labs/sdk-api-core';
16
+ import '../../../shared/consts/index.js';
17
+ import { dynamicEvents } from '../../../events/dynamicEvents.js';
18
+ import '../../../context/CaptchaContext/CaptchaContext.js';
19
+ import '../../../context/ErrorContext/ErrorContext.js';
20
+ import '@dynamic-labs/multi-wallet';
21
+ import 'react-international-phone';
22
+ import '../../../store/state/nonce/nonce.js';
23
+ import '@dynamic-labs-sdk/client/core';
24
+ import '../../../client/client.js';
25
+ import '@dynamic-labs-sdk/client';
26
+ import '../../../config/ApiEndpoint.js';
27
+ import '@dynamic-labs/locale';
28
+ import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
29
+ import '../../../store/state/primaryWalletId/primaryWalletId.js';
30
+ import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
31
+ import '../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.js';
32
+ import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
33
+ import '../../../context/AccountExistsContext/AccountExistsContext.js';
34
+ import '../../../context/UserWalletsContext/UserWalletsContext.js';
35
+ import '../../../store/state/authMode/authMode.js';
36
+ import '../../../context/VerificationContext/VerificationContext.js';
37
+ import 'react-dom';
38
+ import '../../functions/compareChains/compareChains.js';
39
+ import '../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
40
+ import '../../../context/ThemeContext/ThemeContext.js';
41
+ import '../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
42
+ import 'bs58';
43
+ import '@dynamic-labs/types';
44
+ import '../../../context/SocialRedirectContext/SocialRedirectContext.js';
45
+ import '../../../context/LoadingContext/LoadingContext.js';
46
+ import '../../../context/WalletContext/WalletContext.js';
47
+ import '../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
48
+ import 'yup';
49
+ import '../../../context/MockContext/MockContext.js';
50
+ import '../../../views/CollectUserDataView/useFields.js';
51
+ import '../../../context/FieldsStateContext/FieldsStateContext.js';
52
+ import '../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
53
+ import '@dynamic-labs/rpc-providers';
54
+ import '../../../store/state/walletOptions/walletOptions.js';
55
+ import 'react-i18next';
56
+ import '../../../components/Accordion/components/AccordionItem/AccordionItem.js';
57
+ import '../../../components/Alert/Alert.js';
58
+ import '../../../components/ShadowDOM/ShadowDOM.js';
59
+ import '../../../components/IconButton/IconButton.js';
60
+ import '../../../components/InlineWidget/InlineWidget.js';
61
+ import '../../../components/Input/Input.js';
62
+ import '../../../components/IsBrowser/IsBrowser.js';
63
+ import '../../../components/MenuList/Dropdown/Dropdown.js';
64
+ import '../../../components/OverlayCard/OverlayCard.js';
65
+ import '../../../components/Transition/ZoomTransition/ZoomTransition.js';
66
+ import '../../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
67
+ import '../../../components/Transition/OpacityTransition/OpacityTransition.js';
68
+ import '../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
69
+ import '../../../components/Popper/Popper/Popper.js';
70
+ import '../../../components/Popper/PopperContext/PopperContext.js';
71
+ import 'react-focus-lock';
72
+ import 'qrcode';
73
+ import 'formik';
74
+ import '../useSubdomainCheck/useSubdomainCheck.js';
75
+ import '../../../context/WalletGroupContext/WalletGroupContext.js';
76
+ import '../useWalletBackup/useWalletBackup.js';
77
+ import '../useWalletBackup/types.js';
78
+ import '../useWalletBackup/cloudProviders.js';
79
+ import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
80
+ import '../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
81
+ import '../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
82
+ import '@hcaptcha/react-hcaptcha';
83
+ import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
84
+ import '../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.js';
85
+ import '../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
86
+ import '../../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
87
+ import '../../../context/FooterAnimationContext/index.js';
88
+ import '../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.js';
89
+ import '../../../context/PasskeyContext/PasskeyContext.js';
90
+ import '../../../context/OnrampContext/OnrampContext.js';
91
+ import '../../../store/state/sendBalances.js';
92
+ import '../../../store/state/connectorsInitializing/connectorsInitializing.js';
93
+ import '../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
94
+ import '../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
95
+ import '../../../views/TransactionConfirmationView/TransactionConfirmationView.js';
96
+ import '../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js';
97
+ import '../../../widgets/DynamicWidget/views/CryptoComOnramp/CryptoComOnramp.js';
98
+ import '../../../../index.js';
99
+ import '../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
100
+ import '../../../store/state/tokenBalances.js';
101
+ import '../../../store/state/multichainBalances.js';
102
+ import '../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
103
+ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
104
+
105
+ const usePromptWalletUnlock = () => {
106
+ const { setShowAuthFlow } = useInternalDynamicContext();
107
+ const { pushView } = useViewContext();
108
+ const promptWalletUnlock = useCallback((_a) => __awaiter(void 0, [_a], void 0, function* ({ accountAddress, chainName, }) {
109
+ const deferred = new DeferredPromise();
110
+ setShowAuthFlow(true, { ignoreIfIsEmbeddedWidget: false });
111
+ pushView('unlock-wallet', { accountAddress, chainName });
112
+ const passwordProvidedHandler = (payload) => {
113
+ if (payload.accountAddress === accountAddress &&
114
+ payload.chainName === chainName) {
115
+ deferred.resolve(payload.password);
116
+ }
117
+ };
118
+ dynamicEvents.on('walletUnlockPasswordProvided', passwordProvidedHandler);
119
+ const cancelledHandler = (payload) => {
120
+ if (payload.accountAddress === accountAddress &&
121
+ payload.chainName === chainName) {
122
+ deferred.resolve(undefined);
123
+ }
124
+ };
125
+ dynamicEvents.on('walletUnlockCancelled', cancelledHandler);
126
+ const authFlowCloseHandler = () => {
127
+ deferred.resolve(undefined);
128
+ };
129
+ dynamicEvents.on('authFlowClose', authFlowCloseHandler);
130
+ deferred.promise.finally(() => {
131
+ dynamicEvents.off('walletUnlockPasswordProvided', passwordProvidedHandler);
132
+ dynamicEvents.off('walletUnlockCancelled', cancelledHandler);
133
+ dynamicEvents.off('authFlowClose', authFlowCloseHandler);
134
+ });
135
+ return deferred.promise;
136
+ }), [setShowAuthFlow, pushView]);
137
+ return promptWalletUnlock;
138
+ };
139
+
140
+ export { usePromptWalletUnlock };
@@ -4,37 +4,37 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
7
- require('@dynamic-labs-sdk/client/core');
8
- require('@dynamic-labs/sdk-api-core');
9
- require('../../../client/client.cjs');
10
7
  require('react');
11
- require('@dynamic-labs-sdk/client');
12
- require('../../../config/ApiEndpoint.cjs');
8
+ require('../../../events/dynamicEvents.cjs');
9
+ require('../../../../../_virtual/_tslib.cjs');
10
+ require('@dynamic-labs/utils');
11
+ require('../../../context/DynamicContext/DynamicContext.cjs');
12
+ require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
13
13
  require('@dynamic-labs/iconic');
14
14
  require('react/jsx-runtime');
15
15
  require('../../../context/ViewContext/ViewContext.cjs');
16
16
  require('../../../shared/logger.cjs');
17
17
  require('@dynamic-labs/wallet-book');
18
- require('@dynamic-labs/utils');
19
18
  require('../../constants/colors.cjs');
20
19
  require('../../constants/values.cjs');
20
+ require('@dynamic-labs/sdk-api-core');
21
21
  require('../../../shared/consts/index.cjs');
22
- require('../../../../../_virtual/_tslib.cjs');
22
+ require('../../../store/state/authMode/authMode.cjs');
23
+ require('../../../context/CaptchaContext/CaptchaContext.cjs');
24
+ require('../../../context/ErrorContext/ErrorContext.cjs');
23
25
  require('@dynamic-labs/multi-wallet');
24
26
  require('react-international-phone');
25
27
  require('../../../store/state/nonce/nonce.cjs');
28
+ require('@dynamic-labs-sdk/client/core');
29
+ require('../../../client/client.cjs');
30
+ require('@dynamic-labs-sdk/client');
31
+ require('../../../config/ApiEndpoint.cjs');
32
+ var isCookieEnabled = require('../../../client/extension/functions/isCookieEnabled/isCookieEnabled.cjs');
26
33
  require('@dynamic-labs/locale');
27
34
  var dynamicContextProps = require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
28
35
  require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
29
36
  require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
30
37
  require('../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.cjs');
31
- require('../../../events/dynamicEvents.cjs');
32
- var isCookieEnabled = require('../../../client/extension/functions/isCookieEnabled/isCookieEnabled.cjs');
33
- require('../../../context/DynamicContext/DynamicContext.cjs');
34
- require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
35
- require('../../../store/state/authMode/authMode.cjs');
36
- require('../../../context/CaptchaContext/CaptchaContext.cjs');
37
- require('../../../context/ErrorContext/ErrorContext.cjs');
38
38
  require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
39
39
  require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
40
40
  require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
@@ -79,6 +79,7 @@ require('qrcode');
79
79
  require('formik');
80
80
  require('../useSubdomainCheck/useSubdomainCheck.cjs');
81
81
  require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
82
+ var useDynamicWaas = require('../useDynamicWaas/useDynamicWaas.cjs');
82
83
  require('../useWalletBackup/useWalletBackup.cjs');
83
84
  require('../useWalletBackup/types.cjs');
84
85
  require('../useWalletBackup/cloudProviders.cjs');
@@ -94,7 +95,6 @@ require('../../../context/FooterAnimationContext/index.cjs');
94
95
  require('../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
95
96
  require('../../../context/PasskeyContext/PasskeyContext.cjs');
96
97
  require('../../../context/OnrampContext/OnrampContext.cjs');
97
- var useDynamicWaas = require('../useDynamicWaas/useDynamicWaas.cjs');
98
98
  require('../../../store/state/sendBalances.cjs');
99
99
  require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
100
100
  require('../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
@@ -1,36 +1,36 @@
1
1
  'use client'
2
2
  import { isSessionKeyCompatibleWalletConnector, isDynamicWaasConnector } from '@dynamic-labs/wallet-connector-core';
3
- import '@dynamic-labs-sdk/client/core';
4
- import '@dynamic-labs/sdk-api-core';
5
- import '../../../client/client.js';
6
3
  import 'react';
7
- import '@dynamic-labs-sdk/client';
8
- import '../../../config/ApiEndpoint.js';
4
+ import '../../../events/dynamicEvents.js';
5
+ import '../../../../../_virtual/_tslib.js';
6
+ import '@dynamic-labs/utils';
7
+ import '../../../context/DynamicContext/DynamicContext.js';
8
+ import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
9
9
  import '@dynamic-labs/iconic';
10
10
  import 'react/jsx-runtime';
11
11
  import '../../../context/ViewContext/ViewContext.js';
12
12
  import '../../../shared/logger.js';
13
13
  import '@dynamic-labs/wallet-book';
14
- import '@dynamic-labs/utils';
15
14
  import '../../constants/colors.js';
16
15
  import '../../constants/values.js';
16
+ import '@dynamic-labs/sdk-api-core';
17
17
  import '../../../shared/consts/index.js';
18
- import '../../../../../_virtual/_tslib.js';
18
+ import '../../../store/state/authMode/authMode.js';
19
+ import '../../../context/CaptchaContext/CaptchaContext.js';
20
+ import '../../../context/ErrorContext/ErrorContext.js';
19
21
  import '@dynamic-labs/multi-wallet';
20
22
  import 'react-international-phone';
21
23
  import '../../../store/state/nonce/nonce.js';
24
+ import '@dynamic-labs-sdk/client/core';
25
+ import '../../../client/client.js';
26
+ import '@dynamic-labs-sdk/client';
27
+ import '../../../config/ApiEndpoint.js';
28
+ import { isCookieEnabled } from '../../../client/extension/functions/isCookieEnabled/isCookieEnabled.js';
22
29
  import '@dynamic-labs/locale';
23
30
  import { useApiBaseUrl } from '../../../store/state/dynamicContextProps/dynamicContextProps.js';
24
31
  import '../../../store/state/primaryWalletId/primaryWalletId.js';
25
32
  import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
26
33
  import '../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.js';
27
- import '../../../events/dynamicEvents.js';
28
- import { isCookieEnabled } from '../../../client/extension/functions/isCookieEnabled/isCookieEnabled.js';
29
- import '../../../context/DynamicContext/DynamicContext.js';
30
- import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
31
- import '../../../store/state/authMode/authMode.js';
32
- import '../../../context/CaptchaContext/CaptchaContext.js';
33
- import '../../../context/ErrorContext/ErrorContext.js';
34
34
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
35
35
  import '../../../context/AccountExistsContext/AccountExistsContext.js';
36
36
  import '../../../context/UserWalletsContext/UserWalletsContext.js';
@@ -75,6 +75,7 @@ import 'qrcode';
75
75
  import 'formik';
76
76
  import '../useSubdomainCheck/useSubdomainCheck.js';
77
77
  import '../../../context/WalletGroupContext/WalletGroupContext.js';
78
+ import { configWaasWalletConnector } from '../useDynamicWaas/useDynamicWaas.js';
78
79
  import '../useWalletBackup/useWalletBackup.js';
79
80
  import '../useWalletBackup/types.js';
80
81
  import '../useWalletBackup/cloudProviders.js';
@@ -90,7 +91,6 @@ import '../../../context/FooterAnimationContext/index.js';
90
91
  import '../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.js';
91
92
  import '../../../context/PasskeyContext/PasskeyContext.js';
92
93
  import '../../../context/OnrampContext/OnrampContext.js';
93
- import { configWaasWalletConnector } from '../useDynamicWaas/useDynamicWaas.js';
94
94
  import '../../../store/state/sendBalances.js';
95
95
  import '../../../store/state/connectorsInitializing/connectorsInitializing.js';
96
96
  import '../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
@@ -13,7 +13,7 @@ require('../../../config/ApiEndpoint.cjs');
13
13
  require('@dynamic-labs/iconic');
14
14
  require('@dynamic-labs/wallet-connector-core');
15
15
  require('react/jsx-runtime');
16
- var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
16
+ require('../../../context/ViewContext/ViewContext.cjs');
17
17
  require('../../../shared/logger.cjs');
18
18
  require('@dynamic-labs/wallet-book');
19
19
  require('@dynamic-labs/utils');
@@ -28,7 +28,7 @@ require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
28
28
  require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
29
29
  require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
30
30
  require('../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.cjs');
31
- var dynamicEvents = require('../../../events/dynamicEvents.cjs');
31
+ require('../../../events/dynamicEvents.cjs');
32
32
  var useProjectSettings = require('../../../client/extension/projectSettings/useProjectSettings/useProjectSettings.cjs');
33
33
  require('../../../context/DynamicContext/DynamicContext.cjs');
34
34
  require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
@@ -85,7 +85,7 @@ require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
85
85
  require('../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
86
86
  require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
87
87
  require('@hcaptcha/react-hcaptcha');
88
- require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
88
+ var DynamicWidgetContext = require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
89
89
  require('../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
90
90
  require('../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
91
91
  require('../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
@@ -114,6 +114,9 @@ const PASSWORD_SETUP_CANCELLED_ERROR = 'Password setup cancelled';
114
114
  * This hook checks if passcodeRequired is enabled in project settings,
115
115
  * and if so, prompts the user to set up a password before creating wallets.
116
116
  *
117
+ * If a custom setupWalletPassword handler is provided via DynamicContextProvider settings,
118
+ * it will be used instead of the default UI modal.
119
+ *
117
120
  * @returns An object containing:
118
121
  * - isPasscodeRequired: boolean indicating if password is required
119
122
  * - setupPassword: function that shows the password setup flow and returns the password
@@ -121,35 +124,32 @@ const PASSWORD_SETUP_CANCELLED_ERROR = 'Password setup cancelled';
121
124
  const useSetupPassword = () => {
122
125
  var _a, _b;
123
126
  const projectSettings = useProjectSettings.useProjectSettings();
124
- const { setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
125
- const { pushView } = ViewContext.useViewContext();
127
+ const { setDynamicWidgetView } = DynamicWidgetContext.useWidgetContext();
128
+ const { handlers } = useInternalDynamicContext.useInternalDynamicContext();
129
+ // Use ref pattern to avoid callback recreation when handlers change
130
+ const setupWalletPasswordHandlerRef = React.useRef(handlers === null || handlers === void 0 ? void 0 : handlers.setupWalletPassword);
131
+ setupWalletPasswordHandlerRef.current = handlers === null || handlers === void 0 ? void 0 : handlers.setupWalletPassword;
126
132
  const isPasscodeRequired = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.waas) === null || _a === void 0 ? void 0 : _a.passcodeRequired) !== null && _b !== void 0 ? _b : false;
127
133
  const setupPassword = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
128
134
  if (!isPasscodeRequired) {
129
135
  return undefined;
130
136
  }
131
- setShowAuthFlow(true, {
132
- ignoreIfIsEmbeddedWidget: false,
133
- performMultiWalletChecks: false,
134
- });
135
- pushView('setup-password-for-wallet-creation');
137
+ // If custom handler provided, use it
138
+ if (setupWalletPasswordHandlerRef.current) {
139
+ return setupWalletPasswordHandlerRef.current();
140
+ }
141
+ // Otherwise use default UI prompt
136
142
  return new Promise((resolve, reject) => {
137
- const handleComplete = (password) => {
138
- cleanup();
139
- resolve(password);
140
- };
141
- const handleCancelled = () => {
142
- cleanup();
143
- reject(new Error(PASSWORD_SETUP_CANCELLED_ERROR));
144
- };
145
- const cleanup = () => {
146
- dynamicEvents.dynamicEvents.off('embeddedWalletPasswordSetupCompleted', handleComplete);
147
- dynamicEvents.dynamicEvents.off('embeddedWalletPasswordSetupCancelled', handleCancelled);
148
- };
149
- dynamicEvents.dynamicEvents.once('embeddedWalletPasswordSetupCompleted', handleComplete);
150
- dynamicEvents.dynamicEvents.once('embeddedWalletPasswordSetupCancelled', handleCancelled);
143
+ setDynamicWidgetView('setup-password', {
144
+ onCancel: () => {
145
+ reject(new Error(PASSWORD_SETUP_CANCELLED_ERROR));
146
+ },
147
+ onComplete: (password) => {
148
+ resolve(password);
149
+ },
150
+ });
151
151
  });
152
- }), [isPasscodeRequired, setShowAuthFlow, pushView]);
152
+ }), [isPasscodeRequired, setDynamicWidgetView]);
153
153
  return { isPasscodeRequired, setupPassword };
154
154
  };
155
155
 
@@ -5,6 +5,9 @@ export declare const PASSWORD_SETUP_CANCELLED_ERROR = "Password setup cancelled"
5
5
  * This hook checks if passcodeRequired is enabled in project settings,
6
6
  * and if so, prompts the user to set up a password before creating wallets.
7
7
  *
8
+ * If a custom setupWalletPassword handler is provided via DynamicContextProvider settings,
9
+ * it will be used instead of the default UI modal.
10
+ *
8
11
  * @returns An object containing:
9
12
  * - isPasscodeRequired: boolean indicating if password is required
10
13
  * - setupPassword: function that shows the password setup flow and returns the password
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { useCallback } from 'react';
3
+ import { useRef, useCallback } from 'react';
4
4
  import '@dynamic-labs-sdk/client/core';
5
5
  import '@dynamic-labs/sdk-api-core';
6
6
  import '../../../client/client.js';
@@ -9,7 +9,7 @@ import '../../../config/ApiEndpoint.js';
9
9
  import '@dynamic-labs/iconic';
10
10
  import '@dynamic-labs/wallet-connector-core';
11
11
  import 'react/jsx-runtime';
12
- import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
12
+ import '../../../context/ViewContext/ViewContext.js';
13
13
  import '../../../shared/logger.js';
14
14
  import '@dynamic-labs/wallet-book';
15
15
  import '@dynamic-labs/utils';
@@ -24,7 +24,7 @@ import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
24
24
  import '../../../store/state/primaryWalletId/primaryWalletId.js';
25
25
  import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
26
26
  import '../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.js';
27
- import { dynamicEvents } from '../../../events/dynamicEvents.js';
27
+ import '../../../events/dynamicEvents.js';
28
28
  import { useProjectSettings } from '../../../client/extension/projectSettings/useProjectSettings/useProjectSettings.js';
29
29
  import '../../../context/DynamicContext/DynamicContext.js';
30
30
  import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
@@ -81,7 +81,7 @@ import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
81
81
  import '../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
82
82
  import '../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
83
83
  import '@hcaptcha/react-hcaptcha';
84
- import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
84
+ import { useWidgetContext } from '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
85
85
  import '../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.js';
86
86
  import '../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
87
87
  import '../../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
@@ -110,6 +110,9 @@ const PASSWORD_SETUP_CANCELLED_ERROR = 'Password setup cancelled';
110
110
  * This hook checks if passcodeRequired is enabled in project settings,
111
111
  * and if so, prompts the user to set up a password before creating wallets.
112
112
  *
113
+ * If a custom setupWalletPassword handler is provided via DynamicContextProvider settings,
114
+ * it will be used instead of the default UI modal.
115
+ *
113
116
  * @returns An object containing:
114
117
  * - isPasscodeRequired: boolean indicating if password is required
115
118
  * - setupPassword: function that shows the password setup flow and returns the password
@@ -117,35 +120,32 @@ const PASSWORD_SETUP_CANCELLED_ERROR = 'Password setup cancelled';
117
120
  const useSetupPassword = () => {
118
121
  var _a, _b;
119
122
  const projectSettings = useProjectSettings();
120
- const { setShowAuthFlow } = useInternalDynamicContext();
121
- const { pushView } = useViewContext();
123
+ const { setDynamicWidgetView } = useWidgetContext();
124
+ const { handlers } = useInternalDynamicContext();
125
+ // Use ref pattern to avoid callback recreation when handlers change
126
+ const setupWalletPasswordHandlerRef = useRef(handlers === null || handlers === void 0 ? void 0 : handlers.setupWalletPassword);
127
+ setupWalletPasswordHandlerRef.current = handlers === null || handlers === void 0 ? void 0 : handlers.setupWalletPassword;
122
128
  const isPasscodeRequired = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.waas) === null || _a === void 0 ? void 0 : _a.passcodeRequired) !== null && _b !== void 0 ? _b : false;
123
129
  const setupPassword = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
124
130
  if (!isPasscodeRequired) {
125
131
  return undefined;
126
132
  }
127
- setShowAuthFlow(true, {
128
- ignoreIfIsEmbeddedWidget: false,
129
- performMultiWalletChecks: false,
130
- });
131
- pushView('setup-password-for-wallet-creation');
133
+ // If custom handler provided, use it
134
+ if (setupWalletPasswordHandlerRef.current) {
135
+ return setupWalletPasswordHandlerRef.current();
136
+ }
137
+ // Otherwise use default UI prompt
132
138
  return new Promise((resolve, reject) => {
133
- const handleComplete = (password) => {
134
- cleanup();
135
- resolve(password);
136
- };
137
- const handleCancelled = () => {
138
- cleanup();
139
- reject(new Error(PASSWORD_SETUP_CANCELLED_ERROR));
140
- };
141
- const cleanup = () => {
142
- dynamicEvents.off('embeddedWalletPasswordSetupCompleted', handleComplete);
143
- dynamicEvents.off('embeddedWalletPasswordSetupCancelled', handleCancelled);
144
- };
145
- dynamicEvents.once('embeddedWalletPasswordSetupCompleted', handleComplete);
146
- dynamicEvents.once('embeddedWalletPasswordSetupCancelled', handleCancelled);
139
+ setDynamicWidgetView('setup-password', {
140
+ onCancel: () => {
141
+ reject(new Error(PASSWORD_SETUP_CANCELLED_ERROR));
142
+ },
143
+ onComplete: (password) => {
144
+ resolve(password);
145
+ },
146
+ });
147
147
  });
148
- }), [isPasscodeRequired, setShowAuthFlow, pushView]);
148
+ }), [isPasscodeRequired, setDynamicWidgetView]);
149
149
  return { isPasscodeRequired, setupPassword };
150
150
  };
151
151