@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.
Files changed (87) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +9 -9
  5. package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +46 -26
  6. package/src/lib/components/SendBalanceForm/SendBalanceForm.d.ts +1 -0
  7. package/src/lib/components/SendBalanceForm/SendBalanceForm.js +46 -26
  8. package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.cjs +2 -2
  9. package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.d.ts +1 -0
  10. package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.js +2 -2
  11. package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.cjs +4 -3
  12. package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.js +4 -3
  13. package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +1 -1
  14. package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +1 -1
  15. package/src/lib/context/DynamicContext/DynamicContext.cjs +20 -7
  16. package/src/lib/context/DynamicContext/DynamicContext.js +20 -7
  17. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.cjs +34 -0
  18. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.d.ts +13 -0
  19. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.js +30 -0
  20. package/src/lib/context/DynamicContext/handleDisconnectWallet/index.d.ts +1 -0
  21. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +5 -2
  22. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +11 -2
  23. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
  24. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +11 -2
  25. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  26. package/src/lib/locale/en/translation.cjs +0 -7
  27. package/src/lib/locale/en/translation.js +1 -7
  28. package/src/lib/shared/types/index.d.ts +6 -0
  29. package/src/lib/shared/utils/functions/getWalletListItemLabel/getWalletListItemLabel.cjs +4 -3
  30. package/src/lib/shared/utils/functions/getWalletListItemLabel/getWalletListItemLabel.js +4 -3
  31. package/src/lib/styles/index.shadow.cjs +1 -1
  32. package/src/lib/styles/index.shadow.js +1 -1
  33. package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.cjs +21 -0
  34. package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.d.ts +1 -0
  35. package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.js +17 -0
  36. package/src/lib/utils/functions/getOrdinalNumber/index.d.ts +1 -0
  37. package/src/lib/utils/functions/index.d.ts +2 -1
  38. package/src/lib/utils/functions/isTestnet/isTestnet.cjs +1 -1
  39. package/src/lib/utils/functions/isTestnet/isTestnet.js +1 -1
  40. package/src/lib/utils/functions/isTurnkeyEnabled/index.d.ts +1 -0
  41. package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs +10 -0
  42. package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.d.ts +2 -0
  43. package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.js +6 -0
  44. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.cjs +1 -1
  45. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.js +1 -1
  46. package/src/lib/utils/functions/walletListBuilder/utils/groupWalletOptions/groupWalletOptions.cjs +6 -2
  47. package/src/lib/utils/functions/walletListBuilder/utils/groupWalletOptions/groupWalletOptions.js +6 -2
  48. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -1
  49. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +1 -1
  50. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +1 -1
  51. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +1 -1
  52. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +0 -1
  53. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +0 -1
  54. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +5 -2
  55. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +5 -4
  56. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +5 -2
  57. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +13 -5
  58. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +13 -5
  59. package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.d.ts +1 -1
  60. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +1 -1
  61. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +1 -1
  62. package/src/lib/views/EmailVerification/EmailVerification.cjs +9 -3
  63. package/src/lib/views/EmailVerification/EmailVerification.js +9 -3
  64. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -3
  65. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +2 -3
  66. package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSimpleSignIn/WalletSimpleSignIn.cjs +1 -4
  67. package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSimpleSignIn/WalletSimpleSignIn.js +1 -4
  68. package/src/lib/views/LoginView/useLoginView.cjs +11 -3
  69. package/src/lib/views/LoginView/useLoginView.js +11 -3
  70. package/src/lib/views/PasskeyIntroView/PasskeyIntroView.cjs +9 -4
  71. package/src/lib/views/PasskeyIntroView/PasskeyIntroView.js +9 -4
  72. package/src/lib/views/SendBalanceView/SendBalanceView.cjs +3 -2
  73. package/src/lib/views/SendBalanceView/SendBalanceView.js +3 -2
  74. package/src/lib/views/WalletGroupView/WalletGroupView.cjs +1 -1
  75. package/src/lib/views/WalletGroupView/WalletGroupView.js +1 -1
  76. package/src/lib/views/WalletList/WalletList.cjs +1 -1
  77. package/src/lib/views/WalletList/WalletList.js +1 -1
  78. package/src/lib/views/viewToComponentMap.cjs +0 -2
  79. package/src/lib/views/viewToComponentMap.js +0 -2
  80. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/index.d.ts +0 -1
  81. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.cjs +0 -7
  82. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.d.ts +0 -2
  83. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.js +0 -3
  84. package/src/lib/views/PasskeySuccessView/PasskeySuccessView.cjs +0 -71
  85. package/src/lib/views/PasskeySuccessView/PasskeySuccessView.d.ts +0 -2
  86. package/src/lib/views/PasskeySuccessView/PasskeySuccessView.js +0 -67
  87. 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.name);
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.name);
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
- yield (connectedWalletToUnlink === null || connectedWalletToUnlink === void 0 ? void 0 : connectedWalletToUnlink.connector.endSession());
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 === null || onUnlink === void 0 ? void 0 : onUnlink(walletId, filteredWallets);
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?: (walletId: string, connectedWalletsInfo: ConnectedWalletConnectorType[]) => void;
18
+ onUnlink: (wallet: Wallet, connectedWalletsInfo: ConnectedWalletConnectorType[]) => void;
19
19
  onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
20
20
  setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
21
21
  };
22
- export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }: Props) => {
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
- yield (connectedWalletToUnlink === null || connectedWalletToUnlink === void 0 ? void 0 : connectedWalletToUnlink.connector.endSession());
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 === null || onUnlink === void 0 ? void 0 : onUnlink(walletId, filteredWallets);
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 isPasskeyEmbeddedWalletEnabled = require('../../functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.cjs');
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 (!isPasskeyEmbeddedWalletEnabled.isPasskeyEmbeddedWalletEnabled(projectSettings)) {
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 { isPasskeyEmbeddedWalletEnabled } from '../../functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.js';
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 (!isPasskeyEmbeddedWalletEnabled(projectSettings)) {
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.name);
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.name);
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
- yield createEmbeddedWallet();
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
- yield createEmbeddedWallet();
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
- yield createEmbeddedWallet();
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
- yield createEmbeddedWallet();
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 isPasskeyEmbeddedWalletEnabled = require('../../../../utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.cjs');
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 { isPasskeyEmbeddedWalletEnabled } from '../../../../utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.js';
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 (wallets === null || wallets === void 0 ? void 0 : wallets.length) {
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 || !(wallets === null || wallets === void 0 ? void 0 : wallets.length) || !hasEnabledProviders) {
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' && (wallets === null || wallets === void 0 ? void 0 : wallets.length)) {
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 (wallets === null || wallets === void 0 ? void 0 : wallets.length) {
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 || !(wallets === null || wallets === void 0 ? void 0 : wallets.length) || !hasEnabledProviders) {
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' && (wallets === null || wallets === void 0 ? void 0 : wallets.length)) {
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
- var ViewContext = require('../../context/ViewContext/ViewContext.cjs');
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
- setView('passkey-success');
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 { useViewContext } from '../../context/ViewContext/ViewContext.js';
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
- setView('passkey-success');
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.getRpcProvider());
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');