@dynamic-labs/sdk-react-core 4.60.0 → 4.60.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.
- package/CHANGELOG.md +15 -0
- package/package.cjs +4 -4
- package/package.js +4 -4
- package/package.json +15 -15
- package/src/index.cjs +4 -4
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -2
- package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/Header/header.js +2 -1
- package/src/lib/shared/assets/error-circle-x.cjs +54 -0
- package/src/lib/shared/assets/error-circle-x.js +30 -0
- package/src/lib/shared/assets/index.d.ts +1 -0
- package/src/lib/shared/types/dynamicHandlers.d.ts +64 -0
- package/src/lib/shared/utils/functions/chain/getChainIcon.cjs +1 -0
- package/src/lib/shared/utils/functions/chain/getChainIcon.js +2 -1
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/hooks/index.d.ts +1 -1
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs +14 -13
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.d.ts +3 -7
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.js +14 -13
- package/src/lib/utils/hooks/useGetWalletPassword/index.d.ts +2 -0
- package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.cjs +130 -0
- package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.d.ts +6 -0
- package/src/lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.js +126 -0
- package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +1 -1
- package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +1 -1
- package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.cjs +87 -0
- package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.d.ts +3 -0
- package/src/lib/utils/hooks/useSetupPassword/useSetupPassword.js +88 -1
- package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.cjs +1 -1
- package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.js +1 -1
- package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.cjs +1 -1
- package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.js +1 -1
- package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.cjs +1 -1
- package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.js +1 -1
- package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.cjs +1 -1
- package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.js +1 -1
- package/src/lib/views/UnlockWalletView/UnlockWalletView.cjs +32 -1
- package/src/lib/views/UnlockWalletView/UnlockWalletView.js +32 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.js +2 -2
- package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/EnterPasswordView.cjs +15 -5
- package/src/lib/widgets/DynamicWidget/views/EnterPasswordView/EnterPasswordView.js +15 -5
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.cjs +7 -15
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.d.ts +0 -1
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordKnowledgeCheckView/SetupPasswordKnowledgeCheckView.js +7 -15
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.cjs +9 -2
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.d.ts +1 -1
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordTermsView/SetupPasswordTermsView.js +9 -2
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordView/SetupPasswordView.cjs +2 -5
- package/src/lib/widgets/DynamicWidget/views/SetupPasswordView/SetupPasswordView.js +2 -5
- package/src/lib/utils/hooks/useGetPasswordForSigning/index.d.ts +0 -2
- package/src/lib/utils/hooks/useGetPasswordForSigning/useGetPasswordForSigning.cjs +0 -16
- package/src/lib/utils/hooks/useGetPasswordForSigning/useGetPasswordForSigning.d.ts +0 -5
- package/src/lib/utils/hooks/useGetPasswordForSigning/useGetPasswordForSigning.js +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.60.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.60.0...v4.60.1) (2026-02-09)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add WAAS password handlers to DynamicContextProvider settings ([#10360](https://github.com/dynamic-labs/dynamic-auth/issues/10360)) ([5fc3fa7](https://github.com/dynamic-labs/dynamic-auth/commit/5fc3fa7148c53b64d36672be2d1ae629cb9cdaf8))
|
|
8
|
+
* improve password handling and UI for wallet protection ([#10386](https://github.com/dynamic-labs/dynamic-auth/issues/10386)) ([d27936e](https://github.com/dynamic-labs/dynamic-auth/commit/d27936e5bea37facceefccc0f2507d25a775ad33))
|
|
9
|
+
* pass authToken to wallet recovery operations ([#10379](https://github.com/dynamic-labs/dynamic-auth/issues/10379)) ([294efc7](https://github.com/dynamic-labs/dynamic-auth/commit/294efc7ab5816f63b7e5cc49a150cf9d34d300af))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* override fast-xml-parser to 5.3.4 for CVE-2026-25128 ([#10381](https://github.com/dynamic-labs/dynamic-auth/issues/10381)) ([7fb4c22](https://github.com/dynamic-labs/dynamic-auth/commit/7fb4c221252b84bf38bbdab0b37b8f9a981ebe1a))
|
|
15
|
+
* unlock wallet view error handling and password error UI ([#10388](https://github.com/dynamic-labs/dynamic-auth/issues/10388)) ([5ffc8e1](https://github.com/dynamic-labs/dynamic-auth/commit/5ffc8e1e6dd0d7f32bb94c37ce3674be949f010b))
|
|
16
|
+
|
|
2
17
|
## [4.60.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.59.2...v4.60.0) (2026-02-05)
|
|
3
18
|
|
|
4
19
|
|
package/package.cjs
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var version = "4.60.
|
|
6
|
+
var version = "4.60.1";
|
|
7
7
|
var dependencies = {
|
|
8
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
9
|
-
"@dynamic-labs-sdk/client": "0.
|
|
10
|
-
"@dynamic-labs-wallet/browser-wallet-client": "0.0.
|
|
8
|
+
"@dynamic-labs/sdk-api-core": "0.0.864",
|
|
9
|
+
"@dynamic-labs-sdk/client": "0.8.0",
|
|
10
|
+
"@dynamic-labs-wallet/browser-wallet-client": "0.0.260",
|
|
11
11
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
12
12
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
13
13
|
"country-list": "2.3.0",
|
package/package.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
var version = "4.60.
|
|
2
|
+
var version = "4.60.1";
|
|
3
3
|
var dependencies = {
|
|
4
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
5
|
-
"@dynamic-labs-sdk/client": "0.
|
|
6
|
-
"@dynamic-labs-wallet/browser-wallet-client": "0.0.
|
|
4
|
+
"@dynamic-labs/sdk-api-core": "0.0.864",
|
|
5
|
+
"@dynamic-labs-sdk/client": "0.8.0",
|
|
6
|
+
"@dynamic-labs-wallet/browser-wallet-client": "0.0.260",
|
|
7
7
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
8
8
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
9
9
|
"country-list": "2.3.0",
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "4.60.
|
|
3
|
+
"version": "4.60.1",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
6
|
-
"@dynamic-labs-sdk/client": "0.
|
|
7
|
-
"@dynamic-labs-wallet/browser-wallet-client": "0.0.
|
|
5
|
+
"@dynamic-labs/sdk-api-core": "0.0.864",
|
|
6
|
+
"@dynamic-labs-sdk/client": "0.8.0",
|
|
7
|
+
"@dynamic-labs-wallet/browser-wallet-client": "0.0.260",
|
|
8
8
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
9
9
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
10
10
|
"country-list": "2.3.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.60.
|
|
20
|
-
"@dynamic-labs/iconic": "4.60.
|
|
21
|
-
"@dynamic-labs/locale": "4.60.
|
|
22
|
-
"@dynamic-labs/logger": "4.60.
|
|
23
|
-
"@dynamic-labs/multi-wallet": "4.60.
|
|
24
|
-
"@dynamic-labs/rpc-providers": "4.60.
|
|
25
|
-
"@dynamic-labs/store": "4.60.
|
|
26
|
-
"@dynamic-labs/types": "4.60.
|
|
27
|
-
"@dynamic-labs/utils": "4.60.
|
|
28
|
-
"@dynamic-labs/wallet-book": "4.60.
|
|
29
|
-
"@dynamic-labs/wallet-connector-core": "4.60.
|
|
19
|
+
"@dynamic-labs/assert-package-version": "4.60.1",
|
|
20
|
+
"@dynamic-labs/iconic": "4.60.1",
|
|
21
|
+
"@dynamic-labs/locale": "4.60.1",
|
|
22
|
+
"@dynamic-labs/logger": "4.60.1",
|
|
23
|
+
"@dynamic-labs/multi-wallet": "4.60.1",
|
|
24
|
+
"@dynamic-labs/rpc-providers": "4.60.1",
|
|
25
|
+
"@dynamic-labs/store": "4.60.1",
|
|
26
|
+
"@dynamic-labs/types": "4.60.1",
|
|
27
|
+
"@dynamic-labs/utils": "4.60.1",
|
|
28
|
+
"@dynamic-labs/wallet-book": "4.60.1",
|
|
29
|
+
"@dynamic-labs/wallet-connector-core": "4.60.1",
|
|
30
30
|
"eventemitter3": "5.0.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
package/src/index.cjs
CHANGED
|
@@ -155,9 +155,9 @@ var PendingSignatureView = require('./lib/views/PendingSignatureView/PendingSign
|
|
|
155
155
|
var QrCodeView = require('./lib/views/QrCodeView/QrCodeView.cjs');
|
|
156
156
|
var WalletList = require('./lib/views/WalletList/WalletList.cjs');
|
|
157
157
|
var NetworkNotSupportedSwitchManual = require('./lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs');
|
|
158
|
+
var useDynamicWaas = require('./lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs');
|
|
158
159
|
var viewToComponentMap = require('./lib/views/viewToComponentMap.cjs');
|
|
159
160
|
require('./lib/store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
160
|
-
var useDynamicWaas = require('./lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs');
|
|
161
161
|
var useGetMfaToken = require('./lib/utils/hooks/useGetMfaToken/useGetMfaToken.cjs');
|
|
162
162
|
var useDynamicModals = require('./lib/utils/hooks/useDynamicModals/useDynamicModals.cjs');
|
|
163
163
|
var useMfa = require('./lib/utils/hooks/useMfa/useMfa.cjs');
|
|
@@ -184,7 +184,7 @@ var usePromptMfaAuth = require('./lib/utils/hooks/usePromptMfaAuth/usePromptMfaA
|
|
|
184
184
|
var useUpgradeToDynamicWaasFlow = require('./lib/utils/hooks/useUpgradeToDynamicWaasFlow/useUpgradeToDynamicWaasFlow.cjs');
|
|
185
185
|
var useIsMfaRequiredForAction = require('./lib/utils/hooks/useIsMfaRequiredForAction/useIsMfaRequiredForAction.cjs');
|
|
186
186
|
var useRefreshAuth = require('./lib/utils/hooks/useRefreshAuth/useRefreshAuth.cjs');
|
|
187
|
-
var
|
|
187
|
+
var useGetWalletPassword = require('./lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.cjs');
|
|
188
188
|
var DynamicConnectButton = require('./lib/components/DynamicConnectButton/DynamicConnectButton.cjs');
|
|
189
189
|
require('./lib/components/InlineWidget/InlineWidget.cjs');
|
|
190
190
|
var IsBrowser = require('./lib/components/IsBrowser/IsBrowser.cjs');
|
|
@@ -315,8 +315,8 @@ exports.PendingSignatureView = PendingSignatureView.PendingSignatureView;
|
|
|
315
315
|
exports.QrCodeView = QrCodeView.QrCodeView;
|
|
316
316
|
exports.WalletList = WalletList.WalletList;
|
|
317
317
|
exports.NetworkNotSupportedSwitchManual = NetworkNotSupportedSwitchManual.NetworkNotSupportedSwitchManual;
|
|
318
|
-
exports.viewToComponentMap = viewToComponentMap.viewToComponentMap;
|
|
319
318
|
exports.useDynamicWaas = useDynamicWaas.useDynamicWaas;
|
|
319
|
+
exports.viewToComponentMap = viewToComponentMap.viewToComponentMap;
|
|
320
320
|
exports.useGetMfaToken = useGetMfaToken.useGetMfaToken;
|
|
321
321
|
exports.useDynamicModals = useDynamicModals.useDynamicModals;
|
|
322
322
|
exports.useMfa = useMfa.useMfa;
|
|
@@ -346,7 +346,7 @@ exports.usePromptMfaAuth = usePromptMfaAuth.usePromptMfaAuth;
|
|
|
346
346
|
exports.useUpgradeToDynamicWaasFlow = useUpgradeToDynamicWaasFlow.useUpgradeToDynamicWaasFlow;
|
|
347
347
|
exports.useIsMfaRequiredForAction = useIsMfaRequiredForAction.useIsMfaRequiredForAction;
|
|
348
348
|
exports.useRefreshAuth = useRefreshAuth.useRefreshAuth;
|
|
349
|
-
exports.
|
|
349
|
+
exports.useGetWalletPassword = useGetWalletPassword.useGetWalletPassword;
|
|
350
350
|
exports.DynamicConnectButton = DynamicConnectButton.DynamicConnectButton;
|
|
351
351
|
exports.IsBrowser = IsBrowser.IsBrowser;
|
|
352
352
|
exports.DynamicBridgeWidget = DynamicBridgeWidget.DynamicBridgeWidget;
|
package/src/index.d.ts
CHANGED
|
@@ -123,7 +123,7 @@ export { FilterAndSortWallets, FilterBridgeChainsName, FilterChain, FilterWallet
|
|
|
123
123
|
export {
|
|
124
124
|
/** @deprecated */
|
|
125
125
|
DynamicWidgetContextProvider, } from './lib/widgets/DynamicWidget/context';
|
|
126
|
-
export { useWalletItemActions, useAuthenticateConnectedUser, useSocialAccounts, useEmbeddedWallet, useEmbeddedWalletAuthenticator, usePasskeyRecovery, useEmbeddedReveal, useIsLoggedIn, useDynamicModals, useMfa, useTokenBalances, useMultichainTokenBalances, useSwitchWallet, useRpcProviders, useRefreshUser, useRefreshAuth, useWalletOptions, useSmartWallets, EmbeddedWalletVersion, useTelegramLogin, useUpgradeEmbeddedWallet, useEVMTransactionSimulation, useSVMTransactionSimulation, useDeleteUserAccount, useDynamicWaas, useGetPasskeys, useDeletePasskey, useRegisterPasskey, useAuthenticatePasskeyMFA, useGetUserMfaMethods, usePromptMfaAuth, useUpgradeToDynamicWaasFlow, useGetMfaToken,
|
|
126
|
+
export { useWalletItemActions, useAuthenticateConnectedUser, useSocialAccounts, useEmbeddedWallet, useEmbeddedWalletAuthenticator, usePasskeyRecovery, useEmbeddedReveal, useIsLoggedIn, useDynamicModals, useMfa, useTokenBalances, useMultichainTokenBalances, useSwitchWallet, useRpcProviders, useRefreshUser, useRefreshAuth, useWalletOptions, useSmartWallets, EmbeddedWalletVersion, useTelegramLogin, useUpgradeEmbeddedWallet, useEVMTransactionSimulation, useSVMTransactionSimulation, useDeleteUserAccount, useDynamicWaas, useGetPasskeys, useDeletePasskey, useRegisterPasskey, useAuthenticatePasskeyMFA, useGetUserMfaMethods, usePromptMfaAuth, useUpgradeToDynamicWaasFlow, useGetMfaToken, useGetWalletPassword, useIsMfaRequiredForAction, useWalletDelegation, useWalletBackup, useBackupWallets, isWalletBackedUp, CloudBackupProvider, useExchangeAccounts, } from './lib/utils/hooks';
|
|
127
127
|
export {
|
|
128
128
|
/** @deprecated use useOnramp instead */
|
|
129
129
|
useFunding, } from './lib/utils/hooks/useFunding';
|
package/src/index.js
CHANGED
|
@@ -151,9 +151,9 @@ export { PendingSignatureView } from './lib/views/PendingSignatureView/PendingSi
|
|
|
151
151
|
export { QrCodeView } from './lib/views/QrCodeView/QrCodeView.js';
|
|
152
152
|
export { WalletList } from './lib/views/WalletList/WalletList.js';
|
|
153
153
|
export { NetworkNotSupportedSwitchManual } from './lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js';
|
|
154
|
+
export { useDynamicWaas } from './lib/utils/hooks/useDynamicWaas/useDynamicWaas.js';
|
|
154
155
|
export { viewToComponentMap } from './lib/views/viewToComponentMap.js';
|
|
155
156
|
import './lib/store/state/connectorsInitializing/connectorsInitializing.js';
|
|
156
|
-
export { useDynamicWaas } from './lib/utils/hooks/useDynamicWaas/useDynamicWaas.js';
|
|
157
157
|
export { useGetMfaToken } from './lib/utils/hooks/useGetMfaToken/useGetMfaToken.js';
|
|
158
158
|
export { useDynamicModals } from './lib/utils/hooks/useDynamicModals/useDynamicModals.js';
|
|
159
159
|
export { useMfa } from './lib/utils/hooks/useMfa/useMfa.js';
|
|
@@ -180,7 +180,7 @@ export { usePromptMfaAuth } from './lib/utils/hooks/usePromptMfaAuth/usePromptMf
|
|
|
180
180
|
export { useUpgradeToDynamicWaasFlow } from './lib/utils/hooks/useUpgradeToDynamicWaasFlow/useUpgradeToDynamicWaasFlow.js';
|
|
181
181
|
export { useIsMfaRequiredForAction } from './lib/utils/hooks/useIsMfaRequiredForAction/useIsMfaRequiredForAction.js';
|
|
182
182
|
export { useRefreshAuth } from './lib/utils/hooks/useRefreshAuth/useRefreshAuth.js';
|
|
183
|
-
export {
|
|
183
|
+
export { useGetWalletPassword } from './lib/utils/hooks/useGetWalletPassword/useGetWalletPassword.js';
|
|
184
184
|
export { DynamicConnectButton } from './lib/components/DynamicConnectButton/DynamicConnectButton.js';
|
|
185
185
|
import './lib/components/InlineWidget/InlineWidget.js';
|
|
186
186
|
export { IsBrowser } from './lib/components/IsBrowser/IsBrowser.js';
|
|
@@ -130,7 +130,8 @@ const Header = ({ onClose: handleClose, heading, projectSettings, copykey, descr
|
|
|
130
130
|
const closeButton = showCloseButton && handleClose && (jsxRuntime.jsx(IconButton.IconButton, { onClick: handleClose, type: 'button', id: 'close-button', "data-testid": 'close-button', className: 'layout-header__icon', children: jsxRuntime.jsx(close.ReactComponent, {}) }));
|
|
131
131
|
const infoButton = showHelpContent && (jsxRuntime.jsx(Tooltip.Tooltip, { content: 'Need some help?', className: 'layout-header__tooltip', children: jsxRuntime.jsx(IconButton.IconButton, { type: 'button', onClick: () => setIsFooterExpanded(!isFooterExpanded), "data-testid": 'info-button', className: 'layout-header__icon', children: isWalletListTypeView ? jsxRuntime.jsx(questionMark.ReactComponent, {}) : jsxRuntime.jsx(footerInfoIcon.ReactComponent, {}) }) }, 'info-button'));
|
|
132
132
|
const leadingButtons = [];
|
|
133
|
-
|
|
133
|
+
const showBackButton = canGoBack && view.type !== 'unlock-wallet';
|
|
134
|
+
if (showBackButton) {
|
|
134
135
|
leadingButtons.push(jsxRuntime.jsx(IconButton.IconButton, { type: 'button', onClick: handleBackClick, "data-testid": 'back-button', className: 'layout-header__icon', children: jsxRuntime.jsx(arrowLeft.ReactComponent, {}) }, 'back-button'));
|
|
135
136
|
}
|
|
136
137
|
// if has close button and info button, info button should be on the right
|
|
@@ -126,7 +126,8 @@ const Header = ({ onClose: handleClose, heading, projectSettings, copykey, descr
|
|
|
126
126
|
const closeButton = showCloseButton && handleClose && (jsx(IconButton, { onClick: handleClose, type: 'button', id: 'close-button', "data-testid": 'close-button', className: 'layout-header__icon', children: jsx(SvgClose, {}) }));
|
|
127
127
|
const infoButton = showHelpContent && (jsx(Tooltip, { content: 'Need some help?', className: 'layout-header__tooltip', children: jsx(IconButton, { type: 'button', onClick: () => setIsFooterExpanded(!isFooterExpanded), "data-testid": 'info-button', className: 'layout-header__icon', children: isWalletListTypeView ? jsx(SvgQuestionMark, {}) : jsx(SvgFooterInfoIcon, {}) }) }, 'info-button'));
|
|
128
128
|
const leadingButtons = [];
|
|
129
|
-
|
|
129
|
+
const showBackButton = canGoBack && view.type !== 'unlock-wallet';
|
|
130
|
+
if (showBackButton) {
|
|
130
131
|
leadingButtons.push(jsx(IconButton, { type: 'button', onClick: handleBackClick, "data-testid": 'back-button', className: 'layout-header__icon', children: jsx(SvgArrowLeft, {}) }, 'back-button'));
|
|
131
132
|
}
|
|
132
133
|
// if has close button and info button, info button should be on the right
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var React = require('react');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n["default"] = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
27
|
+
|
|
28
|
+
var _path;
|
|
29
|
+
var _excluded = ["title", "titleId"];
|
|
30
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
31
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
32
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
33
|
+
var SvgErrorCircleX = function SvgErrorCircleX(_ref) {
|
|
34
|
+
var title = _ref.title,
|
|
35
|
+
titleId = _ref.titleId,
|
|
36
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
37
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends({
|
|
38
|
+
width: 17,
|
|
39
|
+
height: 17,
|
|
40
|
+
viewBox: "0 0 17 17",
|
|
41
|
+
fill: "none",
|
|
42
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
43
|
+
"aria-labelledby": titleId
|
|
44
|
+
}, props), title ? /*#__PURE__*/React__namespace.createElement("title", {
|
|
45
|
+
id: titleId
|
|
46
|
+
}, title) : null, _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
|
|
47
|
+
fillRule: "evenodd",
|
|
48
|
+
clipRule: "evenodd",
|
|
49
|
+
d: "M8.333 1.667a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333ZM0 8.333a8.333 8.333 0 1 1 16.667 0A8.333 8.333 0 0 1 0 8.333Zm6.077-2.256a.833.833 0 0 1 1.179 0l1.077 1.078 1.078-1.078a.833.833 0 0 1 1.178 1.179L9.512 8.333l1.077 1.078a.833.833 0 0 1-1.178 1.178L8.333 9.512l-1.077 1.077a.833.833 0 0 1-1.179-1.178l1.078-1.078-1.078-1.077a.833.833 0 0 1 0-1.179Z",
|
|
50
|
+
fill: "currentColor"
|
|
51
|
+
})));
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
exports.ReactComponent = SvgErrorCircleX;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
var _path;
|
|
5
|
+
var _excluded = ["title", "titleId"];
|
|
6
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
7
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
8
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
9
|
+
var SvgErrorCircleX = function SvgErrorCircleX(_ref) {
|
|
10
|
+
var title = _ref.title,
|
|
11
|
+
titleId = _ref.titleId,
|
|
12
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
13
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
14
|
+
width: 17,
|
|
15
|
+
height: 17,
|
|
16
|
+
viewBox: "0 0 17 17",
|
|
17
|
+
fill: "none",
|
|
18
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19
|
+
"aria-labelledby": titleId
|
|
20
|
+
}, props), title ? /*#__PURE__*/React.createElement("title", {
|
|
21
|
+
id: titleId
|
|
22
|
+
}, title) : null, _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
23
|
+
fillRule: "evenodd",
|
|
24
|
+
clipRule: "evenodd",
|
|
25
|
+
d: "M8.333 1.667a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333ZM0 8.333a8.333 8.333 0 1 1 16.667 0A8.333 8.333 0 0 1 0 8.333Zm6.077-2.256a.833.833 0 0 1 1.179 0l1.077 1.078 1.078-1.078a.833.833 0 0 1 1.178 1.179L9.512 8.333l1.077 1.078a.833.833 0 0 1-1.178 1.178L8.333 9.512l-1.077 1.077a.833.833 0 0 1-1.179-1.178l1.078-1.078-1.078-1.077a.833.833 0 0 1 0-1.179Z",
|
|
26
|
+
fill: "currentColor"
|
|
27
|
+
})));
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { SvgErrorCircleX as ReactComponent };
|
|
@@ -44,6 +44,7 @@ export { ReactComponent as DownloadIcon } from './download.svg';
|
|
|
44
44
|
export { ReactComponent as DynamicLogoIcon } from './dynamic-logo.svg';
|
|
45
45
|
export { ReactComponent as DynamicRoundLogoIcon } from './dynamic-round-logo.svg';
|
|
46
46
|
export { ReactComponent as EmbeddedWalletIcon } from './embedded-wallet-icon.svg';
|
|
47
|
+
export { ReactComponent as ErrorCircleXIcon } from './error-circle-x.svg';
|
|
47
48
|
export { ReactComponent as ErrorIcon } from './error.svg';
|
|
48
49
|
export { ReactComponent as ExclamationCircleIcon } from './exclamation-circle.svg';
|
|
49
50
|
export { ReactComponent as ExclamationIcon } from './exclamation.svg';
|
|
@@ -12,6 +12,44 @@ export type UserOnboardingFieldResponse = {
|
|
|
12
12
|
value: string;
|
|
13
13
|
isCustom: boolean;
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Custom password provider for WAAS embedded wallets.
|
|
17
|
+
*
|
|
18
|
+
* This function is called when operations require access to the encrypted user share.
|
|
19
|
+
* The password is used to decrypt the user's keyshare, which is needed for:
|
|
20
|
+
* - Signing transactions/messages
|
|
21
|
+
* - Exporting private keys
|
|
22
|
+
* - Wallet delegation
|
|
23
|
+
* - Re-sharing keyshares
|
|
24
|
+
* - Any operation requiring the decrypted user share
|
|
25
|
+
*
|
|
26
|
+
* If not provided, the default UI unlock wallet modal will be shown.
|
|
27
|
+
*
|
|
28
|
+
* @param accountAddress - The wallet address that needs unlocking
|
|
29
|
+
* @param chainName - The chain name (e.g., 'EVM', 'SOL', 'BTC')
|
|
30
|
+
* @returns The password string to decrypt the user share, or undefined to fail the operation
|
|
31
|
+
*
|
|
32
|
+
* Note: Only called when wallet is locked. If already unlocked, this handler is not invoked.
|
|
33
|
+
* Runtime calls to walletConnector.setGetWalletPasswordFunction() will override this handler.
|
|
34
|
+
*/
|
|
35
|
+
export type GetWalletPasswordFn = (props: {
|
|
36
|
+
accountAddress: string;
|
|
37
|
+
chainName: string;
|
|
38
|
+
}) => Promise<string | undefined>;
|
|
39
|
+
/**
|
|
40
|
+
* Custom password setup function for WAAS embedded wallet creation.
|
|
41
|
+
*
|
|
42
|
+
* This function is called during wallet creation when passcodeRequired is enabled.
|
|
43
|
+
* The password provided will be used to encrypt the user's keyshare before backup.
|
|
44
|
+
* This is typically called during the auto-create process if "create on sign up" is enabled.
|
|
45
|
+
*
|
|
46
|
+
* If not provided, the default UI password setup modal will be shown.
|
|
47
|
+
*
|
|
48
|
+
* @returns The new password string to encrypt the user share, or undefined to create without password
|
|
49
|
+
*
|
|
50
|
+
* Note: Only called when passcodeRequired is true in project settings.
|
|
51
|
+
*/
|
|
52
|
+
export type SetupWalletPasswordFn = () => Promise<string | undefined>;
|
|
15
53
|
/**
|
|
16
54
|
* Handlers supported by dynamic. They always return a promise
|
|
17
55
|
*/
|
|
@@ -20,4 +58,30 @@ export type DynamicHandlers = {
|
|
|
20
58
|
user: UserProfile;
|
|
21
59
|
}) => Promise<void>;
|
|
22
60
|
handleConnectedWallet?: HandleConnectedWallet;
|
|
61
|
+
/**
|
|
62
|
+
* Custom password provider for WAAS embedded wallets.
|
|
63
|
+
*
|
|
64
|
+
* Called when operations require decrypting the user's keyshare for:
|
|
65
|
+
* - Signing transactions/messages
|
|
66
|
+
* - Exporting private keys
|
|
67
|
+
* - Wallet delegation
|
|
68
|
+
* - Re-sharing keyshares
|
|
69
|
+
*
|
|
70
|
+
* The password is used to decrypt the encrypted user share stored in backup.
|
|
71
|
+
*
|
|
72
|
+
* @param accountAddress - The wallet address that needs unlocking
|
|
73
|
+
* @param chainName - The chain name (e.g., 'EVM', 'SOL', 'BTC')
|
|
74
|
+
* @returns The password string, or undefined to fail the operation
|
|
75
|
+
*/
|
|
76
|
+
getWalletPassword?: GetWalletPasswordFn;
|
|
77
|
+
/**
|
|
78
|
+
* Custom password setup function for WAAS embedded wallet creation.
|
|
79
|
+
*
|
|
80
|
+
* Called during wallet creation when passcodeRequired is enabled to encrypt
|
|
81
|
+
* the user's keyshare before backup. Typically invoked during auto-create
|
|
82
|
+
* process if "create on sign up" is enabled.
|
|
83
|
+
*
|
|
84
|
+
* @returns The new password string to encrypt the user share, or undefined to create without password
|
|
85
|
+
*/
|
|
86
|
+
setupWalletPassword?: SetupWalletPasswordFn;
|
|
23
87
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import { AlgorandIcon, AptosIcon, BitcoinIcon, CosmosIcon, EclipseIcon, EthereumIcon, FlowIcon, SolanaIcon, SparkIcon, StarknetIcon, SuiIcon, TonIcon, TronIcon } from '@dynamic-labs/iconic';
|
|
2
|
+
import { 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';
|
|
@@ -17,6 +17,7 @@ const chainIconMap = {
|
|
|
17
17
|
solana: SolanaIcon,
|
|
18
18
|
spark: SparkIcon,
|
|
19
19
|
starknet: StarknetIcon,
|
|
20
|
+
stellar: StellarIcon,
|
|
20
21
|
sui: SuiIcon,
|
|
21
22
|
ton: TonIcon,
|
|
22
23
|
tron: TronIcon,
|