@dynamic-labs/sdk-react-core 2.1.3 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -82,7 +82,8 @@ const walletListBuilder = ({ authMode, userWallets, multiWallet, numberOfWallets
82
82
  if (walletConnectorCore.isEmbeddedConnector(wallet.walletConnector)) {
83
83
  return;
84
84
  }
85
- else if (wallet.key === 'unknown') {
85
+ else if (wallet.key === 'unknown' ||
86
+ !wallet.walletConnector.isAvailable) {
86
87
  return;
87
88
  }
88
89
  else if (isRecommendedWallet) {
@@ -78,7 +78,8 @@ const walletListBuilder = ({ authMode, userWallets, multiWallet, numberOfWallets
78
78
  if (isEmbeddedConnector(wallet.walletConnector)) {
79
79
  return;
80
80
  }
81
- else if (wallet.key === 'unknown') {
81
+ else if (wallet.key === 'unknown' ||
82
+ !wallet.walletConnector.isAvailable) {
82
83
  return;
83
84
  }
84
85
  else if (isRecommendedWallet) {
@@ -14,9 +14,10 @@ require('@dynamic-labs/wallet-connector-core');
14
14
  require('react/jsx-runtime');
15
15
  require('../../../context/ViewContext/ViewContext.cjs');
16
16
  require('@dynamic-labs/wallet-book');
17
+ var localStorage$1 = require('../../constants/localStorage.cjs');
17
18
  require('../../constants/colors.cjs');
18
19
  require('../../constants/values.cjs');
19
- require('../../../shared/utils/classes/storage/localStorage.cjs');
20
+ var localStorage = require('../../../shared/utils/classes/storage/localStorage.cjs');
20
21
  require('../../../shared/consts/index.cjs');
21
22
  require('../../../events/dynamicEvents.cjs');
22
23
  require('../../../context/CaptchaContext/CaptchaContext.cjs');
@@ -100,7 +101,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
100
101
  * }
101
102
  */
102
103
  const useEmbeddedWallet = () => {
103
- const { user, projectSettings, primaryWalletId } = useInternalDynamicContext.useInternalDynamicContext();
104
+ const { user, projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
104
105
  const { isTurnkeyWallet } = useIsTurnkeyWallet.useIsTurnkeyWallet();
105
106
  const { createEmbeddedWallet: createMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet.useMPCEmbeddedWallet();
106
107
  const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet.useSecureEnclaveEmbeddedWallet();
@@ -139,9 +140,10 @@ const useEmbeddedWallet = () => {
139
140
  });
140
141
  const shouldAutoCreateEmbeddedWallet = React.useCallback(() => {
141
142
  var _a, _b;
143
+ const hasPrimaryWallet = localStorage.LocalStorage.getFromLS(localStorage$1.PRIMARY_WALLET_ID);
142
144
  const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled.isTurnkeyEnabled(projectSettings) ||
143
145
  isCoinbaseWaasEnabled.isCoinbaseWaasEnabled(projectSettings);
144
- if (!hasEmbeddedWalletProviderEnabled || primaryWalletId) {
146
+ if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
145
147
  return false;
146
148
  }
147
149
  // Turnkey specific rules
@@ -153,7 +155,7 @@ const useEmbeddedWallet = () => {
153
155
  return false;
154
156
  }
155
157
  return true;
156
- }, [primaryWalletId, projectSettings]);
158
+ }, [projectSettings]);
157
159
  return {
158
160
  createEmbeddedWallet,
159
161
  createOrRestoreSession,
@@ -10,9 +10,10 @@ import '@dynamic-labs/wallet-connector-core';
10
10
  import 'react/jsx-runtime';
11
11
  import '../../../context/ViewContext/ViewContext.js';
12
12
  import '@dynamic-labs/wallet-book';
13
+ import { PRIMARY_WALLET_ID } from '../../constants/localStorage.js';
13
14
  import '../../constants/colors.js';
14
15
  import '../../constants/values.js';
15
- import '../../../shared/utils/classes/storage/localStorage.js';
16
+ import { LocalStorage } from '../../../shared/utils/classes/storage/localStorage.js';
16
17
  import '../../../shared/consts/index.js';
17
18
  import '../../../events/dynamicEvents.js';
18
19
  import '../../../context/CaptchaContext/CaptchaContext.js';
@@ -96,7 +97,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
96
97
  * }
97
98
  */
98
99
  const useEmbeddedWallet = () => {
99
- const { user, projectSettings, primaryWalletId } = useInternalDynamicContext();
100
+ const { user, projectSettings } = useInternalDynamicContext();
100
101
  const { isTurnkeyWallet } = useIsTurnkeyWallet();
101
102
  const { createEmbeddedWallet: createMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet();
102
103
  const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet();
@@ -135,9 +136,10 @@ const useEmbeddedWallet = () => {
135
136
  });
136
137
  const shouldAutoCreateEmbeddedWallet = useCallback(() => {
137
138
  var _a, _b;
139
+ const hasPrimaryWallet = LocalStorage.getFromLS(PRIMARY_WALLET_ID);
138
140
  const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled(projectSettings) ||
139
141
  isCoinbaseWaasEnabled(projectSettings);
140
- if (!hasEmbeddedWalletProviderEnabled || primaryWalletId) {
142
+ if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
141
143
  return false;
142
144
  }
143
145
  // Turnkey specific rules
@@ -149,7 +151,7 @@ const useEmbeddedWallet = () => {
149
151
  return false;
150
152
  }
151
153
  return true;
152
- }, [primaryWalletId, projectSettings]);
154
+ }, [projectSettings]);
153
155
  return {
154
156
  createEmbeddedWallet,
155
157
  createOrRestoreSession,
@@ -112,7 +112,7 @@ const useSwitchWallet = () => {
112
112
  throw new Error(`Wallet with id ${walletId} not found`);
113
113
  }
114
114
  if (((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown') {
115
- throw new Error("Cannot switch to this wallet, as it doesn't have an initialized wallet connector on this platform (desktop/mobile)");
115
+ throw new Error("Cannot make this wallet active, since this wallet doesn't have a compatible connector on this device.");
116
116
  }
117
117
  const { connector } = wallet;
118
118
  const email = (_b = user === null || user === void 0 ? void 0 : user.verifiedCredentials.find((verifiedCredential) => verifiedCredential.format === 'email')) === null || _b === void 0 ? void 0 : _b.email;
@@ -108,7 +108,7 @@ const useSwitchWallet = () => {
108
108
  throw new Error(`Wallet with id ${walletId} not found`);
109
109
  }
110
110
  if (((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown') {
111
- throw new Error("Cannot switch to this wallet, as it doesn't have an initialized wallet connector on this platform (desktop/mobile)");
111
+ throw new Error("Cannot make this wallet active, since this wallet doesn't have a compatible connector on this device.");
112
112
  }
113
113
  const { connector } = wallet;
114
114
  const email = (_b = user === null || user === void 0 ? void 0 : user.verifiedCredentials.find((verifiedCredential) => verifiedCredential.format === 'email')) === null || _b === void 0 ? void 0 : _b.email;
@@ -17,7 +17,7 @@ const findWallet = (account, walletOptions) => {
17
17
  }
18
18
  // if we cannot find the correct connector for the wallet, we default to the unknown
19
19
  // this way the wallet will appear in user wallets, but will not be able to be interacted with
20
- return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'unknown'));
20
+ return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'fallbackconnector'));
21
21
  };
22
22
 
23
23
  exports.findWallet = findWallet;
@@ -13,7 +13,7 @@ const findWallet = (account, walletOptions) => {
13
13
  }
14
14
  // if we cannot find the correct connector for the wallet, we default to the unknown
15
15
  // this way the wallet will appear in user wallets, but will not be able to be interacted with
16
- return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'unknown'));
16
+ return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'fallbackconnector'));
17
17
  };
18
18
 
19
19
  export { findWallet };
@@ -88,7 +88,7 @@ require('../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
88
88
  var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
89
89
 
90
90
  const Wallet = ({ wallet, ens }) => {
91
- var _a;
91
+ var _a, _b;
92
92
  const { connector, address } = wallet;
93
93
  const switchWallet = useSwitchWallet.useSwitchWallet();
94
94
  const { setSelectedWalletWithAction, projectSettings, authMode } = useInternalDynamicContext.useInternalDynamicContext();
@@ -97,7 +97,7 @@ const Wallet = ({ wallet, ens }) => {
97
97
  {
98
98
  Icon: jsxRuntime.jsx(switchHorizontal.ReactComponent, {}),
99
99
  callback: () => switchWallet(wallet.id),
100
- hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown',
100
+ hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown' || !((_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.isAvailable),
101
101
  text: 'Select wallet',
102
102
  },
103
103
  ];
@@ -84,7 +84,7 @@ import '../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
84
84
  import { useInternalDynamicContext } from '../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
85
85
 
86
86
  const Wallet = ({ wallet, ens }) => {
87
- var _a;
87
+ var _a, _b;
88
88
  const { connector, address } = wallet;
89
89
  const switchWallet = useSwitchWallet();
90
90
  const { setSelectedWalletWithAction, projectSettings, authMode } = useInternalDynamicContext();
@@ -93,7 +93,7 @@ const Wallet = ({ wallet, ens }) => {
93
93
  {
94
94
  Icon: jsx(SvgSwitchHorizontal, {}),
95
95
  callback: () => switchWallet(wallet.id),
96
- hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown',
96
+ hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown' || !((_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.isAvailable),
97
97
  text: 'Select wallet',
98
98
  },
99
99
  ];