@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
|
@@ -54,6 +54,9 @@ const viewsThatHideHeader = [
|
|
|
54
54
|
'global-wallet-info',
|
|
55
55
|
'mfa-choose-device',
|
|
56
56
|
'mfa-verification',
|
|
57
|
+
'waas-upgrade-view',
|
|
58
|
+
'wallet-upgrade-flow-view',
|
|
59
|
+
'account-upgraded',
|
|
57
60
|
];
|
|
58
61
|
const viewsThatShowConnectedWalletProgress = [
|
|
59
62
|
'wallet-list',
|
|
@@ -98,6 +101,7 @@ const viewsThatPreventModalClose = [
|
|
|
98
101
|
'login-with-email-verification',
|
|
99
102
|
'login-with-sms-verification',
|
|
100
103
|
'backup-unsuccessful',
|
|
104
|
+
'wallet-upgrade-flow-view',
|
|
101
105
|
];
|
|
102
106
|
/**
|
|
103
107
|
* When hasPendingMfaAction returns true, user is not able to close the modal in these views at all
|
|
@@ -50,6 +50,9 @@ const viewsThatHideHeader = [
|
|
|
50
50
|
'global-wallet-info',
|
|
51
51
|
'mfa-choose-device',
|
|
52
52
|
'mfa-verification',
|
|
53
|
+
'waas-upgrade-view',
|
|
54
|
+
'wallet-upgrade-flow-view',
|
|
55
|
+
'account-upgraded',
|
|
53
56
|
];
|
|
54
57
|
const viewsThatShowConnectedWalletProgress = [
|
|
55
58
|
'wallet-list',
|
|
@@ -94,6 +97,7 @@ const viewsThatPreventModalClose = [
|
|
|
94
97
|
'login-with-email-verification',
|
|
95
98
|
'login-with-sms-verification',
|
|
96
99
|
'backup-unsuccessful',
|
|
100
|
+
'wallet-upgrade-flow-view',
|
|
97
101
|
];
|
|
98
102
|
/**
|
|
99
103
|
* When hasPendingMfaAction returns true, user is not able to close the modal in these views at all
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
+
var logger = require('../../../shared/logger.cjs');
|
|
9
|
+
var turnkeyExport = require('../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs');
|
|
10
|
+
var waasExport = require('../../../views/EmbeddedReveal/utils/waasExport/waasExport.cjs');
|
|
11
|
+
|
|
12
|
+
const exportWalletCredential = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ isTurnkeyWallet, isWaasWallet, wallet, user, environmentId, exportPrivateKey, iframeContainerRef, handleAcknowledgeExportPrompt, }) {
|
|
13
|
+
var _b, _c, _d;
|
|
14
|
+
handleAcknowledgeExportPrompt();
|
|
15
|
+
if (isTurnkeyWallet) {
|
|
16
|
+
try {
|
|
17
|
+
return yield turnkeyExport.exportCredential({
|
|
18
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
19
|
+
environmentId,
|
|
20
|
+
user,
|
|
21
|
+
wallet: wallet,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
if (walletConnectorCore.isSessionKeyCompatibleWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector) &&
|
|
26
|
+
((_b = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _b === void 0 ? void 0 : _b.removeSessionKeys)) {
|
|
27
|
+
yield ((_c = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _c === void 0 ? void 0 : _c.removeSessionKeys());
|
|
28
|
+
yield ((_d = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _d === void 0 ? void 0 : _d.createOrRestoreSession({
|
|
29
|
+
ignoreRestore: true,
|
|
30
|
+
}));
|
|
31
|
+
logger.logger.error('[TK - removeSessionKeys] failed to perform revealEmbeddedWalletKey activity', {
|
|
32
|
+
address: wallet === null || wallet === void 0 ? void 0 : wallet.address,
|
|
33
|
+
err,
|
|
34
|
+
userId: user === null || user === void 0 ? void 0 : user.userId,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return turnkeyExport.exportCredential({
|
|
38
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
39
|
+
environmentId,
|
|
40
|
+
user,
|
|
41
|
+
wallet: wallet,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (isWaasWallet) {
|
|
46
|
+
// Start the export in the background
|
|
47
|
+
return waasExport.exportWaasCredential({
|
|
48
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
49
|
+
iframeContainer: iframeContainerRef,
|
|
50
|
+
user,
|
|
51
|
+
wallet: wallet,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
exports.exportWalletCredential = exportWalletCredential;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Wallet, WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
import { UserProfile } from '@dynamic-labs/types';
|
|
3
|
+
export interface ExportWalletCredentialParams {
|
|
4
|
+
isTurnkeyWallet: boolean;
|
|
5
|
+
isWaasWallet: boolean;
|
|
6
|
+
wallet: Wallet<WalletConnectorCore.WalletConnector>;
|
|
7
|
+
user: UserProfile | undefined;
|
|
8
|
+
environmentId: string;
|
|
9
|
+
exportPrivateKey?: boolean;
|
|
10
|
+
iframeContainerRef?: HTMLIFrameElement | null;
|
|
11
|
+
handleAcknowledgeExportPrompt: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const exportWalletCredential: ({ isTurnkeyWallet, isWaasWallet, wallet, user, environmentId, exportPrivateKey, iframeContainerRef, handleAcknowledgeExportPrompt, }: ExportWalletCredentialParams) => Promise<boolean | undefined>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
|
+
import { isSessionKeyCompatibleWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { logger } from '../../../shared/logger.js';
|
|
5
|
+
import { exportCredential } from '../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js';
|
|
6
|
+
import { exportWaasCredential } from '../../../views/EmbeddedReveal/utils/waasExport/waasExport.js';
|
|
7
|
+
|
|
8
|
+
const exportWalletCredential = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isTurnkeyWallet, isWaasWallet, wallet, user, environmentId, exportPrivateKey, iframeContainerRef, handleAcknowledgeExportPrompt, }) {
|
|
9
|
+
var _b, _c, _d;
|
|
10
|
+
handleAcknowledgeExportPrompt();
|
|
11
|
+
if (isTurnkeyWallet) {
|
|
12
|
+
try {
|
|
13
|
+
return yield exportCredential({
|
|
14
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
15
|
+
environmentId,
|
|
16
|
+
user,
|
|
17
|
+
wallet: wallet,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
if (isSessionKeyCompatibleWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector) &&
|
|
22
|
+
((_b = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _b === void 0 ? void 0 : _b.removeSessionKeys)) {
|
|
23
|
+
yield ((_c = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _c === void 0 ? void 0 : _c.removeSessionKeys());
|
|
24
|
+
yield ((_d = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _d === void 0 ? void 0 : _d.createOrRestoreSession({
|
|
25
|
+
ignoreRestore: true,
|
|
26
|
+
}));
|
|
27
|
+
logger.error('[TK - removeSessionKeys] failed to perform revealEmbeddedWalletKey activity', {
|
|
28
|
+
address: wallet === null || wallet === void 0 ? void 0 : wallet.address,
|
|
29
|
+
err,
|
|
30
|
+
userId: user === null || user === void 0 ? void 0 : user.userId,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return exportCredential({
|
|
34
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
35
|
+
environmentId,
|
|
36
|
+
user,
|
|
37
|
+
wallet: wallet,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (isWaasWallet) {
|
|
42
|
+
// Start the export in the background
|
|
43
|
+
return exportWaasCredential({
|
|
44
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
45
|
+
iframeContainer: iframeContainerRef,
|
|
46
|
+
user,
|
|
47
|
+
wallet: wallet,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
export { exportWalletCredential };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
7
|
+
var findPrimaryEmbeddedChain = require('../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
8
|
+
var findEmbeddedWalletFromVerifiedCredentials = require('../findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Finds the primary wallet VC for the user based on wallet type priority and most recent lastSelectedAt
|
|
12
|
+
* @param user - The SDK user object or UserProfile
|
|
13
|
+
* @param projectSettings - Project settings containing embedded wallet configuration
|
|
14
|
+
* @param onlyEmbeddedWallets - Whether to only return embedded wallets
|
|
15
|
+
* @returns JwtVerifiedCredential | undefined - The primary wallet VC for the user
|
|
16
|
+
*/
|
|
17
|
+
const findPrimaryWalletVCForUser = (user, projectSettings, onlyEmbeddedWallets = false) => {
|
|
18
|
+
if (!(user === null || user === void 0 ? void 0 : user.verifiedCredentials))
|
|
19
|
+
return undefined;
|
|
20
|
+
// Sort all verified credentials by lastSelectedAt (most recent first)
|
|
21
|
+
const sortedCredentials = [...user.verifiedCredentials].sort((a, b) => {
|
|
22
|
+
// Handle credentials without lastSelectedAt
|
|
23
|
+
if (!a.lastSelectedAt && !b.lastSelectedAt)
|
|
24
|
+
return 0;
|
|
25
|
+
if (!a.lastSelectedAt)
|
|
26
|
+
return 1; // a goes to end
|
|
27
|
+
if (!b.lastSelectedAt)
|
|
28
|
+
return -1; // b goes to end
|
|
29
|
+
// Both have lastSelectedAt, sort by most recent first
|
|
30
|
+
return b.lastSelectedAt.getTime() - a.lastSelectedAt.getTime();
|
|
31
|
+
});
|
|
32
|
+
// Find AA wallet credential (highest priority)
|
|
33
|
+
const aaWalletCredential = sortedCredentials.find((vc) => vc.walletProvider === sdkApiCore.WalletProviderEnum.SmartContractWallet);
|
|
34
|
+
if (aaWalletCredential) {
|
|
35
|
+
return aaWalletCredential;
|
|
36
|
+
}
|
|
37
|
+
// Find embedded wallet credential (second priority)
|
|
38
|
+
let embeddedWalletCredential;
|
|
39
|
+
if (projectSettings) {
|
|
40
|
+
const primaryEmbeddedChain = findPrimaryEmbeddedChain.findPrimaryEmbeddedChain(projectSettings);
|
|
41
|
+
embeddedWalletCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(Object.assign(Object.assign({}, user), { verifiedCredentials: sortedCredentials }), [primaryEmbeddedChain]);
|
|
42
|
+
}
|
|
43
|
+
if (embeddedWalletCredential) {
|
|
44
|
+
return embeddedWalletCredential;
|
|
45
|
+
}
|
|
46
|
+
if (onlyEmbeddedWallets) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
// Find external wallet credential (lowest priority)
|
|
50
|
+
const externalWalletCredential = sortedCredentials.find((vc) => vc.format === 'blockchain');
|
|
51
|
+
if (externalWalletCredential) {
|
|
52
|
+
return externalWalletCredential;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
exports.findPrimaryWalletVCForUser = findPrimaryWalletVCForUser;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SdkUser } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import type { JwtVerifiedCredential, ProjectSettings } from '@dynamic-labs/sdk-api-core';
|
|
3
|
+
import { UserProfile } from '@dynamic-labs/types';
|
|
4
|
+
/**
|
|
5
|
+
* Finds the primary wallet VC for the user based on wallet type priority and most recent lastSelectedAt
|
|
6
|
+
* @param user - The SDK user object or UserProfile
|
|
7
|
+
* @param projectSettings - Project settings containing embedded wallet configuration
|
|
8
|
+
* @param onlyEmbeddedWallets - Whether to only return embedded wallets
|
|
9
|
+
* @returns JwtVerifiedCredential | undefined - The primary wallet VC for the user
|
|
10
|
+
*/
|
|
11
|
+
export declare const findPrimaryWalletVCForUser: (user: SdkUser | UserProfile | null, projectSettings?: ProjectSettings, onlyEmbeddedWallets?: boolean) => JwtVerifiedCredential | undefined;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
|
|
3
|
+
import { findPrimaryEmbeddedChain } from '../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
4
|
+
import { findEmbeddedWalletFromVerifiedCredentials } from '../findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Finds the primary wallet VC for the user based on wallet type priority and most recent lastSelectedAt
|
|
8
|
+
* @param user - The SDK user object or UserProfile
|
|
9
|
+
* @param projectSettings - Project settings containing embedded wallet configuration
|
|
10
|
+
* @param onlyEmbeddedWallets - Whether to only return embedded wallets
|
|
11
|
+
* @returns JwtVerifiedCredential | undefined - The primary wallet VC for the user
|
|
12
|
+
*/
|
|
13
|
+
const findPrimaryWalletVCForUser = (user, projectSettings, onlyEmbeddedWallets = false) => {
|
|
14
|
+
if (!(user === null || user === void 0 ? void 0 : user.verifiedCredentials))
|
|
15
|
+
return undefined;
|
|
16
|
+
// Sort all verified credentials by lastSelectedAt (most recent first)
|
|
17
|
+
const sortedCredentials = [...user.verifiedCredentials].sort((a, b) => {
|
|
18
|
+
// Handle credentials without lastSelectedAt
|
|
19
|
+
if (!a.lastSelectedAt && !b.lastSelectedAt)
|
|
20
|
+
return 0;
|
|
21
|
+
if (!a.lastSelectedAt)
|
|
22
|
+
return 1; // a goes to end
|
|
23
|
+
if (!b.lastSelectedAt)
|
|
24
|
+
return -1; // b goes to end
|
|
25
|
+
// Both have lastSelectedAt, sort by most recent first
|
|
26
|
+
return b.lastSelectedAt.getTime() - a.lastSelectedAt.getTime();
|
|
27
|
+
});
|
|
28
|
+
// Find AA wallet credential (highest priority)
|
|
29
|
+
const aaWalletCredential = sortedCredentials.find((vc) => vc.walletProvider === WalletProviderEnum.SmartContractWallet);
|
|
30
|
+
if (aaWalletCredential) {
|
|
31
|
+
return aaWalletCredential;
|
|
32
|
+
}
|
|
33
|
+
// Find embedded wallet credential (second priority)
|
|
34
|
+
let embeddedWalletCredential;
|
|
35
|
+
if (projectSettings) {
|
|
36
|
+
const primaryEmbeddedChain = findPrimaryEmbeddedChain(projectSettings);
|
|
37
|
+
embeddedWalletCredential = findEmbeddedWalletFromVerifiedCredentials(Object.assign(Object.assign({}, user), { verifiedCredentials: sortedCredentials }), [primaryEmbeddedChain]);
|
|
38
|
+
}
|
|
39
|
+
if (embeddedWalletCredential) {
|
|
40
|
+
return embeddedWalletCredential;
|
|
41
|
+
}
|
|
42
|
+
if (onlyEmbeddedWallets) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
// Find external wallet credential (lowest priority)
|
|
46
|
+
const externalWalletCredential = sortedCredentials.find((vc) => vc.format === 'blockchain');
|
|
47
|
+
if (externalWalletCredential) {
|
|
48
|
+
return externalWalletCredential;
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export { findPrimaryWalletVCForUser };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { findPrimaryWalletVCForUser } from './findPrimaryWalletVCForUser';
|
|
@@ -84,6 +84,7 @@ export { usePromptAmountAndFundWithExchange } from './usePromptAndFundWithExchan
|
|
|
84
84
|
export { usePayWithDynamic, type PayWithDynamicProps, } from './usePayWithDynamic';
|
|
85
85
|
export { useSubmitExchangeFunding } from './useSubmitExchangeFunding';
|
|
86
86
|
export { useGetPasskeys } from './useGetPasskeys';
|
|
87
|
+
export { useDeletePasskey } from './useDeletePasskey';
|
|
87
88
|
export { useRegisterPasskey } from './useRegisterPasskey';
|
|
88
89
|
export { useAuthenticatePasskeyMFA } from './useAuthenticatePasskeyMFA';
|
|
89
90
|
export { useIsMfaEnabled } from './useIsMfaEnabled';
|
|
@@ -92,3 +93,4 @@ export { useIsTotpMfaEnabled } from './useIsTotpMfaEnabled';
|
|
|
92
93
|
export { useSignInWithPasskey } from './useSignInWithPasskey';
|
|
93
94
|
export { useGetUserMfaMethods } from './useGetUserMfaMethods';
|
|
94
95
|
export { usePromptMfaAuth } from './usePromptMfaAuth';
|
|
96
|
+
export { useUpgradeToDynamicWaasFlow } from './useUpgradeToDynamicWaasFlow';
|
|
@@ -29,15 +29,15 @@ var updatePrimaryWalletId = require('../../functions/updatePrimaryWalletId/updat
|
|
|
29
29
|
require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
|
|
30
30
|
require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
|
|
31
31
|
require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
|
|
32
|
-
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
33
|
-
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
34
|
-
require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
35
32
|
require('@dynamic-labs-sdk/client/core');
|
|
36
33
|
require('../../../client/client.cjs');
|
|
37
34
|
require('@dynamic-labs-sdk/client');
|
|
38
35
|
require('../../../config/ApiEndpoint.cjs');
|
|
39
36
|
require('../../../store/state/projectSettings/projectSettings.cjs');
|
|
40
37
|
require('../../../locale/locale.cjs');
|
|
38
|
+
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
39
|
+
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
40
|
+
require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
41
41
|
require('../../../store/state/authMode/authMode.cjs');
|
|
42
42
|
require('../../../context/VerificationContext/VerificationContext.cjs');
|
|
43
43
|
require('react-dom');
|
|
@@ -25,15 +25,15 @@ import { updatePrimaryWalletId } from '../../functions/updatePrimaryWalletId/upd
|
|
|
25
25
|
import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
26
26
|
import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
27
27
|
import '../../../store/state/primaryWalletId/primaryWalletId.js';
|
|
28
|
-
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
29
|
-
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
30
|
-
import '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
31
28
|
import '@dynamic-labs-sdk/client/core';
|
|
32
29
|
import '../../../client/client.js';
|
|
33
30
|
import '@dynamic-labs-sdk/client';
|
|
34
31
|
import '../../../config/ApiEndpoint.js';
|
|
35
32
|
import '../../../store/state/projectSettings/projectSettings.js';
|
|
36
33
|
import '../../../locale/locale.js';
|
|
34
|
+
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
35
|
+
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
36
|
+
import '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
37
37
|
import '../../../store/state/authMode/authMode.js';
|
|
38
38
|
import '../../../context/VerificationContext/VerificationContext.js';
|
|
39
39
|
import 'react-dom';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useDeletePasskey } from './useDeletePasskey';
|
|
@@ -0,0 +1,33 @@
|
|
|
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 client = require('@dynamic-labs-sdk/client');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Delete passkey
|
|
12
|
+
*
|
|
13
|
+
* @returns Function to delete passkey for the current user
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const App = () => {
|
|
18
|
+
* const deletePasskey = useDeletePasskey();
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <button
|
|
22
|
+
* onClick={async () => {
|
|
23
|
+
* await deletePasskey(passkeyId);
|
|
24
|
+
* }}
|
|
25
|
+
* >
|
|
26
|
+
* Delete passkey
|
|
27
|
+
* </button>
|
|
28
|
+
* );
|
|
29
|
+
* }
|
|
30
|
+
*/
|
|
31
|
+
const useDeletePasskey = () => React.useCallback((passkeyId) => _tslib.__awaiter(void 0, void 0, void 0, function* () { return client.deletePasskey({ passkeyId }); }), []);
|
|
32
|
+
|
|
33
|
+
exports.useDeletePasskey = useDeletePasskey;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delete passkey
|
|
3
|
+
*
|
|
4
|
+
* @returns Function to delete passkey for the current user
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* const App = () => {
|
|
9
|
+
* const deletePasskey = useDeletePasskey();
|
|
10
|
+
*
|
|
11
|
+
* return (
|
|
12
|
+
* <button
|
|
13
|
+
* onClick={async () => {
|
|
14
|
+
* await deletePasskey(passkeyId);
|
|
15
|
+
* }}
|
|
16
|
+
* >
|
|
17
|
+
* Delete passkey
|
|
18
|
+
* </button>
|
|
19
|
+
* );
|
|
20
|
+
* }
|
|
21
|
+
*/
|
|
22
|
+
export declare const useDeletePasskey: () => ((passkeyId: string) => Promise<void>);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { deletePasskey } from '@dynamic-labs-sdk/client';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Delete passkey
|
|
8
|
+
*
|
|
9
|
+
* @returns Function to delete passkey for the current user
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const App = () => {
|
|
14
|
+
* const deletePasskey = useDeletePasskey();
|
|
15
|
+
*
|
|
16
|
+
* return (
|
|
17
|
+
* <button
|
|
18
|
+
* onClick={async () => {
|
|
19
|
+
* await deletePasskey(passkeyId);
|
|
20
|
+
* }}
|
|
21
|
+
* >
|
|
22
|
+
* Delete passkey
|
|
23
|
+
* </button>
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
*/
|
|
27
|
+
const useDeletePasskey = () => useCallback((passkeyId) => __awaiter(void 0, void 0, void 0, function* () { return deletePasskey({ passkeyId }); }), []);
|
|
28
|
+
|
|
29
|
+
export { useDeletePasskey };
|
|
@@ -31,6 +31,8 @@ require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
|
|
|
31
31
|
var dynamicContextProps = require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
|
|
32
32
|
require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
|
|
33
33
|
var projectSettings = require('../../../store/state/projectSettings/projectSettings.cjs');
|
|
34
|
+
require('../../../locale/locale.cjs');
|
|
35
|
+
var wallets = require('../../../data/api/wallets/wallets.cjs');
|
|
34
36
|
var useOnboardingCompleteUser = require('../../../client/extension/user/useOnboardingCompleteUser/useOnboardingCompleteUser.cjs');
|
|
35
37
|
require('../../../context/DynamicContext/DynamicContext.cjs');
|
|
36
38
|
require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
|
|
@@ -39,8 +41,6 @@ require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
|
39
41
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
40
42
|
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
41
43
|
var UserWalletsContext = require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
42
|
-
require('../../../locale/locale.cjs');
|
|
43
|
-
var wallets = require('../../../data/api/wallets/wallets.cjs');
|
|
44
44
|
require('../../../store/state/authMode/authMode.cjs');
|
|
45
45
|
require('../../../context/VerificationContext/VerificationContext.cjs');
|
|
46
46
|
require('react-dom');
|
|
@@ -96,6 +96,11 @@ require('../../../context/FooterAnimationContext/index.cjs');
|
|
|
96
96
|
require('../../../views/MfaChooseDeviceView/getMfaOptions/getMfaOptions.cjs');
|
|
97
97
|
require('../../../context/PasskeyContext/PasskeyContext.cjs');
|
|
98
98
|
require('../../../context/OnrampContext/OnrampContext.cjs');
|
|
99
|
+
var apiUrl = require('../../constants/waas/apiUrl.cjs');
|
|
100
|
+
var useClientSessionKeys = require('../useClientSessionKeys/useClientSessionKeys.cjs');
|
|
101
|
+
var useRefreshUser = require('../useRefreshUser/useRefreshUser.cjs');
|
|
102
|
+
var useGetMfaToken = require('../useGetMfaToken/useGetMfaToken.cjs');
|
|
103
|
+
var constants = require('./constants.cjs');
|
|
99
104
|
require('../../../store/state/sendBalances.cjs');
|
|
100
105
|
require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
101
106
|
require('../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
|
|
@@ -104,11 +109,6 @@ require('../../../views/TransactionConfirmationView/TransactionConfirmationView.
|
|
|
104
109
|
require('../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
|
|
105
110
|
require('../../../../index.cjs');
|
|
106
111
|
require('../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
|
|
107
|
-
var apiUrl = require('../../constants/waas/apiUrl.cjs');
|
|
108
|
-
var useClientSessionKeys = require('../useClientSessionKeys/useClientSessionKeys.cjs');
|
|
109
|
-
var useRefreshUser = require('../useRefreshUser/useRefreshUser.cjs');
|
|
110
|
-
var useGetMfaToken = require('../useGetMfaToken/useGetMfaToken.cjs');
|
|
111
|
-
var constants = require('./constants.cjs');
|
|
112
112
|
require('../../../store/state/tokenBalances.cjs');
|
|
113
113
|
require('../../../store/state/multichainBalances.cjs');
|
|
114
114
|
require('../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
|
|
@@ -155,6 +155,7 @@ const useDynamicWaas = () => {
|
|
|
155
155
|
const { getSignedSessionId } = useClientSessionKeys.useClientSessionKeys();
|
|
156
156
|
const getMfaToken = useGetMfaToken.useGetMfaToken();
|
|
157
157
|
const isCookieAuthEnabled = projectSettings$1 && isCookieEnabled.isCookieEnabled(projectSettings$1);
|
|
158
|
+
const isUpgrading = React.useRef(false);
|
|
158
159
|
const getWalletConnector = React.useCallback((chainName) => {
|
|
159
160
|
var _a;
|
|
160
161
|
if (!isCookieAuthEnabled && !authToken) {
|
|
@@ -190,6 +191,9 @@ const useDynamicWaas = () => {
|
|
|
190
191
|
// If no chain names are provided, filter out chains that already have a wallet
|
|
191
192
|
// and make a wallet for each enabled chain
|
|
192
193
|
const createWalletAccount = React.useCallback((chainNames, password) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
194
|
+
if (isUpgrading.current) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
193
197
|
if (!(enabledChainNames === null || enabledChainNames === void 0 ? void 0 : enabledChainNames.length)) {
|
|
194
198
|
throw new utils.DynamicError(constants.NO_ENABLED_CHAINS_ERROR);
|
|
195
199
|
}
|
|
@@ -272,15 +276,7 @@ const useDynamicWaas = () => {
|
|
|
272
276
|
}
|
|
273
277
|
setShowAuthFlow(false, { performMultiWalletChecks: false }); // close email otp pin modal
|
|
274
278
|
return createdWalletAccounts;
|
|
275
|
-
}), [
|
|
276
|
-
getWalletConnector,
|
|
277
|
-
primaryChain,
|
|
278
|
-
enabledChainNames,
|
|
279
|
-
refresh,
|
|
280
|
-
setShowAuthFlow,
|
|
281
|
-
user === null || user === void 0 ? void 0 : user.verifiedCredentials,
|
|
282
|
-
addedWalletsIds,
|
|
283
|
-
]);
|
|
279
|
+
}), [getWalletConnector, primaryChain, enabledChainNames, setShowAuthFlow]);
|
|
284
280
|
const needsAutoCreateWalletChains = React.useMemo(() => {
|
|
285
281
|
if (!user ||
|
|
286
282
|
!dynamicWaasIsEnabled ||
|
|
@@ -320,41 +316,45 @@ const useDynamicWaas = () => {
|
|
|
320
316
|
});
|
|
321
317
|
yield refresh();
|
|
322
318
|
});
|
|
323
|
-
const upgradeToDynamicWaas = React.useCallback((_e) => _tslib.__awaiter(void 0, [_e], void 0, function* ({ privateKey }) {
|
|
319
|
+
const upgradeToDynamicWaas = React.useCallback((_e) => _tslib.__awaiter(void 0, [_e], void 0, function* ({ privateKey, wallet, }) {
|
|
320
|
+
isUpgrading.current = true;
|
|
324
321
|
if (!primaryWallet) {
|
|
325
322
|
throw new utils.DynamicError('Primary wallet not found');
|
|
326
323
|
}
|
|
327
|
-
const chainName =
|
|
328
|
-
const walletId =
|
|
324
|
+
const chainName = wallet.chain;
|
|
325
|
+
const walletId = wallet.id;
|
|
329
326
|
const walletConnector = getWalletConnector(chainName);
|
|
330
327
|
if (!walletConnector) {
|
|
331
328
|
throw new utils.DynamicError('Wallet connector not found');
|
|
332
329
|
}
|
|
333
330
|
let softDeleteSucceeded = false;
|
|
331
|
+
// 7702 wallets have a -zerodev suffix because it's a credential created on the fly
|
|
332
|
+
const normalizedWalletId = (walletId === null || walletId === void 0 ? void 0 : walletId.replace('-zerodev', '')) || walletId;
|
|
334
333
|
try {
|
|
335
334
|
yield wallets.softDeleteEmbeddedWallet({
|
|
336
335
|
environmentId,
|
|
337
|
-
walletId,
|
|
336
|
+
walletId: normalizedWalletId,
|
|
338
337
|
});
|
|
339
338
|
softDeleteSucceeded = true;
|
|
340
339
|
yield walletConnector.importPrivateKey({
|
|
341
340
|
chainName,
|
|
342
341
|
privateKey,
|
|
343
342
|
});
|
|
344
|
-
|
|
343
|
+
isUpgrading.current = false;
|
|
345
344
|
}
|
|
346
345
|
catch (error) {
|
|
347
346
|
// If soft delete succeeded but import failed, try to restore the wallet
|
|
348
347
|
if (softDeleteSucceeded) {
|
|
349
348
|
yield wallets.restoreEmbeddedWallet({
|
|
350
349
|
environmentId,
|
|
351
|
-
walletId,
|
|
350
|
+
walletId: normalizedWalletId,
|
|
352
351
|
});
|
|
353
352
|
yield refresh();
|
|
354
353
|
}
|
|
354
|
+
isUpgrading.current = false;
|
|
355
355
|
throw error instanceof utils.DynamicError
|
|
356
356
|
? error
|
|
357
|
-
: new utils.DynamicError('Upgrade failed');
|
|
357
|
+
: new utils.DynamicError('Upgrade failed, please try again.');
|
|
358
358
|
}
|
|
359
359
|
}), [environmentId, getWalletConnector, primaryWallet, refresh]);
|
|
360
360
|
const delegateKeyShares = React.useCallback((_f) => _tslib.__awaiter(void 0, [_f], void 0, function* ({ chainName, accountAddress, }) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChainEnum, MFAAction } from '@dynamic-labs/sdk-api-core';
|
|
2
|
-
import { IDynamicWaasConnector } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
import { IDynamicWaasConnector, Wallet, WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
|
|
3
3
|
export declare const configWaasWalletConnector: ({ walletConnector, environmentId, apiBaseUrl, authToken, relayUrl, authMode, getSignedSessionId, getMfaToken, }: {
|
|
4
4
|
walletConnector: IDynamicWaasConnector;
|
|
5
5
|
environmentId: string;
|
|
@@ -18,20 +18,21 @@ export declare const useDynamicWaas: () => {
|
|
|
18
18
|
accountAddress: string;
|
|
19
19
|
publicKeyHex: string;
|
|
20
20
|
rawPublicKey: string | Uint8Array | undefined;
|
|
21
|
-
} | undefined)[]>;
|
|
21
|
+
} | undefined)[] | undefined>;
|
|
22
22
|
delegateKeyShares: ({ chainName, accountAddress, }: {
|
|
23
23
|
chainName: ChainEnum;
|
|
24
24
|
accountAddress: string;
|
|
25
25
|
}) => Promise<void>;
|
|
26
26
|
dynamicWaasIsEnabled: boolean;
|
|
27
|
-
getWaasWallets: () =>
|
|
27
|
+
getWaasWallets: () => Wallet<WalletConnectorCore.WalletConnector>[];
|
|
28
28
|
getWalletConnector: (chainName: string) => IDynamicWaasConnector | undefined;
|
|
29
29
|
importPrivateKey: ({ chainName, privateKey, }: {
|
|
30
30
|
chainName: ChainEnum;
|
|
31
31
|
privateKey: string;
|
|
32
32
|
}) => Promise<void>;
|
|
33
33
|
needsAutoCreateWalletChains: ChainEnum[];
|
|
34
|
-
upgradeToDynamicWaas: ({ privateKey }: {
|
|
34
|
+
upgradeToDynamicWaas: ({ privateKey, wallet, }: {
|
|
35
35
|
privateKey: string;
|
|
36
|
+
wallet: Wallet<WalletConnectorCore.WalletConnector>;
|
|
36
37
|
}) => Promise<void>;
|
|
37
38
|
};
|