@dynamic-labs/sdk-react-core 2.1.0-alpha.25 → 2.1.0-alpha.27
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 +20 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +13 -13
- package/src/lib/context/DynamicContext/DynamicContext.cjs +3 -5
- package/src/lib/context/DynamicContext/DynamicContext.js +3 -5
- package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +0 -1
- package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +0 -1
- package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +0 -1
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +2 -2
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +2 -2
- package/src/lib/context/DynamicContext/validators/validators.d.ts +2 -2
- package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +30 -14
- package/src/lib/data/api/embeddedWallets/embeddedWallets.d.ts +3 -2
- package/src/lib/data/api/embeddedWallets/embeddedWallets.js +30 -14
- package/src/lib/data/api/mfa/mfa.cjs +10 -5
- package/src/lib/data/api/mfa/mfa.d.ts +1 -1
- package/src/lib/data/api/mfa/mfa.js +10 -5
- package/src/lib/data/api/wallets/wallets.cjs +6 -3
- package/src/lib/data/api/wallets/wallets.d.ts +1 -1
- package/src/lib/data/api/wallets/wallets.js +6 -3
- package/src/lib/events/embeddedWallet.d.ts +2 -1
- package/src/lib/locale/en/translation.cjs +2 -2
- package/src/lib/locale/en/translation.d.ts +1 -1
- package/src/lib/locale/en/translation.js +2 -2
- package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +1 -1
- package/src/lib/shared/types/localStorage.d.ts +0 -13
- package/src/lib/store/actions/networkConfigurationsActions/index.d.ts +1 -0
- package/src/lib/store/actions/networkConfigurationsActions/networkConfigurationsActions.cjs +10 -0
- package/src/lib/store/actions/networkConfigurationsActions/networkConfigurationsActions.d.ts +7 -0
- package/src/lib/store/actions/networkConfigurationsActions/networkConfigurationsActions.js +6 -0
- package/src/lib/store/hooks/useNetworkConfigurations/index.d.ts +1 -0
- package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.cjs +139 -0
- package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.d.ts +12 -0
- package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.js +135 -0
- package/src/lib/store/index.d.ts +3 -1
- package/src/lib/store/store.cjs +1 -0
- package/src/lib/store/store.js +1 -0
- package/src/lib/store/types.d.ts +6 -1
- package/src/lib/store/utils/clearExpiredData/clearExpiredData.cjs +4 -1
- package/src/lib/store/utils/clearExpiredData/clearExpiredData.js +4 -1
- package/src/lib/utils/constants/localStorage.cjs +0 -2
- package/src/lib/utils/constants/localStorage.js +1 -2
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +12 -15
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +12 -15
- package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +3 -3
- package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +3 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +11 -10
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +11 -10
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +5 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +5 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +1 -1
- package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.cjs +2 -6
- package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.js +2 -6
- package/src/lib/utils/hooks/useMfa/useMfa.cjs +1 -4
- package/src/lib/utils/hooks/useMfa/useMfa.js +1 -4
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +29 -21
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +29 -21
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +1 -1
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +1 -1
- package/src/lib/utils/hooks/useSocialAuth/farcaster.cjs +13 -4
- package/src/lib/utils/hooks/useSocialAuth/farcaster.d.ts +2 -0
- package/src/lib/utils/hooks/useSocialAuth/farcaster.js +13 -4
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +4 -4
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +7 -6
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +5 -5
- package/src/lib/utils/hooks/useTransferWallet/useTransferWallet.cjs +3 -5
- package/src/lib/utils/hooks/useTransferWallet/useTransferWallet.js +3 -5
- package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +4 -1
- package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +5 -2
- package/src/lib/utils/hooks/useWalletsConnectionState/index.d.ts +0 -1
- package/src/lib/views/EmailVerification/EmailVerification.cjs +6 -6
- package/src/lib/views/EmailVerification/EmailVerification.js +6 -6
- package/src/lib/views/MfaSecureDeviceView/MfaSecureDeviceView.cjs +2 -2
- package/src/lib/views/MfaSecureDeviceView/MfaSecureDeviceView.js +2 -2
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.cjs +5 -4
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.js +5 -4
- package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.cjs +5 -6
- package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.d.ts +1 -2
- package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.js +5 -6
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +8 -18
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.d.ts +4 -12
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +8 -18
- package/src/lib/utils/hooks/useProcessNetworkConfigurations/index.d.ts +0 -1
- package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.cjs +0 -117
- package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.d.ts +0 -14
- package/src/lib/utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.js +0 -113
package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs
CHANGED
|
@@ -8,6 +8,7 @@ var React = require('react');
|
|
|
8
8
|
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
9
9
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
10
10
|
var utils = require('@dynamic-labs/utils');
|
|
11
|
+
var createUserProfile = require('../../../../functions/createUserProfile/createUserProfile.cjs');
|
|
11
12
|
var findEmbeddedWalletFromVerifiedCredentials = require('../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
|
|
12
13
|
require('../../../../constants/values.cjs');
|
|
13
14
|
var errors = require('../../../../constants/errors.cjs');
|
|
@@ -28,7 +29,6 @@ require('viem');
|
|
|
28
29
|
require('viem/chains');
|
|
29
30
|
var findCoinbaseMPCWallet = require('../../../../functions/findCoinbaseMPCWallet/findCoinbaseMPCWallet.cjs');
|
|
30
31
|
var getCoinbaseMPCConnectorFetchers = require('../../../../functions/getCoinbaseMPCConnectorFetchers/getCoinbaseMPCConnectorFetchers.cjs');
|
|
31
|
-
var updateJWTAndCreateUserProfile = require('../../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
|
|
32
32
|
require('../../../../../context/DynamicContext/DynamicContext.cjs');
|
|
33
33
|
var dynamicEvents = require('../../../../../events/dynamicEvents.cjs');
|
|
34
34
|
require('../../../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
@@ -90,7 +90,7 @@ var useInternalDynamicContext = require('../../../../../context/DynamicContext/u
|
|
|
90
90
|
|
|
91
91
|
const DYNAMIC_PASSWORD_LENGTH = 20;
|
|
92
92
|
const useCoinbaseMPC = () => {
|
|
93
|
-
const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement,
|
|
93
|
+
const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement, handleLogOut, setShowAuthFlow, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
94
94
|
const { setError } = ErrorContext.useErrorContext();
|
|
95
95
|
const returnExistingCoinbaseMPCWallet = React.useCallback((validatedUser, connector, embeddedWalletVerifiedCredential) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
96
96
|
connector.setVerifiedCredentials(validatedUser.verifiedCredentials);
|
|
@@ -125,23 +125,24 @@ const useCoinbaseMPC = () => {
|
|
|
125
125
|
? { password, passwordSource: source }
|
|
126
126
|
: {};
|
|
127
127
|
const response = yield wallets.linkWallet(environmentId, Object.assign(Object.assign(Object.assign({}, passcodeArgs), verifyArgs), { backup: backupCode }));
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
if (!response) {
|
|
129
|
+
throw new utils.DynamicError('Unable to link wallet');
|
|
130
|
+
}
|
|
131
|
+
const updatedUserProfile = createUserProfile.createUserProfileFromSdkUser(response.user);
|
|
132
|
+
const newSelectedCredentialWallet = updatedUserProfile.verifiedCredentials.find((cred) => cred.id === updatedUserProfile.lastVerifiedCredentialId &&
|
|
130
133
|
cred.format === 'blockchain');
|
|
131
134
|
if (!newSelectedCredentialWallet) {
|
|
132
135
|
throw new utils.DynamicError('No primary wallet found');
|
|
133
136
|
}
|
|
134
137
|
setPrimaryWalletId(newSelectedCredentialWallet.id);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return { newSelectedCredentialWallet };
|
|
138
|
+
connector.setVerifiedCredentials(updatedUserProfile.verifiedCredentials);
|
|
139
|
+
return { newSelectedCredentialWallet, updatedUser: updatedUserProfile };
|
|
138
140
|
}), [
|
|
139
141
|
appName,
|
|
140
142
|
consumeNonce,
|
|
141
143
|
displaySiweStatement,
|
|
142
144
|
environmentId,
|
|
143
145
|
setPrimaryWalletId,
|
|
144
|
-
setUser,
|
|
145
146
|
siweStatement,
|
|
146
147
|
]);
|
|
147
148
|
const createNewCoinbaseMPCWallet = React.useCallback((connector, password) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -153,7 +154,7 @@ const useCoinbaseMPC = () => {
|
|
|
153
154
|
: sdkApiCore.PasswordSourceTypeEnum.Dynamic;
|
|
154
155
|
try {
|
|
155
156
|
const backupCode = yield connector.generateWallet(source, initialWalletPassword);
|
|
156
|
-
const { newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
|
|
157
|
+
const { updatedUser, newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
|
|
157
158
|
backupCode,
|
|
158
159
|
connector,
|
|
159
160
|
password: initialWalletPassword,
|
|
@@ -167,7 +168,7 @@ const useCoinbaseMPC = () => {
|
|
|
167
168
|
connector,
|
|
168
169
|
id: newSelectedCredentialWallet.id,
|
|
169
170
|
};
|
|
170
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken.getAuthToken());
|
|
171
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken.getAuthToken(), updatedUser);
|
|
171
172
|
return coinbaseMPCWallet;
|
|
172
173
|
}
|
|
173
174
|
catch (error) {
|
package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js
CHANGED
|
@@ -4,6 +4,7 @@ import { useCallback } from 'react';
|
|
|
4
4
|
import { PasswordSourceTypeEnum, ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
5
5
|
import { isCoinbaseMpcWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
6
6
|
import { DynamicError } from '@dynamic-labs/utils';
|
|
7
|
+
import { createUserProfileFromSdkUser } from '../../../../functions/createUserProfile/createUserProfile.js';
|
|
7
8
|
import { findEmbeddedWalletFromVerifiedCredentials } from '../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
|
|
8
9
|
import '../../../../constants/values.js';
|
|
9
10
|
import { USER_NOT_LOGGED_IN } from '../../../../constants/errors.js';
|
|
@@ -24,7 +25,6 @@ import 'viem';
|
|
|
24
25
|
import 'viem/chains';
|
|
25
26
|
import { findCoinbaseMPCWallet } from '../../../../functions/findCoinbaseMPCWallet/findCoinbaseMPCWallet.js';
|
|
26
27
|
import { getCoinbaseMPCConnectorFetchers } from '../../../../functions/getCoinbaseMPCConnectorFetchers/getCoinbaseMPCConnectorFetchers.js';
|
|
27
|
-
import { updateJWTAndCreateUserProfile } from '../../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
|
|
28
28
|
import '../../../../../context/DynamicContext/DynamicContext.js';
|
|
29
29
|
import { dynamicEvents } from '../../../../../events/dynamicEvents.js';
|
|
30
30
|
import '../../../../../context/CaptchaContext/CaptchaContext.js';
|
|
@@ -86,7 +86,7 @@ import { useInternalDynamicContext } from '../../../../../context/DynamicContext
|
|
|
86
86
|
|
|
87
87
|
const DYNAMIC_PASSWORD_LENGTH = 20;
|
|
88
88
|
const useCoinbaseMPC = () => {
|
|
89
|
-
const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement,
|
|
89
|
+
const { user, setPrimaryWalletId, walletConnectorOptions, environmentId, consumeNonce, displaySiweStatement, appName, siweStatement, handleLogOut, setShowAuthFlow, } = useInternalDynamicContext();
|
|
90
90
|
const { setError } = useErrorContext();
|
|
91
91
|
const returnExistingCoinbaseMPCWallet = useCallback((validatedUser, connector, embeddedWalletVerifiedCredential) => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
92
|
connector.setVerifiedCredentials(validatedUser.verifiedCredentials);
|
|
@@ -121,23 +121,24 @@ const useCoinbaseMPC = () => {
|
|
|
121
121
|
? { password, passwordSource: source }
|
|
122
122
|
: {};
|
|
123
123
|
const response = yield linkWallet(environmentId, Object.assign(Object.assign(Object.assign({}, passcodeArgs), verifyArgs), { backup: backupCode }));
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
if (!response) {
|
|
125
|
+
throw new DynamicError('Unable to link wallet');
|
|
126
|
+
}
|
|
127
|
+
const updatedUserProfile = createUserProfileFromSdkUser(response.user);
|
|
128
|
+
const newSelectedCredentialWallet = updatedUserProfile.verifiedCredentials.find((cred) => cred.id === updatedUserProfile.lastVerifiedCredentialId &&
|
|
126
129
|
cred.format === 'blockchain');
|
|
127
130
|
if (!newSelectedCredentialWallet) {
|
|
128
131
|
throw new DynamicError('No primary wallet found');
|
|
129
132
|
}
|
|
130
133
|
setPrimaryWalletId(newSelectedCredentialWallet.id);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return { newSelectedCredentialWallet };
|
|
134
|
+
connector.setVerifiedCredentials(updatedUserProfile.verifiedCredentials);
|
|
135
|
+
return { newSelectedCredentialWallet, updatedUser: updatedUserProfile };
|
|
134
136
|
}), [
|
|
135
137
|
appName,
|
|
136
138
|
consumeNonce,
|
|
137
139
|
displaySiweStatement,
|
|
138
140
|
environmentId,
|
|
139
141
|
setPrimaryWalletId,
|
|
140
|
-
setUser,
|
|
141
142
|
siweStatement,
|
|
142
143
|
]);
|
|
143
144
|
const createNewCoinbaseMPCWallet = useCallback((connector, password) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -149,7 +150,7 @@ const useCoinbaseMPC = () => {
|
|
|
149
150
|
: PasswordSourceTypeEnum.Dynamic;
|
|
150
151
|
try {
|
|
151
152
|
const backupCode = yield connector.generateWallet(source, initialWalletPassword);
|
|
152
|
-
const { newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
|
|
153
|
+
const { updatedUser, newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
|
|
153
154
|
backupCode,
|
|
154
155
|
connector,
|
|
155
156
|
password: initialWalletPassword,
|
|
@@ -163,7 +164,7 @@ const useCoinbaseMPC = () => {
|
|
|
163
164
|
connector,
|
|
164
165
|
id: newSelectedCredentialWallet.id,
|
|
165
166
|
};
|
|
166
|
-
dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken());
|
|
167
|
+
dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, getAuthToken(), updatedUser);
|
|
167
168
|
return coinbaseMPCWallet;
|
|
168
169
|
}
|
|
169
170
|
catch (error) {
|
|
@@ -35,7 +35,6 @@ require('../../../../config/ApiEndpoint.cjs');
|
|
|
35
35
|
var embeddedWallets = require('../../../../data/api/embeddedWallets/embeddedWallets.cjs');
|
|
36
36
|
require('@dynamic-labs/store');
|
|
37
37
|
require('../../../../locale/locale.cjs');
|
|
38
|
-
var updateJWTAndCreateUserProfile = require('../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
|
|
39
38
|
var getUserVerifiedCredentialType = require('../../../functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.cjs');
|
|
40
39
|
var hasEmbeddedWallet = require('../../../functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs');
|
|
41
40
|
var getEmbeddedWalletAuthHandler = require('../../../functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.cjs');
|
|
@@ -115,7 +114,7 @@ var useInternalDynamicContext = require('../../../../context/DynamicContext/useD
|
|
|
115
114
|
*/
|
|
116
115
|
const useSecureEnclaveEmbeddedWallet = () => {
|
|
117
116
|
var _a, _b, _c, _d;
|
|
118
|
-
const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions,
|
|
117
|
+
const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
119
118
|
const { createTurnkeyWallet } = useTurnkey.useTurnkey();
|
|
120
119
|
const { hasRecoveryEmail } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
121
120
|
const { createRootElement } = useElementById.useElementById();
|
|
@@ -247,20 +246,20 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
247
246
|
challenge,
|
|
248
247
|
turnkeySubOrganizationId,
|
|
249
248
|
});
|
|
250
|
-
const
|
|
249
|
+
const updatedUser = yield embeddedWallets.completePasskeyRecovery({
|
|
251
250
|
attestation: attestation,
|
|
252
251
|
challenge,
|
|
253
252
|
environmentId,
|
|
254
253
|
walletId: turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.id,
|
|
255
254
|
});
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
if (!updatedUser) {
|
|
256
|
+
throw new utils.DynamicError('Error completing passkey recovery');
|
|
257
|
+
}
|
|
258
258
|
return { attestation, challenge, displayName };
|
|
259
259
|
}), [
|
|
260
260
|
createOrRestoreSession,
|
|
261
261
|
environmentId,
|
|
262
262
|
projectSettings,
|
|
263
|
-
setUser,
|
|
264
263
|
user,
|
|
265
264
|
walletConnectorOptions,
|
|
266
265
|
]);
|
|
@@ -31,7 +31,6 @@ import '../../../../config/ApiEndpoint.js';
|
|
|
31
31
|
import { completePasskeyRecovery, getUserPasskeys, initEmbeddedWalletSession } from '../../../../data/api/embeddedWallets/embeddedWallets.js';
|
|
32
32
|
import '@dynamic-labs/store';
|
|
33
33
|
import '../../../../locale/locale.js';
|
|
34
|
-
import { updateJWTAndCreateUserProfile } from '../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
|
|
35
34
|
import { getUserVerifiedCredentialType } from '../../../functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.js';
|
|
36
35
|
import { hasEmbeddedWallet } from '../../../functions/hasEmbeddedWallet/hasEmbeddedWallet.js';
|
|
37
36
|
import { getEmbeddedWalletAuthHandler } from '../../../functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.js';
|
|
@@ -111,7 +110,7 @@ import { useInternalDynamicContext } from '../../../../context/DynamicContext/us
|
|
|
111
110
|
*/
|
|
112
111
|
const useSecureEnclaveEmbeddedWallet = () => {
|
|
113
112
|
var _a, _b, _c, _d;
|
|
114
|
-
const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions,
|
|
113
|
+
const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, } = useInternalDynamicContext();
|
|
115
114
|
const { createTurnkeyWallet } = useTurnkey();
|
|
116
115
|
const { hasRecoveryEmail } = useIsTurnkeyWallet();
|
|
117
116
|
const { createRootElement } = useElementById();
|
|
@@ -243,20 +242,20 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
243
242
|
challenge,
|
|
244
243
|
turnkeySubOrganizationId,
|
|
245
244
|
});
|
|
246
|
-
const
|
|
245
|
+
const updatedUser = yield completePasskeyRecovery({
|
|
247
246
|
attestation: attestation,
|
|
248
247
|
challenge,
|
|
249
248
|
environmentId,
|
|
250
249
|
walletId: turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.id,
|
|
251
250
|
});
|
|
252
|
-
|
|
253
|
-
|
|
251
|
+
if (!updatedUser) {
|
|
252
|
+
throw new DynamicError('Error completing passkey recovery');
|
|
253
|
+
}
|
|
254
254
|
return { attestation, challenge, displayName };
|
|
255
255
|
}), [
|
|
256
256
|
createOrRestoreSession,
|
|
257
257
|
environmentId,
|
|
258
258
|
projectSettings,
|
|
259
|
-
setUser,
|
|
260
259
|
user,
|
|
261
260
|
walletConnectorOptions,
|
|
262
261
|
]);
|
|
@@ -210,7 +210,7 @@ const useTurnkey = () => {
|
|
|
210
210
|
id: embeddedWalletVerifiedCredential.id,
|
|
211
211
|
};
|
|
212
212
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
213
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken.getAuthToken());
|
|
213
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken.getAuthToken(), user);
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
@@ -206,7 +206,7 @@ const useTurnkey = () => {
|
|
|
206
206
|
id: embeddedWalletVerifiedCredential.id,
|
|
207
207
|
};
|
|
208
208
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
209
|
-
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken());
|
|
209
|
+
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, getAuthToken(), user);
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.cjs
CHANGED
|
@@ -29,7 +29,6 @@ var getEOAWallet = require('../../functions/getEOAWallet/getEOAWallet.cjs');
|
|
|
29
29
|
require('../../../config/ApiEndpoint.cjs');
|
|
30
30
|
require('@dynamic-labs/store');
|
|
31
31
|
require('../../../locale/locale.cjs');
|
|
32
|
-
var updateJWTAndCreateUserProfile = require('../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
|
|
33
32
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
34
33
|
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
35
34
|
require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
@@ -84,7 +83,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
84
83
|
|
|
85
84
|
// This hook needs to be async that's why it's not using useMutation
|
|
86
85
|
const useInitEmbeddedWalletAuthMethod = () => {
|
|
87
|
-
const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow,
|
|
86
|
+
const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
88
87
|
const { setView } = ViewContext.useViewContext();
|
|
89
88
|
const [isLoading, setIsLoading] = React.useState(false);
|
|
90
89
|
const [error, setError] = React.useState();
|
|
@@ -102,7 +101,7 @@ const useInitEmbeddedWalletAuthMethod = () => {
|
|
|
102
101
|
.getAuthenticatorHandler()
|
|
103
102
|
.isSessionActive();
|
|
104
103
|
try {
|
|
105
|
-
|
|
104
|
+
yield passkeyRecovery.initEmbeddedWalletSession({
|
|
106
105
|
authenticatorType,
|
|
107
106
|
environmentId,
|
|
108
107
|
iframeContainer,
|
|
@@ -111,9 +110,6 @@ const useInitEmbeddedWalletAuthMethod = () => {
|
|
|
111
110
|
user,
|
|
112
111
|
wallet,
|
|
113
112
|
});
|
|
114
|
-
if (result && result.passkeyRecoveryResponse) {
|
|
115
|
-
setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(result.passkeyRecoveryResponse.jwt, result.passkeyRecoveryResponse.minifiedJwt));
|
|
116
|
-
}
|
|
117
113
|
if (showEmailBundle) {
|
|
118
114
|
setView('passkey-recovery-bundle', {
|
|
119
115
|
authenticatorType,
|
package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.js
CHANGED
|
@@ -25,7 +25,6 @@ import { getEOAWallet } from '../../functions/getEOAWallet/getEOAWallet.js';
|
|
|
25
25
|
import '../../../config/ApiEndpoint.js';
|
|
26
26
|
import '@dynamic-labs/store';
|
|
27
27
|
import '../../../locale/locale.js';
|
|
28
|
-
import { updateJWTAndCreateUserProfile } from '../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
|
|
29
28
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
30
29
|
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
31
30
|
import '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
@@ -80,7 +79,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
80
79
|
|
|
81
80
|
// This hook needs to be async that's why it's not using useMutation
|
|
82
81
|
const useInitEmbeddedWalletAuthMethod = () => {
|
|
83
|
-
const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow,
|
|
82
|
+
const { primaryWallet, environmentId, user, projectSettings, setShowAuthFlow, } = useInternalDynamicContext();
|
|
84
83
|
const { setView } = useViewContext();
|
|
85
84
|
const [isLoading, setIsLoading] = useState(false);
|
|
86
85
|
const [error, setError] = useState();
|
|
@@ -98,7 +97,7 @@ const useInitEmbeddedWalletAuthMethod = () => {
|
|
|
98
97
|
.getAuthenticatorHandler()
|
|
99
98
|
.isSessionActive();
|
|
100
99
|
try {
|
|
101
|
-
|
|
100
|
+
yield initEmbeddedWalletSession({
|
|
102
101
|
authenticatorType,
|
|
103
102
|
environmentId,
|
|
104
103
|
iframeContainer,
|
|
@@ -107,9 +106,6 @@ const useInitEmbeddedWalletAuthMethod = () => {
|
|
|
107
106
|
user,
|
|
108
107
|
wallet,
|
|
109
108
|
});
|
|
110
|
-
if (result && result.passkeyRecoveryResponse) {
|
|
111
|
-
setUser(updateJWTAndCreateUserProfile(result.passkeyRecoveryResponse.jwt, result.passkeyRecoveryResponse.minifiedJwt));
|
|
112
|
-
}
|
|
113
109
|
if (showEmailBundle) {
|
|
114
110
|
setView('passkey-recovery-bundle', {
|
|
115
111
|
authenticatorType,
|
|
@@ -27,8 +27,8 @@ require('react-international-phone');
|
|
|
27
27
|
require('viem');
|
|
28
28
|
require('viem/chains');
|
|
29
29
|
require('../../../config/ApiEndpoint.cjs');
|
|
30
|
-
var mfa = require('../../../data/api/mfa/mfa.cjs');
|
|
31
30
|
require('@dynamic-labs/store');
|
|
31
|
+
var mfa = require('../../../data/api/mfa/mfa.cjs');
|
|
32
32
|
require('../../../locale/locale.cjs');
|
|
33
33
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
34
34
|
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
@@ -156,9 +156,6 @@ const useMfa = ({ onMfaCompleteOnce, } = {}) => {
|
|
|
156
156
|
environmentId,
|
|
157
157
|
type,
|
|
158
158
|
});
|
|
159
|
-
if (!response) {
|
|
160
|
-
throw new Error('Failed to authenticate device');
|
|
161
|
-
}
|
|
162
159
|
yield ((_b = listeners.onMfaCompleteOnce) === null || _b === void 0 ? void 0 : _b.call(listeners, {
|
|
163
160
|
mfaToken: response.mfaToken,
|
|
164
161
|
}));
|
|
@@ -23,8 +23,8 @@ import 'react-international-phone';
|
|
|
23
23
|
import 'viem';
|
|
24
24
|
import 'viem/chains';
|
|
25
25
|
import '../../../config/ApiEndpoint.js';
|
|
26
|
-
import { getUserMfaDevices, updateUserMfaDevice, deleteMfaDevice, addMfaDevice, authMfaDevice, authMfaRecovery, verifyMfaDevice, createNewRecoveryCodes, getRecoveryCodes } from '../../../data/api/mfa/mfa.js';
|
|
27
26
|
import '@dynamic-labs/store';
|
|
27
|
+
import { getUserMfaDevices, updateUserMfaDevice, deleteMfaDevice, addMfaDevice, authMfaDevice, authMfaRecovery, verifyMfaDevice, createNewRecoveryCodes, getRecoveryCodes } from '../../../data/api/mfa/mfa.js';
|
|
28
28
|
import '../../../locale/locale.js';
|
|
29
29
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
30
30
|
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
@@ -152,9 +152,6 @@ const useMfa = ({ onMfaCompleteOnce, } = {}) => {
|
|
|
152
152
|
environmentId,
|
|
153
153
|
type,
|
|
154
154
|
});
|
|
155
|
-
if (!response) {
|
|
156
|
-
throw new Error('Failed to authenticate device');
|
|
157
|
-
}
|
|
158
155
|
yield ((_b = listeners.onMfaCompleteOnce) === null || _b === void 0 ? void 0 : _b.call(listeners, {
|
|
159
156
|
mfaToken: response.mfaToken,
|
|
160
157
|
}));
|
|
@@ -21,8 +21,8 @@ require('../../../shared/consts/index.cjs');
|
|
|
21
21
|
var dynamicEvents = require('../../../events/dynamicEvents.cjs');
|
|
22
22
|
require('../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
23
23
|
require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
24
|
+
var errors = require('../../constants/errors.cjs');
|
|
24
25
|
require('@dynamic-labs/multi-wallet');
|
|
25
|
-
var getAuthToken = require('../../functions/getAuthToken/getAuthToken.cjs');
|
|
26
26
|
require('react-international-phone');
|
|
27
27
|
var isTurnkeyEnabled = require('../../functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
|
|
28
28
|
var getEnabledEmbeddedWalletsAuthenticators = require('../../functions/getEnabledEmbeddedWalletsAuthenticators/getEnabledEmbeddedWalletsAuthenticators.cjs');
|
|
@@ -33,7 +33,6 @@ require('../../../config/ApiEndpoint.cjs');
|
|
|
33
33
|
require('@dynamic-labs/store');
|
|
34
34
|
require('../../../locale/locale.cjs');
|
|
35
35
|
var user = require('../../../data/api/user/user.cjs');
|
|
36
|
-
var updateJWTAndCreateUserProfile = require('../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
|
|
37
36
|
var getEmbeddedWalletSessionExpiration = require('../../functions/getEmbeddedWalletSessionExpiration/getEmbeddedWalletSessionExpiration.cjs');
|
|
38
37
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
39
38
|
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
@@ -94,7 +93,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
94
93
|
// Hook exposed to customers and used internally to trigger passkey recovery
|
|
95
94
|
const usePasskeyRecovery = () => {
|
|
96
95
|
var _a, _b;
|
|
97
|
-
const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user: user$1,
|
|
96
|
+
const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user: user$1, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
98
97
|
const { createRootElement } = useElementById.useElementById();
|
|
99
98
|
const iframeContainerRef = createRootElement(constants.iframeContainerId);
|
|
100
99
|
const { userHasEmbeddedWallet } = useEmbeddedWallet.useEmbeddedWallet();
|
|
@@ -145,17 +144,30 @@ const usePasskeyRecovery = () => {
|
|
|
145
144
|
}), [wallet, isTurnkeyWalletWithoutAuthenticator, isSessionRestored]);
|
|
146
145
|
const initPasskeyRecoveryProcess = React.useCallback((authenticatorType, currentAction) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
147
146
|
var _e;
|
|
147
|
+
const validateRecoveryRequest = () => {
|
|
148
|
+
if (!user$1) {
|
|
149
|
+
throw new Error(errors.USER_NOT_LOGGED_IN);
|
|
150
|
+
}
|
|
151
|
+
if (!isTurnkeyEnabled.isTurnkeyEnabled(projectSettings)) {
|
|
152
|
+
throw new Error('Dynamic embedded wallet is not enabled. Go to the dashboard and make sure to have both Dynamic embedded wallet and at least one EVM network enabled. Also, check if EthereumWalletConnectors is in the DynamicContextProvider > settings > walletConnectors.');
|
|
153
|
+
}
|
|
154
|
+
if (!userHasEmbeddedWallet()) {
|
|
155
|
+
throw new Error('Dynamic embedded wallet not found');
|
|
156
|
+
}
|
|
157
|
+
if (wallet && !walletConnectorCore.isPasskeyWalletConnector(wallet.connector)) {
|
|
158
|
+
throw new Error('Dynamic embedded wallet not found.');
|
|
159
|
+
}
|
|
160
|
+
};
|
|
148
161
|
validateRecoveryRequest();
|
|
149
162
|
const turnkeyRecoveryHandler = (wallet === null || wallet === void 0 ? void 0 : wallet.connector).getAuthenticatorHandler();
|
|
150
163
|
// email auth - session is still up, so create passkey authenticator usign the same session
|
|
151
164
|
if (authenticatorType === 'passkey' &&
|
|
152
165
|
turnkeyRecoveryHandler.isSessionActive()) {
|
|
153
|
-
|
|
166
|
+
yield passkeyRecovery.addNewPasskeyAuthenticator({
|
|
154
167
|
environmentId,
|
|
155
168
|
user: user$1,
|
|
156
169
|
wallet,
|
|
157
170
|
});
|
|
158
|
-
setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(passkeyRecoveryResponse.jwt, passkeyRecoveryResponse.minifiedJwt));
|
|
159
171
|
setShowAuthFlow(false);
|
|
160
172
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
161
173
|
return wallet;
|
|
@@ -198,22 +210,18 @@ const usePasskeyRecovery = () => {
|
|
|
198
210
|
dynamicEvents.dynamicEvents.once('passkeyRecoveryCompleted', (wallet) => resolve(wallet));
|
|
199
211
|
dynamicEvents.dynamicEvents.once('passkeyRecoveryFailed', (error) => reject(error));
|
|
200
212
|
});
|
|
201
|
-
}), [
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
if (wallet && !walletConnectorCore.isPasskeyWalletConnector(wallet.connector)) {
|
|
214
|
-
throw new Error('Passkey embedded wallet not found.');
|
|
215
|
-
}
|
|
216
|
-
};
|
|
213
|
+
}), [
|
|
214
|
+
wallet,
|
|
215
|
+
projectSettings,
|
|
216
|
+
hasRecoveryEmail,
|
|
217
|
+
userHasEmbeddedWallet,
|
|
218
|
+
environmentId,
|
|
219
|
+
user$1,
|
|
220
|
+
setShowAuthFlow,
|
|
221
|
+
setView,
|
|
222
|
+
initAuthMethod,
|
|
223
|
+
iframeContainerRef,
|
|
224
|
+
]);
|
|
217
225
|
const addRecoveryEmail = (emailInput) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
218
226
|
try {
|
|
219
227
|
let updatedUser = user$1;
|
|
@@ -17,8 +17,8 @@ import '../../../shared/consts/index.js';
|
|
|
17
17
|
import { dynamicEvents } from '../../../events/dynamicEvents.js';
|
|
18
18
|
import '../../../context/CaptchaContext/CaptchaContext.js';
|
|
19
19
|
import '../../../context/ErrorContext/ErrorContext.js';
|
|
20
|
+
import { USER_NOT_LOGGED_IN } from '../../constants/errors.js';
|
|
20
21
|
import '@dynamic-labs/multi-wallet';
|
|
21
|
-
import { getAuthToken } from '../../functions/getAuthToken/getAuthToken.js';
|
|
22
22
|
import 'react-international-phone';
|
|
23
23
|
import { isTurnkeyEnabled } from '../../functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
|
|
24
24
|
import { getEnabledEmbeddedWalletsAuthenticators } from '../../functions/getEnabledEmbeddedWalletsAuthenticators/getEnabledEmbeddedWalletsAuthenticators.js';
|
|
@@ -29,7 +29,6 @@ import '../../../config/ApiEndpoint.js';
|
|
|
29
29
|
import '@dynamic-labs/store';
|
|
30
30
|
import '../../../locale/locale.js';
|
|
31
31
|
import { updateUserProfileFields } from '../../../data/api/user/user.js';
|
|
32
|
-
import { updateJWTAndCreateUserProfile } from '../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
|
|
33
32
|
import { getEmbeddedWalletSessionExpiration } from '../../functions/getEmbeddedWalletSessionExpiration/getEmbeddedWalletSessionExpiration.js';
|
|
34
33
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
35
34
|
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
@@ -90,7 +89,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
90
89
|
// Hook exposed to customers and used internally to trigger passkey recovery
|
|
91
90
|
const usePasskeyRecovery = () => {
|
|
92
91
|
var _a, _b;
|
|
93
|
-
const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user,
|
|
92
|
+
const { environmentId, primaryWallet, projectSettings, setShowAuthFlow, user, } = useInternalDynamicContext();
|
|
94
93
|
const { createRootElement } = useElementById();
|
|
95
94
|
const iframeContainerRef = createRootElement(iframeContainerId);
|
|
96
95
|
const { userHasEmbeddedWallet } = useEmbeddedWallet();
|
|
@@ -141,17 +140,30 @@ const usePasskeyRecovery = () => {
|
|
|
141
140
|
}), [wallet, isTurnkeyWalletWithoutAuthenticator, isSessionRestored]);
|
|
142
141
|
const initPasskeyRecoveryProcess = useCallback((authenticatorType, currentAction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
143
142
|
var _e;
|
|
143
|
+
const validateRecoveryRequest = () => {
|
|
144
|
+
if (!user) {
|
|
145
|
+
throw new Error(USER_NOT_LOGGED_IN);
|
|
146
|
+
}
|
|
147
|
+
if (!isTurnkeyEnabled(projectSettings)) {
|
|
148
|
+
throw new Error('Dynamic embedded wallet is not enabled. Go to the dashboard and make sure to have both Dynamic embedded wallet and at least one EVM network enabled. Also, check if EthereumWalletConnectors is in the DynamicContextProvider > settings > walletConnectors.');
|
|
149
|
+
}
|
|
150
|
+
if (!userHasEmbeddedWallet()) {
|
|
151
|
+
throw new Error('Dynamic embedded wallet not found');
|
|
152
|
+
}
|
|
153
|
+
if (wallet && !isPasskeyWalletConnector(wallet.connector)) {
|
|
154
|
+
throw new Error('Dynamic embedded wallet not found.');
|
|
155
|
+
}
|
|
156
|
+
};
|
|
144
157
|
validateRecoveryRequest();
|
|
145
158
|
const turnkeyRecoveryHandler = (wallet === null || wallet === void 0 ? void 0 : wallet.connector).getAuthenticatorHandler();
|
|
146
159
|
// email auth - session is still up, so create passkey authenticator usign the same session
|
|
147
160
|
if (authenticatorType === 'passkey' &&
|
|
148
161
|
turnkeyRecoveryHandler.isSessionActive()) {
|
|
149
|
-
|
|
162
|
+
yield addNewPasskeyAuthenticator({
|
|
150
163
|
environmentId,
|
|
151
164
|
user,
|
|
152
165
|
wallet,
|
|
153
166
|
});
|
|
154
|
-
setUser(updateJWTAndCreateUserProfile(passkeyRecoveryResponse.jwt, passkeyRecoveryResponse.minifiedJwt));
|
|
155
167
|
setShowAuthFlow(false);
|
|
156
168
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
157
169
|
return wallet;
|
|
@@ -194,22 +206,18 @@ const usePasskeyRecovery = () => {
|
|
|
194
206
|
dynamicEvents.once('passkeyRecoveryCompleted', (wallet) => resolve(wallet));
|
|
195
207
|
dynamicEvents.once('passkeyRecoveryFailed', (error) => reject(error));
|
|
196
208
|
});
|
|
197
|
-
}), [
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
if (wallet && !isPasskeyWalletConnector(wallet.connector)) {
|
|
210
|
-
throw new Error('Passkey embedded wallet not found.');
|
|
211
|
-
}
|
|
212
|
-
};
|
|
209
|
+
}), [
|
|
210
|
+
wallet,
|
|
211
|
+
projectSettings,
|
|
212
|
+
hasRecoveryEmail,
|
|
213
|
+
userHasEmbeddedWallet,
|
|
214
|
+
environmentId,
|
|
215
|
+
user,
|
|
216
|
+
setShowAuthFlow,
|
|
217
|
+
setView,
|
|
218
|
+
initAuthMethod,
|
|
219
|
+
iframeContainerRef,
|
|
220
|
+
]);
|
|
213
221
|
const addRecoveryEmail = (emailInput) => __awaiter(void 0, void 0, void 0, function* () {
|
|
214
222
|
try {
|
|
215
223
|
let updatedUser = user;
|
|
@@ -31,9 +31,9 @@ var isSocialKycEnabled = require('../../functions/isSocialKycEnabled/isSocialKyc
|
|
|
31
31
|
require('viem');
|
|
32
32
|
require('viem/chains');
|
|
33
33
|
require('../../../config/ApiEndpoint.cjs');
|
|
34
|
+
require('@dynamic-labs/store');
|
|
34
35
|
var oauth = require('../../../data/api/oauth/oauth.cjs');
|
|
35
36
|
require('../../../locale/locale.cjs');
|
|
36
|
-
require('@dynamic-labs/store');
|
|
37
37
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
38
38
|
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
39
39
|
require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
@@ -27,9 +27,9 @@ import { isSocialKycEnabled } from '../../functions/isSocialKycEnabled/isSocialK
|
|
|
27
27
|
import 'viem';
|
|
28
28
|
import 'viem/chains';
|
|
29
29
|
import '../../../config/ApiEndpoint.js';
|
|
30
|
+
import '@dynamic-labs/store';
|
|
30
31
|
import { unlinkOAuth } from '../../../data/api/oauth/oauth.js';
|
|
31
32
|
import '../../../locale/locale.js';
|
|
32
|
-
import '@dynamic-labs/store';
|
|
33
33
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
34
34
|
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
35
35
|
import '../../../context/UserWalletsContext/UserWalletsContext.js';
|