@dynamic-labs/sdk-react-core 2.1.0-alpha.7 → 2.1.0-alpha.9
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 +18 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +13 -13
- package/src/lib/components/Portal/Portal.cjs +2 -1
- package/src/lib/components/Portal/Portal.js +2 -1
- package/src/lib/components/SandboxIndicatorWrapper/SandboxIndicatorWrapper.d.ts +0 -2
- package/src/lib/components/Toolkit/components/index.d.ts +0 -6
- package/src/lib/components/Tooltip/Tooltip.cjs +2 -1
- package/src/lib/components/Tooltip/Tooltip.js +2 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +5 -2
- package/src/lib/context/DynamicContext/DynamicContext.js +5 -2
- package/src/lib/context/DynamicContext/types/index.d.ts +0 -1
- package/src/lib/data/api/wallets/wallets.cjs +21 -5
- package/src/lib/data/api/wallets/wallets.d.ts +4 -0
- package/src/lib/data/api/wallets/wallets.js +21 -6
- package/src/lib/shared/utils/classes/storage/localStorage.cjs +2 -2
- package/src/lib/shared/utils/classes/storage/localStorage.js +2 -2
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.cjs +14 -0
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.d.ts +3 -0
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.js +10 -0
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/index.d.ts +1 -0
- package/src/lib/utils/functions/createUserProfile/createUserProfile.cjs +1 -2
- package/src/lib/utils/functions/createUserProfile/createUserProfile.js +1 -2
- package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs +3 -4
- package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.d.ts +1 -1
- package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js +4 -5
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.cjs +1 -1
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.d.ts +3 -1
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.js +1 -1
- package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.cjs +5 -5
- package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.d.ts +3 -2
- package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.js +5 -5
- package/src/lib/utils/functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs +7 -2
- package/src/lib/utils/functions/hasEmbeddedWallet/hasEmbeddedWallet.js +7 -2
- package/src/lib/utils/functions/index.d.ts +1 -1
- package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.cjs +2 -1
- package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.js +2 -1
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +16 -11
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.d.ts +7 -2
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +16 -11
- package/src/lib/utils/hooks/useDynamicScopes/useDynamicScopes.cjs +3 -3
- package/src/lib/utils/hooks/useDynamicScopes/useDynamicScopes.js +3 -3
- package/src/lib/utils/hooks/useElementById/useElementById.cjs +33 -18
- package/src/lib/utils/hooks/useElementById/useElementById.d.ts +3 -1
- package/src/lib/utils/hooks/useElementById/useElementById.js +33 -18
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +9 -4
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +6 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +9 -4
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +6 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.d.ts +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +6 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +7 -7
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.d.ts +2 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +7 -7
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +24 -27
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +6 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +24 -27
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +16 -11
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.d.ts +4 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +16 -11
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.cjs +2 -2
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.js +2 -2
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +2 -1
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +2 -1
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +13 -4
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.d.ts +10 -2
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +13 -4
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +2 -3
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +2 -3
- package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/EmbeddedAuthChoiceCards.cjs +2 -1
- package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/EmbeddedAuthChoiceCards.js +2 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +5 -4
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.d.ts +6 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +5 -4
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +2 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +2 -1
- package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.cjs → createEmbeddedWalletRequest/createEmbeddedWalletRequest.cjs} +17 -18
- package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.d.ts → createEmbeddedWalletRequest/createEmbeddedWalletRequest.d.ts} +7 -3
- package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.js → createEmbeddedWalletRequest/createEmbeddedWalletRequest.js} +17 -18
- package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/index.d.ts +1 -0
- package/src/lib/views/Passkey/utils/index.d.ts +1 -2
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +2 -2
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +2 -2
- package/src/lib/views/WalletList/WalletList.cjs +3 -6
- package/src/lib/views/WalletList/WalletList.js +3 -6
- package/src/lib/views/WalletLockedView/WalletLockedView.cjs +2 -8
- package/src/lib/views/WalletLockedView/WalletLockedView.js +2 -8
- package/src/lib/views/viewToComponentMap.d.ts +4 -2
- package/src/lib/widgets/DynamicWidget/components/PromptModal/PromptModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/PromptModal/PromptModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.js +1 -1
- package/src/lib/utils/functions/isEmbeddedWalletPresent/index.d.ts +0 -1
- package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.cjs +0 -19
- package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.d.ts +0 -1
- package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.js +0 -15
- package/src/lib/views/Passkey/utils/createEmbeddedWalletWithPasskey/index.d.ts +0 -1
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.cjs +0 -65
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.d.ts +0 -16
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.js +0 -61
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/index.d.ts +0 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
+
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
7
|
var React = require('react');
|
|
7
8
|
require('@dynamic-labs/sdk-api-core');
|
|
8
9
|
require('../../../shared/logger.cjs');
|
|
@@ -19,19 +20,27 @@ var useLocalStorage = require('../../../shared/utils/hooks/useLocalStorage/useLo
|
|
|
19
20
|
require('@dynamic-labs/utils');
|
|
20
21
|
require('../../../shared/consts/index.cjs');
|
|
21
22
|
var primaryWalletIdValidator = require('../useWalletConnectors/utils/primaryWalletIdValidator/primaryWalletIdValidator.cjs');
|
|
22
|
-
require('../../../../../_virtual/_tslib.cjs');
|
|
23
23
|
require('@dynamic-labs/multi-wallet');
|
|
24
24
|
require('react-international-phone');
|
|
25
25
|
require('viem');
|
|
26
26
|
require('viem/chains');
|
|
27
27
|
require('../../../config/ApiEndpoint.cjs');
|
|
28
28
|
require('../../../locale/locale.cjs');
|
|
29
|
+
var wallets = require('../../../data/api/wallets/wallets.cjs');
|
|
30
|
+
var updateJWTAndCreateUserProfile = require('../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
|
|
29
31
|
|
|
30
|
-
const usePrimaryWalletId = () => {
|
|
32
|
+
const usePrimaryWalletId = ({ minAuthToken, environmentId, setUser, }) => {
|
|
31
33
|
const [primaryWalletId, setPrimaryWalletIdState, clearPrimaryWalletId] = useLocalStorage.useLocalStorage(localStorage.PRIMARY_WALLET_ID, undefined, primaryWalletIdValidator.primaryWalletIdValidator);
|
|
32
|
-
const setPrimaryWalletId = React.useCallback((walletId) => {
|
|
34
|
+
const setPrimaryWalletId = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
33
35
|
setPrimaryWalletIdState(walletId);
|
|
34
|
-
|
|
36
|
+
if (minAuthToken) {
|
|
37
|
+
const response = yield wallets.storeSelectedWallet({ environmentId, walletId }, minAuthToken);
|
|
38
|
+
// only update userProfile, authToken, and minAuthToken when response is valid from storeSelectedWallet
|
|
39
|
+
if (response) {
|
|
40
|
+
setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(response.jwt, response.minifiedJwt));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}), [setPrimaryWalletIdState]);
|
|
35
44
|
return {
|
|
36
45
|
clearPrimaryWalletId,
|
|
37
46
|
primaryWalletId,
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import { Dispatch, SetStateAction } from 'react';
|
|
2
|
+
import { UserProfile } from '@dynamic-labs/types';
|
|
3
|
+
type Props = {
|
|
4
|
+
setUser: Dispatch<SetStateAction<UserProfile | undefined>>;
|
|
5
|
+
environmentId: string;
|
|
6
|
+
minAuthToken: string | undefined;
|
|
7
|
+
};
|
|
8
|
+
export declare const usePrimaryWalletId: ({ minAuthToken, environmentId, setUser, }: Props) => {
|
|
2
9
|
clearPrimaryWalletId: () => void;
|
|
3
10
|
primaryWalletId: string | undefined;
|
|
4
|
-
setPrimaryWalletId: (walletId: string) => void
|
|
11
|
+
setPrimaryWalletId: (walletId: string) => Promise<void>;
|
|
5
12
|
};
|
|
13
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
2
3
|
import { useCallback } from 'react';
|
|
3
4
|
import '@dynamic-labs/sdk-api-core';
|
|
4
5
|
import '../../../shared/logger.js';
|
|
@@ -15,19 +16,27 @@ import { useLocalStorage } from '../../../shared/utils/hooks/useLocalStorage/use
|
|
|
15
16
|
import '@dynamic-labs/utils';
|
|
16
17
|
import '../../../shared/consts/index.js';
|
|
17
18
|
import { primaryWalletIdValidator } from '../useWalletConnectors/utils/primaryWalletIdValidator/primaryWalletIdValidator.js';
|
|
18
|
-
import '../../../../../_virtual/_tslib.js';
|
|
19
19
|
import '@dynamic-labs/multi-wallet';
|
|
20
20
|
import 'react-international-phone';
|
|
21
21
|
import 'viem';
|
|
22
22
|
import 'viem/chains';
|
|
23
23
|
import '../../../config/ApiEndpoint.js';
|
|
24
24
|
import '../../../locale/locale.js';
|
|
25
|
+
import { storeSelectedWallet } from '../../../data/api/wallets/wallets.js';
|
|
26
|
+
import { updateJWTAndCreateUserProfile } from '../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
|
|
25
27
|
|
|
26
|
-
const usePrimaryWalletId = () => {
|
|
28
|
+
const usePrimaryWalletId = ({ minAuthToken, environmentId, setUser, }) => {
|
|
27
29
|
const [primaryWalletId, setPrimaryWalletIdState, clearPrimaryWalletId] = useLocalStorage(PRIMARY_WALLET_ID, undefined, primaryWalletIdValidator);
|
|
28
|
-
const setPrimaryWalletId = useCallback((walletId) => {
|
|
30
|
+
const setPrimaryWalletId = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
31
|
setPrimaryWalletIdState(walletId);
|
|
30
|
-
|
|
32
|
+
if (minAuthToken) {
|
|
33
|
+
const response = yield storeSelectedWallet({ environmentId, walletId }, minAuthToken);
|
|
34
|
+
// only update userProfile, authToken, and minAuthToken when response is valid from storeSelectedWallet
|
|
35
|
+
if (response) {
|
|
36
|
+
setUser(updateJWTAndCreateUserProfile(response.jwt, response.minifiedJwt));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}), [setPrimaryWalletIdState]);
|
|
31
40
|
return {
|
|
32
41
|
clearPrimaryWalletId,
|
|
33
42
|
primaryWalletId,
|
|
@@ -82,8 +82,7 @@ require('../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection
|
|
|
82
82
|
// The component notifies the user about the required manual network change,
|
|
83
83
|
// as the wallet does not support programmatic network change.
|
|
84
84
|
const NetworkNotSupportedSwitchManual = () => {
|
|
85
|
-
|
|
86
|
-
const { user, selectedWalletConnector: walletConnector } = useInternalDynamicContext.useInternalDynamicContext();
|
|
85
|
+
const { selectedWalletConnector: walletConnector } = useInternalDynamicContext.useInternalDynamicContext();
|
|
87
86
|
useNetworkNotSupported.useNetworkNotSupported();
|
|
88
87
|
const { t } = reactI18next.useTranslation();
|
|
89
88
|
const iconSize = 80;
|
|
@@ -92,7 +91,7 @@ const NetworkNotSupportedSwitchManual = () => {
|
|
|
92
91
|
width: pixelToRem.pixelToRem(iconSize * IconWithSpinner.iconRatio),
|
|
93
92
|
} }));
|
|
94
93
|
const walletConnectorNetworks = getWalletConnectorNetworks.getWalletConnectorNetworks(walletConnector);
|
|
95
|
-
return (jsxRuntime.jsxs("div", { "data-testid": 'network-not-supported', className: 'network-not-supported-switch-manual', children: [jsxRuntime.jsx("div", { className: 'network-not-supported-switch-manual__img-container', children:
|
|
94
|
+
return (jsxRuntime.jsxs("div", { "data-testid": 'network-not-supported', className: 'network-not-supported-switch-manual', children: [jsxRuntime.jsx("div", { className: 'network-not-supported-switch-manual__img-container', children: jsxRuntime.jsx("div", { className: 'network-not-supported-switch-manual__network-container', children: jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: icon, iconSize: iconSize, isSpinning: true }) }) }), jsxRuntime.jsxs("div", { className: 'network-not-supported-switch-manual__content', children: [jsxRuntime.jsx(Typography.Typography, { className: 'network-not-supported-switch-manual__title', weight: 'medium', variant: 'title', color: 'primary', copykey: 'dyn_network_not_supported_manual_switch.title', children: t('dyn_network_not_supported_manual_switch.title') }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'secondary', copykey: walletConnectorNetworks.length
|
|
96
95
|
? 'dyn_network_not_supported_manual_switch.subtitle_network_defined'
|
|
97
96
|
: 'dyn_network_not_supported_manual_switch.subtitle_no_network_defined', children: walletConnectorNetworks.length
|
|
98
97
|
? t('dyn_network_not_supported_manual_switch.subtitle_network_defined', { network: walletConnectorNetworks[0].name })
|
|
@@ -78,8 +78,7 @@ import '../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection.
|
|
|
78
78
|
// The component notifies the user about the required manual network change,
|
|
79
79
|
// as the wallet does not support programmatic network change.
|
|
80
80
|
const NetworkNotSupportedSwitchManual = () => {
|
|
81
|
-
|
|
82
|
-
const { user, selectedWalletConnector: walletConnector } = useInternalDynamicContext();
|
|
81
|
+
const { selectedWalletConnector: walletConnector } = useInternalDynamicContext();
|
|
83
82
|
useNetworkNotSupported();
|
|
84
83
|
const { t } = useTranslation();
|
|
85
84
|
const iconSize = 80;
|
|
@@ -88,7 +87,7 @@ const NetworkNotSupportedSwitchManual = () => {
|
|
|
88
87
|
width: pixelToRem(iconSize * iconRatio),
|
|
89
88
|
} }));
|
|
90
89
|
const walletConnectorNetworks = getWalletConnectorNetworks(walletConnector);
|
|
91
|
-
return (jsxs("div", { "data-testid": 'network-not-supported', className: 'network-not-supported-switch-manual', children: [jsx("div", { className: 'network-not-supported-switch-manual__img-container', children:
|
|
90
|
+
return (jsxs("div", { "data-testid": 'network-not-supported', className: 'network-not-supported-switch-manual', children: [jsx("div", { className: 'network-not-supported-switch-manual__img-container', children: jsx("div", { className: 'network-not-supported-switch-manual__network-container', children: jsx(IconWithSpinner, { Icon: icon, iconSize: iconSize, isSpinning: true }) }) }), jsxs("div", { className: 'network-not-supported-switch-manual__content', children: [jsx(Typography, { className: 'network-not-supported-switch-manual__title', weight: 'medium', variant: 'title', color: 'primary', copykey: 'dyn_network_not_supported_manual_switch.title', children: t('dyn_network_not_supported_manual_switch.title') }), jsx(Typography, { variant: 'body_normal', color: 'secondary', copykey: walletConnectorNetworks.length
|
|
92
91
|
? 'dyn_network_not_supported_manual_switch.subtitle_network_defined'
|
|
93
92
|
: 'dyn_network_not_supported_manual_switch.subtitle_no_network_defined', children: walletConnectorNetworks.length
|
|
94
93
|
? t('dyn_network_not_supported_manual_switch.subtitle_network_defined', { network: walletConnectorNetworks[0].name })
|
|
@@ -88,7 +88,8 @@ const EmbeddedAuthChoiceCards = ({ currentAction, supportedAuthenticators, }) =>
|
|
|
88
88
|
const { projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
|
|
89
89
|
const { t } = reactI18next.useTranslation();
|
|
90
90
|
const { initAuthMethod, isLoading } = useInitEmbeddedWalletAuthMethod.useInitEmbeddedWalletAuthMethod();
|
|
91
|
-
const
|
|
91
|
+
const { createRootElement } = useElementById.useElementById();
|
|
92
|
+
const iframeContainerRef = createRootElement(constants.iframeContainerId);
|
|
92
93
|
const supportedAuthenticatorsMap = {
|
|
93
94
|
email: {
|
|
94
95
|
badgeKey: 'dyn_embedded_authenticator.email.badge',
|
|
@@ -84,7 +84,8 @@ const EmbeddedAuthChoiceCards = ({ currentAction, supportedAuthenticators, }) =>
|
|
|
84
84
|
const { projectSettings } = useInternalDynamicContext();
|
|
85
85
|
const { t } = useTranslation();
|
|
86
86
|
const { initAuthMethod, isLoading } = useInitEmbeddedWalletAuthMethod();
|
|
87
|
-
const
|
|
87
|
+
const { createRootElement } = useElementById();
|
|
88
|
+
const iframeContainerRef = createRootElement(iframeContainerId);
|
|
88
89
|
const supportedAuthenticatorsMap = {
|
|
89
90
|
email: {
|
|
90
91
|
badgeKey: 'dyn_embedded_authenticator.email.badge',
|
|
@@ -88,11 +88,11 @@ require('../../TransactionConfirmationView/helpers/transactionErrorMessage.cjs')
|
|
|
88
88
|
require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
89
89
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
90
90
|
|
|
91
|
-
const PasskeyIntroView = () => {
|
|
91
|
+
const PasskeyIntroView = ({ chains }) => {
|
|
92
92
|
var _a;
|
|
93
|
-
const { walletConnectorOptions, environmentId, handleLogOut, onboardingOnlyJwt,
|
|
94
|
-
const isEmailRecoveryFlow = ((_a =
|
|
95
|
-
!getUserVerifiedCredentialType.getUserVerifiedCredentialType(
|
|
93
|
+
const { walletConnectorOptions, environmentId, handleLogOut, onboardingOnlyJwt, user, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
94
|
+
const isEmailRecoveryFlow = ((_a = user === null || user === void 0 ? void 0 : user.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.length) === 1 &&
|
|
95
|
+
!getUserVerifiedCredentialType.getUserVerifiedCredentialType(user, sdkApiCore.JwtVerifiedCredentialFormatEnum.Email);
|
|
96
96
|
const { t } = reactI18next.useTranslation();
|
|
97
97
|
// TODO(GVTY-1137): send a metric when we detect passkeys are not enabled by the browser/device
|
|
98
98
|
// we removed enforcing this check since we were getting false negatives
|
|
@@ -112,6 +112,7 @@ const PasskeyIntroView = () => {
|
|
|
112
112
|
setCreateWalletWithAuthenticator(withAuthenticator);
|
|
113
113
|
yield createDynamicEmbeddedWalletMutation({
|
|
114
114
|
authToken: jwt,
|
|
115
|
+
chains,
|
|
115
116
|
decodedJwt,
|
|
116
117
|
environmentId,
|
|
117
118
|
walletConnectorOptions,
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
|
|
2
|
+
import { ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
3
|
+
type PasskeyIntroViewProps = {
|
|
4
|
+
chains?: ChainEnum[];
|
|
5
|
+
};
|
|
6
|
+
export declare const PasskeyIntroView: FC<PasskeyIntroViewProps>;
|
|
7
|
+
export {};
|
|
@@ -84,11 +84,11 @@ import '../../TransactionConfirmationView/helpers/transactionErrorMessage.js';
|
|
|
84
84
|
import '../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
85
85
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
86
86
|
|
|
87
|
-
const PasskeyIntroView = () => {
|
|
87
|
+
const PasskeyIntroView = ({ chains }) => {
|
|
88
88
|
var _a;
|
|
89
|
-
const { walletConnectorOptions, environmentId, handleLogOut, onboardingOnlyJwt,
|
|
90
|
-
const isEmailRecoveryFlow = ((_a =
|
|
91
|
-
!getUserVerifiedCredentialType(
|
|
89
|
+
const { walletConnectorOptions, environmentId, handleLogOut, onboardingOnlyJwt, user, } = useInternalDynamicContext();
|
|
90
|
+
const isEmailRecoveryFlow = ((_a = user === null || user === void 0 ? void 0 : user.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.length) === 1 &&
|
|
91
|
+
!getUserVerifiedCredentialType(user, JwtVerifiedCredentialFormatEnum.Email);
|
|
92
92
|
const { t } = useTranslation();
|
|
93
93
|
// TODO(GVTY-1137): send a metric when we detect passkeys are not enabled by the browser/device
|
|
94
94
|
// we removed enforcing this check since we were getting false negatives
|
|
@@ -108,6 +108,7 @@ const PasskeyIntroView = () => {
|
|
|
108
108
|
setCreateWalletWithAuthenticator(withAuthenticator);
|
|
109
109
|
yield createDynamicEmbeddedWalletMutation({
|
|
110
110
|
authToken: jwt,
|
|
111
|
+
chains,
|
|
111
112
|
decodedJwt,
|
|
112
113
|
environmentId,
|
|
113
114
|
walletConnectorOptions,
|
|
@@ -91,7 +91,8 @@ const PasskeyInitRecovery = ({ authenticatorType, }) => {
|
|
|
91
91
|
const { setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
|
|
92
92
|
const { isTurnkeyWalletWithoutAuthenticator } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
93
93
|
const { initAuthMethod, isLoading, error } = useInitEmbeddedWalletAuthMethod.useInitEmbeddedWalletAuthMethod();
|
|
94
|
-
const
|
|
94
|
+
const { createRootElement } = useElementById.useElementById();
|
|
95
|
+
const iframeContainerRef = createRootElement(constants.iframeContainerId);
|
|
95
96
|
const { t } = reactI18next.useTranslation();
|
|
96
97
|
const errorText = React.useMemo(() => {
|
|
97
98
|
if (!error) {
|
|
@@ -87,7 +87,8 @@ const PasskeyInitRecovery = ({ authenticatorType, }) => {
|
|
|
87
87
|
const { setShowAuthFlow } = useInternalDynamicContext();
|
|
88
88
|
const { isTurnkeyWalletWithoutAuthenticator } = useIsTurnkeyWallet();
|
|
89
89
|
const { initAuthMethod, isLoading, error } = useInitEmbeddedWalletAuthMethod();
|
|
90
|
-
const
|
|
90
|
+
const { createRootElement } = useElementById();
|
|
91
|
+
const iframeContainerRef = createRootElement(iframeContainerId);
|
|
91
92
|
const { t } = useTranslation();
|
|
92
93
|
const errorText = useMemo(() => {
|
|
93
94
|
if (!error) {
|
|
@@ -24,11 +24,11 @@ require('../../../../locale/locale.cjs');
|
|
|
24
24
|
var findEmbeddedWalletFromVerifiedCredentials = require('../../../../utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
|
|
25
25
|
require('@dynamic-labs/multi-wallet');
|
|
26
26
|
require('react-international-phone');
|
|
27
|
+
var addPasskeyIdentifierToWalletConnector = require('../../../../utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.cjs');
|
|
27
28
|
require('viem');
|
|
28
29
|
require('viem/chains');
|
|
29
30
|
|
|
30
|
-
const
|
|
31
|
-
var _b;
|
|
31
|
+
const createEmbeddedWalletRequest = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ user, walletConnector, environmentId, authToken, chains, webAuthnAttestation, withAuthenticator, }) {
|
|
32
32
|
if (!authToken) {
|
|
33
33
|
throw new utils.DynamicError('Auth token is not defined');
|
|
34
34
|
}
|
|
@@ -39,27 +39,26 @@ const createEmbeddedWalletWithPasskey = (_a) => _tslib.__awaiter(void 0, [_a], v
|
|
|
39
39
|
throw new utils.DynamicError('User is not defined');
|
|
40
40
|
}
|
|
41
41
|
walletConnector.setEmail(user.email);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
let authenticatorBody;
|
|
43
|
+
if (withAuthenticator || webAuthnAttestation !== undefined) {
|
|
44
|
+
if (!user.email) {
|
|
45
|
+
addPasskeyIdentifierToWalletConnector.addPasskeyIdentifierToWalletConnector(walletConnector, user);
|
|
46
|
+
}
|
|
47
|
+
const { attestation, challenge, displayName } = webAuthnAttestation || (yield walletConnector.getWebAuthnAttestation());
|
|
48
|
+
authenticatorBody = {
|
|
49
|
+
attestation: attestation,
|
|
50
|
+
challenge,
|
|
51
|
+
passkeyAlias: displayName,
|
|
52
|
+
};
|
|
47
53
|
}
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
attestation: attestation,
|
|
51
|
-
chains,
|
|
52
|
-
challenge,
|
|
53
|
-
environmentId,
|
|
54
|
-
passkeyAlias: displayName,
|
|
55
|
-
userJwt: authToken,
|
|
56
|
-
});
|
|
54
|
+
const signersResponse = yield embeddedWallets.createTurnkeyEmbeddedWallet(Object.assign({ chains,
|
|
55
|
+
environmentId, userJwt: authToken }, authenticatorBody));
|
|
57
56
|
const { jwt } = signersResponse;
|
|
58
57
|
const decodedJwt = decodeJwt.decodeJwt(jwt);
|
|
59
58
|
if (decodedJwt === undefined)
|
|
60
59
|
throw new utils.DynamicError('Invalid token!');
|
|
61
60
|
const primaryChain = walletConnector.connectedChain;
|
|
62
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, primaryChain);
|
|
61
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, [primaryChain]);
|
|
63
62
|
if (!embeddedWalletVerifiedCredential) {
|
|
64
63
|
throw new utils.DynamicError('EmbeddedWalletVerifiedCredential not found');
|
|
65
64
|
}
|
|
@@ -73,4 +72,4 @@ const createEmbeddedWalletWithPasskey = (_a) => _tslib.__awaiter(void 0, [_a], v
|
|
|
73
72
|
};
|
|
74
73
|
});
|
|
75
74
|
|
|
76
|
-
exports.
|
|
75
|
+
exports.createEmbeddedWalletRequest = createEmbeddedWalletRequest;
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
2
2
|
import { UserProfile } from '@dynamic-labs/types';
|
|
3
|
-
import { IEmailWalletConnector, IPasskeyWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
-
|
|
3
|
+
import { IEmailWalletConnector, IPasskeyWalletConnector, WebAuthnAttestation } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
type CreateEmbeddedWalletRequestProps = {
|
|
5
5
|
authToken: string | undefined;
|
|
6
6
|
environmentId: string;
|
|
7
7
|
user: UserProfile | undefined;
|
|
8
8
|
walletConnector: (IPasskeyWalletConnector & IEmailWalletConnector) | undefined;
|
|
9
9
|
chains: ChainEnum[];
|
|
10
|
-
|
|
10
|
+
webAuthnAttestation?: WebAuthnAttestation;
|
|
11
|
+
withAuthenticator: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const createEmbeddedWalletRequest: ({ user, walletConnector, environmentId, authToken, chains, webAuthnAttestation, withAuthenticator, }: CreateEmbeddedWalletRequestProps) => Promise<{
|
|
11
14
|
decodedJwt: Omit<import("@dynamic-labs/sdk-api-core").DynamicJwt, "jwt">;
|
|
12
15
|
embeddedWalletVerifiedCredential: import("@dynamic-labs/sdk-api-core").JwtVerifiedCredential;
|
|
13
16
|
jwt: string;
|
|
14
17
|
signersResponse: import("@dynamic-labs/sdk-api-core").VerifyResponse;
|
|
15
18
|
walletConnector: IPasskeyWalletConnector & IEmailWalletConnector;
|
|
16
19
|
}>;
|
|
20
|
+
export {};
|
|
@@ -20,11 +20,11 @@ import '../../../../locale/locale.js';
|
|
|
20
20
|
import { findEmbeddedWalletFromVerifiedCredentials } from '../../../../utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
|
|
21
21
|
import '@dynamic-labs/multi-wallet';
|
|
22
22
|
import 'react-international-phone';
|
|
23
|
+
import { addPasskeyIdentifierToWalletConnector } from '../../../../utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.js';
|
|
23
24
|
import 'viem';
|
|
24
25
|
import 'viem/chains';
|
|
25
26
|
|
|
26
|
-
const
|
|
27
|
-
var _b;
|
|
27
|
+
const createEmbeddedWalletRequest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ user, walletConnector, environmentId, authToken, chains, webAuthnAttestation, withAuthenticator, }) {
|
|
28
28
|
if (!authToken) {
|
|
29
29
|
throw new DynamicError('Auth token is not defined');
|
|
30
30
|
}
|
|
@@ -35,27 +35,26 @@ const createEmbeddedWalletWithPasskey = (_a) => __awaiter(void 0, [_a], void 0,
|
|
|
35
35
|
throw new DynamicError('User is not defined');
|
|
36
36
|
}
|
|
37
37
|
walletConnector.setEmail(user.email);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
let authenticatorBody;
|
|
39
|
+
if (withAuthenticator || webAuthnAttestation !== undefined) {
|
|
40
|
+
if (!user.email) {
|
|
41
|
+
addPasskeyIdentifierToWalletConnector(walletConnector, user);
|
|
42
|
+
}
|
|
43
|
+
const { attestation, challenge, displayName } = webAuthnAttestation || (yield walletConnector.getWebAuthnAttestation());
|
|
44
|
+
authenticatorBody = {
|
|
45
|
+
attestation: attestation,
|
|
46
|
+
challenge,
|
|
47
|
+
passkeyAlias: displayName,
|
|
48
|
+
};
|
|
43
49
|
}
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
attestation: attestation,
|
|
47
|
-
chains,
|
|
48
|
-
challenge,
|
|
49
|
-
environmentId,
|
|
50
|
-
passkeyAlias: displayName,
|
|
51
|
-
userJwt: authToken,
|
|
52
|
-
});
|
|
50
|
+
const signersResponse = yield createTurnkeyEmbeddedWallet(Object.assign({ chains,
|
|
51
|
+
environmentId, userJwt: authToken }, authenticatorBody));
|
|
53
52
|
const { jwt } = signersResponse;
|
|
54
53
|
const decodedJwt = decodeJwt(jwt);
|
|
55
54
|
if (decodedJwt === undefined)
|
|
56
55
|
throw new DynamicError('Invalid token!');
|
|
57
56
|
const primaryChain = walletConnector.connectedChain;
|
|
58
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt, primaryChain);
|
|
57
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt, [primaryChain]);
|
|
59
58
|
if (!embeddedWalletVerifiedCredential) {
|
|
60
59
|
throw new DynamicError('EmbeddedWalletVerifiedCredential not found');
|
|
61
60
|
}
|
|
@@ -69,4 +68,4 @@ const createEmbeddedWalletWithPasskey = (_a) => __awaiter(void 0, [_a], void 0,
|
|
|
69
68
|
};
|
|
70
69
|
});
|
|
71
70
|
|
|
72
|
-
export {
|
|
71
|
+
export { createEmbeddedWalletRequest };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createEmbeddedWalletRequest } from './createEmbeddedWalletRequest';
|
|
@@ -156,7 +156,7 @@ const completePasskeyRecovery = (_k) => _tslib.__awaiter(void 0, [_k], void 0, f
|
|
|
156
156
|
throw new utils.DynamicError('Invalid token!');
|
|
157
157
|
}
|
|
158
158
|
const chain = connector.connectedChain;
|
|
159
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, chain);
|
|
159
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, [chain]);
|
|
160
160
|
if (!embeddedWalletVerifiedCredential) {
|
|
161
161
|
throw new utils.DynamicError('EmbeddedWalletVerifiedCredential not found');
|
|
162
162
|
}
|
|
@@ -212,7 +212,7 @@ const addNewPasskeyAuthenticator = (_p) => _tslib.__awaiter(void 0, [_p], void 0
|
|
|
212
212
|
throw new utils.DynamicError('Invalid token!');
|
|
213
213
|
}
|
|
214
214
|
const chain = connector.connectedChain;
|
|
215
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, chain);
|
|
215
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, [chain]);
|
|
216
216
|
if (!embeddedWalletVerifiedCredential) {
|
|
217
217
|
throw new utils.DynamicError('EmbeddedWalletVerifiedCredential not found');
|
|
218
218
|
}
|
|
@@ -152,7 +152,7 @@ const completePasskeyRecovery = (_k) => __awaiter(void 0, [_k], void 0, function
|
|
|
152
152
|
throw new DynamicError('Invalid token!');
|
|
153
153
|
}
|
|
154
154
|
const chain = connector.connectedChain;
|
|
155
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt, chain);
|
|
155
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt, [chain]);
|
|
156
156
|
if (!embeddedWalletVerifiedCredential) {
|
|
157
157
|
throw new DynamicError('EmbeddedWalletVerifiedCredential not found');
|
|
158
158
|
}
|
|
@@ -208,7 +208,7 @@ const addNewPasskeyAuthenticator = (_p) => __awaiter(void 0, [_p], void 0, funct
|
|
|
208
208
|
throw new DynamicError('Invalid token!');
|
|
209
209
|
}
|
|
210
210
|
const chain = connector.connectedChain;
|
|
211
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt, chain);
|
|
211
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt, [chain]);
|
|
212
212
|
if (!embeddedWalletVerifiedCredential) {
|
|
213
213
|
throw new DynamicError('EmbeddedWalletVerifiedCredential not found');
|
|
214
214
|
}
|
|
@@ -21,7 +21,7 @@ require('@dynamic-labs/sdk-api-core');
|
|
|
21
21
|
require('../../shared/logger.cjs');
|
|
22
22
|
require('@dynamic-labs/iconic');
|
|
23
23
|
require('@dynamic-labs/wallet-connector-core');
|
|
24
|
-
|
|
24
|
+
require('../../context/ViewContext/ViewContext.cjs');
|
|
25
25
|
var localStorage = require('../../shared/utils/classes/storage/localStorage.cjs');
|
|
26
26
|
require('@dynamic-labs/utils');
|
|
27
27
|
require('../../shared/consts/index.cjs');
|
|
@@ -83,7 +83,6 @@ require('../TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
|
|
|
83
83
|
require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
84
84
|
var useInternalDynamicContext = require('../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
85
85
|
var index = require('../../utils/functions/walletFilters/index.cjs');
|
|
86
|
-
var isUserLinkingWallet = require('../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.cjs');
|
|
87
86
|
var SearchNotFoundMessage = require('./SearchNotFoundMessage/SearchNotFoundMessage.cjs');
|
|
88
87
|
var WalletListGridTabs = require('./WalletListGridTabs/WalletListGridTabs.cjs');
|
|
89
88
|
var useTabState = require('./hooks/useTabState.cjs');
|
|
@@ -93,10 +92,8 @@ var getEffectiveRecommendedWallets = require('./utils/getEffectiveRecommendedWal
|
|
|
93
92
|
localStorage.LocalStorage.setToLS(localStorage$1.WALLET_PICKER_SEARCH_KEY, '');
|
|
94
93
|
const WalletList = ({ isWalletConnectList = false, }) => {
|
|
95
94
|
var _a;
|
|
96
|
-
const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet,
|
|
97
|
-
const { view } = ViewContext.useViewContext();
|
|
95
|
+
const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, recommendedWallets, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
98
96
|
const { selectedTabIndex, setSelectedTabIndex, selectedTabSettings, tabsItems, } = useTabState.useTabState();
|
|
99
|
-
const isLinkingWallet = isUserLinkingWallet.isUserLinkingWallet(user, view.type, false);
|
|
100
97
|
const { walletBook: walletBook$1 } = walletBook.useWalletBookContext();
|
|
101
98
|
const { error } = ErrorContext.useErrorContext();
|
|
102
99
|
const { showDefaultFooter } = useAuthLayoutChecks.useAuthLayoutChecks();
|
|
@@ -126,7 +123,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
|
|
|
126
123
|
const isSearchEnabled = Boolean(filterValue) ||
|
|
127
124
|
(numberOfWallets > defaultNumberOfWalletsToShow &&
|
|
128
125
|
walletsList.length !== numberOfWallets);
|
|
129
|
-
const isTabsEnabled = Boolean(
|
|
126
|
+
const isTabsEnabled = Boolean(tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length);
|
|
130
127
|
const walletListScrollRef = React.useRef(null);
|
|
131
128
|
/* istanbul ignore next */
|
|
132
129
|
const handleScroll = () => {
|
|
@@ -17,7 +17,7 @@ import '@dynamic-labs/sdk-api-core';
|
|
|
17
17
|
import '../../shared/logger.js';
|
|
18
18
|
import '@dynamic-labs/iconic';
|
|
19
19
|
import '@dynamic-labs/wallet-connector-core';
|
|
20
|
-
import
|
|
20
|
+
import '../../context/ViewContext/ViewContext.js';
|
|
21
21
|
import { LocalStorage } from '../../shared/utils/classes/storage/localStorage.js';
|
|
22
22
|
import '@dynamic-labs/utils';
|
|
23
23
|
import '../../shared/consts/index.js';
|
|
@@ -79,7 +79,6 @@ import '../TransactionConfirmationView/helpers/transactionErrorMessage.js';
|
|
|
79
79
|
import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
80
80
|
import { useInternalDynamicContext } from '../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
81
81
|
import { FilterBridgeChainsName } from '../../utils/functions/walletFilters/index.js';
|
|
82
|
-
import { isUserLinkingWallet } from '../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.js';
|
|
83
82
|
import { SearchNotFoundMessage } from './SearchNotFoundMessage/SearchNotFoundMessage.js';
|
|
84
83
|
import { WalletListGridTabs } from './WalletListGridTabs/WalletListGridTabs.js';
|
|
85
84
|
import { useTabState } from './hooks/useTabState.js';
|
|
@@ -89,10 +88,8 @@ import { getEffectiveRecommendedWallets } from './utils/getEffectiveRecommendedW
|
|
|
89
88
|
LocalStorage.setToLS(WALLET_PICKER_SEARCH_KEY, '');
|
|
90
89
|
const WalletList = ({ isWalletConnectList = false, }) => {
|
|
91
90
|
var _a;
|
|
92
|
-
const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet,
|
|
93
|
-
const { view } = useViewContext();
|
|
91
|
+
const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, recommendedWallets, } = useInternalDynamicContext();
|
|
94
92
|
const { selectedTabIndex, setSelectedTabIndex, selectedTabSettings, tabsItems, } = useTabState();
|
|
95
|
-
const isLinkingWallet = isUserLinkingWallet(user, view.type, false);
|
|
96
93
|
const { walletBook } = useWalletBookContext();
|
|
97
94
|
const { error } = useErrorContext();
|
|
98
95
|
const { showDefaultFooter } = useAuthLayoutChecks();
|
|
@@ -122,7 +119,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
|
|
|
122
119
|
const isSearchEnabled = Boolean(filterValue) ||
|
|
123
120
|
(numberOfWallets > defaultNumberOfWalletsToShow &&
|
|
124
121
|
walletsList.length !== numberOfWallets);
|
|
125
|
-
const isTabsEnabled = Boolean(
|
|
122
|
+
const isTabsEnabled = Boolean(tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length);
|
|
126
123
|
const walletListScrollRef = useRef(null);
|
|
127
124
|
/* istanbul ignore next */
|
|
128
125
|
const handleScroll = () => {
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
-
var React = require('react');
|
|
9
8
|
var reactI18next = require('react-i18next');
|
|
10
9
|
var walletBook = require('@dynamic-labs/wallet-book');
|
|
10
|
+
require('react');
|
|
11
11
|
require('../../events/dynamicEvents.cjs');
|
|
12
12
|
require('@dynamic-labs/utils');
|
|
13
13
|
require('../../context/DynamicContext/DynamicContext.cjs');
|
|
@@ -83,14 +83,8 @@ require('../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection
|
|
|
83
83
|
|
|
84
84
|
const iconSize = 64;
|
|
85
85
|
const WalletLockedView = () => {
|
|
86
|
-
const { handleLogOut, primaryWallet, setShowAuthFlow, appName
|
|
86
|
+
const { handleLogOut, primaryWallet, setShowAuthFlow, appName } = useInternalDynamicContext.useInternalDynamicContext();
|
|
87
87
|
const { t } = reactI18next.useTranslation();
|
|
88
|
-
React.useEffect(() => {
|
|
89
|
-
// when there is no valid session, we want to log user out
|
|
90
|
-
if (!authToken) {
|
|
91
|
-
handleLogOut();
|
|
92
|
-
}
|
|
93
|
-
}, [authToken, handleLogOut]);
|
|
94
88
|
if (!primaryWallet) {
|
|
95
89
|
return null;
|
|
96
90
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
3
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
-
import { useEffect } from 'react';
|
|
5
4
|
import { useTranslation } from 'react-i18next';
|
|
6
5
|
import { WalletIcon } from '@dynamic-labs/wallet-book';
|
|
6
|
+
import 'react';
|
|
7
7
|
import '../../events/dynamicEvents.js';
|
|
8
8
|
import '@dynamic-labs/utils';
|
|
9
9
|
import '../../context/DynamicContext/DynamicContext.js';
|
|
@@ -79,14 +79,8 @@ import '../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection.
|
|
|
79
79
|
|
|
80
80
|
const iconSize = 64;
|
|
81
81
|
const WalletLockedView = () => {
|
|
82
|
-
const { handleLogOut, primaryWallet, setShowAuthFlow, appName
|
|
82
|
+
const { handleLogOut, primaryWallet, setShowAuthFlow, appName } = useInternalDynamicContext();
|
|
83
83
|
const { t } = useTranslation();
|
|
84
|
-
useEffect(() => {
|
|
85
|
-
// when there is no valid session, we want to log user out
|
|
86
|
-
if (!authToken) {
|
|
87
|
-
handleLogOut();
|
|
88
|
-
}
|
|
89
|
-
}, [authToken, handleLogOut]);
|
|
90
84
|
if (!primaryWallet) {
|
|
91
85
|
return null;
|
|
92
86
|
}
|
|
@@ -8,7 +8,7 @@ export declare const viewToComponentMap: {
|
|
|
8
8
|
'chainalysis-blocked-wallet': () => JSX.Element;
|
|
9
9
|
'collect-user-data': () => JSX.Element | null;
|
|
10
10
|
'collect-user-data-login-no-wallet': import("react").FC<{
|
|
11
|
-
userIdentification: keyof import("@dynamic-labs/sdk-api-core").UserFields | "chain" | "ens" | "
|
|
11
|
+
userIdentification: keyof import("@dynamic-labs/sdk-api-core").UserFields | "chain" | "ens" | "wallet" | "isAuthenticatedWithAWallet" | "environmentId" | "lastVerifiedCredentialId" | "lists" | "newUser" | "sessionId" | "userId" | "verifiedCredentials" | "scope";
|
|
12
12
|
userIdentificationOverride?: string | undefined;
|
|
13
13
|
}>;
|
|
14
14
|
'create-password-view': import("react").FC<import("./CreatePasswordView/CreatePasswordView").CreatePasswordViewProps>;
|
|
@@ -33,7 +33,9 @@ export declare const viewToComponentMap: {
|
|
|
33
33
|
'network-not-supported-manual': import("react").FC;
|
|
34
34
|
'no-access': () => JSX.Element;
|
|
35
35
|
'no-qr-not-installed': () => JSX.Element | null;
|
|
36
|
-
'passkey-intro': import("react").FC
|
|
36
|
+
'passkey-intro': import("react").FC<{
|
|
37
|
+
chains?: import("@dynamic-labs/sdk-api-core").ChainEnum[] | undefined;
|
|
38
|
+
}>;
|
|
37
39
|
'passkey-new-domain-detected': import("react").FC;
|
|
38
40
|
'passkey-recovery-add-email': import("react").FC<import("./Passkey/PasskeyRecovery/AddRecoveryEmail/AddRecoveryEmail").AddRecoveryEmailProps>;
|
|
39
41
|
'passkey-recovery-bundle': import("react").FC<import("./Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery").PasskeyBundleValidationProps>;
|
|
@@ -79,7 +79,8 @@ require('../../../../views/LoginView/sections/PhoneNumberSignInSection/PhoneNumb
|
|
|
79
79
|
|
|
80
80
|
const PromptModal = ({ children, isShown = true, onClose, }) => {
|
|
81
81
|
const elementId = 'dynamic-multi-wallet-prompt-modal';
|
|
82
|
-
useElementById.useElementById(
|
|
82
|
+
const { createRootElement } = useElementById.useElementById();
|
|
83
|
+
createRootElement(elementId);
|
|
83
84
|
return (jsxRuntime.jsx(Portal.Portal, { handleClose: (e) => onClose === null || onClose === void 0 ? void 0 : onClose(e), isShown: isShown, zIndex: index.authModalZIndex, withBackdrop: true, elementId: elementId, children: jsxRuntime.jsx(Modal.Modal, { children: jsxRuntime.jsxs(ModalCard.ModalCard, { children: [onClose && (jsxRuntime.jsx("div", { className: 'prompt-modal__header', children: jsxRuntime.jsx(IconButton.IconButton, { className: 'prompt-modal__close-button', onClick: (e) => onClose(e), type: 'button', "data-testid": 'close-button', children: jsxRuntime.jsx(close.ReactComponent, {}) }) })), jsxRuntime.jsx("div", { className: 'prompt-modal', children: children })] }) }) }));
|
|
84
85
|
};
|
|
85
86
|
|