@dynamic-labs/sdk-react-core 4.29.4 → 4.29.5
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.
- package/CHANGELOG.md +16 -0
- package/package.cjs +3 -3
- package/package.js +3 -3
- package/package.json +13 -13
- package/src/index.cjs +10 -2
- package/src/index.d.ts +2 -2
- package/src/index.js +4 -2
- package/src/lib/client/extension/deprecated/mfa/verifyTotpMfaDevice/verifyTotpMfaDevice.d.ts +1 -1
- package/src/lib/components/EmbeddedWalletExport/EmbeddedWalletExport.cjs +83 -0
- package/src/lib/components/EmbeddedWalletExport/EmbeddedWalletExport.d.ts +12 -0
- package/src/lib/components/EmbeddedWalletExport/EmbeddedWalletExport.js +79 -0
- package/src/lib/components/EmbeddedWalletExport/index.d.ts +2 -0
- package/src/lib/components/Input/Input.cjs +1 -1
- package/src/lib/components/Input/Input.js +1 -1
- package/src/lib/components/Textarea/Textarea.cjs +1 -1
- package/src/lib/components/Textarea/Textarea.js +1 -1
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +3 -2
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +3 -2
- package/src/lib/components/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/hooks/useAutoselectPrimaryWallet/useAutoselectPrimaryWallet.cjs +7 -7
- package/src/lib/context/DynamicContext/hooks/useAutoselectPrimaryWallet/useAutoselectPrimaryWallet.js +7 -7
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +7 -7
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +7 -7
- package/src/lib/context/ViewContext/types/index.d.ts +1 -1
- package/src/lib/locale/en/translation.cjs +76 -0
- package/src/lib/locale/en/translation.d.ts +76 -0
- package/src/lib/locale/en/translation.js +76 -0
- package/src/lib/shared/assets/index.d.ts +1 -0
- package/src/lib/shared/assets/sparkles.cjs +54 -0
- package/src/lib/shared/assets/sparkles.js +30 -0
- package/src/lib/shared/assets/upgrade.cjs +93 -0
- package/src/lib/shared/assets/upgrade.js +69 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/constants/authViewLayoutChecks.cjs +4 -0
- package/src/lib/utils/constants/authViewLayoutChecks.js +4 -0
- package/src/lib/utils/functions/exportWalletCredential/exportWalletCredential.cjs +57 -0
- package/src/lib/utils/functions/exportWalletCredential/exportWalletCredential.d.ts +13 -0
- package/src/lib/utils/functions/exportWalletCredential/exportWalletCredential.js +53 -0
- package/src/lib/utils/functions/exportWalletCredential/index.d.ts +2 -0
- package/src/lib/utils/functions/findPrimaryWalletVCForUser/findPrimaryWalletVCForUser.cjs +57 -0
- package/src/lib/utils/functions/findPrimaryWalletVCForUser/findPrimaryWalletVCForUser.d.ts +11 -0
- package/src/lib/utils/functions/findPrimaryWalletVCForUser/findPrimaryWalletVCForUser.js +53 -0
- package/src/lib/utils/functions/findPrimaryWalletVCForUser/index.d.ts +1 -0
- package/src/lib/utils/functions/index.d.ts +1 -0
- package/src/lib/utils/hooks/index.d.ts +2 -0
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +3 -3
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +3 -3
- package/src/lib/utils/hooks/useDeletePasskey/index.d.ts +1 -0
- package/src/lib/utils/hooks/useDeletePasskey/useDeletePasskey.cjs +33 -0
- package/src/lib/utils/hooks/useDeletePasskey/useDeletePasskey.d.ts +22 -0
- package/src/lib/utils/hooks/useDeletePasskey/useDeletePasskey.js +29 -0
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs +23 -23
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.d.ts +5 -4
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.js +24 -24
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +25 -36
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +26 -37
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +2 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +2 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +4 -4
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +4 -4
- package/src/lib/utils/hooks/useGetMfaToken/useGetMfaToken.cjs +39 -19
- package/src/lib/utils/hooks/useGetMfaToken/useGetMfaToken.js +39 -19
- package/src/lib/utils/hooks/useRefreshUser/useRefreshUser.cjs +11 -5
- package/src/lib/utils/hooks/useRefreshUser/useRefreshUser.js +11 -5
- package/src/lib/utils/hooks/useRefreshUserState/useRefreshUserState.cjs +2 -2
- package/src/lib/utils/hooks/useRefreshUserState/useRefreshUserState.js +2 -2
- package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +1 -1
- package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +1 -1
- package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.cjs +1 -1
- package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.js +1 -1
- package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.cjs +1 -1
- package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.js +1 -1
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.cjs +5 -4
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.js +5 -4
- package/src/lib/utils/hooks/useTransferWallet/useTransferWallet.cjs +3 -3
- package/src/lib/utils/hooks/useTransferWallet/useTransferWallet.js +3 -3
- package/src/lib/utils/hooks/useUpgradeEmbeddedWallet/useUpgradeEmbeddedWallet.cjs +3 -3
- package/src/lib/utils/hooks/useUpgradeEmbeddedWallet/useUpgradeEmbeddedWallet.js +3 -3
- package/src/lib/utils/hooks/useUpgradeToDynamicWaasFlow/index.d.ts +1 -0
- package/src/lib/utils/hooks/useUpgradeToDynamicWaasFlow/useUpgradeToDynamicWaasFlow.cjs +124 -0
- package/src/lib/utils/hooks/useUpgradeToDynamicWaasFlow/useUpgradeToDynamicWaasFlow.d.ts +7 -0
- package/src/lib/utils/hooks/useUpgradeToDynamicWaasFlow/useUpgradeToDynamicWaasFlow.js +120 -0
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +3 -3
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +3 -3
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +6 -0
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +6 -0
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +6 -0
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +6 -0
- package/src/lib/utils/hooks/useWalletOptions/useWalletOptions.cjs +44 -31
- package/src/lib/utils/hooks/useWalletOptions/useWalletOptions.d.ts +1 -1
- package/src/lib/utils/hooks/useWalletOptions/useWalletOptions.js +44 -31
- package/src/lib/views/AccountUpgradedView/AccountUpgradedView.cjs +124 -0
- package/src/lib/views/AccountUpgradedView/AccountUpgradedView.d.ts +2 -0
- package/src/lib/views/AccountUpgradedView/AccountUpgradedView.js +120 -0
- package/src/lib/views/AccountUpgradedView/index.d.ts +1 -0
- package/src/lib/views/EmailVerification/EmailVerification.cjs +3 -3
- package/src/lib/views/EmailVerification/EmailVerification.js +3 -3
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +17 -139
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +20 -142
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs +15 -0
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.d.ts +2 -0
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.js +14 -1
- package/src/lib/views/WaasUpgradeView/WaasUpgradeView.cjs +159 -0
- package/src/lib/views/WaasUpgradeView/WaasUpgradeView.d.ts +5 -0
- package/src/lib/views/WaasUpgradeView/WaasUpgradeView.js +155 -0
- package/src/lib/views/WaasUpgradeView/index.d.ts +2 -0
- package/src/lib/views/WalletUpgradeFlowView/WalletUpgradeFlowView.cjs +203 -0
- package/src/lib/views/WalletUpgradeFlowView/WalletUpgradeFlowView.d.ts +9 -0
- package/src/lib/views/WalletUpgradeFlowView/WalletUpgradeFlowView.js +199 -0
- package/src/lib/views/WalletUpgradeFlowView/index.d.ts +1 -0
- package/src/lib/views/viewToComponentMap.cjs +6 -0
- package/src/lib/views/viewToComponentMap.d.ts +3 -0
- package/src/lib/views/viewToComponentMap.js +6 -0
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.cjs +3 -3
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.js +3 -3
- package/src/lib/widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs +12 -1
- package/src/lib/widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js +12 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.cjs +10 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.js +10 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
|
-
import { useCallback, useMemo } from 'react';
|
|
3
|
+
import { useRef, useCallback, useMemo } from 'react';
|
|
4
4
|
import { EmbeddedWalletVersionEnum, JwtVerifiedCredentialFormatEnum, WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
|
|
5
5
|
import { DynamicError } from '@dynamic-labs/utils';
|
|
6
6
|
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
@@ -27,6 +27,8 @@ import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
|
27
27
|
import { useApiBaseUrl, useEnvironmentId } from '../../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
28
28
|
import '../../../store/state/primaryWalletId/primaryWalletId.js';
|
|
29
29
|
import { useProjectSettings } from '../../../store/state/projectSettings/projectSettings.js';
|
|
30
|
+
import '../../../locale/locale.js';
|
|
31
|
+
import { softDeleteEmbeddedWallet, restoreEmbeddedWallet } from '../../../data/api/wallets/wallets.js';
|
|
30
32
|
import { useOnboardingCompleteUserProfile } from '../../../client/extension/user/useOnboardingCompleteUser/useOnboardingCompleteUser.js';
|
|
31
33
|
import '../../../context/DynamicContext/DynamicContext.js';
|
|
32
34
|
import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
@@ -35,8 +37,6 @@ import '../../../context/ErrorContext/ErrorContext.js';
|
|
|
35
37
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
36
38
|
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
37
39
|
import { useInternalUserWallets } from '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
38
|
-
import '../../../locale/locale.js';
|
|
39
|
-
import { softDeleteEmbeddedWallet, restoreEmbeddedWallet } from '../../../data/api/wallets/wallets.js';
|
|
40
40
|
import '../../../store/state/authMode/authMode.js';
|
|
41
41
|
import '../../../context/VerificationContext/VerificationContext.js';
|
|
42
42
|
import 'react-dom';
|
|
@@ -92,6 +92,11 @@ import '../../../context/FooterAnimationContext/index.js';
|
|
|
92
92
|
import '../../../views/MfaChooseDeviceView/getMfaOptions/getMfaOptions.js';
|
|
93
93
|
import '../../../context/PasskeyContext/PasskeyContext.js';
|
|
94
94
|
import '../../../context/OnrampContext/OnrampContext.js';
|
|
95
|
+
import { DEFAULT_WAAS_API_URL } from '../../constants/waas/apiUrl.js';
|
|
96
|
+
import { useClientSessionKeys } from '../useClientSessionKeys/useClientSessionKeys.js';
|
|
97
|
+
import { useRefreshUser } from '../useRefreshUser/useRefreshUser.js';
|
|
98
|
+
import { useGetMfaToken } from '../useGetMfaToken/useGetMfaToken.js';
|
|
99
|
+
import { DYNAMIC_WAAS_CONNECTOR_NOT_FOUND_ERROR, NO_ENABLED_CHAINS_ERROR, INVALID_CHAINS_ERROR, WALLET_CREATION_FAILED_ERROR } from './constants.js';
|
|
95
100
|
import '../../../store/state/sendBalances.js';
|
|
96
101
|
import '../../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
97
102
|
import '../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
|
|
@@ -100,11 +105,6 @@ import '../../../views/TransactionConfirmationView/TransactionConfirmationView.j
|
|
|
100
105
|
import '../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js';
|
|
101
106
|
import '../../../../index.js';
|
|
102
107
|
import '../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
|
|
103
|
-
import { DEFAULT_WAAS_API_URL } from '../../constants/waas/apiUrl.js';
|
|
104
|
-
import { useClientSessionKeys } from '../useClientSessionKeys/useClientSessionKeys.js';
|
|
105
|
-
import { useRefreshUser } from '../useRefreshUser/useRefreshUser.js';
|
|
106
|
-
import { useGetMfaToken } from '../useGetMfaToken/useGetMfaToken.js';
|
|
107
|
-
import { DYNAMIC_WAAS_CONNECTOR_NOT_FOUND_ERROR, NO_ENABLED_CHAINS_ERROR, INVALID_CHAINS_ERROR, WALLET_CREATION_FAILED_ERROR } from './constants.js';
|
|
108
108
|
import '../../../store/state/tokenBalances.js';
|
|
109
109
|
import '../../../store/state/multichainBalances.js';
|
|
110
110
|
import '../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
|
|
@@ -151,6 +151,7 @@ const useDynamicWaas = () => {
|
|
|
151
151
|
const { getSignedSessionId } = useClientSessionKeys();
|
|
152
152
|
const getMfaToken = useGetMfaToken();
|
|
153
153
|
const isCookieAuthEnabled = projectSettings && isCookieEnabled(projectSettings);
|
|
154
|
+
const isUpgrading = useRef(false);
|
|
154
155
|
const getWalletConnector = useCallback((chainName) => {
|
|
155
156
|
var _a;
|
|
156
157
|
if (!isCookieAuthEnabled && !authToken) {
|
|
@@ -186,6 +187,9 @@ const useDynamicWaas = () => {
|
|
|
186
187
|
// If no chain names are provided, filter out chains that already have a wallet
|
|
187
188
|
// and make a wallet for each enabled chain
|
|
188
189
|
const createWalletAccount = useCallback((chainNames, password) => __awaiter(void 0, void 0, void 0, function* () {
|
|
190
|
+
if (isUpgrading.current) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
189
193
|
if (!(enabledChainNames === null || enabledChainNames === void 0 ? void 0 : enabledChainNames.length)) {
|
|
190
194
|
throw new DynamicError(NO_ENABLED_CHAINS_ERROR);
|
|
191
195
|
}
|
|
@@ -268,15 +272,7 @@ const useDynamicWaas = () => {
|
|
|
268
272
|
}
|
|
269
273
|
setShowAuthFlow(false, { performMultiWalletChecks: false }); // close email otp pin modal
|
|
270
274
|
return createdWalletAccounts;
|
|
271
|
-
}), [
|
|
272
|
-
getWalletConnector,
|
|
273
|
-
primaryChain,
|
|
274
|
-
enabledChainNames,
|
|
275
|
-
refresh,
|
|
276
|
-
setShowAuthFlow,
|
|
277
|
-
user === null || user === void 0 ? void 0 : user.verifiedCredentials,
|
|
278
|
-
addedWalletsIds,
|
|
279
|
-
]);
|
|
275
|
+
}), [getWalletConnector, primaryChain, enabledChainNames, setShowAuthFlow]);
|
|
280
276
|
const needsAutoCreateWalletChains = useMemo(() => {
|
|
281
277
|
if (!user ||
|
|
282
278
|
!dynamicWaasIsEnabled ||
|
|
@@ -316,41 +312,45 @@ const useDynamicWaas = () => {
|
|
|
316
312
|
});
|
|
317
313
|
yield refresh();
|
|
318
314
|
});
|
|
319
|
-
const upgradeToDynamicWaas = useCallback((_e) => __awaiter(void 0, [_e], void 0, function* ({ privateKey }) {
|
|
315
|
+
const upgradeToDynamicWaas = useCallback((_e) => __awaiter(void 0, [_e], void 0, function* ({ privateKey, wallet, }) {
|
|
316
|
+
isUpgrading.current = true;
|
|
320
317
|
if (!primaryWallet) {
|
|
321
318
|
throw new DynamicError('Primary wallet not found');
|
|
322
319
|
}
|
|
323
|
-
const chainName =
|
|
324
|
-
const walletId =
|
|
320
|
+
const chainName = wallet.chain;
|
|
321
|
+
const walletId = wallet.id;
|
|
325
322
|
const walletConnector = getWalletConnector(chainName);
|
|
326
323
|
if (!walletConnector) {
|
|
327
324
|
throw new DynamicError('Wallet connector not found');
|
|
328
325
|
}
|
|
329
326
|
let softDeleteSucceeded = false;
|
|
327
|
+
// 7702 wallets have a -zerodev suffix because it's a credential created on the fly
|
|
328
|
+
const normalizedWalletId = (walletId === null || walletId === void 0 ? void 0 : walletId.replace('-zerodev', '')) || walletId;
|
|
330
329
|
try {
|
|
331
330
|
yield softDeleteEmbeddedWallet({
|
|
332
331
|
environmentId,
|
|
333
|
-
walletId,
|
|
332
|
+
walletId: normalizedWalletId,
|
|
334
333
|
});
|
|
335
334
|
softDeleteSucceeded = true;
|
|
336
335
|
yield walletConnector.importPrivateKey({
|
|
337
336
|
chainName,
|
|
338
337
|
privateKey,
|
|
339
338
|
});
|
|
340
|
-
|
|
339
|
+
isUpgrading.current = false;
|
|
341
340
|
}
|
|
342
341
|
catch (error) {
|
|
343
342
|
// If soft delete succeeded but import failed, try to restore the wallet
|
|
344
343
|
if (softDeleteSucceeded) {
|
|
345
344
|
yield restoreEmbeddedWallet({
|
|
346
345
|
environmentId,
|
|
347
|
-
walletId,
|
|
346
|
+
walletId: normalizedWalletId,
|
|
348
347
|
});
|
|
349
348
|
yield refresh();
|
|
350
349
|
}
|
|
350
|
+
isUpgrading.current = false;
|
|
351
351
|
throw error instanceof DynamicError
|
|
352
352
|
? error
|
|
353
|
-
: new DynamicError('Upgrade failed');
|
|
353
|
+
: new DynamicError('Upgrade failed, please try again.');
|
|
354
354
|
}
|
|
355
355
|
}), [environmentId, getWalletConnector, primaryWallet, refresh]);
|
|
356
356
|
const delegateKeyShares = useCallback((_f) => __awaiter(void 0, [_f], void 0, function* ({ chainName, accountAddress, }) {
|
|
@@ -8,22 +8,23 @@ var React = require('react');
|
|
|
8
8
|
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
9
9
|
var utils = require('@dynamic-labs/utils');
|
|
10
10
|
var client = require('../../../client/client.cjs');
|
|
11
|
-
require('
|
|
12
|
-
require('
|
|
13
|
-
require('../../../config/ApiEndpoint.cjs');
|
|
14
|
-
var findEmbeddedWalletFromVerifiedCredentials = require('../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
|
|
15
|
-
require('../../constants/values.cjs');
|
|
16
|
-
var errors = require('../../constants/errors.cjs');
|
|
17
|
-
require('@dynamic-labs/multi-wallet');
|
|
11
|
+
require('../../../context/DynamicContext/DynamicContext.cjs');
|
|
12
|
+
require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
|
|
18
13
|
require('../../../shared/logger.cjs');
|
|
19
|
-
require('../../constants/colors.cjs');
|
|
20
|
-
require('react-international-phone');
|
|
21
14
|
require('@dynamic-labs/iconic');
|
|
22
15
|
require('@dynamic-labs/wallet-connector-core');
|
|
23
16
|
require('react/jsx-runtime');
|
|
24
17
|
require('../../../context/ViewContext/ViewContext.cjs');
|
|
25
18
|
require('@dynamic-labs/wallet-book');
|
|
19
|
+
require('../../constants/colors.cjs');
|
|
20
|
+
require('../../constants/values.cjs');
|
|
26
21
|
require('../../../shared/consts/index.cjs');
|
|
22
|
+
require('../../../events/dynamicEvents.cjs');
|
|
23
|
+
require('../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
24
|
+
require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
25
|
+
var errors = require('../../constants/errors.cjs');
|
|
26
|
+
require('@dynamic-labs/multi-wallet');
|
|
27
|
+
require('react-international-phone');
|
|
27
28
|
require('../../../store/state/nonce/nonce.cjs');
|
|
28
29
|
var isTurnkeyEnabled = require('../../functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
|
|
29
30
|
var hasEmbeddedWallet = require('../../functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs');
|
|
@@ -31,22 +32,19 @@ var updatePrimaryWalletId = require('../../functions/updatePrimaryWalletId/updat
|
|
|
31
32
|
require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
|
|
32
33
|
require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
|
|
33
34
|
var primaryWalletId = require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
|
|
34
|
-
require('
|
|
35
|
+
require('@dynamic-labs-sdk/client/core');
|
|
36
|
+
require('@dynamic-labs-sdk/client');
|
|
37
|
+
require('../../../config/ApiEndpoint.cjs');
|
|
35
38
|
require('../../../store/state/projectSettings/projectSettings.cjs');
|
|
36
|
-
|
|
37
|
-
require('../../../context/DynamicContext/DynamicContext.cjs');
|
|
38
|
-
require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
|
|
39
|
-
require('../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
40
|
-
require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
39
|
+
require('../../../locale/locale.cjs');
|
|
41
40
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
42
41
|
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
43
42
|
require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
44
|
-
require('../../../locale/locale.cjs');
|
|
45
43
|
require('../../../store/state/authMode/authMode.cjs');
|
|
46
44
|
require('../../../context/VerificationContext/VerificationContext.cjs');
|
|
47
45
|
require('react-dom');
|
|
48
46
|
require('../../functions/compareChains/compareChains.cjs');
|
|
49
|
-
|
|
47
|
+
require('../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
50
48
|
require('../../../context/ThemeContext/ThemeContext.cjs');
|
|
51
49
|
require('../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
52
50
|
var useIsTurnkeyWallet = require('../useIsTurnkeyWallet/useIsTurnkeyWallet.cjs');
|
|
@@ -55,6 +53,7 @@ require('@dynamic-labs/types');
|
|
|
55
53
|
require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
|
|
56
54
|
require('../../../context/LoadingContext/LoadingContext.cjs');
|
|
57
55
|
var WalletContext = require('../../../context/WalletContext/WalletContext.cjs');
|
|
56
|
+
var findPrimaryWalletVCForUser = require('../../functions/findPrimaryWalletVCForUser/findPrimaryWalletVCForUser.cjs');
|
|
58
57
|
var useSecureEnclaveEmbeddedWallet = require('./useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs');
|
|
59
58
|
require('./useSecureEnclaveEmbeddedWallet/constants.cjs');
|
|
60
59
|
require('yup');
|
|
@@ -168,22 +167,7 @@ const useEmbeddedWallet = () => {
|
|
|
168
167
|
});
|
|
169
168
|
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]);
|
|
170
169
|
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]);
|
|
171
|
-
const
|
|
172
|
-
var _a, _b, _c;
|
|
173
|
-
if (!user)
|
|
174
|
-
return false;
|
|
175
|
-
const primaryEmbeddedChain = findPrimaryEmbeddedChain.findPrimaryEmbeddedChain(projectSettings);
|
|
176
|
-
const embeddedWalletVerifiedCredentialId = (_a = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(convertSdkUserToUserProfile.convertSdkUserToUserProfile(user), [primaryEmbeddedChain])) === null || _a === void 0 ? void 0 : _a.id;
|
|
177
|
-
const AAWalletCredentialId = (_c = (_b = user.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find((vc) => vc.walletProvider === sdkApiCore.WalletProviderEnum.SmartContractWallet)) === null || _c === void 0 ? void 0 : _c.id;
|
|
178
|
-
const targetPrimaryWalletId = AAWalletCredentialId
|
|
179
|
-
? AAWalletCredentialId
|
|
180
|
-
: embeddedWalletVerifiedCredentialId;
|
|
181
|
-
if (targetPrimaryWalletId) {
|
|
182
|
-
updatePrimaryWalletId.updatePrimaryWalletId(targetPrimaryWalletId);
|
|
183
|
-
return true;
|
|
184
|
-
}
|
|
185
|
-
return false;
|
|
186
|
-
}, [projectSettings]);
|
|
170
|
+
const findPrimaryWalletVCForUserCallback = React.useCallback((user) => findPrimaryWalletVCForUser.findPrimaryWalletVCForUser(user, projectSettings, true), [projectSettings]);
|
|
187
171
|
const shouldAutoCreateEmbeddedWallet = React.useCallback(() => {
|
|
188
172
|
var _a, _b;
|
|
189
173
|
const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled.isTurnkeyEnabled(projectSettings);
|
|
@@ -191,7 +175,10 @@ const useEmbeddedWallet = () => {
|
|
|
191
175
|
const hasPrimaryWallet = primaryWalletId.getPrimaryWalletId();
|
|
192
176
|
// If V3 wallets are enabled, never create V1/V2 wallets - they should be handled by WAAS flow
|
|
193
177
|
if (embeddedWalletSettingVersion() === sdkApiCore.EmbeddedWalletVersionEnum.V3) {
|
|
194
|
-
|
|
178
|
+
const primaryWalletVC = findPrimaryWalletVCForUserCallback(user);
|
|
179
|
+
if (primaryWalletVC && !hasPrimaryWallet) {
|
|
180
|
+
updatePrimaryWalletId.updatePrimaryWalletId(primaryWalletVC.id);
|
|
181
|
+
}
|
|
195
182
|
return false;
|
|
196
183
|
}
|
|
197
184
|
if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
|
|
@@ -199,7 +186,9 @@ const useEmbeddedWallet = () => {
|
|
|
199
186
|
}
|
|
200
187
|
// Turnkey and WAAS specific rules
|
|
201
188
|
if (user) {
|
|
202
|
-
|
|
189
|
+
const primaryWalletVC = findPrimaryWalletVCForUserCallback(user);
|
|
190
|
+
if (primaryWalletVC) {
|
|
191
|
+
updatePrimaryWalletId.updatePrimaryWalletId(primaryWalletVC.id);
|
|
203
192
|
return false;
|
|
204
193
|
}
|
|
205
194
|
}
|
|
@@ -211,7 +200,7 @@ const useEmbeddedWallet = () => {
|
|
|
211
200
|
}, [
|
|
212
201
|
projectSettings,
|
|
213
202
|
embeddedWalletSettingVersion,
|
|
214
|
-
|
|
203
|
+
findPrimaryWalletVCForUserCallback,
|
|
215
204
|
]);
|
|
216
205
|
return {
|
|
217
206
|
createEmbeddedWallet,
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { EmbeddedWalletVersionEnum } from '@dynamic-labs/sdk-api-core';
|
|
5
5
|
import { DynamicError } from '@dynamic-labs/utils';
|
|
6
6
|
import { getDynamicClient } from '../../../client/client.js';
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
9
|
-
import '../../../config/ApiEndpoint.js';
|
|
10
|
-
import { findEmbeddedWalletFromVerifiedCredentials } from '../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
|
|
11
|
-
import '../../constants/values.js';
|
|
12
|
-
import { USER_NOT_LOGGED_IN } from '../../constants/errors.js';
|
|
13
|
-
import '@dynamic-labs/multi-wallet';
|
|
7
|
+
import '../../../context/DynamicContext/DynamicContext.js';
|
|
8
|
+
import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
14
9
|
import '../../../shared/logger.js';
|
|
15
|
-
import '../../constants/colors.js';
|
|
16
|
-
import 'react-international-phone';
|
|
17
10
|
import '@dynamic-labs/iconic';
|
|
18
11
|
import '@dynamic-labs/wallet-connector-core';
|
|
19
12
|
import 'react/jsx-runtime';
|
|
20
13
|
import '../../../context/ViewContext/ViewContext.js';
|
|
21
14
|
import '@dynamic-labs/wallet-book';
|
|
15
|
+
import '../../constants/colors.js';
|
|
16
|
+
import '../../constants/values.js';
|
|
22
17
|
import '../../../shared/consts/index.js';
|
|
18
|
+
import '../../../events/dynamicEvents.js';
|
|
19
|
+
import '../../../context/CaptchaContext/CaptchaContext.js';
|
|
20
|
+
import '../../../context/ErrorContext/ErrorContext.js';
|
|
21
|
+
import { USER_NOT_LOGGED_IN } from '../../constants/errors.js';
|
|
22
|
+
import '@dynamic-labs/multi-wallet';
|
|
23
|
+
import 'react-international-phone';
|
|
23
24
|
import '../../../store/state/nonce/nonce.js';
|
|
24
25
|
import { isTurnkeyEnabled } from '../../functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
|
|
25
26
|
import { hasEmbeddedWallet } from '../../functions/hasEmbeddedWallet/hasEmbeddedWallet.js';
|
|
@@ -27,22 +28,19 @@ import { updatePrimaryWalletId } from '../../functions/updatePrimaryWalletId/upd
|
|
|
27
28
|
import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
28
29
|
import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
29
30
|
import { getPrimaryWalletId } from '../../../store/state/primaryWalletId/primaryWalletId.js';
|
|
30
|
-
import '
|
|
31
|
+
import '@dynamic-labs-sdk/client/core';
|
|
32
|
+
import '@dynamic-labs-sdk/client';
|
|
33
|
+
import '../../../config/ApiEndpoint.js';
|
|
31
34
|
import '../../../store/state/projectSettings/projectSettings.js';
|
|
32
|
-
import
|
|
33
|
-
import '../../../context/DynamicContext/DynamicContext.js';
|
|
34
|
-
import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
35
|
-
import '../../../context/CaptchaContext/CaptchaContext.js';
|
|
36
|
-
import '../../../context/ErrorContext/ErrorContext.js';
|
|
35
|
+
import '../../../locale/locale.js';
|
|
37
36
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
38
37
|
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
39
38
|
import '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
40
|
-
import '../../../locale/locale.js';
|
|
41
39
|
import '../../../store/state/authMode/authMode.js';
|
|
42
40
|
import '../../../context/VerificationContext/VerificationContext.js';
|
|
43
41
|
import 'react-dom';
|
|
44
42
|
import '../../functions/compareChains/compareChains.js';
|
|
45
|
-
import
|
|
43
|
+
import '../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
46
44
|
import '../../../context/ThemeContext/ThemeContext.js';
|
|
47
45
|
import '../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
48
46
|
import { useIsTurnkeyWallet } from '../useIsTurnkeyWallet/useIsTurnkeyWallet.js';
|
|
@@ -51,6 +49,7 @@ import '@dynamic-labs/types';
|
|
|
51
49
|
import '../../../context/SocialRedirectContext/SocialRedirectContext.js';
|
|
52
50
|
import '../../../context/LoadingContext/LoadingContext.js';
|
|
53
51
|
import { useWalletContext } from '../../../context/WalletContext/WalletContext.js';
|
|
52
|
+
import { findPrimaryWalletVCForUser } from '../../functions/findPrimaryWalletVCForUser/findPrimaryWalletVCForUser.js';
|
|
54
53
|
import { useSecureEnclaveEmbeddedWallet } from './useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js';
|
|
55
54
|
import './useSecureEnclaveEmbeddedWallet/constants.js';
|
|
56
55
|
import 'yup';
|
|
@@ -164,22 +163,7 @@ const useEmbeddedWallet = () => {
|
|
|
164
163
|
});
|
|
165
164
|
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]);
|
|
166
165
|
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]);
|
|
167
|
-
const
|
|
168
|
-
var _a, _b, _c;
|
|
169
|
-
if (!user)
|
|
170
|
-
return false;
|
|
171
|
-
const primaryEmbeddedChain = findPrimaryEmbeddedChain(projectSettings);
|
|
172
|
-
const embeddedWalletVerifiedCredentialId = (_a = findEmbeddedWalletFromVerifiedCredentials(convertSdkUserToUserProfile(user), [primaryEmbeddedChain])) === null || _a === void 0 ? void 0 : _a.id;
|
|
173
|
-
const AAWalletCredentialId = (_c = (_b = user.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find((vc) => vc.walletProvider === WalletProviderEnum.SmartContractWallet)) === null || _c === void 0 ? void 0 : _c.id;
|
|
174
|
-
const targetPrimaryWalletId = AAWalletCredentialId
|
|
175
|
-
? AAWalletCredentialId
|
|
176
|
-
: embeddedWalletVerifiedCredentialId;
|
|
177
|
-
if (targetPrimaryWalletId) {
|
|
178
|
-
updatePrimaryWalletId(targetPrimaryWalletId);
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
return false;
|
|
182
|
-
}, [projectSettings]);
|
|
166
|
+
const findPrimaryWalletVCForUserCallback = useCallback((user) => findPrimaryWalletVCForUser(user, projectSettings, true), [projectSettings]);
|
|
183
167
|
const shouldAutoCreateEmbeddedWallet = useCallback(() => {
|
|
184
168
|
var _a, _b;
|
|
185
169
|
const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled(projectSettings);
|
|
@@ -187,7 +171,10 @@ const useEmbeddedWallet = () => {
|
|
|
187
171
|
const hasPrimaryWallet = getPrimaryWalletId();
|
|
188
172
|
// If V3 wallets are enabled, never create V1/V2 wallets - they should be handled by WAAS flow
|
|
189
173
|
if (embeddedWalletSettingVersion() === EmbeddedWalletVersionEnum.V3) {
|
|
190
|
-
|
|
174
|
+
const primaryWalletVC = findPrimaryWalletVCForUserCallback(user);
|
|
175
|
+
if (primaryWalletVC && !hasPrimaryWallet) {
|
|
176
|
+
updatePrimaryWalletId(primaryWalletVC.id);
|
|
177
|
+
}
|
|
191
178
|
return false;
|
|
192
179
|
}
|
|
193
180
|
if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
|
|
@@ -195,7 +182,9 @@ const useEmbeddedWallet = () => {
|
|
|
195
182
|
}
|
|
196
183
|
// Turnkey and WAAS specific rules
|
|
197
184
|
if (user) {
|
|
198
|
-
|
|
185
|
+
const primaryWalletVC = findPrimaryWalletVCForUserCallback(user);
|
|
186
|
+
if (primaryWalletVC) {
|
|
187
|
+
updatePrimaryWalletId(primaryWalletVC.id);
|
|
199
188
|
return false;
|
|
200
189
|
}
|
|
201
190
|
}
|
|
@@ -207,7 +196,7 @@ const useEmbeddedWallet = () => {
|
|
|
207
196
|
}, [
|
|
208
197
|
projectSettings,
|
|
209
198
|
embeddedWalletSettingVersion,
|
|
210
|
-
|
|
199
|
+
findPrimaryWalletVCForUserCallback,
|
|
211
200
|
]);
|
|
212
201
|
return {
|
|
213
202
|
createEmbeddedWallet,
|
|
@@ -44,11 +44,12 @@ var user = require('../../../../data/api/user/user.cjs');
|
|
|
44
44
|
require('../../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
|
|
45
45
|
require('../../../../store/state/primaryWalletId/primaryWalletId.cjs');
|
|
46
46
|
require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
|
|
47
|
+
var turnkeyExport = require('../../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs');
|
|
48
|
+
var errors = require('../../../constants/errors.cjs');
|
|
47
49
|
require('../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
48
50
|
require('../../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
49
51
|
var UserWalletsContext = require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
50
52
|
require('../../../../store/state/authMode/authMode.cjs');
|
|
51
|
-
var errors = require('../../../constants/errors.cjs');
|
|
52
53
|
require('../../../../context/VerificationContext/VerificationContext.cjs');
|
|
53
54
|
require('react-dom');
|
|
54
55
|
var useElementById = require('../../useElementById/useElementById.cjs');
|
|
@@ -65,7 +66,6 @@ require('../../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
|
|
|
65
66
|
require('../../../../context/LoadingContext/LoadingContext.cjs');
|
|
66
67
|
var WalletContext = require('../../../../context/WalletContext/WalletContext.cjs');
|
|
67
68
|
var useIsTurnkeyWallet = require('../../useIsTurnkeyWallet/useIsTurnkeyWallet.cjs');
|
|
68
|
-
var turnkeyExport = require('../../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs');
|
|
69
69
|
var passkeyRecovery = require('../../../../views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs');
|
|
70
70
|
var getNewVerifiedCredentialsFromDiff = require('../../../functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.cjs');
|
|
71
71
|
var validateTurnkeyProviderEnabled = require('../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.cjs');
|
|
@@ -40,11 +40,12 @@ import { refreshUserJwt } from '../../../../data/api/user/user.js';
|
|
|
40
40
|
import '../../../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
41
41
|
import '../../../../store/state/primaryWalletId/primaryWalletId.js';
|
|
42
42
|
import '../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
43
|
+
import { cleanupExport, initExport, exportCredential } from '../../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js';
|
|
44
|
+
import { USER_NOT_LOGGED_IN, ACTIVE_SESSION, SESSION_RESTORED, INVALID_REQUEST, INVALID_WALLET_DATA, SESSION_CREATED, ERROR_SENDING_CODE, CODE_SENT } from '../../../constants/errors.js';
|
|
43
45
|
import '../../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
44
46
|
import '../../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
45
47
|
import { useInternalUserWallets } from '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
46
48
|
import '../../../../store/state/authMode/authMode.js';
|
|
47
|
-
import { USER_NOT_LOGGED_IN, ACTIVE_SESSION, SESSION_RESTORED, INVALID_REQUEST, INVALID_WALLET_DATA, SESSION_CREATED, ERROR_SENDING_CODE, CODE_SENT } from '../../../constants/errors.js';
|
|
48
49
|
import '../../../../context/VerificationContext/VerificationContext.js';
|
|
49
50
|
import 'react-dom';
|
|
50
51
|
import { useElementById } from '../../useElementById/useElementById.js';
|
|
@@ -61,7 +62,6 @@ import '../../../../context/SocialRedirectContext/SocialRedirectContext.js';
|
|
|
61
62
|
import '../../../../context/LoadingContext/LoadingContext.js';
|
|
62
63
|
import { useWalletContext } from '../../../../context/WalletContext/WalletContext.js';
|
|
63
64
|
import { useIsTurnkeyWallet } from '../../useIsTurnkeyWallet/useIsTurnkeyWallet.js';
|
|
64
|
-
import { cleanupExport, initExport, exportCredential } from '../../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js';
|
|
65
65
|
import { canRestoreEmbeddedWalletSession, restoreEmbeddedWalletSession } from '../../../../views/Passkey/utils/passkeyRecovery/passkeyRecovery.js';
|
|
66
66
|
import { getNewVerifiedCredentialsFromDiff } from '../../../functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.js';
|
|
67
67
|
import { validateTurnkeyProviderEnabled } from '../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.js';
|
|
@@ -32,17 +32,17 @@ var updatePrimaryWalletId = require('../../../../functions/updatePrimaryWalletId
|
|
|
32
32
|
require('../../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
|
|
33
33
|
require('../../../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
|
|
34
34
|
require('../../../../../store/state/primaryWalletId/primaryWalletId.cjs');
|
|
35
|
-
require('../../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
36
|
-
require('../../../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
37
|
-
require('../../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
38
35
|
require('@dynamic-labs-sdk/client/core');
|
|
39
36
|
require('../../../../../client/client.cjs');
|
|
40
37
|
require('@dynamic-labs-sdk/client');
|
|
41
38
|
require('../../../../../config/ApiEndpoint.cjs');
|
|
42
39
|
require('../../../../../store/state/projectSettings/projectSettings.cjs');
|
|
43
40
|
require('../../../../../locale/locale.cjs');
|
|
44
|
-
require('../../../../../store/state/authMode/authMode.cjs');
|
|
45
41
|
var errors = require('../../../../constants/errors.cjs');
|
|
42
|
+
require('../../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
43
|
+
require('../../../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
44
|
+
require('../../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
45
|
+
require('../../../../../store/state/authMode/authMode.cjs');
|
|
46
46
|
require('../../../../../context/VerificationContext/VerificationContext.cjs');
|
|
47
47
|
require('react-dom');
|
|
48
48
|
var useCreateDynamicEmbeddedWalletMutation = require('../../../useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs');
|
|
@@ -28,17 +28,17 @@ import { updatePrimaryWalletId } from '../../../../functions/updatePrimaryWallet
|
|
|
28
28
|
import '../../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
29
29
|
import '../../../../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
30
30
|
import '../../../../../store/state/primaryWalletId/primaryWalletId.js';
|
|
31
|
-
import '../../../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
32
|
-
import '../../../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
33
|
-
import '../../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
34
31
|
import '@dynamic-labs-sdk/client/core';
|
|
35
32
|
import '../../../../../client/client.js';
|
|
36
33
|
import '@dynamic-labs-sdk/client';
|
|
37
34
|
import '../../../../../config/ApiEndpoint.js';
|
|
38
35
|
import '../../../../../store/state/projectSettings/projectSettings.js';
|
|
39
36
|
import '../../../../../locale/locale.js';
|
|
40
|
-
import '../../../../../store/state/authMode/authMode.js';
|
|
41
37
|
import { USER_NOT_LOGGED_IN } from '../../../../constants/errors.js';
|
|
38
|
+
import '../../../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
39
|
+
import '../../../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
40
|
+
import '../../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
41
|
+
import '../../../../../store/state/authMode/authMode.js';
|
|
42
42
|
import '../../../../../context/VerificationContext/VerificationContext.js';
|
|
43
43
|
import 'react-dom';
|
|
44
44
|
import { useCreateDynamicEmbeddedWalletMutation } from '../../../useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js';
|
|
@@ -18,6 +18,7 @@ require('../../constants/colors.cjs');
|
|
|
18
18
|
require('../../constants/values.cjs');
|
|
19
19
|
require('../../../shared/consts/index.cjs');
|
|
20
20
|
var projectSettings = require('../../../store/state/projectSettings/projectSettings.cjs');
|
|
21
|
+
var useGetUserMfaMethods = require('../useGetUserMfaMethods/useGetUserMfaMethods.cjs');
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Get MFA token
|
|
@@ -38,27 +39,46 @@ var projectSettings = require('../../../store/state/projectSettings/projectSetti
|
|
|
38
39
|
* );
|
|
39
40
|
* }
|
|
40
41
|
*/
|
|
41
|
-
const useGetMfaToken = () =>
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
if (mfaAction && !isMfaRequiredForAction) {
|
|
46
|
-
// if mfa token is not required, return undefined
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const mfaToken = client.consumeMfaToken();
|
|
51
|
-
return mfaToken;
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
42
|
+
const useGetMfaToken = () => {
|
|
43
|
+
const getUserMfaMethods = useGetUserMfaMethods.useGetUserMfaMethods();
|
|
44
|
+
const shouldConsumeMfaToken = React.useCallback((...args_1) => _tslib.__awaiter(void 0, [...args_1], void 0, function* ({ mfaAction } = {}) {
|
|
45
|
+
var _a, _b, _c, _d, _e;
|
|
54
46
|
if (!mfaAction) {
|
|
55
|
-
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
const projectSettings$1 = projectSettings.getProjectSettings();
|
|
50
|
+
const isMfaRequiredForAction = (_c = (_b = (_a = projectSettings$1 === null || projectSettings$1 === void 0 ? void 0 : projectSettings$1.security) === null || _a === void 0 ? void 0 : _a.mfa) === null || _b === void 0 ? void 0 : _b.actions) === null || _c === void 0 ? void 0 : _c.some((action) => action.action === mfaAction && action.required);
|
|
51
|
+
// if mfa token is not required for this action, no need to consume it
|
|
52
|
+
if (!isMfaRequiredForAction) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
const isMfaMethodRequired = (_e = (_d = projectSettings$1 === null || projectSettings$1 === void 0 ? void 0 : projectSettings$1.security) === null || _d === void 0 ? void 0 : _d.mfa) === null || _e === void 0 ? void 0 : _e.required;
|
|
56
|
+
if (isMfaMethodRequired) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
const methods = yield getUserMfaMethods();
|
|
60
|
+
// if mfa is not required and user has no methods registered, no need to consume the token
|
|
61
|
+
return methods.userHasVerifiedMfaMethods;
|
|
62
|
+
}), [getUserMfaMethods]);
|
|
63
|
+
return React.useCallback((...args_2) => _tslib.__awaiter(void 0, [...args_2], void 0, function* ({ mfaAction } = {}) {
|
|
64
|
+
const shouldConsume = yield shouldConsumeMfaToken({ mfaAction });
|
|
65
|
+
if (!shouldConsume) {
|
|
56
66
|
return;
|
|
57
67
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
try {
|
|
69
|
+
const mfaToken = client.consumeMfaToken();
|
|
70
|
+
return mfaToken;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (!mfaAction) {
|
|
74
|
+
logger.logger.warn('No MFA token found', error);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const errorMessage = `MFA Token required for this action: ${mfaAction}`;
|
|
78
|
+
logger.logger.error(errorMessage, error);
|
|
79
|
+
throw new utils.DynamicError(errorMessage);
|
|
80
|
+
}
|
|
81
|
+
}), [shouldConsumeMfaToken]);
|
|
82
|
+
};
|
|
63
83
|
|
|
64
84
|
exports.useGetMfaToken = useGetMfaToken;
|