@dynamic-labs/sdk-react-core 4.60.0 → 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 (56) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.cjs +4 -4
  3. package/package.js +4 -4
  4. package/package.json +15 -15
  5. package/src/index.cjs +4 -4
  6. package/src/index.d.ts +1 -1
  7. package/src/index.js +2 -2
  8. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +2 -1
  9. package/src/lib/layout/DynamicAuthLayout/Header/header.js +2 -1
  10. package/src/lib/shared/assets/error-circle-x.cjs +54 -0
  11. package/src/lib/shared/assets/error-circle-x.js +30 -0
  12. package/src/lib/shared/assets/index.d.ts +1 -0
  13. package/src/lib/shared/types/dynamicHandlers.d.ts +64 -0
  14. package/src/lib/shared/utils/functions/chain/getChainIcon.cjs +1 -0
  15. package/src/lib/shared/utils/functions/chain/getChainIcon.js +2 -1
  16. package/src/lib/styles/index.shadow.cjs +1 -1
  17. package/src/lib/styles/index.shadow.js +1 -1
  18. package/src/lib/utils/hooks/index.d.ts +1 -1
  19. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs +14 -13
  20. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.d.ts +3 -7
  21. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.js +14 -13
  22. package/src/lib/utils/hooks/useGetWalletPassword/index.d.ts +2 -0
  23. package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.cjs +130 -0
  24. package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.d.ts +6 -0
  25. package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.js +126 -0
  26. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +1 -1
  27. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +1 -1
  28. package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.cjs +87 -0
  29. package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.d.ts +3 -0
  30. package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.js +88 -1
  31. package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.cjs +1 -1
  32. package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.js +1 -1
  33. package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.cjs +1 -1
  34. package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.js +1 -1
  35. package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.cjs +1 -1
  36. package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.js +1 -1
  37. package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.cjs +1 -1
  38. package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.js +1 -1
  39. package/src/lib/views/UnlockWalletView/UnlockWalletView.cjs +32 -1
  40. package/src/lib/views/UnlockWalletView/UnlockWalletView.js +32 -1
  41. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.cjs +2 -2
  42. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.js +2 -2
  43. package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/EnterPasswordView.cjs +15 -5
  44. package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/EnterPasswordView.js +15 -5
  45. package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.cjs +7 -15
  46. package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.d.ts +0 -1
  47. package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.js +7 -15
  48. package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.cjs +9 -2
  49. package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.d.ts +1 -1
  50. package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.js +9 -2
  51. package/src/lib/widgets/DynamicWidget/views/SetupPasswordView/SetupPasswordView.cjs +2 -5
  52. package/src/lib/widgets/DynamicWidget/views/SetupPasswordView/SetupPasswordView.js +2 -5
  53. package/src/lib/utils/hooks/useGetPasswordForSigning/index.d.ts +0 -2
  54. package/src/lib/utils/hooks/useGetPasswordForSigning/useGetPasswordForSigning.cjs +0 -16
  55. package/src/lib/utils/hooks/useGetPasswordForSigning/useGetPasswordForSigning.d.ts +0 -5
  56. package/src/lib/utils/hooks/useGetPasswordForSigning/useGetPasswordForSigning.js +0 -12
@@ -103,4 +103,4 @@ export { useSetupPassword, PASSWORD_SETUP_CANCELLED_ERROR, } from './useSetupPas
103
103
  export { useWalletUnlock } from './useWalletUnlock';
104
104
  export type { UseWalletUnlockReturn, WalletUnlockState, } from './useWalletUnlock';
105
105
  export { usePromptWalletUnlock } from './usePromptWalletUnlock';
106
- export { useGetPasswordForSigning } from './useGetPasswordForSigning';
106
+ export { useGetWalletPassword } from './useGetWalletPassword';
@@ -86,6 +86,13 @@ require('qrcode');
86
86
  require('formik');
87
87
  require('../useSubdomainCheck/useSubdomainCheck.cjs');
88
88
  require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
89
+ var apiUrl = require('../../constants/waas/apiUrl.cjs');
90
+ var useClientSessionKeys = require('../useClientSessionKeys/useClientSessionKeys.cjs');
91
+ var useGetMfaToken = require('../useGetMfaToken/useGetMfaToken.cjs');
92
+ var useGetWalletPassword = require('../useGetWalletPassword/useGetWalletPassword.cjs');
93
+ var useRefreshAuth = require('../useRefreshAuth/useRefreshAuth.cjs');
94
+ var constants = require('./constants.cjs');
95
+ var normalizeWalletRequirements = require('./normalizeWalletRequirements.cjs');
89
96
  require('../useWalletBackup/useWalletBackup.cjs');
90
97
  require('../useWalletBackup/types.cjs');
91
98
  require('../useWalletBackup/cloudProviders.cjs');
@@ -101,13 +108,6 @@ require('../../../context/FooterAnimationContext/index.cjs');
101
108
  require('../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
102
109
  require('../../../context/PasskeyContext/PasskeyContext.cjs');
103
110
  require('../../../context/OnrampContext/OnrampContext.cjs');
104
- var useRefreshAuth = require('../useRefreshAuth/useRefreshAuth.cjs');
105
- var apiUrl = require('../../constants/waas/apiUrl.cjs');
106
- var useClientSessionKeys = require('../useClientSessionKeys/useClientSessionKeys.cjs');
107
- var useGetMfaToken = require('../useGetMfaToken/useGetMfaToken.cjs');
108
- var useGetPasswordForSigning = require('../useGetPasswordForSigning/useGetPasswordForSigning.cjs');
109
- var constants = require('./constants.cjs');
110
- var normalizeWalletRequirements = require('./normalizeWalletRequirements.cjs');
111
111
  require('../../../store/state/sendBalances.cjs');
112
112
  require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
113
113
  require('../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
@@ -123,7 +123,7 @@ require('../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
123
123
  var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
124
124
 
125
125
  const dynamicWaasKey = 'dynamicwaas';
126
- const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, relayUrl, baseClientKeysharesRelayApiUrl, authMode = 'header', getSignedSessionId, getMfaToken, getPasswordForSigning, svmGasSponsorshipEnabled = false, }) => {
126
+ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, relayUrl, baseClientKeysharesRelayApiUrl, authMode = 'header', getSignedSessionId, getMfaToken, getWalletPassword, svmGasSponsorshipEnabled = false, }) => {
127
127
  var _a;
128
128
  walletConnector.setEnvironmentId(environmentId);
129
129
  walletConnector.setBaseApiUrl((_a = (apiBaseUrl || apiUrl.DEFAULT_WAAS_API_URL)) === null || _a === void 0 ? void 0 : _a.replace('/api/v0', ''));
@@ -140,8 +140,8 @@ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl,
140
140
  walletConnector.setGetMfaTokenFunction(getMfaToken);
141
141
  walletConnector.setBaseClientKeysharesRelayApiUrl(baseClientKeysharesRelayApiUrl);
142
142
  // Set password provider for locked wallets
143
- if (getPasswordForSigning) {
144
- walletConnector.setGetPasswordForSigningFunction(getPasswordForSigning);
143
+ if (getWalletPassword) {
144
+ walletConnector.setGetWalletPasswordFunction(getWalletPassword);
145
145
  }
146
146
  // Sync SVM gas sponsorship setting for SOL connectors
147
147
  const isSolConnector = walletConnector.connectedChain === 'SOL';
@@ -175,7 +175,7 @@ const useDynamicWaas = () => {
175
175
  const authToken = getMinAuthToken.getMinAuthToken();
176
176
  const { getSignedSessionId } = useClientSessionKeys.useClientSessionKeys();
177
177
  const getMfaToken = useGetMfaToken.useGetMfaToken();
178
- const getPasswordForSigning = useGetPasswordForSigning.useGetPasswordForSigning();
178
+ const getWalletPassword = useGetWalletPassword.useGetWalletPassword();
179
179
  const isCookieAuthEnabled = projectSettings && isCookieEnabled.isCookieEnabled();
180
180
  const isUpgrading = React.useRef(false);
181
181
  const [recoveredWallets, setRecoveredWallets] = React.useState(() => new Set());
@@ -197,8 +197,8 @@ const useDynamicWaas = () => {
197
197
  baseClientKeysharesRelayApiUrl,
198
198
  environmentId,
199
199
  getMfaToken,
200
- getPasswordForSigning,
201
200
  getSignedSessionId,
201
+ getWalletPassword,
202
202
  relayUrl: relayUrl !== null && relayUrl !== void 0 ? relayUrl : '',
203
203
  svmGasSponsorshipEnabled,
204
204
  walletConnector,
@@ -211,7 +211,7 @@ const useDynamicWaas = () => {
211
211
  environmentId,
212
212
  apiBaseUrl,
213
213
  getMfaToken,
214
- getPasswordForSigning,
214
+ getWalletPassword,
215
215
  getSignedSessionId,
216
216
  relayUrl,
217
217
  baseClientKeysharesRelayApiUrl,
@@ -293,6 +293,7 @@ const useDynamicWaas = () => {
293
293
  const signedSessionId = yield getSignedSessionId();
294
294
  yield client.getWallet({
295
295
  accountAddress: wallet.address,
296
+ authToken: getMinAuthToken.getMinAuthToken(),
296
297
  signedSessionId,
297
298
  walletOperation: 'RECOVER',
298
299
  });
@@ -1,5 +1,5 @@
1
1
  import { ChainEnum, MFAAction } from '@dynamic-labs/sdk-api-core';
2
- import { IDynamicWaasConnector, Wallet, WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
2
+ import { GetWalletPasswordFn, IDynamicWaasConnector, Wallet, WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
3
3
  /**
4
4
  * Type for wallet creation requirements
5
5
  * For BTC: includes bitcoinConfig with addressType
@@ -12,11 +12,7 @@ export type WalletCreationRequirement = {
12
12
  network?: string;
13
13
  };
14
14
  };
15
- export type GetPasswordForSigningFn = (props: {
16
- accountAddress: string;
17
- chainName: string;
18
- }) => Promise<string | undefined>;
19
- export declare const configWaasWalletConnector: ({ walletConnector, environmentId, apiBaseUrl, relayUrl, baseClientKeysharesRelayApiUrl, authMode, getSignedSessionId, getMfaToken, getPasswordForSigning, svmGasSponsorshipEnabled, }: {
15
+ export declare const configWaasWalletConnector: ({ walletConnector, environmentId, apiBaseUrl, relayUrl, baseClientKeysharesRelayApiUrl, authMode, getSignedSessionId, getMfaToken, getWalletPassword, svmGasSponsorshipEnabled, }: {
20
16
  walletConnector: IDynamicWaasConnector;
21
17
  environmentId: string;
22
18
  apiBaseUrl: string;
@@ -27,7 +23,7 @@ export declare const configWaasWalletConnector: ({ walletConnector, environmentI
27
23
  getMfaToken: (props?: {
28
24
  mfaAction?: MFAAction;
29
25
  }) => Promise<string | undefined>;
30
- getPasswordForSigning?: GetPasswordForSigningFn;
26
+ getWalletPassword?: GetWalletPasswordFn;
31
27
  svmGasSponsorshipEnabled?: boolean;
32
28
  }) => IDynamicWaasConnector;
33
29
  export declare const useDynamicWaas: () => {
@@ -82,6 +82,13 @@ import 'qrcode';
82
82
  import 'formik';
83
83
  import '../useSubdomainCheck/useSubdomainCheck.js';
84
84
  import '../../../context/WalletGroupContext/WalletGroupContext.js';
85
+ import { DEFAULT_WAAS_API_URL } from '../../constants/waas/apiUrl.js';
86
+ import { useClientSessionKeys } from '../useClientSessionKeys/useClientSessionKeys.js';
87
+ import { useGetMfaToken } from '../useGetMfaToken/useGetMfaToken.js';
88
+ import { useGetWalletPassword } from '../useGetWalletPassword/useGetWalletPassword.js';
89
+ import { useRefreshAuth } from '../useRefreshAuth/useRefreshAuth.js';
90
+ import { DYNAMIC_WAAS_CONNECTOR_NOT_FOUND_ERROR, NO_ENABLED_CHAINS_ERROR, INVALID_CHAINS_ERROR, WALLET_CREATION_FAILED_ERROR } from './constants.js';
91
+ import { normalizeWalletRequirements } from './normalizeWalletRequirements.js';
85
92
  import '../useWalletBackup/useWalletBackup.js';
86
93
  import '../useWalletBackup/types.js';
87
94
  import '../useWalletBackup/cloudProviders.js';
@@ -97,13 +104,6 @@ import '../../../context/FooterAnimationContext/index.js';
97
104
  import '../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.js';
98
105
  import '../../../context/PasskeyContext/PasskeyContext.js';
99
106
  import '../../../context/OnrampContext/OnrampContext.js';
100
- import { useRefreshAuth } from '../useRefreshAuth/useRefreshAuth.js';
101
- import { DEFAULT_WAAS_API_URL } from '../../constants/waas/apiUrl.js';
102
- import { useClientSessionKeys } from '../useClientSessionKeys/useClientSessionKeys.js';
103
- import { useGetMfaToken } from '../useGetMfaToken/useGetMfaToken.js';
104
- import { useGetPasswordForSigning } from '../useGetPasswordForSigning/useGetPasswordForSigning.js';
105
- import { DYNAMIC_WAAS_CONNECTOR_NOT_FOUND_ERROR, NO_ENABLED_CHAINS_ERROR, INVALID_CHAINS_ERROR, WALLET_CREATION_FAILED_ERROR } from './constants.js';
106
- import { normalizeWalletRequirements } from './normalizeWalletRequirements.js';
107
107
  import '../../../store/state/sendBalances.js';
108
108
  import '../../../store/state/connectorsInitializing/connectorsInitializing.js';
109
109
  import '../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
@@ -119,7 +119,7 @@ import '../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
119
119
  import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
120
120
 
121
121
  const dynamicWaasKey = 'dynamicwaas';
122
- const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, relayUrl, baseClientKeysharesRelayApiUrl, authMode = 'header', getSignedSessionId, getMfaToken, getPasswordForSigning, svmGasSponsorshipEnabled = false, }) => {
122
+ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, relayUrl, baseClientKeysharesRelayApiUrl, authMode = 'header', getSignedSessionId, getMfaToken, getWalletPassword, svmGasSponsorshipEnabled = false, }) => {
123
123
  var _a;
124
124
  walletConnector.setEnvironmentId(environmentId);
125
125
  walletConnector.setBaseApiUrl((_a = (apiBaseUrl || DEFAULT_WAAS_API_URL)) === null || _a === void 0 ? void 0 : _a.replace('/api/v0', ''));
@@ -136,8 +136,8 @@ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl,
136
136
  walletConnector.setGetMfaTokenFunction(getMfaToken);
137
137
  walletConnector.setBaseClientKeysharesRelayApiUrl(baseClientKeysharesRelayApiUrl);
138
138
  // Set password provider for locked wallets
139
- if (getPasswordForSigning) {
140
- walletConnector.setGetPasswordForSigningFunction(getPasswordForSigning);
139
+ if (getWalletPassword) {
140
+ walletConnector.setGetWalletPasswordFunction(getWalletPassword);
141
141
  }
142
142
  // Sync SVM gas sponsorship setting for SOL connectors
143
143
  const isSolConnector = walletConnector.connectedChain === 'SOL';
@@ -171,7 +171,7 @@ const useDynamicWaas = () => {
171
171
  const authToken = getMinAuthToken();
172
172
  const { getSignedSessionId } = useClientSessionKeys();
173
173
  const getMfaToken = useGetMfaToken();
174
- const getPasswordForSigning = useGetPasswordForSigning();
174
+ const getWalletPassword = useGetWalletPassword();
175
175
  const isCookieAuthEnabled = projectSettings && isCookieEnabled();
176
176
  const isUpgrading = useRef(false);
177
177
  const [recoveredWallets, setRecoveredWallets] = useState(() => new Set());
@@ -193,8 +193,8 @@ const useDynamicWaas = () => {
193
193
  baseClientKeysharesRelayApiUrl,
194
194
  environmentId,
195
195
  getMfaToken,
196
- getPasswordForSigning,
197
196
  getSignedSessionId,
197
+ getWalletPassword,
198
198
  relayUrl: relayUrl !== null && relayUrl !== void 0 ? relayUrl : '',
199
199
  svmGasSponsorshipEnabled,
200
200
  walletConnector,
@@ -207,7 +207,7 @@ const useDynamicWaas = () => {
207
207
  environmentId,
208
208
  apiBaseUrl,
209
209
  getMfaToken,
210
- getPasswordForSigning,
210
+ getWalletPassword,
211
211
  getSignedSessionId,
212
212
  relayUrl,
213
213
  baseClientKeysharesRelayApiUrl,
@@ -289,6 +289,7 @@ const useDynamicWaas = () => {
289
289
  const signedSessionId = yield getSignedSessionId();
290
290
  yield client.getWallet({
291
291
  accountAddress: wallet.address,
292
+ authToken: getMinAuthToken(),
292
293
  signedSessionId,
293
294
  walletOperation: 'RECOVER',
294
295
  });
@@ -0,0 +1,2 @@
1
+ export { useGetWalletPassword } from './useGetWalletPassword';
2
+ export type { GetWalletPasswordProps } from './useGetWalletPassword';
@@ -0,0 +1,130 @@
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
+ require('../../../context/DynamicContext/DynamicContext.cjs');
9
+ require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
10
+ require('@dynamic-labs/iconic');
11
+ require('@dynamic-labs/wallet-connector-core');
12
+ require('react/jsx-runtime');
13
+ require('../../../context/ViewContext/ViewContext.cjs');
14
+ require('../../../shared/logger.cjs');
15
+ require('@dynamic-labs/wallet-book');
16
+ require('@dynamic-labs/utils');
17
+ require('../../constants/colors.cjs');
18
+ require('../../constants/values.cjs');
19
+ require('@dynamic-labs/sdk-api-core');
20
+ require('../../../shared/consts/index.cjs');
21
+ 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
+ var usePromptWalletUnlock = require('../usePromptWalletUnlock/usePromptWalletUnlock.cjs');
81
+ require('../useWalletBackup/useWalletBackup.cjs');
82
+ require('../useWalletBackup/types.cjs');
83
+ require('../useWalletBackup/cloudProviders.cjs');
84
+ require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
85
+ require('../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
86
+ require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
87
+ require('@hcaptcha/react-hcaptcha');
88
+ require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
89
+ require('../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
90
+ require('../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
91
+ require('../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
92
+ require('../../../context/FooterAnimationContext/index.cjs');
93
+ require('../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
94
+ require('../../../context/PasskeyContext/PasskeyContext.cjs');
95
+ require('../../../context/OnrampContext/OnrampContext.cjs');
96
+ require('../../../store/state/sendBalances.cjs');
97
+ require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
98
+ require('../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
99
+ require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
100
+ require('../../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
101
+ require('../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
102
+ require('../../../widgets/DynamicWidget/views/CryptoComOnramp/CryptoComOnramp.cjs');
103
+ require('../../../../index.cjs');
104
+ require('../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
105
+ require('../../../store/state/tokenBalances.cjs');
106
+ require('../../../store/state/multichainBalances.cjs');
107
+ require('../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
108
+ var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
109
+
110
+ const useGetWalletPassword = () => {
111
+ const { handlers } = useInternalDynamicContext.useInternalDynamicContext();
112
+ const promptWalletUnlock = usePromptWalletUnlock.usePromptWalletUnlock();
113
+ // Use ref pattern to avoid callback recreation when handlers change
114
+ const getWalletPasswordHandlerRef = React.useRef(handlers === null || handlers === void 0 ? void 0 : handlers.getWalletPassword);
115
+ getWalletPasswordHandlerRef.current = handlers === null || handlers === void 0 ? void 0 : handlers.getWalletPassword;
116
+ const getWalletPassword = React.useCallback((_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ accountAddress, chainName, }) {
117
+ // If custom handler provided, use it
118
+ if (getWalletPasswordHandlerRef.current) {
119
+ return getWalletPasswordHandlerRef.current({
120
+ accountAddress,
121
+ chainName,
122
+ });
123
+ }
124
+ // Otherwise use default UI prompt
125
+ return promptWalletUnlock({ accountAddress, chainName });
126
+ }), [promptWalletUnlock]);
127
+ return getWalletPassword;
128
+ };
129
+
130
+ exports.useGetWalletPassword = useGetWalletPassword;
@@ -0,0 +1,6 @@
1
+ import { GetWalletPasswordFn } from '../../../shared/types/dynamicHandlers';
2
+ export type GetWalletPasswordProps = {
3
+ accountAddress: string;
4
+ chainName: string;
5
+ };
6
+ export declare const useGetWalletPassword: () => GetWalletPasswordFn;
@@ -0,0 +1,126 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
+ import { useRef, useCallback } from 'react';
4
+ import '../../../context/DynamicContext/DynamicContext.js';
5
+ import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
6
+ import '@dynamic-labs/iconic';
7
+ import '@dynamic-labs/wallet-connector-core';
8
+ import 'react/jsx-runtime';
9
+ import '../../../context/ViewContext/ViewContext.js';
10
+ import '../../../shared/logger.js';
11
+ import '@dynamic-labs/wallet-book';
12
+ import '@dynamic-labs/utils';
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 '../../../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 { usePromptWalletUnlock } from '../usePromptWalletUnlock/usePromptWalletUnlock.js';
77
+ import '../useWalletBackup/useWalletBackup.js';
78
+ import '../useWalletBackup/types.js';
79
+ import '../useWalletBackup/cloudProviders.js';
80
+ import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
81
+ import '../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
82
+ import '../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
83
+ import '@hcaptcha/react-hcaptcha';
84
+ import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
85
+ import '../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.js';
86
+ import '../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
87
+ import '../../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
88
+ import '../../../context/FooterAnimationContext/index.js';
89
+ import '../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.js';
90
+ import '../../../context/PasskeyContext/PasskeyContext.js';
91
+ import '../../../context/OnrampContext/OnrampContext.js';
92
+ import '../../../store/state/sendBalances.js';
93
+ import '../../../store/state/connectorsInitializing/connectorsInitializing.js';
94
+ import '../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
95
+ import '../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
96
+ import '../../../views/TransactionConfirmationView/TransactionConfirmationView.js';
97
+ import '../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js';
98
+ import '../../../widgets/DynamicWidget/views/CryptoComOnramp/CryptoComOnramp.js';
99
+ import '../../../../index.js';
100
+ import '../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
101
+ import '../../../store/state/tokenBalances.js';
102
+ import '../../../store/state/multichainBalances.js';
103
+ import '../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
104
+ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
105
+
106
+ const useGetWalletPassword = () => {
107
+ const { handlers } = useInternalDynamicContext();
108
+ const promptWalletUnlock = usePromptWalletUnlock();
109
+ // Use ref pattern to avoid callback recreation when handlers change
110
+ const getWalletPasswordHandlerRef = useRef(handlers === null || handlers === void 0 ? void 0 : handlers.getWalletPassword);
111
+ getWalletPasswordHandlerRef.current = handlers === null || handlers === void 0 ? void 0 : handlers.getWalletPassword;
112
+ const getWalletPassword = useCallback((_a) => __awaiter(void 0, [_a], void 0, function* ({ accountAddress, chainName, }) {
113
+ // If custom handler provided, use it
114
+ if (getWalletPasswordHandlerRef.current) {
115
+ return getWalletPasswordHandlerRef.current({
116
+ accountAddress,
117
+ chainName,
118
+ });
119
+ }
120
+ // Otherwise use default UI prompt
121
+ return promptWalletUnlock({ accountAddress, chainName });
122
+ }), [promptWalletUnlock]);
123
+ return getWalletPassword;
124
+ };
125
+
126
+ export { useGetWalletPassword };
@@ -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');
@@ -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';
@@ -30,7 +30,82 @@ require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
30
30
  require('../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.cjs');
31
31
  require('../../../events/dynamicEvents.cjs');
32
32
  var useProjectSettings = require('../../../client/extension/projectSettings/useProjectSettings/useProjectSettings.cjs');
33
+ require('../../../context/DynamicContext/DynamicContext.cjs');
34
+ require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
35
+ require('../../../context/CaptchaContext/CaptchaContext.cjs');
36
+ require('../../../context/ErrorContext/ErrorContext.cjs');
37
+ require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
38
+ require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
39
+ require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
40
+ require('../../../store/state/authMode/authMode.cjs');
41
+ require('../../../context/VerificationContext/VerificationContext.cjs');
42
+ require('react-dom');
43
+ require('../../functions/compareChains/compareChains.cjs');
44
+ require('../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
45
+ require('../../../context/ThemeContext/ThemeContext.cjs');
46
+ require('../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
47
+ require('bs58');
48
+ require('@dynamic-labs/types');
49
+ require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
50
+ require('../../../context/LoadingContext/LoadingContext.cjs');
51
+ require('../../../context/WalletContext/WalletContext.cjs');
52
+ require('../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
53
+ require('yup');
54
+ require('../../../context/MockContext/MockContext.cjs');
55
+ require('../../../views/CollectUserDataView/useFields.cjs');
56
+ require('../../../context/FieldsStateContext/FieldsStateContext.cjs');
57
+ require('../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
58
+ require('@dynamic-labs/rpc-providers');
59
+ require('../../../store/state/walletOptions/walletOptions.cjs');
60
+ require('react-i18next');
61
+ require('../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
62
+ require('../../../components/Alert/Alert.cjs');
63
+ require('../../../components/ShadowDOM/ShadowDOM.cjs');
64
+ require('../../../components/IconButton/IconButton.cjs');
65
+ require('../../../components/InlineWidget/InlineWidget.cjs');
66
+ require('../../../components/Input/Input.cjs');
67
+ require('../../../components/IsBrowser/IsBrowser.cjs');
68
+ require('../../../components/MenuList/Dropdown/Dropdown.cjs');
69
+ require('../../../components/OverlayCard/OverlayCard.cjs');
70
+ require('../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
71
+ require('../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
72
+ require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
73
+ require('../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
74
+ require('../../../components/Popper/Popper/Popper.cjs');
75
+ require('../../../components/Popper/PopperContext/PopperContext.cjs');
76
+ require('react-focus-lock');
77
+ require('qrcode');
78
+ require('formik');
79
+ require('../useSubdomainCheck/useSubdomainCheck.cjs');
80
+ require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
81
+ require('../useWalletBackup/useWalletBackup.cjs');
82
+ require('../useWalletBackup/types.cjs');
83
+ require('../useWalletBackup/cloudProviders.cjs');
84
+ require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
85
+ require('../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
86
+ require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
87
+ require('@hcaptcha/react-hcaptcha');
33
88
  var DynamicWidgetContext = require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
89
+ require('../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
90
+ require('../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
91
+ require('../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
92
+ require('../../../context/FooterAnimationContext/index.cjs');
93
+ require('../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
94
+ require('../../../context/PasskeyContext/PasskeyContext.cjs');
95
+ require('../../../context/OnrampContext/OnrampContext.cjs');
96
+ require('../../../store/state/sendBalances.cjs');
97
+ require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
98
+ require('../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
99
+ require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
100
+ require('../../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
101
+ require('../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
102
+ require('../../../widgets/DynamicWidget/views/CryptoComOnramp/CryptoComOnramp.cjs');
103
+ require('../../../../index.cjs');
104
+ require('../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
105
+ require('../../../store/state/tokenBalances.cjs');
106
+ require('../../../store/state/multichainBalances.cjs');
107
+ require('../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
108
+ var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
34
109
 
35
110
  const PASSWORD_SETUP_CANCELLED_ERROR = 'Password setup cancelled';
36
111
  /**
@@ -39,6 +114,9 @@ const PASSWORD_SETUP_CANCELLED_ERROR = 'Password setup cancelled';
39
114
  * This hook checks if passcodeRequired is enabled in project settings,
40
115
  * and if so, prompts the user to set up a password before creating wallets.
41
116
  *
117
+ * If a custom setupWalletPassword handler is provided via DynamicContextProvider settings,
118
+ * it will be used instead of the default UI modal.
119
+ *
42
120
  * @returns An object containing:
43
121
  * - isPasscodeRequired: boolean indicating if password is required
44
122
  * - setupPassword: function that shows the password setup flow and returns the password
@@ -47,11 +125,20 @@ const useSetupPassword = () => {
47
125
  var _a, _b;
48
126
  const projectSettings = useProjectSettings.useProjectSettings();
49
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;
50
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;
51
133
  const setupPassword = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
52
134
  if (!isPasscodeRequired) {
53
135
  return undefined;
54
136
  }
137
+ // If custom handler provided, use it
138
+ if (setupWalletPasswordHandlerRef.current) {
139
+ return setupWalletPasswordHandlerRef.current();
140
+ }
141
+ // Otherwise use default UI prompt
55
142
  return new Promise((resolve, reject) => {
56
143
  setDynamicWidgetView('setup-password', {
57
144
  onCancel: () => {