@dynamic-labs/sdk-react-core 0.19.0-alpha.15 → 0.19.0-alpha.17
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 +31 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +9 -9
- package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +46 -26
- package/src/lib/components/SendBalanceForm/SendBalanceForm.d.ts +1 -0
- package/src/lib/components/SendBalanceForm/SendBalanceForm.js +46 -26
- package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.cjs +2 -2
- package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.d.ts +1 -0
- package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.js +2 -2
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.cjs +4 -3
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.js +4 -3
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +1 -1
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +20 -7
- package/src/lib/context/DynamicContext/DynamicContext.js +20 -7
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.cjs +34 -0
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.d.ts +13 -0
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.js +30 -0
- package/src/lib/context/DynamicContext/handleDisconnectWallet/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +5 -2
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +11 -2
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +11 -2
- package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
- package/src/lib/locale/en/translation.cjs +0 -7
- package/src/lib/locale/en/translation.js +1 -7
- package/src/lib/shared/types/index.d.ts +6 -0
- package/src/lib/shared/utils/functions/getWalletListItemLabel/getWalletListItemLabel.cjs +4 -3
- package/src/lib/shared/utils/functions/getWalletListItemLabel/getWalletListItemLabel.js +4 -3
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.cjs +21 -0
- package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.d.ts +1 -0
- package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.js +17 -0
- package/src/lib/utils/functions/getOrdinalNumber/index.d.ts +1 -0
- package/src/lib/utils/functions/index.d.ts +2 -1
- package/src/lib/utils/functions/isTestnet/isTestnet.cjs +1 -1
- package/src/lib/utils/functions/isTestnet/isTestnet.js +1 -1
- package/src/lib/utils/functions/isTurnkeyEnabled/index.d.ts +1 -0
- package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs +10 -0
- package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.d.ts +2 -0
- package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.js +6 -0
- package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.cjs +1 -1
- package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.js +1 -1
- package/src/lib/utils/functions/walletListBuilder/utils/groupWalletOptions/groupWalletOptions.cjs +6 -2
- package/src/lib/utils/functions/walletListBuilder/utils/groupWalletOptions/groupWalletOptions.js +6 -2
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +1 -1
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +0 -1
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +0 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +5 -2
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +5 -4
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +5 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +13 -5
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +13 -5
- package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.d.ts +1 -1
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +1 -1
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +1 -1
- package/src/lib/views/EmailVerification/EmailVerification.cjs +9 -3
- package/src/lib/views/EmailVerification/EmailVerification.js +9 -3
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -3
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +2 -3
- package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSimpleSignIn/WalletSimpleSignIn.cjs +1 -4
- package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSimpleSignIn/WalletSimpleSignIn.js +1 -4
- package/src/lib/views/LoginView/useLoginView.cjs +11 -3
- package/src/lib/views/LoginView/useLoginView.js +11 -3
- package/src/lib/views/PasskeyIntroView/PasskeyIntroView.cjs +9 -4
- package/src/lib/views/PasskeyIntroView/PasskeyIntroView.js +9 -4
- package/src/lib/views/SendBalanceView/SendBalanceView.cjs +3 -2
- package/src/lib/views/SendBalanceView/SendBalanceView.js +3 -2
- package/src/lib/views/WalletGroupView/WalletGroupView.cjs +1 -1
- package/src/lib/views/WalletGroupView/WalletGroupView.js +1 -1
- package/src/lib/views/WalletList/WalletList.cjs +1 -1
- package/src/lib/views/WalletList/WalletList.js +1 -1
- package/src/lib/views/viewToComponentMap.cjs +0 -2
- package/src/lib/views/viewToComponentMap.js +0 -2
- package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/index.d.ts +0 -1
- package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.cjs +0 -7
- package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.d.ts +0 -2
- package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.js +0 -3
- package/src/lib/views/PasskeySuccessView/PasskeySuccessView.cjs +0 -71
- package/src/lib/views/PasskeySuccessView/PasskeySuccessView.d.ts +0 -2
- package/src/lib/views/PasskeySuccessView/PasskeySuccessView.js +0 -67
- package/src/lib/views/PasskeySuccessView/index.d.ts +0 -1
|
@@ -51,7 +51,7 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
51
51
|
yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
52
52
|
setCallback('connectSuccess');
|
|
53
53
|
if (isConnectOnly.isConnectOnly(user, authMode)) {
|
|
54
|
-
localStorage.LocalStorage.setToLS(localStorage$1.LAST_USED_WALLET, walletConnector.
|
|
54
|
+
localStorage.LocalStorage.setToLS(localStorage$1.LAST_USED_WALLET, walletConnector.key);
|
|
55
55
|
handleWalletsToConnect({ walletConnector });
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
@@ -47,7 +47,7 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
47
47
|
yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
48
48
|
setCallback('connectSuccess');
|
|
49
49
|
if (isConnectOnly(user, authMode)) {
|
|
50
|
-
LocalStorage.setToLS(LAST_USED_WALLET, walletConnector.
|
|
50
|
+
LocalStorage.setToLS(LAST_USED_WALLET, walletConnector.key);
|
|
51
51
|
handleWalletsToConnect({ walletConnector });
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
@@ -41,7 +41,6 @@ const useAuthLayoutChecks = (walletConnector) => {
|
|
|
41
41
|
view !== 'bridge-summary' &&
|
|
42
42
|
view !== 'bridge-next-wallet-connection' &&
|
|
43
43
|
view !== 'passkey-intro' &&
|
|
44
|
-
view !== 'passkey-success' &&
|
|
45
44
|
view !== 'social-redirect-view';
|
|
46
45
|
const showConnectedWalletProgress = isBridgeFlow &&
|
|
47
46
|
(view === 'wallet-list' ||
|
|
@@ -37,7 +37,6 @@ const useAuthLayoutChecks = (walletConnector) => {
|
|
|
37
37
|
view !== 'bridge-summary' &&
|
|
38
38
|
view !== 'bridge-next-wallet-connection' &&
|
|
39
39
|
view !== 'passkey-intro' &&
|
|
40
|
-
view !== 'passkey-success' &&
|
|
41
40
|
view !== 'social-redirect-view';
|
|
42
41
|
const showConnectedWalletProgress = isBridgeFlow &&
|
|
43
42
|
(view === 'wallet-list' ||
|
|
@@ -175,13 +175,16 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
175
175
|
});
|
|
176
176
|
const unlinkConnectedWallet = (walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
177
177
|
const connectedWalletToUnlink = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
178
|
-
|
|
178
|
+
if (!connectedWalletToUnlink) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
yield connectedWalletToUnlink.connector.endSession();
|
|
179
182
|
const filteredWallets = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
180
183
|
if (walletId === primaryWalletId) {
|
|
181
184
|
clearPrimaryWalletId();
|
|
182
185
|
}
|
|
183
186
|
setConnectedWalletsInfo(filteredWallets);
|
|
184
|
-
onUnlink
|
|
187
|
+
onUnlink(connectedWalletToUnlink, filteredWallets);
|
|
185
188
|
});
|
|
186
189
|
const getConnectedWalletById = React.useCallback((walletId) => connectedWallets.find((wallet) => wallet.id === walletId), [connectedWallets]);
|
|
187
190
|
return {
|
|
@@ -15,18 +15,19 @@ type Props = {
|
|
|
15
15
|
primaryWalletId: string | undefined;
|
|
16
16
|
setPrimaryWalletId: (walletId: string) => void;
|
|
17
17
|
wallets: WalletOption[];
|
|
18
|
-
onUnlink
|
|
18
|
+
onUnlink: (wallet: Wallet, connectedWalletsInfo: ConnectedWalletConnectorType[]) => void;
|
|
19
19
|
onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
|
|
20
20
|
setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
type UseConnectWalletValue = {
|
|
23
23
|
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts, shouldCallCallback?: boolean) => Promise<string | undefined>;
|
|
24
|
-
connectedWallet: Wallet;
|
|
24
|
+
connectedWallet: Wallet | null;
|
|
25
25
|
connectedWallets: Wallet[];
|
|
26
|
-
connectedWalletsInfo: ConnectedWalletConnectorType[]
|
|
26
|
+
connectedWalletsInfo: ConnectedWalletConnectorType[];
|
|
27
27
|
getConnectedWalletById: (walletId: string) => Wallet | undefined;
|
|
28
28
|
refreshConnectedWallet: (walletId: string, walletConnector: WalletConnector) => Promise<void>;
|
|
29
29
|
removeConnectedWalletsInfo: () => void;
|
|
30
30
|
unlinkConnectedWallet: (walletId: string) => Promise<void>;
|
|
31
31
|
};
|
|
32
|
+
export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }: Props) => UseConnectWalletValue;
|
|
32
33
|
export {};
|
|
@@ -171,13 +171,16 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
171
171
|
});
|
|
172
172
|
const unlinkConnectedWallet = (walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
173
173
|
const connectedWalletToUnlink = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
174
|
-
|
|
174
|
+
if (!connectedWalletToUnlink) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
yield connectedWalletToUnlink.connector.endSession();
|
|
175
178
|
const filteredWallets = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
176
179
|
if (walletId === primaryWalletId) {
|
|
177
180
|
clearPrimaryWalletId();
|
|
178
181
|
}
|
|
179
182
|
setConnectedWalletsInfo(filteredWallets);
|
|
180
|
-
onUnlink
|
|
183
|
+
onUnlink(connectedWalletToUnlink, filteredWallets);
|
|
181
184
|
});
|
|
182
185
|
const getConnectedWalletById = useCallback((walletId) => connectedWallets.find((wallet) => wallet.id === walletId), [connectedWallets]);
|
|
183
186
|
return {
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
|
+
var React = require('react');
|
|
6
7
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
7
8
|
var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
|
|
8
9
|
var decodeJwt = require('../../../shared/utils/functions/decodeJwt/decodeJwt.cjs');
|
|
9
10
|
require('@dynamic-labs/iconic');
|
|
10
11
|
require('@dynamic-labs/wallet-connector-core');
|
|
11
12
|
require('react/jsx-runtime');
|
|
12
|
-
require('react');
|
|
13
13
|
require('../../../shared/logger.cjs');
|
|
14
14
|
require('@dynamic-labs/wallet-book');
|
|
15
15
|
require('@dynamic-labs/utils');
|
|
@@ -20,7 +20,7 @@ require('../../../shared/consts/index.cjs');
|
|
|
20
20
|
require('@dynamic-labs/multi-wallet');
|
|
21
21
|
var getAuthToken = require('../../functions/getAuthToken/getAuthToken.cjs');
|
|
22
22
|
require('@dynamic-labs/sdk-api');
|
|
23
|
-
var
|
|
23
|
+
var isTurnkeyEnabled = require('../../functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
|
|
24
24
|
var isEmbeddedWalletPresent = require('../../functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.cjs');
|
|
25
25
|
var findEmbeddedWalletFromVerifiedCredentials = require('../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
|
|
26
26
|
var findTurnkeyWallet = require('../../functions/findTurnkeyWallet/findTurnkeyWallet.cjs');
|
|
@@ -37,13 +37,13 @@ const useEmbeddedWallet = () => {
|
|
|
37
37
|
}
|
|
38
38
|
return isEmbeddedWalletPresent.isEmbeddedWalletPresent(jwt);
|
|
39
39
|
};
|
|
40
|
-
const createEmbeddedWallet = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
const createEmbeddedWallet = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
41
41
|
var _a, _b, _c, _d;
|
|
42
42
|
const jwt = (_a = getAuthToken.getAuthToken()) !== null && _a !== void 0 ? _a : onboardingOnlyJwt;
|
|
43
43
|
if (!jwt) {
|
|
44
44
|
throw new Error('User is not logged in');
|
|
45
45
|
}
|
|
46
|
-
if (!
|
|
46
|
+
if (!isTurnkeyEnabled.isTurnkeyEnabled(projectSettings)) {
|
|
47
47
|
throw new Error('Passkey embedded wallet is not enabled');
|
|
48
48
|
}
|
|
49
49
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt);
|
|
@@ -72,7 +72,15 @@ const useEmbeddedWallet = () => {
|
|
|
72
72
|
id: embeddedWalletVerifiedCredential.id,
|
|
73
73
|
};
|
|
74
74
|
return Promise.resolve(passkeyWallet);
|
|
75
|
-
})
|
|
75
|
+
}), [
|
|
76
|
+
internalEvents,
|
|
77
|
+
internalSetShowAuthFlow,
|
|
78
|
+
onboardingOnlyJwt,
|
|
79
|
+
projectSettings,
|
|
80
|
+
setPrimaryWalletId,
|
|
81
|
+
setView,
|
|
82
|
+
wallets,
|
|
83
|
+
]);
|
|
76
84
|
return {
|
|
77
85
|
createEmbeddedWallet,
|
|
78
86
|
userHasEmbeddedWallet,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
2
|
+
import { useCallback } from 'react';
|
|
2
3
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
3
4
|
import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
|
|
4
5
|
import { decodeJwt } from '../../../shared/utils/functions/decodeJwt/decodeJwt.js';
|
|
5
6
|
import '@dynamic-labs/iconic';
|
|
6
7
|
import '@dynamic-labs/wallet-connector-core';
|
|
7
8
|
import 'react/jsx-runtime';
|
|
8
|
-
import 'react';
|
|
9
9
|
import '../../../shared/logger.js';
|
|
10
10
|
import '@dynamic-labs/wallet-book';
|
|
11
11
|
import '@dynamic-labs/utils';
|
|
@@ -16,7 +16,7 @@ import '../../../shared/consts/index.js';
|
|
|
16
16
|
import '@dynamic-labs/multi-wallet';
|
|
17
17
|
import { getAuthToken } from '../../functions/getAuthToken/getAuthToken.js';
|
|
18
18
|
import '@dynamic-labs/sdk-api';
|
|
19
|
-
import {
|
|
19
|
+
import { isTurnkeyEnabled } from '../../functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
|
|
20
20
|
import { isEmbeddedWalletPresent } from '../../functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.js';
|
|
21
21
|
import { findEmbeddedWalletFromVerifiedCredentials } from '../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
|
|
22
22
|
import { findTurnkeyWallet } from '../../functions/findTurnkeyWallet/findTurnkeyWallet.js';
|
|
@@ -33,13 +33,13 @@ const useEmbeddedWallet = () => {
|
|
|
33
33
|
}
|
|
34
34
|
return isEmbeddedWalletPresent(jwt);
|
|
35
35
|
};
|
|
36
|
-
const createEmbeddedWallet = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
const createEmbeddedWallet = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
37
|
var _a, _b, _c, _d;
|
|
38
38
|
const jwt = (_a = getAuthToken()) !== null && _a !== void 0 ? _a : onboardingOnlyJwt;
|
|
39
39
|
if (!jwt) {
|
|
40
40
|
throw new Error('User is not logged in');
|
|
41
41
|
}
|
|
42
|
-
if (!
|
|
42
|
+
if (!isTurnkeyEnabled(projectSettings)) {
|
|
43
43
|
throw new Error('Passkey embedded wallet is not enabled');
|
|
44
44
|
}
|
|
45
45
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(jwt);
|
|
@@ -68,7 +68,15 @@ const useEmbeddedWallet = () => {
|
|
|
68
68
|
id: embeddedWalletVerifiedCredential.id,
|
|
69
69
|
};
|
|
70
70
|
return Promise.resolve(passkeyWallet);
|
|
71
|
-
})
|
|
71
|
+
}), [
|
|
72
|
+
internalEvents,
|
|
73
|
+
internalSetShowAuthFlow,
|
|
74
|
+
onboardingOnlyJwt,
|
|
75
|
+
projectSettings,
|
|
76
|
+
setPrimaryWalletId,
|
|
77
|
+
setView,
|
|
78
|
+
wallets,
|
|
79
|
+
]);
|
|
72
80
|
return {
|
|
73
81
|
createEmbeddedWallet,
|
|
74
82
|
userHasEmbeddedWallet,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
2
2
|
export declare const useHandleWalletsToConnect: () => {
|
|
3
3
|
handleWalletsToConnect: ({ walletConnector, }: {
|
|
4
|
-
walletConnector?: WalletConnector | undefined;
|
|
4
|
+
walletConnector?: import("@dynamic-labs/wallet-connector-core").WalletConnectorCore.WalletConnector | undefined;
|
|
5
5
|
}) => void;
|
|
6
6
|
};
|
|
@@ -169,7 +169,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
169
169
|
const user = yield createUserProfile.createUserProfile(decodedJwt);
|
|
170
170
|
const isKycRequired = decodedJwt.missingFields.length;
|
|
171
171
|
setOnboardingOnlyJwt(Jwt);
|
|
172
|
-
localStorage.LocalStorage.setToLS(localStorage$1.LAST_USED_WALLET, walletConnector.
|
|
172
|
+
localStorage.LocalStorage.setToLS(localStorage$1.LAST_USED_WALLET, walletConnector.key);
|
|
173
173
|
setAuthMode('connect-and-sign');
|
|
174
174
|
updatePrimaryWalletId(walletConnector, user);
|
|
175
175
|
// TODO: how can projectSettings be undefined?
|
|
@@ -165,7 +165,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
165
165
|
const user = yield createUserProfile(decodedJwt);
|
|
166
166
|
const isKycRequired = decodedJwt.missingFields.length;
|
|
167
167
|
setOnboardingOnlyJwt(Jwt);
|
|
168
|
-
LocalStorage.setToLS(LAST_USED_WALLET, walletConnector.
|
|
168
|
+
LocalStorage.setToLS(LAST_USED_WALLET, walletConnector.key);
|
|
169
169
|
setAuthMode('connect-and-sign');
|
|
170
170
|
updatePrimaryWalletId(walletConnector, user);
|
|
171
171
|
// TODO: how can projectSettings be undefined?
|
|
@@ -95,7 +95,7 @@ const EmailVerification = () => {
|
|
|
95
95
|
const { view, setView, goToInitialView } = ViewContext.useViewContext();
|
|
96
96
|
const { error, setError, setErrorMessage } = ErrorContext.useErrorContext();
|
|
97
97
|
const { setExistentAccountData } = AccountExistsContext.useAccountExistsContext();
|
|
98
|
-
const { environmentId, onboardingOnlyJwt, handleLogOut, authToken, setOnboardingOnlyJwt, setShowAuthFlow, setCallback, setIsVerificationInProgress, isVerificationInProgress, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
98
|
+
const { environmentId, onboardingOnlyJwt, handleLogOut, authToken, setOnboardingOnlyJwt, setShowAuthFlow, setCallback, setIsVerificationInProgress, isVerificationInProgress, projectSettings, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
99
99
|
const { email, verificationUUID, setVerificationUUID } = EmailVerificationContext.useEmailVerificationContext();
|
|
100
100
|
const { loading, setLoading } = LoadingContext.useLoadingContext();
|
|
101
101
|
const { createEmbeddedWallet } = useEmbeddedWallet.useEmbeddedWallet();
|
|
@@ -127,6 +127,7 @@ const EmailVerification = () => {
|
|
|
127
127
|
setIsVerificationInProgress(false);
|
|
128
128
|
};
|
|
129
129
|
const handleComplete = React.useCallback((verificationToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
130
|
+
var _a;
|
|
130
131
|
setError(undefined);
|
|
131
132
|
setLoading(true);
|
|
132
133
|
if (!verificationUUID || (!authToken && !onboardingOnlyJwt)) {
|
|
@@ -147,7 +148,9 @@ const EmailVerification = () => {
|
|
|
147
148
|
try {
|
|
148
149
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
149
150
|
// if not enabled, it will throw an error.
|
|
150
|
-
|
|
151
|
+
if ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.automaticEmbeddedWalletCreation) {
|
|
152
|
+
yield createEmbeddedWallet();
|
|
153
|
+
}
|
|
151
154
|
}
|
|
152
155
|
catch (e) {
|
|
153
156
|
setShowAuthFlow(false);
|
|
@@ -182,6 +185,7 @@ const EmailVerification = () => {
|
|
|
182
185
|
setView,
|
|
183
186
|
]);
|
|
184
187
|
const handleEmailLogin = React.useCallback((verificationToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
188
|
+
var _b;
|
|
185
189
|
setError(undefined);
|
|
186
190
|
setLoading(true);
|
|
187
191
|
if (!verificationUUID) {
|
|
@@ -215,7 +219,9 @@ const EmailVerification = () => {
|
|
|
215
219
|
try {
|
|
216
220
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
217
221
|
// if not enabled, it will throw an error.
|
|
218
|
-
|
|
222
|
+
if ((_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation) {
|
|
223
|
+
yield createEmbeddedWallet();
|
|
224
|
+
}
|
|
219
225
|
}
|
|
220
226
|
catch (e) {
|
|
221
227
|
setShowAuthFlow(false);
|
|
@@ -91,7 +91,7 @@ const EmailVerification = () => {
|
|
|
91
91
|
const { view, setView, goToInitialView } = useViewContext();
|
|
92
92
|
const { error, setError, setErrorMessage } = useErrorContext();
|
|
93
93
|
const { setExistentAccountData } = useAccountExistsContext();
|
|
94
|
-
const { environmentId, onboardingOnlyJwt, handleLogOut, authToken, setOnboardingOnlyJwt, setShowAuthFlow, setCallback, setIsVerificationInProgress, isVerificationInProgress, } = useInternalDynamicContext();
|
|
94
|
+
const { environmentId, onboardingOnlyJwt, handleLogOut, authToken, setOnboardingOnlyJwt, setShowAuthFlow, setCallback, setIsVerificationInProgress, isVerificationInProgress, projectSettings, } = useInternalDynamicContext();
|
|
95
95
|
const { email, verificationUUID, setVerificationUUID } = useEmailVerificationContext();
|
|
96
96
|
const { loading, setLoading } = useLoadingContext();
|
|
97
97
|
const { createEmbeddedWallet } = useEmbeddedWallet();
|
|
@@ -123,6 +123,7 @@ const EmailVerification = () => {
|
|
|
123
123
|
setIsVerificationInProgress(false);
|
|
124
124
|
};
|
|
125
125
|
const handleComplete = useCallback((verificationToken) => __awaiter(void 0, void 0, void 0, function* () {
|
|
126
|
+
var _a;
|
|
126
127
|
setError(undefined);
|
|
127
128
|
setLoading(true);
|
|
128
129
|
if (!verificationUUID || (!authToken && !onboardingOnlyJwt)) {
|
|
@@ -143,7 +144,9 @@ const EmailVerification = () => {
|
|
|
143
144
|
try {
|
|
144
145
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
145
146
|
// if not enabled, it will throw an error.
|
|
146
|
-
|
|
147
|
+
if ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.automaticEmbeddedWalletCreation) {
|
|
148
|
+
yield createEmbeddedWallet();
|
|
149
|
+
}
|
|
147
150
|
}
|
|
148
151
|
catch (e) {
|
|
149
152
|
setShowAuthFlow(false);
|
|
@@ -178,6 +181,7 @@ const EmailVerification = () => {
|
|
|
178
181
|
setView,
|
|
179
182
|
]);
|
|
180
183
|
const handleEmailLogin = useCallback((verificationToken) => __awaiter(void 0, void 0, void 0, function* () {
|
|
184
|
+
var _b;
|
|
181
185
|
setError(undefined);
|
|
182
186
|
setLoading(true);
|
|
183
187
|
if (!verificationUUID) {
|
|
@@ -211,7 +215,9 @@ const EmailVerification = () => {
|
|
|
211
215
|
try {
|
|
212
216
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
213
217
|
// if not enabled, it will throw an error.
|
|
214
|
-
|
|
218
|
+
if ((_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation) {
|
|
219
|
+
yield createEmbeddedWallet();
|
|
220
|
+
}
|
|
215
221
|
}
|
|
216
222
|
catch (e) {
|
|
217
223
|
setShowAuthFlow(false);
|
|
@@ -20,7 +20,7 @@ require('viem');
|
|
|
20
20
|
require('../../../../shared/consts/index.cjs');
|
|
21
21
|
var useInternalDynamicContext = require('../../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
22
22
|
require('@dynamic-labs/multi-wallet');
|
|
23
|
-
var
|
|
23
|
+
var isTurnkeyEnabled = require('../../../../utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
|
|
24
24
|
require('../../../../components/ShadowDOM/ShadowDOM.cjs');
|
|
25
25
|
require('../../../../context/ThemeContext/ThemeContext.cjs');
|
|
26
26
|
var Input = require('../../../../components/Input/Input.cjs');
|
|
@@ -91,8 +91,7 @@ const LoginEmailForm = ({ isLoading: isExternalLoading, onSubmit, onSubmitError,
|
|
|
91
91
|
}
|
|
92
92
|
try {
|
|
93
93
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();
|
|
94
|
-
if ((isEmailWalletProviderEnabled ||
|
|
95
|
-
isPasskeyEmbeddedWalletEnabled.isPasskeyEmbeddedWalletEnabled(projectSettings)) &&
|
|
94
|
+
if ((isEmailWalletProviderEnabled || isTurnkeyEnabled.isTurnkeyEnabled(projectSettings)) &&
|
|
96
95
|
(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmEmailProviderForVerify)) {
|
|
97
96
|
// see: https://linear.app/dynamic-labs/issue/DYN-2517
|
|
98
97
|
// if confirmWalletTransfers setting is true, check api first to confirm emailProvider
|
|
@@ -16,7 +16,7 @@ import 'viem';
|
|
|
16
16
|
import '../../../../shared/consts/index.js';
|
|
17
17
|
import { useInternalDynamicContext } from '../../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
18
18
|
import '@dynamic-labs/multi-wallet';
|
|
19
|
-
import {
|
|
19
|
+
import { isTurnkeyEnabled } from '../../../../utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
|
|
20
20
|
import '../../../../components/ShadowDOM/ShadowDOM.js';
|
|
21
21
|
import '../../../../context/ThemeContext/ThemeContext.js';
|
|
22
22
|
import { Input } from '../../../../components/Input/Input.js';
|
|
@@ -87,8 +87,7 @@ const LoginEmailForm = ({ isLoading: isExternalLoading, onSubmit, onSubmitError,
|
|
|
87
87
|
}
|
|
88
88
|
try {
|
|
89
89
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();
|
|
90
|
-
if ((isEmailWalletProviderEnabled ||
|
|
91
|
-
isPasskeyEmbeddedWalletEnabled(projectSettings)) &&
|
|
90
|
+
if ((isEmailWalletProviderEnabled || isTurnkeyEnabled(projectSettings)) &&
|
|
92
91
|
(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmEmailProviderForVerify)) {
|
|
93
92
|
// see: https://linear.app/dynamic-labs/issue/DYN-2517
|
|
94
93
|
// if confirmWalletTransfers setting is true, check api first to confirm emailProvider
|
|
@@ -43,10 +43,7 @@ const WalletSimpleSignIn = ({ previewWalletsNumber, disabled = false, onshowAllW
|
|
|
43
43
|
walletsFilter,
|
|
44
44
|
});
|
|
45
45
|
const isUsingMultiWallet = Boolean(localStorage.LocalStorage.getFromLS(localStorage$1.AUTH_USER));
|
|
46
|
-
return !projectSettings ? (jsxRuntime.jsx(Skeleton.Skeleton, { count: previewWalletsNumber + 1, className: 'login-with-email-wallet-list__skeleton' })) : (jsxRuntime.jsxs("div", { className: 'login-with-email-wallet-list__container', "data-testid": 'top-wallets-list', children: [walletsList.map((wallet) => {
|
|
47
|
-
var _a;
|
|
48
|
-
return (jsxRuntime.jsx(WalletListItem.WalletListItem, { wallet: wallet, usingMultiWallet: isUsingMultiWallet, disabled: disabled }, wallet.key + ((_a = wallet.groupedWallets) === null || _a === void 0 ? void 0 : _a.length)));
|
|
49
|
-
}), jsxRuntime.jsx(ListItemButton.ListItemButton, { text: t('dyn_wallet_list.view_all'), onClick: onshowAllWallets, numberOfWallets: numberOfWallets, disabled: disabled })] }));
|
|
46
|
+
return !projectSettings ? (jsxRuntime.jsx(Skeleton.Skeleton, { count: previewWalletsNumber + 1, className: 'login-with-email-wallet-list__skeleton' })) : (jsxRuntime.jsxs("div", { className: 'login-with-email-wallet-list__container', "data-testid": 'top-wallets-list', children: [walletsList.map((wallet, index) => (jsxRuntime.jsx(WalletListItem.WalletListItem, { wallet: wallet, usingMultiWallet: isUsingMultiWallet, disabled: disabled }, `${wallet.key}_${index}`))), jsxRuntime.jsx(ListItemButton.ListItemButton, { text: t('dyn_wallet_list.view_all'), onClick: onshowAllWallets, numberOfWallets: numberOfWallets, disabled: disabled })] }));
|
|
50
47
|
};
|
|
51
48
|
|
|
52
49
|
exports.WalletSimpleSignIn = WalletSimpleSignIn;
|
|
@@ -39,10 +39,7 @@ const WalletSimpleSignIn = ({ previewWalletsNumber, disabled = false, onshowAllW
|
|
|
39
39
|
walletsFilter,
|
|
40
40
|
});
|
|
41
41
|
const isUsingMultiWallet = Boolean(LocalStorage.getFromLS(AUTH_USER));
|
|
42
|
-
return !projectSettings ? (jsx(Skeleton, { count: previewWalletsNumber + 1, className: 'login-with-email-wallet-list__skeleton' })) : (jsxs("div", { className: 'login-with-email-wallet-list__container', "data-testid": 'top-wallets-list', children: [walletsList.map((wallet) => {
|
|
43
|
-
var _a;
|
|
44
|
-
return (jsx(WalletListItem, { wallet: wallet, usingMultiWallet: isUsingMultiWallet, disabled: disabled }, wallet.key + ((_a = wallet.groupedWallets) === null || _a === void 0 ? void 0 : _a.length)));
|
|
45
|
-
}), jsx(ListItemButton, { text: t('dyn_wallet_list.view_all'), onClick: onshowAllWallets, numberOfWallets: numberOfWallets, disabled: disabled })] }));
|
|
42
|
+
return !projectSettings ? (jsx(Skeleton, { count: previewWalletsNumber + 1, className: 'login-with-email-wallet-list__skeleton' })) : (jsxs("div", { className: 'login-with-email-wallet-list__container', "data-testid": 'top-wallets-list', children: [walletsList.map((wallet, index) => (jsx(WalletListItem, { wallet: wallet, usingMultiWallet: isUsingMultiWallet, disabled: disabled }, `${wallet.key}_${index}`))), jsx(ListItemButton, { text: t('dyn_wallet_list.view_all'), onClick: onshowAllWallets, numberOfWallets: numberOfWallets, disabled: disabled })] }));
|
|
46
43
|
};
|
|
47
44
|
|
|
48
45
|
export { WalletSimpleSignIn };
|
|
@@ -21,9 +21,17 @@ require('@dynamic-labs/multi-wallet');
|
|
|
21
21
|
var isEmailProviderEnabled = require('../../utils/functions/isEmailProviderEnabled/isEmailProviderEnabled.cjs');
|
|
22
22
|
var index = require('../../utils/functions/getEnabledProviders/index.cjs');
|
|
23
23
|
|
|
24
|
+
/* eslint-disable multiline-comment-style */
|
|
24
25
|
const NUMBER_OF_WALLETS = 3;
|
|
25
26
|
const useLoginView = () => {
|
|
26
27
|
const { projectSettings, authorizationViewDisplayOrder, loginWithEmail, wallets, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
28
|
+
/** Takes from wallets only those that can be selected in the wallet list by the user.
|
|
29
|
+
* Should filter out embedded wallets
|
|
30
|
+
* WHY: when we decide whether to show wallets or not, we need to know how many wallets
|
|
31
|
+
* will actually be rendered. It would be especially bad to only have for ex "turnkey" in
|
|
32
|
+
* wallets and then display an empty wallet list (since turnkey doesn't render)
|
|
33
|
+
*/
|
|
34
|
+
const selectableWallets = wallets.filter(({ key }) => key !== 'turnkey');
|
|
27
35
|
const { t } = reactI18next.useTranslation();
|
|
28
36
|
const hasEnabledProviders = Boolean(index.getEnabledProviders(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers).length);
|
|
29
37
|
const isWalletOnly = React.useMemo(() => {
|
|
@@ -81,7 +89,7 @@ const useLoginView = () => {
|
|
|
81
89
|
* @returns
|
|
82
90
|
*/
|
|
83
91
|
const filterLoginViewSections = (sections) => {
|
|
84
|
-
if (
|
|
92
|
+
if (selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length) {
|
|
85
93
|
return sections;
|
|
86
94
|
}
|
|
87
95
|
return sections.filter((section) => section.type !== 'wallet');
|
|
@@ -90,7 +98,7 @@ const useLoginView = () => {
|
|
|
90
98
|
// if not the first index, no separator is needed
|
|
91
99
|
// if the first index but does not have wallets or providers,
|
|
92
100
|
// it'll show only one view section - no separator is needed
|
|
93
|
-
if (index !== 0 || !(
|
|
101
|
+
if (index !== 0 || !(selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length) || !hasEnabledProviders) {
|
|
94
102
|
return [];
|
|
95
103
|
}
|
|
96
104
|
return [
|
|
@@ -115,7 +123,7 @@ const useLoginView = () => {
|
|
|
115
123
|
// add separator if wallets defined
|
|
116
124
|
addSeparator(index));
|
|
117
125
|
}
|
|
118
|
-
if (loginItem === 'wallet' && (
|
|
126
|
+
if (loginItem === 'wallet' && (selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length)) {
|
|
119
127
|
// if showWalletsButton is true, it should show "Connec with Wallet" button
|
|
120
128
|
const numOfItemsToDisplay = ((_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _a === void 0 ? void 0 : _a.modal) === null || _b === void 0 ? void 0 : _b.showWalletsButton)
|
|
121
129
|
? 0
|
|
@@ -17,9 +17,17 @@ import '@dynamic-labs/multi-wallet';
|
|
|
17
17
|
import { isEmailProviderEnabled } from '../../utils/functions/isEmailProviderEnabled/isEmailProviderEnabled.js';
|
|
18
18
|
import { getEnabledProviders } from '../../utils/functions/getEnabledProviders/index.js';
|
|
19
19
|
|
|
20
|
+
/* eslint-disable multiline-comment-style */
|
|
20
21
|
const NUMBER_OF_WALLETS = 3;
|
|
21
22
|
const useLoginView = () => {
|
|
22
23
|
const { projectSettings, authorizationViewDisplayOrder, loginWithEmail, wallets, } = useInternalDynamicContext();
|
|
24
|
+
/** Takes from wallets only those that can be selected in the wallet list by the user.
|
|
25
|
+
* Should filter out embedded wallets
|
|
26
|
+
* WHY: when we decide whether to show wallets or not, we need to know how many wallets
|
|
27
|
+
* will actually be rendered. It would be especially bad to only have for ex "turnkey" in
|
|
28
|
+
* wallets and then display an empty wallet list (since turnkey doesn't render)
|
|
29
|
+
*/
|
|
30
|
+
const selectableWallets = wallets.filter(({ key }) => key !== 'turnkey');
|
|
23
31
|
const { t } = useTranslation();
|
|
24
32
|
const hasEnabledProviders = Boolean(getEnabledProviders(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers).length);
|
|
25
33
|
const isWalletOnly = useMemo(() => {
|
|
@@ -77,7 +85,7 @@ const useLoginView = () => {
|
|
|
77
85
|
* @returns
|
|
78
86
|
*/
|
|
79
87
|
const filterLoginViewSections = (sections) => {
|
|
80
|
-
if (
|
|
88
|
+
if (selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length) {
|
|
81
89
|
return sections;
|
|
82
90
|
}
|
|
83
91
|
return sections.filter((section) => section.type !== 'wallet');
|
|
@@ -86,7 +94,7 @@ const useLoginView = () => {
|
|
|
86
94
|
// if not the first index, no separator is needed
|
|
87
95
|
// if the first index but does not have wallets or providers,
|
|
88
96
|
// it'll show only one view section - no separator is needed
|
|
89
|
-
if (index !== 0 || !(
|
|
97
|
+
if (index !== 0 || !(selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length) || !hasEnabledProviders) {
|
|
90
98
|
return [];
|
|
91
99
|
}
|
|
92
100
|
return [
|
|
@@ -111,7 +119,7 @@ const useLoginView = () => {
|
|
|
111
119
|
// add separator if wallets defined
|
|
112
120
|
addSeparator(index));
|
|
113
121
|
}
|
|
114
|
-
if (loginItem === 'wallet' && (
|
|
122
|
+
if (loginItem === 'wallet' && (selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length)) {
|
|
115
123
|
// if showWalletsButton is true, it should show "Connec with Wallet" button
|
|
116
124
|
const numOfItemsToDisplay = ((_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _a === void 0 ? void 0 : _a.modal) === null || _b === void 0 ? void 0 : _b.showWalletsButton)
|
|
117
125
|
? 0
|
|
@@ -13,7 +13,7 @@ require('@dynamic-labs/sdk-api');
|
|
|
13
13
|
var logger = require('../../shared/logger.cjs');
|
|
14
14
|
require('@dynamic-labs/iconic');
|
|
15
15
|
require('@dynamic-labs/wallet-connector-core');
|
|
16
|
-
|
|
16
|
+
require('../../context/ViewContext/ViewContext.cjs');
|
|
17
17
|
var footerInfoIcon = require('../../shared/assets/footer-info-icon.cjs');
|
|
18
18
|
var passkeyIntroIcon = require('../../shared/assets/passkey-intro-icon.cjs');
|
|
19
19
|
var androidFaceId = require('../../shared/assets/android-face-id.cjs');
|
|
@@ -79,8 +79,7 @@ var createEmbeddedWalletWithPasskey = require('./utils/createEmbeddedWalletWithP
|
|
|
79
79
|
var findPasskeyEmailWalletConnector = require('./utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.cjs');
|
|
80
80
|
|
|
81
81
|
const PasskeyIntroView = ({ createEmbeddedWalletMutation = createEmbeddedWalletWithPasskey.createEmbeddedWalletWithPasskey, }) => {
|
|
82
|
-
const { user, wallets, setPrimaryWalletId, setUser, authToken, environmentId, handleLogOut, internalEvents, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
83
|
-
const { setView } = ViewContext.useViewContext();
|
|
82
|
+
const { user, wallets, setPrimaryWalletId, setUser, authToken, environmentId, handleLogOut, internalEvents, setShowAuthFlow, setCallback, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
84
83
|
const { setIsFooterExpanded } = index.useFooterAnimationContext();
|
|
85
84
|
const { t } = reactI18next.useTranslation();
|
|
86
85
|
const { data: passkeyEnabled } = usePromise.usePromise(isPasskeyEnabled.isPasskeyEnabled);
|
|
@@ -88,6 +87,7 @@ const PasskeyIntroView = ({ createEmbeddedWalletMutation = createEmbeddedWalletW
|
|
|
88
87
|
// it should be null to force user to setup passkey even after the a refresh
|
|
89
88
|
React.useEffect(() => localStorage.LocalStorage.removeFromLS(localStorage$1.LAST_USED_WALLET), []);
|
|
90
89
|
const { mutate: createEmbeddedWalletWithPasskeyMutation, isLoading, error, } = useMutation.useMutation(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
var _a;
|
|
91
91
|
const { embeddedWalletVerifiedCredentialId, jwt, decodedJwt, walletConnector, } = yield createEmbeddedWalletMutation({
|
|
92
92
|
authToken,
|
|
93
93
|
environmentId,
|
|
@@ -105,7 +105,12 @@ const PasskeyIntroView = ({ createEmbeddedWalletMutation = createEmbeddedWalletW
|
|
|
105
105
|
setPrimaryWalletId(embeddedWalletVerifiedCredentialId);
|
|
106
106
|
index$1.storeAuthToken(jwt);
|
|
107
107
|
setUser(createUserProfile.createUserProfile(decodedJwt));
|
|
108
|
-
|
|
108
|
+
setShowAuthFlow(false);
|
|
109
|
+
const turnkeyVerifiedCredentials = (_a = decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === 'turnkey');
|
|
110
|
+
setCallback('embeddedWalletCreated', {
|
|
111
|
+
email: (turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.email) || '',
|
|
112
|
+
verifiedCredential: turnkeyVerifiedCredentials,
|
|
113
|
+
});
|
|
109
114
|
}), {
|
|
110
115
|
onFailure: (err) => {
|
|
111
116
|
logger.logger.error('Failed to create embedded wallet', err);
|
|
@@ -9,7 +9,7 @@ import '@dynamic-labs/sdk-api';
|
|
|
9
9
|
import { logger } from '../../shared/logger.js';
|
|
10
10
|
import '@dynamic-labs/iconic';
|
|
11
11
|
import '@dynamic-labs/wallet-connector-core';
|
|
12
|
-
import
|
|
12
|
+
import '../../context/ViewContext/ViewContext.js';
|
|
13
13
|
import { ReactComponent as SvgFooterInfoIcon } from '../../shared/assets/footer-info-icon.js';
|
|
14
14
|
import { ReactComponent as SvgPasskeyIntroIcon } from '../../shared/assets/passkey-intro-icon.js';
|
|
15
15
|
import { ReactComponent as SvgAndroidFaceId } from '../../shared/assets/android-face-id.js';
|
|
@@ -75,8 +75,7 @@ import { createEmbeddedWalletWithPasskey } from './utils/createEmbeddedWalletWit
|
|
|
75
75
|
import { findPasskeyEmailWalletConnector } from './utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.js';
|
|
76
76
|
|
|
77
77
|
const PasskeyIntroView = ({ createEmbeddedWalletMutation = createEmbeddedWalletWithPasskey, }) => {
|
|
78
|
-
const { user, wallets, setPrimaryWalletId, setUser, authToken, environmentId, handleLogOut, internalEvents, } = useInternalDynamicContext();
|
|
79
|
-
const { setView } = useViewContext();
|
|
78
|
+
const { user, wallets, setPrimaryWalletId, setUser, authToken, environmentId, handleLogOut, internalEvents, setShowAuthFlow, setCallback, } = useInternalDynamicContext();
|
|
80
79
|
const { setIsFooterExpanded } = useFooterAnimationContext();
|
|
81
80
|
const { t } = useTranslation();
|
|
82
81
|
const { data: passkeyEnabled } = usePromise(isPasskeyEnabled);
|
|
@@ -84,6 +83,7 @@ const PasskeyIntroView = ({ createEmbeddedWalletMutation = createEmbeddedWalletW
|
|
|
84
83
|
// it should be null to force user to setup passkey even after the a refresh
|
|
85
84
|
useEffect(() => LocalStorage.removeFromLS(LAST_USED_WALLET), []);
|
|
86
85
|
const { mutate: createEmbeddedWalletWithPasskeyMutation, isLoading, error, } = useMutation(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
86
|
+
var _a;
|
|
87
87
|
const { embeddedWalletVerifiedCredentialId, jwt, decodedJwt, walletConnector, } = yield createEmbeddedWalletMutation({
|
|
88
88
|
authToken,
|
|
89
89
|
environmentId,
|
|
@@ -101,7 +101,12 @@ const PasskeyIntroView = ({ createEmbeddedWalletMutation = createEmbeddedWalletW
|
|
|
101
101
|
setPrimaryWalletId(embeddedWalletVerifiedCredentialId);
|
|
102
102
|
storeAuthToken(jwt);
|
|
103
103
|
setUser(createUserProfile(decodedJwt));
|
|
104
|
-
|
|
104
|
+
setShowAuthFlow(false);
|
|
105
|
+
const turnkeyVerifiedCredentials = (_a = decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === 'turnkey');
|
|
106
|
+
setCallback('embeddedWalletCreated', {
|
|
107
|
+
email: (turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.email) || '',
|
|
108
|
+
verifiedCredential: turnkeyVerifiedCredentials,
|
|
109
|
+
});
|
|
105
110
|
}), {
|
|
106
111
|
onFailure: (err) => {
|
|
107
112
|
logger.error('Failed to create embedded wallet', err);
|
|
@@ -78,11 +78,12 @@ const SendBalanceView = ({ initialRecipientAddress = '', initialValue, onClickBa
|
|
|
78
78
|
const { data: balance } = usePromise.usePromise(() => walletConnector.getBalance(), {
|
|
79
79
|
deps: [walletConnector],
|
|
80
80
|
});
|
|
81
|
-
const { data: provider } = usePromise.usePromise(() => primaryWallet.connector.
|
|
81
|
+
const { data: provider } = usePromise.usePromise(() => primaryWallet.connector.getPublicClient());
|
|
82
82
|
const evmNetworks = (walletConnector && walletConnector.evmNetworks) || [];
|
|
83
83
|
const evmNetwork = evmNetworks.find((evmNetwork) => evmNetwork.chainId === network);
|
|
84
84
|
const networkIcon = evmNetwork && (jsxRuntime.jsx("img", { src: evmNetwork === null || evmNetwork === void 0 ? void 0 : evmNetwork.iconUrls[0], alt: `${evmNetwork === null || evmNetwork === void 0 ? void 0 : evmNetwork.name} icon` }));
|
|
85
85
|
const networkName = (evmNetwork === null || evmNetwork === void 0 ? void 0 : evmNetwork.vanityName) || (evmNetwork === null || evmNetwork === void 0 ? void 0 : evmNetwork.name);
|
|
86
|
+
const networkCurrencyDecimals = evmNetwork === null || evmNetwork === void 0 ? void 0 : evmNetwork.nativeCurrency.decimals;
|
|
86
87
|
const ChainIconComponent = getChainIcon.getChainIcon(primaryWallet.chain);
|
|
87
88
|
const chainInfo = walletConnectorCore.getChainInfo(primaryWallet.chain);
|
|
88
89
|
const chainIcon = (jsxRuntime.jsx(Icon.Icon, { size: 'small', children: jsxRuntime.jsx(ChainIconComponent, {}) }));
|
|
@@ -90,7 +91,7 @@ const SendBalanceView = ({ initialRecipientAddress = '', initialValue, onClickBa
|
|
|
90
91
|
const buildFormStage = () => (jsxRuntime.jsx(SendBalancePageLayout.SendBalancePageLayout, { initialValues: {
|
|
91
92
|
amount: value === null ? '' : formatBigNumber.formatBigNumber(value),
|
|
92
93
|
recipient: recipientAddress,
|
|
93
|
-
}, balance: balance, onClickBack: onClickBack, chain: primaryWallet.chain, networkName: networkName, networkIcon: networkIcon, currencySymbol: currencySymbol, isLoading: false, walletAddress: shortenWalletAddress.shortenWalletAddress(primaryWallet.address, 3, 3), walletKey: primaryWallet.connector.key, onClickClose: onClickClose, displayPoweredByDynamicFooter: displayPoweredByDynamicFooter, onSubmit: (data) => {
|
|
94
|
+
}, balance: balance, onClickBack: onClickBack, chain: primaryWallet.chain, networkName: networkName, networkIcon: networkIcon, networkCurrencyDecimals: networkCurrencyDecimals, currencySymbol: currencySymbol, isLoading: false, walletAddress: shortenWalletAddress.shortenWalletAddress(primaryWallet.address, 3, 3), walletKey: primaryWallet.connector.key, onClickClose: onClickClose, displayPoweredByDynamicFooter: displayPoweredByDynamicFooter, onSubmit: (data) => {
|
|
94
95
|
setValue(viem.parseEther(data.amount, 'wei'));
|
|
95
96
|
setRecipientAddress(data.recipient);
|
|
96
97
|
setStage('confirmation');
|