@dynamic-labs/sdk-react-core 2.1.0-alpha.3 → 2.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +12 -13
- package/src/index.cjs +0 -2
- package/src/index.d.ts +1 -1
- package/src/index.js +0 -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/utils/constants/errors.cjs +0 -2
- package/src/lib/utils/constants/errors.js +1 -2
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.cjs +12 -9
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.d.ts +6 -2
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.js +13 -10
- package/src/lib/utils/functions/findTurnkeyWallet/index.d.ts +1 -1
- package/src/lib/utils/functions/index.d.ts +1 -0
- package/src/lib/utils/functions/serializeWalletConnectors/index.d.ts +1 -0
- package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.cjs +32 -0
- package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.d.ts +2 -0
- package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.js +28 -0
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +7 -8
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +7 -8
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +7 -8
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +10 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +7 -8
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +137 -25
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +17 -7
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +140 -28
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +31 -9
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +31 -9
- package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.cjs +6 -13
- package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.d.ts +1 -3
- package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.js +6 -12
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.cjs +25 -2
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.js +25 -2
- package/src/lib/views/EmailVerification/EmailVerification.cjs +38 -11
- package/src/lib/views/EmailVerification/EmailVerification.js +38 -11
- package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +2 -2
- package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +2 -2
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +6 -7
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +6 -7
- package/src/lib/views/Passkey/utils/createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.cjs +1 -1
- package/src/lib/views/Passkey/utils/createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.js +1 -1
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.cjs +1 -1
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.js +1 -1
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs +16 -0
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.d.ts +2 -0
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js +12 -0
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/index.d.ts +1 -0
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +7 -7
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +7 -7
|
@@ -40,6 +40,8 @@ require('react-dom');
|
|
|
40
40
|
var useCreateDynamicEmbeddedWalletMutation = require('../../../useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs');
|
|
41
41
|
require('../../../../../context/WalletContext/WalletContext.cjs');
|
|
42
42
|
var smartWallet = require('../../../useWalletConnectors/utils/smartWallet/smartWallet.cjs');
|
|
43
|
+
var findPrimaryEmbeddedChain = require('../../../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
44
|
+
var findPasskeyEmailWalletConnector = require('../../../../../views/Passkey/utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.cjs');
|
|
43
45
|
require('../../../../../context/ThemeContext/ThemeContext.cjs');
|
|
44
46
|
require('@dynamic-labs/types');
|
|
45
47
|
require('yup');
|
|
@@ -160,26 +162,46 @@ const useTurnkey = () => {
|
|
|
160
162
|
return Promise.resolve(passkeyWallet);
|
|
161
163
|
}), [setPrimaryWalletId, walletConnectorOptions]);
|
|
162
164
|
const createTurnkeyWallet = React.useCallback((jwt, decodedJwt, chain) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
163
|
-
var _e, _f;
|
|
165
|
+
var _e, _f, _g, _h;
|
|
164
166
|
const isManualMode = ((_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _e === void 0 ? void 0 : _e.automaticEmbeddedWalletCreation) === false;
|
|
165
167
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, chain);
|
|
166
|
-
const
|
|
168
|
+
const userWalletsCredentials = getUserWalletsFromVerifiedCredentials.getUserWalletsFromVerifiedCredentials(jwt);
|
|
167
169
|
// If the user doesn't have a wallet, or if the customer is in Manual
|
|
168
170
|
// Mode, we should attempt to create a new wallet. Note that if in manual
|
|
169
171
|
// mode, the check for the existance of an embedded wallet was arbitrarily
|
|
170
172
|
// added as a safeguard given the pre-existing condition we're overriding.
|
|
171
|
-
if (!(
|
|
173
|
+
if (!(userWalletsCredentials === null || userWalletsCredentials === void 0 ? void 0 : userWalletsCredentials.length) ||
|
|
172
174
|
(!embeddedWalletVerifiedCredential && isManualMode)) {
|
|
173
175
|
const hasEmailVC = getUserVerifiedCredentialType.getUserVerifiedCredentialType(decodedJwt, sdkApiCore.JwtVerifiedCredentialFormatEnum.Email);
|
|
174
|
-
// create wallet without authenticator
|
|
175
|
-
// if users log in and doesn't have an email vc they won't be able to use passkey recovery
|
|
176
|
-
// and it means that they need to create it while creating a wallet
|
|
177
176
|
if (!((_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _f === void 0 ? void 0 : _f.forceAuthenticatorAtSignup) &&
|
|
178
|
-
|
|
177
|
+
hasEmailVC) {
|
|
179
178
|
return startPregeneratedWalletCreationFlow(jwt, decodedJwt);
|
|
180
179
|
}
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
else {
|
|
181
|
+
// show the passkey view to create an embedded wallet
|
|
182
|
+
return startEmbeddedWalletCreationFlow();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
// the pregenerated wallet must have been created at this point in the
|
|
187
|
+
// backend if this called as part of a new user sign up.
|
|
188
|
+
if (embeddedWalletVerifiedCredential &&
|
|
189
|
+
decodedJwt.newUser &&
|
|
190
|
+
((_g = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _g === void 0 ? void 0 : _g.automaticEmbeddedWalletCreation)) {
|
|
191
|
+
const walletConnector = findPasskeyEmailWalletConnector.findPasskeyEmailWalletConnector(walletConnectorOptions, findPrimaryEmbeddedChain.findPrimaryEmbeddedChain(projectSettings));
|
|
192
|
+
if (!walletConnector) {
|
|
193
|
+
throw new Error('Could not find the Embedded wallet connector');
|
|
194
|
+
}
|
|
195
|
+
const wallet = {
|
|
196
|
+
address: (yield walletConnector.getAddress()) || '',
|
|
197
|
+
authenticated: Boolean((_h = embeddedWalletVerifiedCredential === null || embeddedWalletVerifiedCredential === void 0 ? void 0 : embeddedWalletVerifiedCredential.walletProperties) === null || _h === void 0 ? void 0 : _h.isAuthenticatorAttached),
|
|
198
|
+
chain: walletConnector.connectedChain || '',
|
|
199
|
+
connected: true,
|
|
200
|
+
connector: walletConnector,
|
|
201
|
+
id: embeddedWalletVerifiedCredential.id,
|
|
202
|
+
};
|
|
203
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, jwt);
|
|
204
|
+
}
|
|
183
205
|
}
|
|
184
206
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
185
207
|
// if user logged in with MM for example, just continue the flow
|
|
@@ -36,6 +36,8 @@ import 'react-dom';
|
|
|
36
36
|
import { useCreateDynamicEmbeddedWalletMutation } from '../../../useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js';
|
|
37
37
|
import '../../../../../context/WalletContext/WalletContext.js';
|
|
38
38
|
import { findSmartWallet, initializeSmartWallet } from '../../../useWalletConnectors/utils/smartWallet/smartWallet.js';
|
|
39
|
+
import { findPrimaryEmbeddedChain } from '../../../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
40
|
+
import { findPasskeyEmailWalletConnector } from '../../../../../views/Passkey/utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.js';
|
|
39
41
|
import '../../../../../context/ThemeContext/ThemeContext.js';
|
|
40
42
|
import '@dynamic-labs/types';
|
|
41
43
|
import 'yup';
|
|
@@ -156,26 +158,46 @@ const useTurnkey = () => {
|
|
|
156
158
|
return Promise.resolve(passkeyWallet);
|
|
157
159
|
}), [setPrimaryWalletId, walletConnectorOptions]);
|
|
158
160
|
const createTurnkeyWallet = useCallback((jwt, decodedJwt, chain) => __awaiter(void 0, void 0, void 0, function* () {
|
|
159
|
-
var _e, _f;
|
|
161
|
+
var _e, _f, _g, _h;
|
|
160
162
|
const isManualMode = ((_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _e === void 0 ? void 0 : _e.automaticEmbeddedWalletCreation) === false;
|
|
161
163
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt, chain);
|
|
162
|
-
const
|
|
164
|
+
const userWalletsCredentials = getUserWalletsFromVerifiedCredentials(jwt);
|
|
163
165
|
// If the user doesn't have a wallet, or if the customer is in Manual
|
|
164
166
|
// Mode, we should attempt to create a new wallet. Note that if in manual
|
|
165
167
|
// mode, the check for the existance of an embedded wallet was arbitrarily
|
|
166
168
|
// added as a safeguard given the pre-existing condition we're overriding.
|
|
167
|
-
if (!(
|
|
169
|
+
if (!(userWalletsCredentials === null || userWalletsCredentials === void 0 ? void 0 : userWalletsCredentials.length) ||
|
|
168
170
|
(!embeddedWalletVerifiedCredential && isManualMode)) {
|
|
169
171
|
const hasEmailVC = getUserVerifiedCredentialType(decodedJwt, JwtVerifiedCredentialFormatEnum.Email);
|
|
170
|
-
// create wallet without authenticator
|
|
171
|
-
// if users log in and doesn't have an email vc they won't be able to use passkey recovery
|
|
172
|
-
// and it means that they need to create it while creating a wallet
|
|
173
172
|
if (!((_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _f === void 0 ? void 0 : _f.forceAuthenticatorAtSignup) &&
|
|
174
|
-
|
|
173
|
+
hasEmailVC) {
|
|
175
174
|
return startPregeneratedWalletCreationFlow(jwt, decodedJwt);
|
|
176
175
|
}
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
else {
|
|
177
|
+
// show the passkey view to create an embedded wallet
|
|
178
|
+
return startEmbeddedWalletCreationFlow();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
// the pregenerated wallet must have been created at this point in the
|
|
183
|
+
// backend if this called as part of a new user sign up.
|
|
184
|
+
if (embeddedWalletVerifiedCredential &&
|
|
185
|
+
decodedJwt.newUser &&
|
|
186
|
+
((_g = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _g === void 0 ? void 0 : _g.automaticEmbeddedWalletCreation)) {
|
|
187
|
+
const walletConnector = findPasskeyEmailWalletConnector(walletConnectorOptions, findPrimaryEmbeddedChain(projectSettings));
|
|
188
|
+
if (!walletConnector) {
|
|
189
|
+
throw new Error('Could not find the Embedded wallet connector');
|
|
190
|
+
}
|
|
191
|
+
const wallet = {
|
|
192
|
+
address: (yield walletConnector.getAddress()) || '',
|
|
193
|
+
authenticated: Boolean((_h = embeddedWalletVerifiedCredential === null || embeddedWalletVerifiedCredential === void 0 ? void 0 : embeddedWalletVerifiedCredential.walletProperties) === null || _h === void 0 ? void 0 : _h.isAuthenticatorAttached),
|
|
194
|
+
chain: walletConnector.connectedChain || '',
|
|
195
|
+
connected: true,
|
|
196
|
+
connector: walletConnector,
|
|
197
|
+
id: embeddedWalletVerifiedCredential.id,
|
|
198
|
+
};
|
|
199
|
+
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, jwt);
|
|
200
|
+
}
|
|
179
201
|
}
|
|
180
202
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
181
203
|
// if user logged in with MM for example, just continue the flow
|
|
@@ -21,6 +21,11 @@ require('../../../../../_virtual/_tslib.cjs');
|
|
|
21
21
|
require('../../../config/ApiEndpoint.cjs');
|
|
22
22
|
var settings = require('../../../data/api/settings/settings.cjs');
|
|
23
23
|
require('../../../locale/locale.cjs');
|
|
24
|
+
require('@dynamic-labs/multi-wallet');
|
|
25
|
+
require('react-international-phone');
|
|
26
|
+
require('viem');
|
|
27
|
+
require('viem/chains');
|
|
28
|
+
var serializeWalletConnectors = require('../../functions/serializeWalletConnectors/serializeWalletConnectors.cjs');
|
|
24
29
|
|
|
25
30
|
const useSendDynamicProps = ({ settings: settings$1, environmentId, }) => {
|
|
26
31
|
useEffectOnce.useEffectOnce(() => {
|
|
@@ -32,7 +37,7 @@ const useSendDynamicProps = ({ settings: settings$1, environmentId, }) => {
|
|
|
32
37
|
settings: Object.assign(Object.assign({}, settings$1), { customPrivacyPolicy: Boolean(settings$1.customPrivacyPolicy), customTermsOfServices: Boolean(settings$1.customTermsOfServices), policiesConsentInnerComponent: Boolean(settings$1.policiesConsentInnerComponent) }),
|
|
33
38
|
};
|
|
34
39
|
const serializedEventsCallbacks = serializeEventsCallbacks(settings$1.events);
|
|
35
|
-
const serializedWalletConnectors = serializeWalletConnectors(settings$1.walletConnectors);
|
|
40
|
+
const serializedWalletConnectors = serializeWalletConnectors.serializeWalletConnectors(settings$1.walletConnectors);
|
|
36
41
|
const serializedDynamicContextProps = Object.assign(Object.assign({}, updatedDynamicProps), { settings: Object.assign(Object.assign({}, updatedDynamicProps.settings), { events: serializedEventsCallbacks, walletConnectors: serializedWalletConnectors }) });
|
|
37
42
|
settings.sendDynamicProps(environmentId, {
|
|
38
43
|
dynamicContextProps: serializedDynamicContextProps,
|
|
@@ -58,17 +63,6 @@ const serializeEventsCallbacks = (events) => {
|
|
|
58
63
|
return undefined;
|
|
59
64
|
}
|
|
60
65
|
};
|
|
61
|
-
const serializeWalletConnectors = (walletConnectors) => {
|
|
62
|
-
try {
|
|
63
|
-
if (!walletConnectors)
|
|
64
|
-
return undefined;
|
|
65
|
-
return walletConnectors.map((connector) => connector.name);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
logger.logger.error('error serializing walletConnectors', error);
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
66
|
const getFrameworkSettings = () => {
|
|
73
67
|
var _a;
|
|
74
68
|
return ({
|
|
@@ -84,5 +78,4 @@ const getFrameworkSettings = () => {
|
|
|
84
78
|
};
|
|
85
79
|
|
|
86
80
|
exports.serializeEventsCallbacks = serializeEventsCallbacks;
|
|
87
|
-
exports.serializeWalletConnectors = serializeWalletConnectors;
|
|
88
81
|
exports.useSendDynamicProps = useSendDynamicProps;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DynamicContextProps } from '../../../..';
|
|
1
|
+
import { DynamicContextProps } from '../../../context/DynamicContext';
|
|
3
2
|
import { DynamicEventsCallbacks } from '../../../shared';
|
|
4
3
|
type UseSendDynamicHookProps = {
|
|
5
4
|
settings: DynamicContextProps['settings'];
|
|
@@ -7,5 +6,4 @@ type UseSendDynamicHookProps = {
|
|
|
7
6
|
};
|
|
8
7
|
export declare const useSendDynamicProps: ({ settings, environmentId, }: UseSendDynamicHookProps) => void;
|
|
9
8
|
export declare const serializeEventsCallbacks: (events: DynamicEventsCallbacks | undefined) => string[] | undefined;
|
|
10
|
-
export declare const serializeWalletConnectors: (walletConnectors?: WalletConnectorsMethod[]) => string[] | undefined;
|
|
11
9
|
export {};
|
|
@@ -17,6 +17,11 @@ import '../../../../../_virtual/_tslib.js';
|
|
|
17
17
|
import '../../../config/ApiEndpoint.js';
|
|
18
18
|
import { sendDynamicProps } from '../../../data/api/settings/settings.js';
|
|
19
19
|
import '../../../locale/locale.js';
|
|
20
|
+
import '@dynamic-labs/multi-wallet';
|
|
21
|
+
import 'react-international-phone';
|
|
22
|
+
import 'viem';
|
|
23
|
+
import 'viem/chains';
|
|
24
|
+
import { serializeWalletConnectors } from '../../functions/serializeWalletConnectors/serializeWalletConnectors.js';
|
|
20
25
|
|
|
21
26
|
const useSendDynamicProps = ({ settings, environmentId, }) => {
|
|
22
27
|
useEffectOnce(() => {
|
|
@@ -54,17 +59,6 @@ const serializeEventsCallbacks = (events) => {
|
|
|
54
59
|
return undefined;
|
|
55
60
|
}
|
|
56
61
|
};
|
|
57
|
-
const serializeWalletConnectors = (walletConnectors) => {
|
|
58
|
-
try {
|
|
59
|
-
if (!walletConnectors)
|
|
60
|
-
return undefined;
|
|
61
|
-
return walletConnectors.map((connector) => connector.name);
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
logger.error('error serializing walletConnectors', error);
|
|
65
|
-
return undefined;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
62
|
const getFrameworkSettings = () => {
|
|
69
63
|
var _a;
|
|
70
64
|
return ({
|
|
@@ -79,4 +73,4 @@ const getFrameworkSettings = () => {
|
|
|
79
73
|
});
|
|
80
74
|
};
|
|
81
75
|
|
|
82
|
-
export { serializeEventsCallbacks,
|
|
76
|
+
export { serializeEventsCallbacks, useSendDynamicProps };
|
|
@@ -5,9 +5,31 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var data = require('../../../views/WalletList/data.cjs');
|
|
8
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
9
|
+
require('@dynamic-labs/sdk-api-core');
|
|
10
|
+
require('../../../shared/logger.cjs');
|
|
11
|
+
require('@dynamic-labs/iconic');
|
|
12
|
+
require('react/jsx-runtime');
|
|
13
|
+
require('../../../context/ViewContext/ViewContext.cjs');
|
|
14
|
+
require('@dynamic-labs/wallet-book');
|
|
15
|
+
require('../../constants/colors.cjs');
|
|
16
|
+
require('../../constants/values.cjs');
|
|
17
|
+
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
18
|
+
require('@dynamic-labs/utils');
|
|
19
|
+
require('../../../shared/consts/index.cjs');
|
|
20
|
+
require('../../../../../_virtual/_tslib.cjs');
|
|
21
|
+
require('@dynamic-labs/multi-wallet');
|
|
22
|
+
require('react-international-phone');
|
|
23
|
+
require('viem');
|
|
24
|
+
require('viem/chains');
|
|
25
|
+
require('../../../config/ApiEndpoint.cjs');
|
|
26
|
+
require('../../../locale/locale.cjs');
|
|
27
|
+
var serializeWalletConnectors = require('../../functions/serializeWalletConnectors/serializeWalletConnectors.cjs');
|
|
8
28
|
var verifyRequiredConnectorsAreSetup = require('./utils/verifyRequiredConnectorsAreSetup/verifyRequiredConnectorsAreSetup.cjs');
|
|
9
29
|
|
|
10
30
|
const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepLinkPreference, flowNetwork, mobileExperience, networkConfigurations, walletBook, walletUiUtils, walletConnectorsProp, walletConnectPreferredChains, walletConnectorExtensions, }) => {
|
|
31
|
+
const walletConnectorsKey = React.useMemo(() => { var _a; return (_a = serializeWalletConnectors.serializeWalletConnectors(walletConnectorsProp)) === null || _a === void 0 ? void 0 : _a.join(','); }, [walletConnectorsProp]);
|
|
32
|
+
const walletBookLength = React.useMemo(() => Object.keys(walletBook !== null && walletBook !== void 0 ? walletBook : {}).length, [walletBook]);
|
|
11
33
|
const walletConnectorOptions = React.useMemo(() => {
|
|
12
34
|
if (!projectSettings ||
|
|
13
35
|
!Object.keys(walletBook !== null && walletBook !== void 0 ? walletBook : {}).length ||
|
|
@@ -31,14 +53,15 @@ const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepL
|
|
|
31
53
|
walletConnectorExtensions,
|
|
32
54
|
});
|
|
33
55
|
// Cannot include walletUiUtils in the dependency array because it will cause an infinite loop
|
|
56
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
34
57
|
}, [
|
|
35
58
|
appLogoUrl,
|
|
36
59
|
appName,
|
|
37
60
|
projectSettings,
|
|
38
|
-
|
|
61
|
+
walletConnectorsKey,
|
|
39
62
|
walletConnectPreferredChains,
|
|
40
63
|
flowNetwork,
|
|
41
|
-
|
|
64
|
+
walletBookLength,
|
|
42
65
|
networkConfigurations,
|
|
43
66
|
]);
|
|
44
67
|
React.useEffect(() => {
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { useMemo, useEffect } from 'react';
|
|
3
3
|
import { getWallets } from '../../../views/WalletList/data.js';
|
|
4
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
5
|
+
import '@dynamic-labs/sdk-api-core';
|
|
6
|
+
import '../../../shared/logger.js';
|
|
7
|
+
import '@dynamic-labs/iconic';
|
|
8
|
+
import 'react/jsx-runtime';
|
|
9
|
+
import '../../../context/ViewContext/ViewContext.js';
|
|
10
|
+
import '@dynamic-labs/wallet-book';
|
|
11
|
+
import '../../constants/colors.js';
|
|
12
|
+
import '../../constants/values.js';
|
|
13
|
+
import '../../../shared/utils/classes/storage/localStorage.js';
|
|
14
|
+
import '@dynamic-labs/utils';
|
|
15
|
+
import '../../../shared/consts/index.js';
|
|
16
|
+
import '../../../../../_virtual/_tslib.js';
|
|
17
|
+
import '@dynamic-labs/multi-wallet';
|
|
18
|
+
import 'react-international-phone';
|
|
19
|
+
import 'viem';
|
|
20
|
+
import 'viem/chains';
|
|
21
|
+
import '../../../config/ApiEndpoint.js';
|
|
22
|
+
import '../../../locale/locale.js';
|
|
23
|
+
import { serializeWalletConnectors } from '../../functions/serializeWalletConnectors/serializeWalletConnectors.js';
|
|
4
24
|
import { verifyRequiredConnectorsAreSetup } from './utils/verifyRequiredConnectorsAreSetup/verifyRequiredConnectorsAreSetup.js';
|
|
5
25
|
|
|
6
26
|
const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepLinkPreference, flowNetwork, mobileExperience, networkConfigurations, walletBook, walletUiUtils, walletConnectorsProp, walletConnectPreferredChains, walletConnectorExtensions, }) => {
|
|
27
|
+
const walletConnectorsKey = useMemo(() => { var _a; return (_a = serializeWalletConnectors(walletConnectorsProp)) === null || _a === void 0 ? void 0 : _a.join(','); }, [walletConnectorsProp]);
|
|
28
|
+
const walletBookLength = useMemo(() => Object.keys(walletBook !== null && walletBook !== void 0 ? walletBook : {}).length, [walletBook]);
|
|
7
29
|
const walletConnectorOptions = useMemo(() => {
|
|
8
30
|
if (!projectSettings ||
|
|
9
31
|
!Object.keys(walletBook !== null && walletBook !== void 0 ? walletBook : {}).length ||
|
|
@@ -27,14 +49,15 @@ const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepL
|
|
|
27
49
|
walletConnectorExtensions,
|
|
28
50
|
});
|
|
29
51
|
// Cannot include walletUiUtils in the dependency array because it will cause an infinite loop
|
|
52
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
30
53
|
}, [
|
|
31
54
|
appLogoUrl,
|
|
32
55
|
appName,
|
|
33
56
|
projectSettings,
|
|
34
|
-
|
|
57
|
+
walletConnectorsKey,
|
|
35
58
|
walletConnectPreferredChains,
|
|
36
59
|
flowNetwork,
|
|
37
|
-
|
|
60
|
+
walletBookLength,
|
|
38
61
|
networkConfigurations,
|
|
39
62
|
]);
|
|
40
63
|
useEffect(() => {
|
|
@@ -27,6 +27,7 @@ require('../../shared/consts/index.cjs');
|
|
|
27
27
|
var useInternalDynamicContext = require('../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
28
28
|
require('../../context/CaptchaContext/CaptchaContext.cjs');
|
|
29
29
|
var ErrorContext = require('../../context/ErrorContext/ErrorContext.cjs');
|
|
30
|
+
var findEmbeddedWalletFromVerifiedCredentials = require('../../utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
|
|
30
31
|
require('@dynamic-labs/multi-wallet');
|
|
31
32
|
require('react-international-phone');
|
|
32
33
|
var shortenEmail = require('../../shared/utils/functions/shortenEmail/shortenEmail.cjs');
|
|
@@ -100,7 +101,7 @@ require('../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection
|
|
|
100
101
|
const SECONDS_TO_RETRY = 15;
|
|
101
102
|
const sleepToShowSuccessMessage = () => utils.sleep(1500);
|
|
102
103
|
const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _showRetryButton = true, showTransferMessage: _showTransferMessage = false, }) => {
|
|
103
|
-
var _a, _b, _c, _d;
|
|
104
|
+
var _a, _b, _c, _d, _e, _f;
|
|
104
105
|
const [showRetryButton, setShowRetryButton] = React.useState(_showRetryButton);
|
|
105
106
|
const [showTransferMessage, setShowTransferMessage] = React.useState(_showTransferMessage);
|
|
106
107
|
const { handleVerifiedUserWithJWT } = useHandleVerifiedUser.useHandleVerifiedUser();
|
|
@@ -135,7 +136,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
135
136
|
const { createUserProfileByJWT } = useCreateUserProfileByJWTCallback.useCreateUserProfileByJWTCallback();
|
|
136
137
|
const isTurnkeyProviderEnabled = isTurnkeyEnabled.isTurnkeyEnabled(projectSettings);
|
|
137
138
|
const handleComplete = React.useCallback((verificationToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
138
|
-
var
|
|
139
|
+
var _g, _h, _j, _k, _l, _m, _o;
|
|
139
140
|
setError(undefined);
|
|
140
141
|
setLoading(true);
|
|
141
142
|
if (!verificationUUID || (!authToken && !onboardingOnlyJwt)) {
|
|
@@ -172,16 +173,41 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
172
173
|
if (isTurnkeyWallet &&
|
|
173
174
|
hasTurnkeyVerifiedCredentialAuthenticator &&
|
|
174
175
|
!hasRecoveryEmail &&
|
|
175
|
-
((
|
|
176
|
+
((_g = updateUserProfileResponse === null || updateUserProfileResponse === void 0 ? void 0 : updateUserProfileResponse.user) === null || _g === void 0 ? void 0 : _g.email)) {
|
|
176
177
|
setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(updateUserProfileResponse.jwt, updateUserProfileResponse.minifiedJwt));
|
|
177
178
|
yield addRecoveryEmail(updateUserProfileResponse.user.email);
|
|
178
179
|
setShowAuthFlow(false);
|
|
179
180
|
return;
|
|
180
181
|
}
|
|
181
|
-
if (isTurnkeyProviderEnabled
|
|
182
|
-
!((
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
if (isTurnkeyProviderEnabled) {
|
|
183
|
+
const isManualMode = !((_j = (_h = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _h === void 0 ? void 0 : _h.embeddedWallets) === null || _j === void 0 ? void 0 : _j.automaticEmbeddedWalletCreation);
|
|
184
|
+
const isUsingPregeneratedWallets = Boolean(((_l = (_k = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _k === void 0 ? void 0 : _k.embeddedWallets) === null || _l === void 0 ? void 0 : _l.automaticEmbeddedWalletCreation) &&
|
|
185
|
+
!((_o = (_m = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _m === void 0 ? void 0 : _m.embeddedWallets) === null || _o === void 0 ? void 0 : _o.forceAuthenticatorAtSignup));
|
|
186
|
+
if (isUsingPregeneratedWallets) {
|
|
187
|
+
// Pregenerated wallet was created during an
|
|
188
|
+
// additional email validation step as part of onboarding
|
|
189
|
+
// cannot rely on newUser JWT field here due to session being counted twice
|
|
190
|
+
// when authentication happens followed by a separate email kyc step
|
|
191
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(updateUserProfileResponse.jwt);
|
|
192
|
+
if (!embeddedWalletVerifiedCredential) {
|
|
193
|
+
throw new Error('Could not find an embedded wallet');
|
|
194
|
+
}
|
|
195
|
+
const wallet = {
|
|
196
|
+
address: embeddedWalletVerifiedCredential.address,
|
|
197
|
+
authenticated: false,
|
|
198
|
+
chain: embeddedWalletVerifiedCredential.chain,
|
|
199
|
+
connected: true,
|
|
200
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
201
|
+
// @ts-ignore
|
|
202
|
+
connector: undefined,
|
|
203
|
+
id: embeddedWalletVerifiedCredential.id,
|
|
204
|
+
};
|
|
205
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, updateUserProfileResponse.jwt);
|
|
206
|
+
}
|
|
207
|
+
if (isUsingPregeneratedWallets || isManualMode) {
|
|
208
|
+
setShowAuthFlow(false);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
185
211
|
}
|
|
186
212
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
187
213
|
// if not enabled, it will throw an error.
|
|
@@ -217,7 +243,6 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
217
243
|
hasTurnkeyVerifiedCredentialAuthenticator,
|
|
218
244
|
hasRecoveryEmail,
|
|
219
245
|
isTurnkeyProviderEnabled,
|
|
220
|
-
(_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation,
|
|
221
246
|
createEmbeddedWallet,
|
|
222
247
|
setOnboardingOnlyJwt,
|
|
223
248
|
setView,
|
|
@@ -226,10 +251,12 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
226
251
|
setUser,
|
|
227
252
|
addRecoveryEmail,
|
|
228
253
|
setShowAuthFlow,
|
|
254
|
+
(_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation,
|
|
255
|
+
(_d = (_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _c === void 0 ? void 0 : _c.embeddedWallets) === null || _d === void 0 ? void 0 : _d.forceAuthenticatorAtSignup,
|
|
229
256
|
setErrorMessage,
|
|
230
257
|
]);
|
|
231
258
|
const handleEmailLogin = React.useCallback((verificationToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
232
|
-
var
|
|
259
|
+
var _p, _q;
|
|
233
260
|
setError(undefined);
|
|
234
261
|
setLoading(true);
|
|
235
262
|
if (!verificationUUID) {
|
|
@@ -264,7 +291,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
264
291
|
yield sleepToShowSuccessMessage();
|
|
265
292
|
yield createUserProfileByJWT(jwt, minifiedJwt);
|
|
266
293
|
if (isTurnkeyProviderEnabled &&
|
|
267
|
-
!((
|
|
294
|
+
!((_q = (_p = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _p === void 0 ? void 0 : _p.embeddedWallets) === null || _q === void 0 ? void 0 : _q.automaticEmbeddedWalletCreation)) {
|
|
268
295
|
setShowAuthFlow(false);
|
|
269
296
|
return;
|
|
270
297
|
}
|
|
@@ -297,7 +324,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
297
324
|
setCallback,
|
|
298
325
|
createUserProfileByJWT,
|
|
299
326
|
isTurnkeyProviderEnabled,
|
|
300
|
-
(
|
|
327
|
+
(_f = (_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _e === void 0 ? void 0 : _e.embeddedWallets) === null || _f === void 0 ? void 0 : _f.automaticEmbeddedWalletCreation,
|
|
301
328
|
createEmbeddedWallet,
|
|
302
329
|
setOnboardingOnlyJwt,
|
|
303
330
|
setView,
|
|
@@ -23,6 +23,7 @@ import '../../shared/consts/index.js';
|
|
|
23
23
|
import { useInternalDynamicContext } from '../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
24
24
|
import '../../context/CaptchaContext/CaptchaContext.js';
|
|
25
25
|
import { useErrorContext } from '../../context/ErrorContext/ErrorContext.js';
|
|
26
|
+
import { findEmbeddedWalletFromVerifiedCredentials } from '../../utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
|
|
26
27
|
import '@dynamic-labs/multi-wallet';
|
|
27
28
|
import 'react-international-phone';
|
|
28
29
|
import { shortenEmail } from '../../shared/utils/functions/shortenEmail/shortenEmail.js';
|
|
@@ -96,7 +97,7 @@ import '../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection.
|
|
|
96
97
|
const SECONDS_TO_RETRY = 15;
|
|
97
98
|
const sleepToShowSuccessMessage = () => sleep(1500);
|
|
98
99
|
const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _showRetryButton = true, showTransferMessage: _showTransferMessage = false, }) => {
|
|
99
|
-
var _a, _b, _c, _d;
|
|
100
|
+
var _a, _b, _c, _d, _e, _f;
|
|
100
101
|
const [showRetryButton, setShowRetryButton] = useState(_showRetryButton);
|
|
101
102
|
const [showTransferMessage, setShowTransferMessage] = useState(_showTransferMessage);
|
|
102
103
|
const { handleVerifiedUserWithJWT } = useHandleVerifiedUser();
|
|
@@ -131,7 +132,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
131
132
|
const { createUserProfileByJWT } = useCreateUserProfileByJWTCallback();
|
|
132
133
|
const isTurnkeyProviderEnabled = isTurnkeyEnabled(projectSettings);
|
|
133
134
|
const handleComplete = useCallback((verificationToken) => __awaiter(void 0, void 0, void 0, function* () {
|
|
134
|
-
var
|
|
135
|
+
var _g, _h, _j, _k, _l, _m, _o;
|
|
135
136
|
setError(undefined);
|
|
136
137
|
setLoading(true);
|
|
137
138
|
if (!verificationUUID || (!authToken && !onboardingOnlyJwt)) {
|
|
@@ -168,16 +169,41 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
168
169
|
if (isTurnkeyWallet &&
|
|
169
170
|
hasTurnkeyVerifiedCredentialAuthenticator &&
|
|
170
171
|
!hasRecoveryEmail &&
|
|
171
|
-
((
|
|
172
|
+
((_g = updateUserProfileResponse === null || updateUserProfileResponse === void 0 ? void 0 : updateUserProfileResponse.user) === null || _g === void 0 ? void 0 : _g.email)) {
|
|
172
173
|
setUser(updateJWTAndCreateUserProfile(updateUserProfileResponse.jwt, updateUserProfileResponse.minifiedJwt));
|
|
173
174
|
yield addRecoveryEmail(updateUserProfileResponse.user.email);
|
|
174
175
|
setShowAuthFlow(false);
|
|
175
176
|
return;
|
|
176
177
|
}
|
|
177
|
-
if (isTurnkeyProviderEnabled
|
|
178
|
-
!((
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
if (isTurnkeyProviderEnabled) {
|
|
179
|
+
const isManualMode = !((_j = (_h = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _h === void 0 ? void 0 : _h.embeddedWallets) === null || _j === void 0 ? void 0 : _j.automaticEmbeddedWalletCreation);
|
|
180
|
+
const isUsingPregeneratedWallets = Boolean(((_l = (_k = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _k === void 0 ? void 0 : _k.embeddedWallets) === null || _l === void 0 ? void 0 : _l.automaticEmbeddedWalletCreation) &&
|
|
181
|
+
!((_o = (_m = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _m === void 0 ? void 0 : _m.embeddedWallets) === null || _o === void 0 ? void 0 : _o.forceAuthenticatorAtSignup));
|
|
182
|
+
if (isUsingPregeneratedWallets) {
|
|
183
|
+
// Pregenerated wallet was created during an
|
|
184
|
+
// additional email validation step as part of onboarding
|
|
185
|
+
// cannot rely on newUser JWT field here due to session being counted twice
|
|
186
|
+
// when authentication happens followed by a separate email kyc step
|
|
187
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(updateUserProfileResponse.jwt);
|
|
188
|
+
if (!embeddedWalletVerifiedCredential) {
|
|
189
|
+
throw new Error('Could not find an embedded wallet');
|
|
190
|
+
}
|
|
191
|
+
const wallet = {
|
|
192
|
+
address: embeddedWalletVerifiedCredential.address,
|
|
193
|
+
authenticated: false,
|
|
194
|
+
chain: embeddedWalletVerifiedCredential.chain,
|
|
195
|
+
connected: true,
|
|
196
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
197
|
+
// @ts-ignore
|
|
198
|
+
connector: undefined,
|
|
199
|
+
id: embeddedWalletVerifiedCredential.id,
|
|
200
|
+
};
|
|
201
|
+
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, updateUserProfileResponse.jwt);
|
|
202
|
+
}
|
|
203
|
+
if (isUsingPregeneratedWallets || isManualMode) {
|
|
204
|
+
setShowAuthFlow(false);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
181
207
|
}
|
|
182
208
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
183
209
|
// if not enabled, it will throw an error.
|
|
@@ -213,7 +239,6 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
213
239
|
hasTurnkeyVerifiedCredentialAuthenticator,
|
|
214
240
|
hasRecoveryEmail,
|
|
215
241
|
isTurnkeyProviderEnabled,
|
|
216
|
-
(_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation,
|
|
217
242
|
createEmbeddedWallet,
|
|
218
243
|
setOnboardingOnlyJwt,
|
|
219
244
|
setView,
|
|
@@ -222,10 +247,12 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
222
247
|
setUser,
|
|
223
248
|
addRecoveryEmail,
|
|
224
249
|
setShowAuthFlow,
|
|
250
|
+
(_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation,
|
|
251
|
+
(_d = (_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _c === void 0 ? void 0 : _c.embeddedWallets) === null || _d === void 0 ? void 0 : _d.forceAuthenticatorAtSignup,
|
|
225
252
|
setErrorMessage,
|
|
226
253
|
]);
|
|
227
254
|
const handleEmailLogin = useCallback((verificationToken) => __awaiter(void 0, void 0, void 0, function* () {
|
|
228
|
-
var
|
|
255
|
+
var _p, _q;
|
|
229
256
|
setError(undefined);
|
|
230
257
|
setLoading(true);
|
|
231
258
|
if (!verificationUUID) {
|
|
@@ -260,7 +287,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
260
287
|
yield sleepToShowSuccessMessage();
|
|
261
288
|
yield createUserProfileByJWT(jwt, minifiedJwt);
|
|
262
289
|
if (isTurnkeyProviderEnabled &&
|
|
263
|
-
!((
|
|
290
|
+
!((_q = (_p = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _p === void 0 ? void 0 : _p.embeddedWallets) === null || _q === void 0 ? void 0 : _q.automaticEmbeddedWalletCreation)) {
|
|
264
291
|
setShowAuthFlow(false);
|
|
265
292
|
return;
|
|
266
293
|
}
|
|
@@ -293,7 +320,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
293
320
|
setCallback,
|
|
294
321
|
createUserProfileByJWT,
|
|
295
322
|
isTurnkeyProviderEnabled,
|
|
296
|
-
(
|
|
323
|
+
(_f = (_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _e === void 0 ? void 0 : _e.embeddedWallets) === null || _f === void 0 ? void 0 : _f.automaticEmbeddedWalletCreation,
|
|
297
324
|
createEmbeddedWallet,
|
|
298
325
|
setOnboardingOnlyJwt,
|
|
299
326
|
setView,
|
|
@@ -27,7 +27,7 @@ const initExport = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ i
|
|
|
27
27
|
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
28
28
|
!(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
|
|
29
29
|
!walletConnectorCore.isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
30
|
-
throw new utils.DynamicError('
|
|
30
|
+
throw new utils.DynamicError('Connector is missing. Please make sure you added EthereumWalletConnectors and/or SolanaWalletConnectors to DynamicProvider settings');
|
|
31
31
|
}
|
|
32
32
|
const turnkeyExportHandler = (_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.getExportHandler();
|
|
33
33
|
const publicKey = yield turnkeyExportHandler.initExport(iframeContainer, iframeElementId);
|
|
@@ -48,7 +48,7 @@ const handleExportInitCheck = ({ authToken, userEmail, wallet, }) => {
|
|
|
48
48
|
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
49
49
|
!(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
|
|
50
50
|
!walletConnectorCore.isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
51
|
-
throw new utils.DynamicError('
|
|
51
|
+
throw new utils.DynamicError('Connector is missing. Please make sure you added EthereumWalletConnectors and/or SolanaWalletConnectors to DynamicProvider settings');
|
|
52
52
|
}
|
|
53
53
|
const connector = wallet.connector;
|
|
54
54
|
connector.setEmail(userEmail);
|
|
@@ -23,7 +23,7 @@ const initExport = (_a) => __awaiter(void 0, [_a], void 0, function* ({ iframeCo
|
|
|
23
23
|
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
24
24
|
!(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
|
|
25
25
|
!isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
26
|
-
throw new DynamicError('
|
|
26
|
+
throw new DynamicError('Connector is missing. Please make sure you added EthereumWalletConnectors and/or SolanaWalletConnectors to DynamicProvider settings');
|
|
27
27
|
}
|
|
28
28
|
const turnkeyExportHandler = (_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.getExportHandler();
|
|
29
29
|
const publicKey = yield turnkeyExportHandler.initExport(iframeContainer, iframeElementId);
|
|
@@ -44,7 +44,7 @@ const handleExportInitCheck = ({ authToken, userEmail, wallet, }) => {
|
|
|
44
44
|
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
45
45
|
!(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
|
|
46
46
|
!isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
47
|
-
throw new DynamicError('
|
|
47
|
+
throw new DynamicError('Connector is missing. Please make sure you added EthereumWalletConnectors and/or SolanaWalletConnectors to DynamicProvider settings');
|
|
48
48
|
}
|
|
49
49
|
const connector = wallet.connector;
|
|
50
50
|
connector.setEmail(userEmail);
|