@dynamic-labs/sdk-react-core 4.67.0 → 4.67.1

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 (35) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +12 -12
  5. package/src/index.d.ts +1 -1
  6. package/src/lib/components/SendBalancePageLayout/components/TokensBalanceDropdown/TokensBalanceDropdown.cjs +31 -11
  7. package/src/lib/components/SendBalancePageLayout/components/TokensBalanceDropdown/TokensBalanceDropdown.js +31 -11
  8. package/src/lib/shared/utils/functions/chain/getChainIcon.cjs +1 -0
  9. package/src/lib/shared/utils/functions/chain/getChainIcon.js +2 -1
  10. package/src/lib/styles/index.shadow.cjs +1 -1
  11. package/src/lib/styles/index.shadow.js +1 -1
  12. package/src/lib/utils/hooks/index.d.ts +1 -1
  13. package/src/lib/utils/hooks/useAuthenticatePasskeyMFA/useAuthenticatePasskeyMFA.d.ts +2 -1
  14. package/src/lib/utils/hooks/useMfa/useMfa.cjs +6 -3
  15. package/src/lib/utils/hooks/useMfa/useMfa.d.ts +5 -3
  16. package/src/lib/utils/hooks/useMfa/useMfa.js +6 -3
  17. package/src/lib/utils/hooks/usePromptMfaAuth/usePromptMfaAuth.cjs +14 -185
  18. package/src/lib/utils/hooks/usePromptMfaAuth/usePromptMfaAuth.d.ts +15 -3
  19. package/src/lib/utils/hooks/usePromptMfaAuth/usePromptMfaAuth.js +14 -185
  20. package/src/lib/utils/hooks/useStepUpAuthentication/index.d.ts +1 -1
  21. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.cjs +195 -24
  22. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.d.ts +10 -0
  23. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.js +189 -18
  24. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +10 -9
  25. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +10 -9
  26. package/src/lib/views/MfaChooseDeviceView/MfaChooseDeviceView.cjs +4 -3
  27. package/src/lib/views/MfaChooseDeviceView/MfaChooseDeviceView.d.ts +2 -0
  28. package/src/lib/views/MfaChooseDeviceView/MfaChooseDeviceView.js +4 -3
  29. package/src/lib/views/MfaVerificationView/MfaVerificationView.cjs +3 -1
  30. package/src/lib/views/MfaVerificationView/MfaVerificationView.d.ts +3 -2
  31. package/src/lib/views/MfaVerificationView/MfaVerificationView.js +3 -1
  32. package/src/lib/views/Passkey/ConfirmPasskeyView/ConfirmPasskeyView.cjs +2 -1
  33. package/src/lib/views/Passkey/ConfirmPasskeyView/ConfirmPasskeyView.d.ts +3 -1
  34. package/src/lib/views/Passkey/ConfirmPasskeyView/ConfirmPasskeyView.js +2 -1
  35. package/src/lib/views/viewToComponentMap.d.ts +3 -2
package/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
1
 
2
+ ### [4.67.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.67.0...v4.67.1) (2026-03-10)
3
+
4
+
5
+ ### Features
6
+
7
+ * add nonce manager and improve transaction handling ([#10612](https://github.com/dynamic-labs/dynamic-auth/issues/10612)) ([e373f12](https://github.com/dynamic-labs/dynamic-auth/commit/e373f1248beee2f12e7b4aec5a72d55b9555ad00))
8
+ * **sdk-react-core:** commonize step-up auth around useStepUpAuthentication ([#10586](https://github.com/dynamic-labs/dynamic-auth/issues/10586)) ([6e31e66](https://github.com/dynamic-labs/dynamic-auth/commit/6e31e6673d8861bc54677ea79da31872d7ad4c4e))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **sdk-react-core:** hide AA warning for EIP-7702 smart wallets, show for ERC-4337 ([#10614](https://github.com/dynamic-labs/dynamic-auth/issues/10614)) ([5c46d42](https://github.com/dynamic-labs/dynamic-auth/commit/5c46d4277472cb31ddde7809d27ef7920964d548))
14
+ * use 2-column grid layout for backup codes to prevent overflow in minimal theme ([#10607](https://github.com/dynamic-labs/dynamic-auth/issues/10607)) ([84adf87](https://github.com/dynamic-labs/dynamic-auth/commit/84adf872aae0a7fedf961b76f5004535e657b415))
15
+
2
16
  ## [4.67.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.66.0...v4.67.0) (2026-03-09)
3
17
 
4
18
 
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.67.0";
6
+ var version = "4.67.1";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.881",
9
9
  "@dynamic-labs-sdk/client": "0.14.0",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "4.67.0";
2
+ var version = "4.67.1";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.881",
5
5
  "@dynamic-labs-sdk/client": "0.14.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "4.67.0",
3
+ "version": "4.67.1",
4
4
  "dependencies": {
5
5
  "@dynamic-labs/sdk-api-core": "0.0.881",
6
6
  "@dynamic-labs-sdk/client": "0.14.0",
@@ -16,17 +16,17 @@
16
16
  "yup": "0.32.11",
17
17
  "react-international-phone": "4.5.0",
18
18
  "bs58": "5.0.0",
19
- "@dynamic-labs/assert-package-version": "4.67.0",
20
- "@dynamic-labs/iconic": "4.67.0",
21
- "@dynamic-labs/locale": "4.67.0",
22
- "@dynamic-labs/logger": "4.67.0",
23
- "@dynamic-labs/multi-wallet": "4.67.0",
24
- "@dynamic-labs/rpc-providers": "4.67.0",
25
- "@dynamic-labs/store": "4.67.0",
26
- "@dynamic-labs/types": "4.67.0",
27
- "@dynamic-labs/utils": "4.67.0",
28
- "@dynamic-labs/wallet-book": "4.67.0",
29
- "@dynamic-labs/wallet-connector-core": "4.67.0",
19
+ "@dynamic-labs/assert-package-version": "4.67.1",
20
+ "@dynamic-labs/iconic": "4.67.1",
21
+ "@dynamic-labs/locale": "4.67.1",
22
+ "@dynamic-labs/logger": "4.67.1",
23
+ "@dynamic-labs/multi-wallet": "4.67.1",
24
+ "@dynamic-labs/rpc-providers": "4.67.1",
25
+ "@dynamic-labs/store": "4.67.1",
26
+ "@dynamic-labs/types": "4.67.1",
27
+ "@dynamic-labs/utils": "4.67.1",
28
+ "@dynamic-labs/wallet-book": "4.67.1",
29
+ "@dynamic-labs/wallet-connector-core": "4.67.1",
30
30
  "eventemitter3": "5.0.1"
31
31
  },
32
32
  "devDependencies": {
package/src/index.d.ts CHANGED
@@ -124,7 +124,7 @@ export {
124
124
  /** @deprecated */
125
125
  DynamicWidgetContextProvider, } from './lib/widgets/DynamicWidget/context';
126
126
  export { useWalletItemActions, useAuthenticateConnectedUser, useSocialAccounts, useEmbeddedWallet, useEmbeddedWalletAuthenticator, usePasskeyRecovery, useEmbeddedReveal, useIsLoggedIn, useDynamicModals, useMfa, useTokenBalances, useMultichainTokenBalances, useSwitchWallet, useRpcProviders, useRefreshUser, useRefreshAuth, useWalletOptions, useSmartWallets, useSignEip7702Authorization, EmbeddedWalletVersion, useTelegramLogin, useUpgradeEmbeddedWallet, useEVMTransactionSimulation, useSVMTransactionSimulation, useDeleteUserAccount, useDynamicWaas, useGetPasskeys, useDeletePasskey, useRegisterPasskey, useAuthenticatePasskeyMFA, useGetUserMfaMethods, usePromptMfaAuth, useUpgradeToDynamicWaasFlow, useGetMfaToken, useGetWalletPassword, useWalletPassword, useIsMfaRequiredForAction, useWalletDelegation, useWalletBackup, useBackupWallets, isWalletBackedUp, CloudBackupProvider, useExchangeAccounts, useStepUpAuthentication, } from './lib/utils/hooks';
127
- export type { IsStepUpRequiredParams, StepUpAuthenticationState, UseStepUpAuthenticationParams, UseStepUpAuthenticationReturn, VerifyOtpParams, VerifyPasskeyMfaParams, VerifyTotpMfaParams, VerifyWalletParams, } from './lib/utils/hooks';
127
+ export type { IsStepUpRequiredParams, PromptMfaParams, StepUpAuthenticationState, UseStepUpAuthenticationParams, UseStepUpAuthenticationReturn, VerifyOtpParams, VerifyPasskeyMfaParams, VerifyRecoveryCodeParams, VerifyTotpMfaParams, VerifyWalletParams, } from './lib/utils/hooks';
128
128
  export {
129
129
  /** @deprecated use useOnramp instead */
130
130
  useFunding, } from './lib/utils/hooks/useFunding';
@@ -132,14 +132,34 @@ const TokensBalanceDropdown = ({ tokenBalances, currentToken, setCurrentToken, i
132
132
  abi: abi.erc20Abi,
133
133
  address: selectedToken.address,
134
134
  };
135
- const results = yield publicClient.multicall({
136
- contracts: [
137
- Object.assign(Object.assign({}, erc20Contract), { args: [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address], functionName: 'balanceOf' }),
138
- Object.assign(Object.assign({}, erc20Contract), { functionName: 'decimals' }),
139
- ],
140
- });
141
- const [balance, decimals] = results.map((v) => Number(v.result));
142
- if (balance && decimals) {
135
+ let balance;
136
+ let decimals;
137
+ try {
138
+ const results = yield publicClient.multicall({
139
+ contracts: [
140
+ Object.assign(Object.assign({}, erc20Contract), { args: [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address], functionName: 'balanceOf' }),
141
+ Object.assign(Object.assign({}, erc20Contract), { functionName: 'decimals' }),
142
+ ],
143
+ });
144
+ [balance, decimals] = results.map((v) => Number(v.result));
145
+ }
146
+ catch (_a) {
147
+ if (publicClient.readContract) {
148
+ const [balanceResult, decimalsResult] = yield Promise.all([
149
+ publicClient.readContract(Object.assign(Object.assign({}, erc20Contract), { args: [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address], functionName: 'balanceOf' })),
150
+ publicClient.readContract(Object.assign(Object.assign({}, erc20Contract), { functionName: 'decimals' })),
151
+ ]);
152
+ balance = Number(balanceResult);
153
+ decimals = Number(decimalsResult);
154
+ }
155
+ else {
156
+ return;
157
+ }
158
+ }
159
+ if (typeof balance === 'number' &&
160
+ !isNaN(balance) &&
161
+ typeof decimals === 'number' &&
162
+ !isNaN(decimals)) {
143
163
  selectedToken.balance = balance / Math.pow(10, decimals);
144
164
  selectedToken.rawBalance = balance;
145
165
  if (tokenBalances) {
@@ -150,14 +170,14 @@ const TokensBalanceDropdown = ({ tokenBalances, currentToken, setCurrentToken, i
150
170
  }
151
171
  });
152
172
  const handleTokenClick = (selectedTokenName) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
153
- var _a, _b;
154
- const selectedToken = (_a = tokenBalances === null || tokenBalances === void 0 ? void 0 : tokenBalances.find((t) => t.name === selectedTokenName)) !== null && _a !== void 0 ? _a : undefined;
173
+ var _b, _c;
174
+ const selectedToken = (_b = tokenBalances === null || tokenBalances === void 0 ? void 0 : tokenBalances.find((t) => t.name === selectedTokenName)) !== null && _b !== void 0 ? _b : undefined;
155
175
  // we dont need to refetch solana balances because we simulate before sending
156
176
  if ((selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.address) && (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.address.startsWith('0x'))) {
157
177
  fetchTokenData(selectedToken);
158
178
  }
159
179
  if (selectedToken) {
160
- if (tokenBalances && ((_b = tokenBalances[0]) === null || _b === void 0 ? void 0 : _b.price))
180
+ if (tokenBalances && ((_c = tokenBalances[0]) === null || _c === void 0 ? void 0 : _c.price))
161
181
  sendBalances.setSendBalanceVariable('nativePrice', tokenBalances[0].price);
162
182
  setCurrentToken(selectedToken);
163
183
  setFieldValue('amount', '');
@@ -128,14 +128,34 @@ const TokensBalanceDropdown = ({ tokenBalances, currentToken, setCurrentToken, i
128
128
  abi: erc20Abi,
129
129
  address: selectedToken.address,
130
130
  };
131
- const results = yield publicClient.multicall({
132
- contracts: [
133
- Object.assign(Object.assign({}, erc20Contract), { args: [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address], functionName: 'balanceOf' }),
134
- Object.assign(Object.assign({}, erc20Contract), { functionName: 'decimals' }),
135
- ],
136
- });
137
- const [balance, decimals] = results.map((v) => Number(v.result));
138
- if (balance && decimals) {
131
+ let balance;
132
+ let decimals;
133
+ try {
134
+ const results = yield publicClient.multicall({
135
+ contracts: [
136
+ Object.assign(Object.assign({}, erc20Contract), { args: [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address], functionName: 'balanceOf' }),
137
+ Object.assign(Object.assign({}, erc20Contract), { functionName: 'decimals' }),
138
+ ],
139
+ });
140
+ [balance, decimals] = results.map((v) => Number(v.result));
141
+ }
142
+ catch (_a) {
143
+ if (publicClient.readContract) {
144
+ const [balanceResult, decimalsResult] = yield Promise.all([
145
+ publicClient.readContract(Object.assign(Object.assign({}, erc20Contract), { args: [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address], functionName: 'balanceOf' })),
146
+ publicClient.readContract(Object.assign(Object.assign({}, erc20Contract), { functionName: 'decimals' })),
147
+ ]);
148
+ balance = Number(balanceResult);
149
+ decimals = Number(decimalsResult);
150
+ }
151
+ else {
152
+ return;
153
+ }
154
+ }
155
+ if (typeof balance === 'number' &&
156
+ !isNaN(balance) &&
157
+ typeof decimals === 'number' &&
158
+ !isNaN(decimals)) {
139
159
  selectedToken.balance = balance / Math.pow(10, decimals);
140
160
  selectedToken.rawBalance = balance;
141
161
  if (tokenBalances) {
@@ -146,14 +166,14 @@ const TokensBalanceDropdown = ({ tokenBalances, currentToken, setCurrentToken, i
146
166
  }
147
167
  });
148
168
  const handleTokenClick = (selectedTokenName) => __awaiter(void 0, void 0, void 0, function* () {
149
- var _a, _b;
150
- const selectedToken = (_a = tokenBalances === null || tokenBalances === void 0 ? void 0 : tokenBalances.find((t) => t.name === selectedTokenName)) !== null && _a !== void 0 ? _a : undefined;
169
+ var _b, _c;
170
+ const selectedToken = (_b = tokenBalances === null || tokenBalances === void 0 ? void 0 : tokenBalances.find((t) => t.name === selectedTokenName)) !== null && _b !== void 0 ? _b : undefined;
151
171
  // we dont need to refetch solana balances because we simulate before sending
152
172
  if ((selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.address) && (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.address.startsWith('0x'))) {
153
173
  fetchTokenData(selectedToken);
154
174
  }
155
175
  if (selectedToken) {
156
- if (tokenBalances && ((_b = tokenBalances[0]) === null || _b === void 0 ? void 0 : _b.price))
176
+ if (tokenBalances && ((_c = tokenBalances[0]) === null || _c === void 0 ? void 0 : _c.price))
157
177
  setSendBalanceVariable('nativePrice', tokenBalances[0].price);
158
178
  setCurrentToken(selectedToken);
159
179
  setFieldValue('amount', '');
@@ -11,6 +11,7 @@ require('react/jsx-runtime');
11
11
  require('../../../../context/ViewContext/ViewContext.cjs');
12
12
 
13
13
  const chainIconMap = {
14
+ aleo: iconic.AleoIcon,
14
15
  algorand: iconic.AlgorandIcon,
15
16
  aptos: iconic.AptosIcon,
16
17
  bitcoin: iconic.BitcoinIcon,
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- import { AlgorandIcon, AptosIcon, BitcoinIcon, CosmosIcon, EclipseIcon, EthereumIcon, FlowIcon, SolanaIcon, SparkIcon, StarknetIcon, StellarIcon, SuiIcon, TonIcon, TronIcon } from '@dynamic-labs/iconic';
2
+ import { AleoIcon, AlgorandIcon, AptosIcon, BitcoinIcon, CosmosIcon, EclipseIcon, EthereumIcon, FlowIcon, SolanaIcon, SparkIcon, StarknetIcon, StellarIcon, SuiIcon, TonIcon, TronIcon } from '@dynamic-labs/iconic';
3
3
  import { getChainInfo } from '@dynamic-labs/wallet-connector-core';
4
4
  import 'react';
5
5
  import { ReactComponent as SvgError } from '../../../assets/error.js';
@@ -7,6 +7,7 @@ import 'react/jsx-runtime';
7
7
  import '../../../../context/ViewContext/ViewContext.js';
8
8
 
9
9
  const chainIconMap = {
10
+ aleo: AleoIcon,
10
11
  algorand: AlgorandIcon,
11
12
  aptos: AptosIcon,
12
13
  bitcoin: BitcoinIcon,