@dynamic-labs/sdk-react-core 1.1.0-alpha.8 → 1.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 +14 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +11 -11
- package/src/index.cjs +2 -2
- package/src/index.js +1 -1
- package/src/lib/Main.cjs +4 -5
- package/src/lib/Main.js +4 -5
- package/src/lib/components/Toggle/Toggle.cjs +14 -0
- package/src/lib/components/Toggle/Toggle.d.ts +7 -0
- package/src/lib/components/Toggle/Toggle.js +10 -0
- package/src/lib/components/Toggle/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +35 -42
- package/src/lib/context/DynamicContext/DynamicContext.js +36 -43
- package/src/lib/context/DynamicContext/hooks/index.d.ts +1 -1
- package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModal/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/hooks/{useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.cjs → useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.cjs} +11 -17
- package/src/lib/context/DynamicContext/hooks/{useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.d.ts → useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.d.ts} +3 -6
- package/src/lib/context/DynamicContext/hooks/{useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.js → useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.js} +11 -17
- package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.cjs +59 -0
- package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.d.ts +37 -0
- package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.js +55 -0
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +1 -0
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +1 -0
- package/src/lib/context/DynamicContext/types/index.d.ts +10 -7
- package/src/lib/context/DynamicContext/useDynamicContext.cjs +6 -1
- package/src/lib/context/DynamicContext/useDynamicContext.d.ts +4 -1
- package/src/lib/context/DynamicContext/useDynamicContext.js +6 -1
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -1
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -1
- package/src/lib/events/dynamicEvents.d.ts +3 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.cjs +2 -2
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.js +2 -2
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.cjs +5 -5
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.js +5 -5
- package/src/lib/locale/en/translation.cjs +0 -2
- package/src/lib/locale/en/translation.d.ts +0 -2
- package/src/lib/locale/en/translation.js +0 -2
- package/src/lib/shared/types/index.d.ts +3 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/functions/isSelectedWalletAlreadyConnected/isSelectedWalletAlreadyConnected.cjs +2 -4
- package/src/lib/utils/functions/isSelectedWalletAlreadyConnected/isSelectedWalletAlreadyConnected.js +2 -4
- package/src/lib/utils/functions/walletListBuilder/walletListBuilder.cjs +3 -3
- package/src/lib/utils/functions/walletListBuilder/walletListBuilder.js +4 -4
- package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +1 -1
- package/src/lib/utils/hooks/useClearWalletConnectSessions/useClearWalletConnectSessions.cjs +3 -3
- package/src/lib/utils/hooks/useClearWalletConnectSessions/useClearWalletConnectSessions.js +3 -3
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +1 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +2 -2
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +1 -1
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +2 -2
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +2 -2
- package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +6 -3
- package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +6 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +9 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +9 -6
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +5 -3
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +5 -3
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +6 -8
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +6 -8
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -1
- package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUserWithModal/useUpdateUserWithModal.cjs +8 -5
- package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUserWithModal/useUpdateUserWithModal.js +8 -5
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +2 -2
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +2 -2
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +2 -2
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +2 -2
- package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.cjs +5 -2
- package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.js +5 -2
- package/src/lib/views/BridgeNextWalletConnectionView/BridgeNextWalletConnectionView.cjs +1 -1
- package/src/lib/views/BridgeNextWalletConnectionView/BridgeNextWalletConnectionView.js +1 -1
- package/src/lib/views/BridgeSummaryView/BridgeSummaryView.cjs +1 -1
- package/src/lib/views/BridgeSummaryView/BridgeSummaryView.js +1 -1
- package/src/lib/views/BridgeWelcomeView/BridgeWelcomeView.cjs +1 -1
- package/src/lib/views/BridgeWelcomeView/BridgeWelcomeView.js +1 -1
- package/src/lib/views/EmailVerification/EmailVerification.cjs +1 -1
- package/src/lib/views/EmailVerification/EmailVerification.js +1 -1
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +1 -1
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +1 -1
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +1 -1
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +1 -1
- package/src/lib/views/QrCodeView/QRCode.cjs +2 -3
- package/src/lib/views/QrCodeView/QRCode.js +2 -3
- package/src/lib/views/WalletGroupView/WalletGroupView.cjs +3 -1
- package/src/lib/views/WalletGroupView/WalletGroupView.js +3 -1
- package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/HardwareWalletToggle.cjs +8 -6
- package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/HardwareWalletToggle.js +9 -7
- package/src/lib/views/WalletUsedView/WalletUsedView.cjs +5 -5
- package/src/lib/views/WalletUsedView/WalletUsedView.js +5 -5
- package/src/lib/widgets/DynamicBridgeWidget/views/EditProfileView/EditProfileView.cjs +6 -3
- package/src/lib/widgets/DynamicBridgeWidget/views/EditProfileView/EditProfileView.js +6 -3
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +2 -3
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +2 -3
- package/src/lib/widgets/DynamicWidget/hooks/useFetchBalance/useFetchBalance.cjs +66 -21
- package/src/lib/widgets/DynamicWidget/hooks/useFetchBalance/useFetchBalance.d.ts +1 -1
- package/src/lib/widgets/DynamicWidget/hooks/useFetchBalance/useFetchBalance.js +67 -22
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +2 -2
- package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +7 -3
- package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +7 -3
- package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/index.d.ts +0 -1
- package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.cjs +0 -55
- package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.d.ts +0 -18
- package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.js +0 -51
- package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModalWithInit/index.d.ts +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
|
-
import { normalizeWalletName } from '@dynamic-labs/wallet-connector-core';
|
|
3
2
|
import '@dynamic-labs/sdk-api';
|
|
4
3
|
import '../../../shared/logger.js';
|
|
5
4
|
import '@dynamic-labs/iconic';
|
|
5
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
6
6
|
import 'react/jsx-runtime';
|
|
7
7
|
import '../../../context/ViewContext/ViewContext.js';
|
|
8
8
|
import '@dynamic-labs/wallet-book';
|
|
@@ -18,10 +18,10 @@ const useClearWalletConnectSessions = ({ connectors }) => {
|
|
|
18
18
|
return;
|
|
19
19
|
if (connectors.length === 0)
|
|
20
20
|
return;
|
|
21
|
-
const
|
|
21
|
+
const keys = new Set(connectors.map((connector) => connector.key));
|
|
22
22
|
for (const key of LocalStorage.getKeys()) {
|
|
23
23
|
if (key.startsWith('walletconnect') &&
|
|
24
|
-
!
|
|
24
|
+
!keys.has(key.replace('walletconnect-', ''))) {
|
|
25
25
|
localStorage.removeItem(key);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -152,7 +152,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
152
152
|
if (!shouldProceedWithConnection) {
|
|
153
153
|
walletConnectorCore.logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
|
|
154
154
|
disconnectWallet(walletId);
|
|
155
|
-
setShowAuthFlow(false);
|
|
155
|
+
setShowAuthFlow(false, { emitCancelAuth: true });
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Dispatch, SetStateAction } from 'react';
|
|
2
1
|
import { Chain, FetchPublicAddressOpts, WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
2
|
import { ConnectWalletResult } from '../../../context/DynamicContext/types';
|
|
4
3
|
import { AuthModeType, OnBeforeConnectSuccessConfirmation, Wallet, WalletOption } from '../../../shared';
|
|
4
|
+
import { SetShowAuthFlow } from '../../../context/DynamicContext/hooks';
|
|
5
5
|
export type ConnectedWalletConnectorType = {
|
|
6
6
|
id: string;
|
|
7
7
|
walletChain?: Chain;
|
|
@@ -18,7 +18,7 @@ type Props = {
|
|
|
18
18
|
walletConnectorOptions: WalletOption[];
|
|
19
19
|
onDisconnect: (connectedWalletsInfo: ConnectedWalletConnectorType[], wallet?: Wallet) => void;
|
|
20
20
|
onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
|
|
21
|
-
setShowAuthFlow:
|
|
21
|
+
setShowAuthFlow: SetShowAuthFlow;
|
|
22
22
|
isBridgeFlow: boolean;
|
|
23
23
|
};
|
|
24
24
|
type UseConnectWalletValue = {
|
|
@@ -148,7 +148,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
148
148
|
if (!shouldProceedWithConnection) {
|
|
149
149
|
logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
|
|
150
150
|
disconnectWallet(walletId);
|
|
151
|
-
setShowAuthFlow(false);
|
|
151
|
+
setShowAuthFlow(false, { emitCancelAuth: true });
|
|
152
152
|
return;
|
|
153
153
|
}
|
|
154
154
|
}
|
|
@@ -28,7 +28,7 @@ var smartWallet = require('../useWalletConnectors/utils/smartWallet/smartWallet.
|
|
|
28
28
|
|
|
29
29
|
// This hook needs to be async that's why it's not using useMutation
|
|
30
30
|
const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
31
|
-
const { setPrimaryWalletId, setCallback, setUser, user,
|
|
31
|
+
const { setPrimaryWalletId, setCallback, setUser, user, setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
|
|
32
32
|
const [isLoading, setIsLoading] = React.useState(false);
|
|
33
33
|
const [error, setError] = React.useState();
|
|
34
34
|
const createDynamicEmbeddedWalletMutation = ({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -70,7 +70,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
70
70
|
}
|
|
71
71
|
index.storeAuthToken(jwt);
|
|
72
72
|
setUser(createUserProfile.createUserProfile(updatedDecodedJwt));
|
|
73
|
-
|
|
73
|
+
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
74
74
|
setCallback('embeddedWalletCreated', {
|
|
75
75
|
email: (turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.email) || '',
|
|
76
76
|
verifiedCredential: turnkeyVerifiedCredentials,
|
|
@@ -24,7 +24,7 @@ import { findSmartWallet, initializeSmartWallet } from '../useWalletConnectors/u
|
|
|
24
24
|
|
|
25
25
|
// This hook needs to be async that's why it's not using useMutation
|
|
26
26
|
const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
27
|
-
const { setPrimaryWalletId, setCallback, setUser, user,
|
|
27
|
+
const { setPrimaryWalletId, setCallback, setUser, user, setShowAuthFlow } = useInternalDynamicContext();
|
|
28
28
|
const [isLoading, setIsLoading] = useState(false);
|
|
29
29
|
const [error, setError] = useState();
|
|
30
30
|
const createDynamicEmbeddedWalletMutation = ({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -66,7 +66,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
66
66
|
}
|
|
67
67
|
storeAuthToken(jwt);
|
|
68
68
|
setUser(createUserProfile(updatedDecodedJwt));
|
|
69
|
-
|
|
69
|
+
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
70
70
|
setCallback('embeddedWalletCreated', {
|
|
71
71
|
email: (turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.email) || '',
|
|
72
72
|
verifiedCredential: turnkeyVerifiedCredentials,
|
|
@@ -26,7 +26,7 @@ var dynamicEvents = require('../../../events/dynamicEvents.cjs');
|
|
|
26
26
|
|
|
27
27
|
// Hook exposed to customers and used internally to trigger embedded reveal
|
|
28
28
|
const useEmbeddedReveal = () => {
|
|
29
|
-
const { projectSettings,
|
|
29
|
+
const { projectSettings, setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
|
|
30
30
|
const { userHasEmbeddedWallet } = useEmbeddedWallet.useEmbeddedWallet();
|
|
31
31
|
const { setView } = ViewContext.useViewContext();
|
|
32
32
|
const initExportProcess = React.useCallback((recoveryPhrase = false) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -47,7 +47,10 @@ const useEmbeddedReveal = () => {
|
|
|
47
47
|
if (recoveryPhrase && !turnkeyHDWalletId) {
|
|
48
48
|
throw new Error('Wallet is non-HD and does not have a recovery phrase');
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
setShowAuthFlow(true, {
|
|
51
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
52
|
+
performMultiWalletChecks: false,
|
|
53
|
+
});
|
|
51
54
|
if (recoveryPhrase) {
|
|
52
55
|
setView('embedded-reveal-view');
|
|
53
56
|
}
|
|
@@ -58,7 +61,7 @@ const useEmbeddedReveal = () => {
|
|
|
58
61
|
dynamicEvents.dynamicEvents.once('embeddedWalletRevealCompleted', (wallet) => resolve(wallet));
|
|
59
62
|
dynamicEvents.dynamicEvents.once('embeddedWalletRevealFailed', (error) => reject(error));
|
|
60
63
|
});
|
|
61
|
-
}), [
|
|
64
|
+
}), [setShowAuthFlow, projectSettings, setView, userHasEmbeddedWallet]);
|
|
62
65
|
return {
|
|
63
66
|
initExportProcess,
|
|
64
67
|
};
|
|
@@ -22,7 +22,7 @@ import { dynamicEvents } from '../../../events/dynamicEvents.js';
|
|
|
22
22
|
|
|
23
23
|
// Hook exposed to customers and used internally to trigger embedded reveal
|
|
24
24
|
const useEmbeddedReveal = () => {
|
|
25
|
-
const { projectSettings,
|
|
25
|
+
const { projectSettings, setShowAuthFlow } = useInternalDynamicContext();
|
|
26
26
|
const { userHasEmbeddedWallet } = useEmbeddedWallet();
|
|
27
27
|
const { setView } = useViewContext();
|
|
28
28
|
const initExportProcess = useCallback((recoveryPhrase = false) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -43,7 +43,10 @@ const useEmbeddedReveal = () => {
|
|
|
43
43
|
if (recoveryPhrase && !turnkeyHDWalletId) {
|
|
44
44
|
throw new Error('Wallet is non-HD and does not have a recovery phrase');
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
setShowAuthFlow(true, {
|
|
47
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
48
|
+
performMultiWalletChecks: false,
|
|
49
|
+
});
|
|
47
50
|
if (recoveryPhrase) {
|
|
48
51
|
setView('embedded-reveal-view');
|
|
49
52
|
}
|
|
@@ -54,7 +57,7 @@ const useEmbeddedReveal = () => {
|
|
|
54
57
|
dynamicEvents.once('embeddedWalletRevealCompleted', (wallet) => resolve(wallet));
|
|
55
58
|
dynamicEvents.once('embeddedWalletRevealFailed', (error) => reject(error));
|
|
56
59
|
});
|
|
57
|
-
}), [
|
|
60
|
+
}), [setShowAuthFlow, projectSettings, setView, userHasEmbeddedWallet]);
|
|
58
61
|
return {
|
|
59
62
|
initExportProcess,
|
|
60
63
|
};
|
|
@@ -32,7 +32,7 @@ var useCreateUserProfileByJWTCallback = require('../useCreateUserProfileByJWTCal
|
|
|
32
32
|
|
|
33
33
|
// Hook exposed to customers and used internally to trigger embedded wallet creation
|
|
34
34
|
const useEmbeddedWallet = () => {
|
|
35
|
-
const { projectSettings, onboardingOnlyJwt, setPrimaryWalletId, walletConnectorOptions,
|
|
35
|
+
const { projectSettings, onboardingOnlyJwt, setPrimaryWalletId, walletConnectorOptions, setShowAuthFlow, primaryWallet, environmentId, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
36
36
|
const { setView } = ViewContext.useViewContext();
|
|
37
37
|
const { createDynamicEmbeddedWalletMutation } = useCreateDynamicEmbeddedWalletMutation.useCreateDynamicEmbeddedWalletMutation();
|
|
38
38
|
const { createUserProfileByJWT } = useCreateUserProfileByJWTCallback.useCreateUserProfileByJWTCallback();
|
|
@@ -52,7 +52,7 @@ const useEmbeddedWallet = () => {
|
|
|
52
52
|
walletConnectorOptions,
|
|
53
53
|
withAuthenticator: false,
|
|
54
54
|
});
|
|
55
|
-
|
|
55
|
+
setShowAuthFlow(false, { performMultiWalletChecks: false }); // close email otp pin modal
|
|
56
56
|
return new Promise((resolve, reject) => {
|
|
57
57
|
dynamicEvents.dynamicEvents.once('embeddedWalletCreated', (wallet) => resolve(wallet));
|
|
58
58
|
dynamicEvents.dynamicEvents.once('embeddedWalletFailed', (error) => reject(error));
|
|
@@ -61,10 +61,13 @@ const useEmbeddedWallet = () => {
|
|
|
61
61
|
createDynamicEmbeddedWalletMutation,
|
|
62
62
|
environmentId,
|
|
63
63
|
walletConnectorOptions,
|
|
64
|
-
|
|
64
|
+
setShowAuthFlow,
|
|
65
65
|
]);
|
|
66
66
|
const startEmbeddedWalletCreationFlow = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
67
|
-
|
|
67
|
+
setShowAuthFlow(true, {
|
|
68
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
69
|
+
performMultiWalletChecks: false,
|
|
70
|
+
});
|
|
68
71
|
setView('passkey-intro');
|
|
69
72
|
return new Promise((resolve, reject) => {
|
|
70
73
|
dynamicEvents.dynamicEvents.once('embeddedWalletCreated', (wallet) => resolve(wallet));
|
|
@@ -131,7 +134,7 @@ const useEmbeddedWallet = () => {
|
|
|
131
134
|
}
|
|
132
135
|
return startEmbeddedWalletCreationFlow();
|
|
133
136
|
}
|
|
134
|
-
|
|
137
|
+
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
135
138
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt);
|
|
136
139
|
// if user logged in with MM for example, just continue the flow
|
|
137
140
|
if (!embeddedWalletVerifiedCredential) {
|
|
@@ -140,7 +143,7 @@ const useEmbeddedWallet = () => {
|
|
|
140
143
|
// if user already has embedded wallet, returns it
|
|
141
144
|
return returnEmbeddedWallet(jwt, embeddedWalletVerifiedCredential);
|
|
142
145
|
}), [
|
|
143
|
-
|
|
146
|
+
setShowAuthFlow,
|
|
144
147
|
onboardingOnlyJwt,
|
|
145
148
|
projectSettings,
|
|
146
149
|
startPregeneratedWalletCreationFlow,
|
|
@@ -28,7 +28,7 @@ import { useCreateUserProfileByJWTCallback } from '../useCreateUserProfileByJWTC
|
|
|
28
28
|
|
|
29
29
|
// Hook exposed to customers and used internally to trigger embedded wallet creation
|
|
30
30
|
const useEmbeddedWallet = () => {
|
|
31
|
-
const { projectSettings, onboardingOnlyJwt, setPrimaryWalletId, walletConnectorOptions,
|
|
31
|
+
const { projectSettings, onboardingOnlyJwt, setPrimaryWalletId, walletConnectorOptions, setShowAuthFlow, primaryWallet, environmentId, } = useInternalDynamicContext();
|
|
32
32
|
const { setView } = useViewContext();
|
|
33
33
|
const { createDynamicEmbeddedWalletMutation } = useCreateDynamicEmbeddedWalletMutation();
|
|
34
34
|
const { createUserProfileByJWT } = useCreateUserProfileByJWTCallback();
|
|
@@ -48,7 +48,7 @@ const useEmbeddedWallet = () => {
|
|
|
48
48
|
walletConnectorOptions,
|
|
49
49
|
withAuthenticator: false,
|
|
50
50
|
});
|
|
51
|
-
|
|
51
|
+
setShowAuthFlow(false, { performMultiWalletChecks: false }); // close email otp pin modal
|
|
52
52
|
return new Promise((resolve, reject) => {
|
|
53
53
|
dynamicEvents.once('embeddedWalletCreated', (wallet) => resolve(wallet));
|
|
54
54
|
dynamicEvents.once('embeddedWalletFailed', (error) => reject(error));
|
|
@@ -57,10 +57,13 @@ const useEmbeddedWallet = () => {
|
|
|
57
57
|
createDynamicEmbeddedWalletMutation,
|
|
58
58
|
environmentId,
|
|
59
59
|
walletConnectorOptions,
|
|
60
|
-
|
|
60
|
+
setShowAuthFlow,
|
|
61
61
|
]);
|
|
62
62
|
const startEmbeddedWalletCreationFlow = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
-
|
|
63
|
+
setShowAuthFlow(true, {
|
|
64
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
65
|
+
performMultiWalletChecks: false,
|
|
66
|
+
});
|
|
64
67
|
setView('passkey-intro');
|
|
65
68
|
return new Promise((resolve, reject) => {
|
|
66
69
|
dynamicEvents.once('embeddedWalletCreated', (wallet) => resolve(wallet));
|
|
@@ -127,7 +130,7 @@ const useEmbeddedWallet = () => {
|
|
|
127
130
|
}
|
|
128
131
|
return startEmbeddedWalletCreationFlow();
|
|
129
132
|
}
|
|
130
|
-
|
|
133
|
+
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
131
134
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt);
|
|
132
135
|
// if user logged in with MM for example, just continue the flow
|
|
133
136
|
if (!embeddedWalletVerifiedCredential) {
|
|
@@ -136,7 +139,7 @@ const useEmbeddedWallet = () => {
|
|
|
136
139
|
// if user already has embedded wallet, returns it
|
|
137
140
|
return returnEmbeddedWallet(jwt, embeddedWalletVerifiedCredential);
|
|
138
141
|
}), [
|
|
139
|
-
|
|
142
|
+
setShowAuthFlow,
|
|
140
143
|
onboardingOnlyJwt,
|
|
141
144
|
projectSettings,
|
|
142
145
|
startPregeneratedWalletCreationFlow,
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
6
|
var React = require('react');
|
|
7
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
7
8
|
require('@dynamic-labs/sdk-api');
|
|
8
9
|
require('../../../shared/logger.cjs');
|
|
9
10
|
require('@dynamic-labs/iconic');
|
|
10
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
11
11
|
require('react/jsx-runtime');
|
|
12
12
|
require('../../../context/ViewContext/ViewContext.cjs');
|
|
13
13
|
require('@dynamic-labs/wallet-book');
|
|
@@ -18,7 +18,6 @@ require('viem');
|
|
|
18
18
|
require('@dynamic-labs/utils');
|
|
19
19
|
require('../../../shared/consts/index.cjs');
|
|
20
20
|
var handleUnlinkHelper = require('../../functions/handleUnlinkHelper/handleUnlinkHelper.cjs');
|
|
21
|
-
var isSameWalletName = require('../../functions/isSameWalletName/isSameWalletName.cjs');
|
|
22
21
|
|
|
23
22
|
const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }) => {
|
|
24
23
|
const callback = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -44,8 +43,11 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
|
|
|
44
43
|
setUser(newUser);
|
|
45
44
|
}
|
|
46
45
|
const wallet = secondaryWallets.find((w) => w.id === walletId);
|
|
46
|
+
// remaining normalizeWalletName until QNTM-846 is complete due to us still passing the walletname to redcoast:
|
|
47
|
+
// https://linear.app/dynamic-labs/issue/QNTM-846/remove-usage-of-walletwalletconnectorwname-to-instead-use
|
|
47
48
|
const numberOfLinkedWallets = verifiedCredentials.filter((account) => account.walletName &&
|
|
48
|
-
|
|
49
|
+
walletConnectorCore.normalizeWalletName(account.walletName) ===
|
|
50
|
+
((wallet === null || wallet === void 0 ? void 0 : wallet.connector.key) || '')).length;
|
|
49
51
|
// If there's only 1, it's the one being removed and we can kill the session
|
|
50
52
|
if (numberOfLinkedWallets === 1) {
|
|
51
53
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
2
2
|
import { useCallback } from 'react';
|
|
3
|
+
import { normalizeWalletName } from '@dynamic-labs/wallet-connector-core';
|
|
3
4
|
import '@dynamic-labs/sdk-api';
|
|
4
5
|
import '../../../shared/logger.js';
|
|
5
6
|
import '@dynamic-labs/iconic';
|
|
6
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
7
7
|
import 'react/jsx-runtime';
|
|
8
8
|
import '../../../context/ViewContext/ViewContext.js';
|
|
9
9
|
import '@dynamic-labs/wallet-book';
|
|
@@ -14,7 +14,6 @@ import 'viem';
|
|
|
14
14
|
import '@dynamic-labs/utils';
|
|
15
15
|
import '../../../shared/consts/index.js';
|
|
16
16
|
import { handleUnlinkHelper } from '../../functions/handleUnlinkHelper/handleUnlinkHelper.js';
|
|
17
|
-
import { isSameWalletName } from '../../functions/isSameWalletName/isSameWalletName.js';
|
|
18
17
|
|
|
19
18
|
const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }) => {
|
|
20
19
|
const callback = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -40,8 +39,11 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
|
|
|
40
39
|
setUser(newUser);
|
|
41
40
|
}
|
|
42
41
|
const wallet = secondaryWallets.find((w) => w.id === walletId);
|
|
42
|
+
// remaining normalizeWalletName until QNTM-846 is complete due to us still passing the walletname to redcoast:
|
|
43
|
+
// https://linear.app/dynamic-labs/issue/QNTM-846/remove-usage-of-walletwalletconnectorwname-to-instead-use
|
|
43
44
|
const numberOfLinkedWallets = verifiedCredentials.filter((account) => account.walletName &&
|
|
44
|
-
|
|
45
|
+
normalizeWalletName(account.walletName) ===
|
|
46
|
+
((wallet === null || wallet === void 0 ? void 0 : wallet.connector.key) || '')).length;
|
|
45
47
|
// If there's only 1, it's the one being removed and we can kill the session
|
|
46
48
|
if (numberOfLinkedWallets === 1) {
|
|
47
49
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
|
|
@@ -27,7 +27,7 @@ var useEmbeddedWallet = require('../useEmbeddedWallet/useEmbeddedWallet.cjs');
|
|
|
27
27
|
|
|
28
28
|
// Hook exposed to customers and used internally to trigger passkey recovery
|
|
29
29
|
const usePasskeyRecovery = () => {
|
|
30
|
-
const { projectSettings,
|
|
30
|
+
const { projectSettings, setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
|
|
31
31
|
const { userHasEmbeddedWallet } = useEmbeddedWallet.useEmbeddedWallet();
|
|
32
32
|
const { setView } = ViewContext.useViewContext();
|
|
33
33
|
const initPasskeyRecoveryProcess = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -45,18 +45,16 @@ const usePasskeyRecovery = () => {
|
|
|
45
45
|
// since the iframe can still exist it can't be recreated by Turnkey
|
|
46
46
|
// and throws an error
|
|
47
47
|
removeElementById.removeElementById(constants.iframeContainerId);
|
|
48
|
-
|
|
48
|
+
setShowAuthFlow(true, {
|
|
49
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
50
|
+
performMultiWalletChecks: false,
|
|
51
|
+
});
|
|
49
52
|
setView('passkey-recovery-start');
|
|
50
53
|
return new Promise((resolve, reject) => {
|
|
51
54
|
dynamicEvents.dynamicEvents.once('passkeyRecoveryCompleted', (wallet) => resolve(wallet));
|
|
52
55
|
dynamicEvents.dynamicEvents.once('passkeyRecoveryFailed', (error) => reject(error));
|
|
53
56
|
});
|
|
54
|
-
}), [
|
|
55
|
-
internalSetShowAuthFlow,
|
|
56
|
-
projectSettings,
|
|
57
|
-
setView,
|
|
58
|
-
userHasEmbeddedWallet,
|
|
59
|
-
]);
|
|
57
|
+
}), [setShowAuthFlow, projectSettings, setView, userHasEmbeddedWallet]);
|
|
60
58
|
return {
|
|
61
59
|
initPasskeyRecoveryProcess,
|
|
62
60
|
};
|
|
@@ -23,7 +23,7 @@ import { useEmbeddedWallet } from '../useEmbeddedWallet/useEmbeddedWallet.js';
|
|
|
23
23
|
|
|
24
24
|
// Hook exposed to customers and used internally to trigger passkey recovery
|
|
25
25
|
const usePasskeyRecovery = () => {
|
|
26
|
-
const { projectSettings,
|
|
26
|
+
const { projectSettings, setShowAuthFlow } = useInternalDynamicContext();
|
|
27
27
|
const { userHasEmbeddedWallet } = useEmbeddedWallet();
|
|
28
28
|
const { setView } = useViewContext();
|
|
29
29
|
const initPasskeyRecoveryProcess = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -41,18 +41,16 @@ const usePasskeyRecovery = () => {
|
|
|
41
41
|
// since the iframe can still exist it can't be recreated by Turnkey
|
|
42
42
|
// and throws an error
|
|
43
43
|
removeElementById(iframeContainerId);
|
|
44
|
-
|
|
44
|
+
setShowAuthFlow(true, {
|
|
45
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
46
|
+
performMultiWalletChecks: false,
|
|
47
|
+
});
|
|
45
48
|
setView('passkey-recovery-start');
|
|
46
49
|
return new Promise((resolve, reject) => {
|
|
47
50
|
dynamicEvents.once('passkeyRecoveryCompleted', (wallet) => resolve(wallet));
|
|
48
51
|
dynamicEvents.once('passkeyRecoveryFailed', (error) => reject(error));
|
|
49
52
|
});
|
|
50
|
-
}), [
|
|
51
|
-
internalSetShowAuthFlow,
|
|
52
|
-
projectSettings,
|
|
53
|
-
setView,
|
|
54
|
-
userHasEmbeddedWallet,
|
|
55
|
-
]);
|
|
53
|
+
}), [setShowAuthFlow, projectSettings, setView, userHasEmbeddedWallet]);
|
|
56
54
|
return {
|
|
57
55
|
initPasskeyRecoveryProcess,
|
|
58
56
|
};
|
|
@@ -161,7 +161,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
161
161
|
}
|
|
162
162
|
catch (e) {
|
|
163
163
|
yield createUserProfileByJWT(jwt);
|
|
164
|
-
setShowAuthFlow(false);
|
|
164
|
+
setShowAuthFlow(false, { emitCancelAuth: true });
|
|
165
165
|
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
166
166
|
}
|
|
167
167
|
return;
|
|
@@ -157,7 +157,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
157
157
|
}
|
|
158
158
|
catch (e) {
|
|
159
159
|
yield createUserProfileByJWT(jwt);
|
|
160
|
-
setShowAuthFlow(false);
|
|
160
|
+
setShowAuthFlow(false, { emitCancelAuth: true });
|
|
161
161
|
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
162
162
|
}
|
|
163
163
|
return;
|
package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUserWithModal/useUpdateUserWithModal.cjs
CHANGED
|
@@ -12,14 +12,17 @@ var dynamicEvents = require('../../../../events/dynamicEvents.cjs');
|
|
|
12
12
|
var validateUpdateRequest = require('./validateUpdateRequest/validateUpdateRequest.cjs');
|
|
13
13
|
|
|
14
14
|
/** Saves the values updated by the user */
|
|
15
|
-
const saveUserValues = ({ fields: newValues, updateUserResult: { isEmailVerificationRequired }, },
|
|
15
|
+
const saveUserValues = ({ fields: newValues, updateUserResult: { isEmailVerificationRequired }, }, setShowAuthFlow, setView, resolve, reject) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
16
16
|
// If no verification is needed, we are done
|
|
17
17
|
if (!isEmailVerificationRequired) {
|
|
18
18
|
resolve(newValues);
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
// Show email verification view
|
|
22
|
-
|
|
22
|
+
setShowAuthFlow(true, {
|
|
23
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
24
|
+
performMultiWalletChecks: false,
|
|
25
|
+
});
|
|
23
26
|
setView('verify-email');
|
|
24
27
|
// Subscribe to email verification result
|
|
25
28
|
dynamicEvents.dynamicEvents.once('emailVerificationResult', (wasSuccessful, newEmail) => {
|
|
@@ -35,7 +38,7 @@ const saveUserValues = ({ fields: newValues, updateUserResult: { isEmailVerifica
|
|
|
35
38
|
* The fields must have been previously enabled in the dashboard
|
|
36
39
|
*/
|
|
37
40
|
const useUpdateUserWithModal = (updateUser) => {
|
|
38
|
-
const { user, projectSettings,
|
|
41
|
+
const { user, projectSettings, setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
|
|
39
42
|
const { setView } = ViewContext.useViewContext();
|
|
40
43
|
const editorContext = React.useContext(UserFieldEditorContext.UserFieldEditorContext);
|
|
41
44
|
if (!editorContext)
|
|
@@ -55,7 +58,7 @@ const useUpdateUserWithModal = (updateUser) => {
|
|
|
55
58
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
56
59
|
title: options === null || options === void 0 ? void 0 : options.title,
|
|
57
60
|
}, updateUser)
|
|
58
|
-
.then((updateValues) => saveUserValues(updateValues,
|
|
61
|
+
.then((updateValues) => saveUserValues(updateValues, setShowAuthFlow, setView, resolve, reject))
|
|
59
62
|
.catch((error) => {
|
|
60
63
|
if (/email already exists/gi.test(error))
|
|
61
64
|
throw error;
|
|
@@ -66,7 +69,7 @@ const useUpdateUserWithModal = (updateUser) => {
|
|
|
66
69
|
projectSettings,
|
|
67
70
|
promptUserForValues,
|
|
68
71
|
updateUser,
|
|
69
|
-
|
|
72
|
+
setShowAuthFlow,
|
|
70
73
|
setView,
|
|
71
74
|
]);
|
|
72
75
|
return updateUserWithModal;
|
package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUserWithModal/useUpdateUserWithModal.js
CHANGED
|
@@ -8,14 +8,17 @@ import { dynamicEvents } from '../../../../events/dynamicEvents.js';
|
|
|
8
8
|
import { validateUpdateRequest } from './validateUpdateRequest/validateUpdateRequest.js';
|
|
9
9
|
|
|
10
10
|
/** Saves the values updated by the user */
|
|
11
|
-
const saveUserValues = ({ fields: newValues, updateUserResult: { isEmailVerificationRequired }, },
|
|
11
|
+
const saveUserValues = ({ fields: newValues, updateUserResult: { isEmailVerificationRequired }, }, setShowAuthFlow, setView, resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12
12
|
// If no verification is needed, we are done
|
|
13
13
|
if (!isEmailVerificationRequired) {
|
|
14
14
|
resolve(newValues);
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
// Show email verification view
|
|
18
|
-
|
|
18
|
+
setShowAuthFlow(true, {
|
|
19
|
+
ignoreIfIsEmbeddedWidget: false,
|
|
20
|
+
performMultiWalletChecks: false,
|
|
21
|
+
});
|
|
19
22
|
setView('verify-email');
|
|
20
23
|
// Subscribe to email verification result
|
|
21
24
|
dynamicEvents.once('emailVerificationResult', (wasSuccessful, newEmail) => {
|
|
@@ -31,7 +34,7 @@ const saveUserValues = ({ fields: newValues, updateUserResult: { isEmailVerifica
|
|
|
31
34
|
* The fields must have been previously enabled in the dashboard
|
|
32
35
|
*/
|
|
33
36
|
const useUpdateUserWithModal = (updateUser) => {
|
|
34
|
-
const { user, projectSettings,
|
|
37
|
+
const { user, projectSettings, setShowAuthFlow } = useInternalDynamicContext();
|
|
35
38
|
const { setView } = useViewContext();
|
|
36
39
|
const editorContext = useContext(UserFieldEditorContext);
|
|
37
40
|
if (!editorContext)
|
|
@@ -51,7 +54,7 @@ const useUpdateUserWithModal = (updateUser) => {
|
|
|
51
54
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
52
55
|
title: options === null || options === void 0 ? void 0 : options.title,
|
|
53
56
|
}, updateUser)
|
|
54
|
-
.then((updateValues) => saveUserValues(updateValues,
|
|
57
|
+
.then((updateValues) => saveUserValues(updateValues, setShowAuthFlow, setView, resolve, reject))
|
|
55
58
|
.catch((error) => {
|
|
56
59
|
if (/email already exists/gi.test(error))
|
|
57
60
|
throw error;
|
|
@@ -62,7 +65,7 @@ const useUpdateUserWithModal = (updateUser) => {
|
|
|
62
65
|
projectSettings,
|
|
63
66
|
promptUserForValues,
|
|
64
67
|
updateUser,
|
|
65
|
-
|
|
68
|
+
setShowAuthFlow,
|
|
66
69
|
setView,
|
|
67
70
|
]);
|
|
68
71
|
return updateUserWithModal;
|
|
@@ -38,7 +38,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
38
38
|
const { setExistentAccountData } = AccountExistsContext.useAccountExistsContext();
|
|
39
39
|
const { setView, goToInitialView } = ViewContext.useViewContext();
|
|
40
40
|
const { setErrorMessage, setError } = ErrorContext.useErrorContext();
|
|
41
|
-
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
41
|
+
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, primaryWallet, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
42
42
|
// If the user is not already logged it means that we only need to verify
|
|
43
43
|
// We need this boolean for the part of the logic where we already persisted a new authToken,
|
|
44
44
|
// and need to distinguish between logic for verify or linking.
|
|
@@ -80,7 +80,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
80
80
|
if (newSelectedCredentialWallet) {
|
|
81
81
|
const currentPrimaryWallet = user.verifiedCredentials.find((a) => a.id === primaryWalletId);
|
|
82
82
|
if (verifyOnly ||
|
|
83
|
-
|
|
83
|
+
!primaryWallet ||
|
|
84
84
|
(multiWalletWidgetState === 'awaiting_signature' &&
|
|
85
85
|
newSelectedCredentialWallet.walletName ===
|
|
86
86
|
(currentPrimaryWallet === null || currentPrimaryWallet === void 0 ? void 0 : currentPrimaryWallet.walletName)) ||
|
|
@@ -34,7 +34,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
34
34
|
const { setExistentAccountData } = useAccountExistsContext();
|
|
35
35
|
const { setView, goToInitialView } = useViewContext();
|
|
36
36
|
const { setErrorMessage, setError } = useErrorContext();
|
|
37
|
-
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, } = useInternalDynamicContext();
|
|
37
|
+
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, primaryWallet, } = useInternalDynamicContext();
|
|
38
38
|
// If the user is not already logged it means that we only need to verify
|
|
39
39
|
// We need this boolean for the part of the logic where we already persisted a new authToken,
|
|
40
40
|
// and need to distinguish between logic for verify or linking.
|
|
@@ -76,7 +76,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
76
76
|
if (newSelectedCredentialWallet) {
|
|
77
77
|
const currentPrimaryWallet = user.verifiedCredentials.find((a) => a.id === primaryWalletId);
|
|
78
78
|
if (verifyOnly ||
|
|
79
|
-
|
|
79
|
+
!primaryWallet ||
|
|
80
80
|
(multiWalletWidgetState === 'awaiting_signature' &&
|
|
81
81
|
newSelectedCredentialWallet.walletName ===
|
|
82
82
|
(currentPrimaryWallet === null || currentPrimaryWallet === void 0 ? void 0 : currentPrimaryWallet.walletName)) ||
|
|
@@ -17,7 +17,6 @@ require('../../constants/colors.cjs');
|
|
|
17
17
|
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
18
18
|
require('viem');
|
|
19
19
|
require('../../../shared/consts/index.cjs');
|
|
20
|
-
var isSameWalletName = require('../../functions/isSameWalletName/isSameWalletName.cjs');
|
|
21
20
|
var useWalletsConnectionState = require('../useWalletsConnectionState/useWalletsConnectionState.cjs');
|
|
22
21
|
var reconnectSocialWallet = require('./reconnectSocialWallet.cjs');
|
|
23
22
|
var createLinkedWalletsFromWalletOptions = require('./utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs');
|
|
@@ -96,7 +95,8 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
|
|
|
96
95
|
const accountIsNotConnectedInSecondaryWallet = connectedAccounts &&
|
|
97
96
|
!connectedAccounts.find((connectedAccount) => connectedAccount.toLowerCase() ===
|
|
98
97
|
newPrimaryWallet.address.toLowerCase());
|
|
99
|
-
return (
|
|
98
|
+
return (newPrimaryWallet.connector.key === primaryWallet.connector.key ||
|
|
99
|
+
accountIsNotConnectedInSecondaryWallet);
|
|
100
100
|
}, [multiWalletWidgetState]);
|
|
101
101
|
const checkIfShowQrCodeModal = React.useCallback((wallet) => !wallet.connector.isInstalledOnBrowser() &&
|
|
102
102
|
!wallet.connector.canConnectViaCustodialService, []);
|
|
@@ -13,7 +13,6 @@ import '../../constants/colors.js';
|
|
|
13
13
|
import '../../../shared/utils/classes/storage/localStorage.js';
|
|
14
14
|
import 'viem';
|
|
15
15
|
import '../../../shared/consts/index.js';
|
|
16
|
-
import { isSameWalletName } from '../../functions/isSameWalletName/isSameWalletName.js';
|
|
17
16
|
import { useWalletsConnectionState } from '../useWalletsConnectionState/useWalletsConnectionState.js';
|
|
18
17
|
import { reconnectSocialWallet } from './reconnectSocialWallet.js';
|
|
19
18
|
import { createLinkedWalletsFromWalletOptions } from './utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js';
|
|
@@ -92,7 +91,8 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
|
|
|
92
91
|
const accountIsNotConnectedInSecondaryWallet = connectedAccounts &&
|
|
93
92
|
!connectedAccounts.find((connectedAccount) => connectedAccount.toLowerCase() ===
|
|
94
93
|
newPrimaryWallet.address.toLowerCase());
|
|
95
|
-
return (
|
|
94
|
+
return (newPrimaryWallet.connector.key === primaryWallet.connector.key ||
|
|
95
|
+
accountIsNotConnectedInSecondaryWallet);
|
|
96
96
|
}, [multiWalletWidgetState]);
|
|
97
97
|
const checkIfShowQrCodeModal = useCallback((wallet) => !wallet.connector.isInstalledOnBrowser() &&
|
|
98
98
|
!wallet.connector.canConnectViaCustodialService, []);
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// remaining normalizeWalletName until QNTM-846 is complete due to us still passing the walletname to redcoast:
|
|
8
|
+
// https://linear.app/dynamic-labs/issue/QNTM-846/remove-usage-of-walletwalletconnectorwname-to-instead-use
|
|
9
|
+
const findWallet = (account, walletOptions) => walletOptions.find((wallet) => account.walletName &&
|
|
10
|
+
walletConnectorCore.normalizeWalletName(account.walletName) === wallet.key);
|
|
8
11
|
|
|
9
12
|
exports.findWallet = findWallet;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { normalizeWalletName } from '@dynamic-labs/wallet-connector-core';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// remaining normalizeWalletName until QNTM-846 is complete due to us still passing the walletname to redcoast:
|
|
4
|
+
// https://linear.app/dynamic-labs/issue/QNTM-846/remove-usage-of-walletwalletconnectorwname-to-instead-use
|
|
5
|
+
const findWallet = (account, walletOptions) => walletOptions.find((wallet) => account.walletName &&
|
|
6
|
+
normalizeWalletName(account.walletName) === wallet.key);
|
|
4
7
|
|
|
5
8
|
export { findWallet };
|
|
@@ -32,7 +32,7 @@ const BridgeNextWalletConnectionView = () => {
|
|
|
32
32
|
if (!chainInfo) {
|
|
33
33
|
throw new utils.DynamicError('No chain info found for chain', chain);
|
|
34
34
|
}
|
|
35
|
-
return (jsxRuntime.jsx(BridgeNextWalletToConnectLayout.BridgeNextWalletToConnectLayout, { chainName: chainInfo.blockchainName, chainIcon: jsxRuntime.jsx(ChainIcon, {}), onClickAction: () => setView('wallet-list'), onClickClose: () => setShowAuthFlow(false) }));
|
|
35
|
+
return (jsxRuntime.jsx(BridgeNextWalletToConnectLayout.BridgeNextWalletToConnectLayout, { chainName: chainInfo.blockchainName, chainIcon: jsxRuntime.jsx(ChainIcon, {}), onClickAction: () => setView('wallet-list'), onClickClose: () => setShowAuthFlow(false, { emitCancelAuth: true }) }));
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
exports.BridgeNextWalletConnectionView = BridgeNextWalletConnectionView;
|