@dynamic-labs/sdk-react-core 3.0.0-alpha.7 → 3.0.0-alpha.8

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 (29) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +10 -10
  5. package/src/index.cjs +2 -0
  6. package/src/index.d.ts +1 -0
  7. package/src/index.js +1 -0
  8. package/src/lib/Main.cjs +1 -0
  9. package/src/lib/Main.js +1 -0
  10. package/src/lib/context/DynamicContext/DynamicContext.cjs +2 -1
  11. package/src/lib/context/DynamicContext/DynamicContext.js +3 -2
  12. package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.cjs +113 -0
  13. package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.d.ts +22 -0
  14. package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.js +107 -0
  15. package/src/lib/context/ReinitializeContext/index.d.ts +1 -0
  16. package/src/lib/context/WalletContext/WalletContext.cjs +1 -1
  17. package/src/lib/context/WalletContext/WalletContext.js +1 -1
  18. package/src/lib/events/multiWallet.d.ts +1 -0
  19. package/src/lib/store/index.d.ts +1 -1
  20. package/src/lib/store/store.cjs +6 -0
  21. package/src/lib/store/store.d.ts +1 -0
  22. package/src/lib/store/store.js +6 -1
  23. package/src/lib/utils/hooks/events/useDynamicEvents/useDynamicEvents.d.ts +1 -1
  24. package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.cjs +39 -13
  25. package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.js +40 -14
  26. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +76 -0
  27. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +76 -0
  28. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +20 -1
  29. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +20 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,25 @@
1
1
 
2
+ ## [3.0.0-alpha.8](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.7...v3.0.0-alpha.8) (2024-06-21)
3
+
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * break out turnkey package into 3 separate packages (#6015)
8
+
9
+ ### Features
10
+
11
+ * add reinitialize hook ([#6098](https://github.com/dynamic-labs/DynamicAuth/issues/6098)) ([d978baa](https://github.com/dynamic-labs/DynamicAuth/commit/d978baa404d34064c36cc549229b1fcea1f20df0))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * always reconnect the wallet provider when calling getAddress ([#6097](https://github.com/dynamic-labs/DynamicAuth/issues/6097)) ([0f3d497](https://github.com/dynamic-labs/DynamicAuth/commit/0f3d497cedb38239fa9ada2bb25c6b4eaa72d7b1))
17
+ * break out turnkey package into 3 separate packages ([#6015](https://github.com/dynamic-labs/DynamicAuth/issues/6015)) ([a86fbef](https://github.com/dynamic-labs/DynamicAuth/commit/a86fbefe97558363b085e6f752af32d2943f91fa)), closes [#6017](https://github.com/dynamic-labs/DynamicAuth/issues/6017) [#6059](https://github.com/dynamic-labs/DynamicAuth/issues/6059)
18
+ * set latest blockhash on solana transactions if tx confirmation ui is disabled ([#6102](https://github.com/dynamic-labs/DynamicAuth/issues/6102)) ([b8035a3](https://github.com/dynamic-labs/DynamicAuth/commit/b8035a328e47409bf0416d3a01b2f17914488748))
19
+ * silently query unisat accounts ([#6101](https://github.com/dynamic-labs/DynamicAuth/issues/6101)) ([#6104](https://github.com/dynamic-labs/DynamicAuth/issues/6104)) ([643e704](https://github.com/dynamic-labs/DynamicAuth/commit/643e7048ff8610b31e6397e10b160ad456a45d11))
20
+ * stop querying magiceden solana accounts ([#6103](https://github.com/dynamic-labs/DynamicAuth/issues/6103)) ([#6108](https://github.com/dynamic-labs/DynamicAuth/issues/6108)) ([3cfdbc3](https://github.com/dynamic-labs/DynamicAuth/commit/3cfdbc3bc82bfe9bf53bf4236f7892a5440fcb86))
21
+ * trigger sign when linking an already linked unknown wallet ([#6105](https://github.com/dynamic-labs/DynamicAuth/issues/6105)) ([9e9c03b](https://github.com/dynamic-labs/DynamicAuth/commit/9e9c03bf615991c4f1183bf85c4d75c9a7773c85))
22
+
2
23
  ## [3.0.0-alpha.7](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.6...v3.0.0-alpha.7) (2024-06-19)
3
24
 
4
25
 
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "3.0.0-alpha.7";
6
+ var version = "3.0.0-alpha.8";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.470",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "3.0.0-alpha.7";
2
+ var version = "3.0.0-alpha.8";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.470",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "3.0.0-alpha.7",
3
+ "version": "3.0.0-alpha.8",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -17,15 +17,15 @@
17
17
  "react-i18next": "13.5.0",
18
18
  "yup": "0.32.11",
19
19
  "react-international-phone": "4.2.5",
20
- "@dynamic-labs/iconic": "3.0.0-alpha.7",
21
- "@dynamic-labs/logger": "3.0.0-alpha.7",
22
- "@dynamic-labs/multi-wallet": "3.0.0-alpha.7",
23
- "@dynamic-labs/rpc-providers": "3.0.0-alpha.7",
24
- "@dynamic-labs/store": "3.0.0-alpha.7",
25
- "@dynamic-labs/types": "3.0.0-alpha.7",
26
- "@dynamic-labs/utils": "3.0.0-alpha.7",
27
- "@dynamic-labs/wallet-book": "3.0.0-alpha.7",
28
- "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.7",
20
+ "@dynamic-labs/iconic": "3.0.0-alpha.8",
21
+ "@dynamic-labs/logger": "3.0.0-alpha.8",
22
+ "@dynamic-labs/multi-wallet": "3.0.0-alpha.8",
23
+ "@dynamic-labs/rpc-providers": "3.0.0-alpha.8",
24
+ "@dynamic-labs/store": "3.0.0-alpha.8",
25
+ "@dynamic-labs/types": "3.0.0-alpha.8",
26
+ "@dynamic-labs/utils": "3.0.0-alpha.8",
27
+ "@dynamic-labs/wallet-book": "3.0.0-alpha.8",
28
+ "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.8",
29
29
  "eventemitter3": "5.0.1"
30
30
  },
31
31
  "devDependencies": {
package/src/index.cjs CHANGED
@@ -152,6 +152,7 @@ require('./lib/context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
152
152
  require('./lib/context/ConnectWithOtpContext/constants.cjs');
153
153
  var useConnectWithOtp = require('./lib/context/ConnectWithOtpContext/useConnectWithOtp.cjs');
154
154
  var useSwitchNetwork = require('./lib/utils/hooks/useSwitchNetwork/useSwitchNetwork.cjs');
155
+ var ReinitializeContextProvider = require('./lib/context/ReinitializeContext/ReinitializeContextProvider.cjs');
155
156
 
156
157
 
157
158
 
@@ -254,3 +255,4 @@ exports.useSendBalance = SendBalanceContext.useSendBalance;
254
255
  exports.useFunding = useFunding.useFunding;
255
256
  exports.useConnectWithOtp = useConnectWithOtp.useConnectWithOtp;
256
257
  exports.useSwitchNetwork = useSwitchNetwork.useSwitchNetwork;
258
+ exports.useReinitialize = ReinitializeContextProvider.useReinitialize;
package/src/index.d.ts CHANGED
@@ -118,3 +118,4 @@ export { useFunding } from './lib/context/FundingContext';
118
118
  export { useConnectWithOtp } from './lib/context/ConnectWithOtpContext';
119
119
  export { useDynamicEvents } from './lib/utils/hooks/events/useDynamicEvents';
120
120
  export { useSwitchNetwork } from './lib/utils/hooks/useSwitchNetwork';
121
+ export { useReinitialize } from './lib/context/ReinitializeContext';
package/src/index.js CHANGED
@@ -148,3 +148,4 @@ import './lib/context/ConnectWithOtpContext/ConnectWithOtpContext.js';
148
148
  import './lib/context/ConnectWithOtpContext/constants.js';
149
149
  export { useConnectWithOtp } from './lib/context/ConnectWithOtpContext/useConnectWithOtp.js';
150
150
  export { useSwitchNetwork } from './lib/utils/hooks/useSwitchNetwork/useSwitchNetwork.js';
151
+ export { useReinitialize } from './lib/context/ReinitializeContext/ReinitializeContextProvider.js';
package/src/lib/Main.cjs CHANGED
@@ -93,6 +93,7 @@ require('./context/IpConfigurationContext/IpConfigurationContext.cjs');
93
93
  require('./context/SendBalanceContext/SendBalanceContext.cjs');
94
94
  require('./context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
95
95
  require('./context/ConnectWithOtpContext/constants.cjs');
96
+ require('./context/ReinitializeContext/ReinitializeContextProvider.cjs');
96
97
  require('./main.global.cjs');
97
98
  var isSelectedWalletAlreadyConnected = require('./utils/functions/isSelectedWalletAlreadyConnected/isSelectedWalletAlreadyConnected.cjs');
98
99
  var useVerifyOnAwaitingSignature = require('./utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.cjs');
package/src/lib/Main.js CHANGED
@@ -89,6 +89,7 @@ import './context/IpConfigurationContext/IpConfigurationContext.js';
89
89
  import './context/SendBalanceContext/SendBalanceContext.js';
90
90
  import './context/ConnectWithOtpContext/ConnectWithOtpContext.js';
91
91
  import './context/ConnectWithOtpContext/constants.js';
92
+ import './context/ReinitializeContext/ReinitializeContextProvider.js';
92
93
  import './main.global.js';
93
94
  import { isSelectedWalletAlreadyConnected } from './utils/functions/isSelectedWalletAlreadyConnected/isSelectedWalletAlreadyConnected.js';
94
95
  import { useVerifyOnAwaitingSignature } from './utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.js';
@@ -121,6 +121,7 @@ var PhantomRedirectContext = require('../PhantomRedirectContext/PhantomRedirectC
121
121
  var SendBalanceContext = require('../SendBalanceContext/SendBalanceContext.cjs');
122
122
  var UseNetworkValidation = require('../UseNetworkValidation/UseNetworkValidation.cjs');
123
123
  var useTabState = require('../../views/WalletList/hooks/useTabState.cjs');
124
+ var ReinitializeContextProvider = require('../ReinitializeContext/ReinitializeContextProvider.cjs');
124
125
  var helpers = require('./helpers/helpers.cjs');
125
126
  var useDisplayOrderState = require('./hooks/useDisplayOrderState/useDisplayOrderState.cjs');
126
127
  var useEmailLoginState = require('./hooks/useEmailLoginState/useEmailLoginState.cjs');
@@ -721,7 +722,7 @@ const DynamicContextProvider = (props) => {
721
722
  logger.Logger.setEnvironmentId(props.settings.environmentId);
722
723
  logger.Logger.setEmitErrors(props.emitErrors);
723
724
  useParentDynamicContextGuard.useParentDynamicContextGuard();
724
- return (jsxRuntime.jsx(ErrorBoundary.ErrorBoundary, { children: jsxRuntime.jsx(ErrorContext.ErrorContextProvider, { children: jsxRuntime.jsx(UserWalletsContext.UserWalletsProvider, { children: jsxRuntime.jsx(FieldsStateContext.FieldsStateProvider, { children: jsxRuntime.jsx(IpConfigurationContext.IpConfigurationContextProvider, { children: jsxRuntime.jsx(MfaSettingsContext.MfaSettingsContextProvider, { children: jsxRuntime.jsx(WidgetRegistryContextProvider.WidgetRegistryContextProvider, { children: jsxRuntime.jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }) }));
725
+ return (jsxRuntime.jsx(ReinitializeContextProvider.ReinitializeContextProvider, { onReinitialize: store.removeStoreInstance, children: jsxRuntime.jsx(ErrorBoundary.ErrorBoundary, { children: jsxRuntime.jsx(ErrorContext.ErrorContextProvider, { children: jsxRuntime.jsx(UserWalletsContext.UserWalletsProvider, { children: jsxRuntime.jsx(FieldsStateContext.FieldsStateProvider, { children: jsxRuntime.jsx(IpConfigurationContext.IpConfigurationContextProvider, { children: jsxRuntime.jsx(MfaSettingsContext.MfaSettingsContextProvider, { children: jsxRuntime.jsx(WidgetRegistryContextProvider.WidgetRegistryContextProvider, { children: jsxRuntime.jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }) }) }));
725
726
  };
726
727
 
727
728
  exports.DynamicContext = DynamicContext;
@@ -33,7 +33,7 @@ import ApiEndpoint from '../../config/ApiEndpoint.js';
33
33
  import { setUser } from '../../store/actions/userActions/userActions.js';
34
34
  import { sendDynamicProps } from '../../data/api/settings/settings.js';
35
35
  import { Locale } from '../../locale/locale.js';
36
- import { initializeStore } from '../../store/store.js';
36
+ import { removeStoreInstance, initializeStore } from '../../store/store.js';
37
37
  import { useNetworkConfigurations } from '../../store/hooks/useNetworkConfigurations/useNetworkConfigurations.js';
38
38
  import { useProjectSettings } from '../../store/hooks/useProjectSettings/useProjectSettings.js';
39
39
  import { useUser } from '../../store/hooks/useUser/useUser.js';
@@ -117,6 +117,7 @@ import { PhantomRedirectContextProvider } from '../PhantomRedirectContext/Phanto
117
117
  import { SendBalanceContextProvider } from '../SendBalanceContext/SendBalanceContext.js';
118
118
  import { UseNetworkValidation } from '../UseNetworkValidation/UseNetworkValidation.js';
119
119
  import { useTabState } from '../../views/WalletList/hooks/useTabState.js';
120
+ import { ReinitializeContextProvider } from '../ReinitializeContext/ReinitializeContextProvider.js';
120
121
  import { resolveNetworkValidationMode, initExpirationTime, getInitialView, getDeepLinkPreference } from './helpers/helpers.js';
121
122
  import { useDisplayOrderState } from './hooks/useDisplayOrderState/useDisplayOrderState.js';
122
123
  import { useEmailLoginState } from './hooks/useEmailLoginState/useEmailLoginState.js';
@@ -717,7 +718,7 @@ const DynamicContextProvider = (props) => {
717
718
  Logger.setEnvironmentId(props.settings.environmentId);
718
719
  Logger.setEmitErrors(props.emitErrors);
719
720
  useParentDynamicContextGuard();
720
- return (jsx(ErrorBoundary, { children: jsx(ErrorContextProvider, { children: jsx(UserWalletsProvider, { children: jsx(FieldsStateProvider, { children: jsx(IpConfigurationContextProvider, { children: jsx(MfaSettingsContextProvider, { children: jsx(WidgetRegistryContextProvider, { children: jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }) }));
721
+ return (jsx(ReinitializeContextProvider, { onReinitialize: removeStoreInstance, children: jsx(ErrorBoundary, { children: jsx(ErrorContextProvider, { children: jsx(UserWalletsProvider, { children: jsx(FieldsStateProvider, { children: jsx(IpConfigurationContextProvider, { children: jsx(MfaSettingsContextProvider, { children: jsx(WidgetRegistryContextProvider, { children: jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }) }) }));
721
722
  };
722
723
 
723
724
  export { DynamicContext, DynamicContextProvider, InnerDynamicContextProvider, PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID };
@@ -0,0 +1,113 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ require('@dynamic-labs/wallet-connector-core');
9
+ require('@dynamic-labs/sdk-api-core');
10
+ require('../../utils/constants/values.cjs');
11
+ require('@dynamic-labs/utils');
12
+ require('../../../../_virtual/_tslib.cjs');
13
+ require('@dynamic-labs/multi-wallet');
14
+ require('../../shared/logger.cjs');
15
+ require('@dynamic-labs/iconic');
16
+ require('../ViewContext/ViewContext.cjs');
17
+ require('@dynamic-labs/wallet-book');
18
+ require('../../utils/constants/colors.cjs');
19
+ require('../../shared/utils/classes/storage/localStorage.cjs');
20
+ require('../../shared/utils/classes/storage/sessionStorage.cjs');
21
+ require('../../shared/consts/index.cjs');
22
+ require('react-international-phone');
23
+ require('../../config/ApiEndpoint.cjs');
24
+ require('@dynamic-labs/store');
25
+ require('../../locale/locale.cjs');
26
+ var randomString = require('../../utils/functions/randomString/randomString.cjs');
27
+ require('../../events/dynamicEvents.cjs');
28
+ require('../DynamicContext/DynamicContext.cjs');
29
+ require('../CaptchaContext/CaptchaContext.cjs');
30
+ require('../ErrorContext/ErrorContext.cjs');
31
+ require('../AccessDeniedContext/AccessDeniedContext.cjs');
32
+ require('../AccountExistsContext/AccountExistsContext.cjs');
33
+ require('../UserWalletsContext/UserWalletsContext.cjs');
34
+ require('../VerificationContext/VerificationContext.cjs');
35
+ require('react-dom');
36
+ require('../WalletContext/WalletContext.cjs');
37
+ require('../ThemeContext/ThemeContext.cjs');
38
+ require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
39
+ require('@dynamic-labs/types');
40
+ require('../LoadingContext/LoadingContext.cjs');
41
+ require('yup');
42
+ require('../MockContext/MockContext.cjs');
43
+ require('../../views/CollectUserDataView/useFields.cjs');
44
+ require('../FieldsStateContext/FieldsStateContext.cjs');
45
+ require('../UserFieldEditorContext/UserFieldEditorContext.cjs');
46
+ require('@dynamic-labs/rpc-providers');
47
+ require('react-i18next');
48
+ require('../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
49
+ require('../../components/Alert/Alert.cjs');
50
+ require('../../components/ShadowDOM/ShadowDOM.cjs');
51
+ require('../../components/IconButton/IconButton.cjs');
52
+ require('../../components/InlineWidget/InlineWidget.cjs');
53
+ require('../../components/Input/Input.cjs');
54
+ require('../../components/IsBrowser/IsBrowser.cjs');
55
+ require('../../components/MenuList/Dropdown/Dropdown.cjs');
56
+ require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
57
+ require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
58
+ require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
59
+ require('../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.cjs');
60
+ require('../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
61
+ require('../../components/Popper/Popper/Popper.cjs');
62
+ require('../../components/Popper/PopperContext/PopperContext.cjs');
63
+ require('react-focus-lock');
64
+ require('qrcode');
65
+ require('formik');
66
+ require('../../views/WalletList/WalletList.cjs');
67
+ require('../SocialRedirectContext/SocialRedirectContext.cjs');
68
+ require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
69
+ require('@hcaptcha/react-hcaptcha');
70
+ require('../FooterAnimationContext/index.cjs');
71
+ require('../WalletGroupContext/WalletGroupContext.cjs');
72
+ require('../MfaSettingsContext/MfaSettingsContext.cjs');
73
+ require('../IpConfigurationContext/IpConfigurationContext.cjs');
74
+ require('../PasskeyContext/PasskeyContext.cjs');
75
+ require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
76
+ require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
77
+ require('../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
78
+ require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
79
+
80
+ const reinitializeContext = React.createContext(undefined);
81
+ /**
82
+ * Provider that provides a reinitialize function to its children.
83
+ * @param children The children to render.
84
+ * @param onReinitialize A callback that is called when reinitialize is called.
85
+ */
86
+ const ReinitializeContextProvider = ({ children, onReinitialize }) => {
87
+ // Initial key is undefined to not interfere on react strick mode
88
+ const [key, setKey] = React.useState();
89
+ const onReinitializeCallbackRef = React.useRef(onReinitialize);
90
+ onReinitializeCallbackRef.current = onReinitialize;
91
+ const reinitialize = React.useCallback(() => {
92
+ var _a;
93
+ const newKey = randomString.randomString(8);
94
+ (_a = onReinitializeCallbackRef.current) === null || _a === void 0 ? void 0 : _a.call(onReinitializeCallbackRef, newKey);
95
+ setKey(newKey);
96
+ }, []);
97
+ return (jsxRuntime.jsx(reinitializeContext.Provider, { value: { key, reinitialize }, children: React.cloneElement(children, { key }) }));
98
+ };
99
+ /**
100
+ * Custom hook that provides an reinitialize function for the DynamicContextProvider.
101
+ * @returns The reinitialize function.
102
+ */
103
+ const useReinitialize = () => {
104
+ const context = React.useContext(reinitializeContext);
105
+ if (context === undefined) {
106
+ throw new Error('usage of useReinitialize not wrapped in `ReinitializeContextProvider`.');
107
+ }
108
+ return context.reinitialize;
109
+ };
110
+
111
+ exports.ReinitializeContextProvider = ReinitializeContextProvider;
112
+ exports.reinitializeContext = reinitializeContext;
113
+ exports.useReinitialize = useReinitialize;
@@ -0,0 +1,22 @@
1
+ import { FC, ReactElement } from 'react';
2
+ type IReinitializeContext = {
3
+ reinitialize: () => void;
4
+ key: string | undefined;
5
+ };
6
+ export declare const reinitializeContext: import("react").Context<IReinitializeContext | undefined>;
7
+ type ReinitializeContextProviderProps = {
8
+ children: ReactElement;
9
+ onReinitialize?: (key: string) => void;
10
+ };
11
+ /**
12
+ * Provider that provides a reinitialize function to its children.
13
+ * @param children The children to render.
14
+ * @param onReinitialize A callback that is called when reinitialize is called.
15
+ */
16
+ export declare const ReinitializeContextProvider: FC<ReinitializeContextProviderProps>;
17
+ /**
18
+ * Custom hook that provides an reinitialize function for the DynamicContextProvider.
19
+ * @returns The reinitialize function.
20
+ */
21
+ export declare const useReinitialize: () => () => void;
22
+ export {};
@@ -0,0 +1,107 @@
1
+ 'use client'
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { createContext, useContext, useState, useRef, useCallback, cloneElement } from 'react';
4
+ import '@dynamic-labs/wallet-connector-core';
5
+ import '@dynamic-labs/sdk-api-core';
6
+ import '../../utils/constants/values.js';
7
+ import '@dynamic-labs/utils';
8
+ import '../../../../_virtual/_tslib.js';
9
+ import '@dynamic-labs/multi-wallet';
10
+ import '../../shared/logger.js';
11
+ import '@dynamic-labs/iconic';
12
+ import '../ViewContext/ViewContext.js';
13
+ import '@dynamic-labs/wallet-book';
14
+ import '../../utils/constants/colors.js';
15
+ import '../../shared/utils/classes/storage/localStorage.js';
16
+ import '../../shared/utils/classes/storage/sessionStorage.js';
17
+ import '../../shared/consts/index.js';
18
+ import 'react-international-phone';
19
+ import '../../config/ApiEndpoint.js';
20
+ import '@dynamic-labs/store';
21
+ import '../../locale/locale.js';
22
+ import { randomString } from '../../utils/functions/randomString/randomString.js';
23
+ import '../../events/dynamicEvents.js';
24
+ import '../DynamicContext/DynamicContext.js';
25
+ import '../CaptchaContext/CaptchaContext.js';
26
+ import '../ErrorContext/ErrorContext.js';
27
+ import '../AccessDeniedContext/AccessDeniedContext.js';
28
+ import '../AccountExistsContext/AccountExistsContext.js';
29
+ import '../UserWalletsContext/UserWalletsContext.js';
30
+ import '../VerificationContext/VerificationContext.js';
31
+ import 'react-dom';
32
+ import '../WalletContext/WalletContext.js';
33
+ import '../ThemeContext/ThemeContext.js';
34
+ import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
35
+ import '@dynamic-labs/types';
36
+ import '../LoadingContext/LoadingContext.js';
37
+ import 'yup';
38
+ import '../MockContext/MockContext.js';
39
+ import '../../views/CollectUserDataView/useFields.js';
40
+ import '../FieldsStateContext/FieldsStateContext.js';
41
+ import '../UserFieldEditorContext/UserFieldEditorContext.js';
42
+ import '@dynamic-labs/rpc-providers';
43
+ import 'react-i18next';
44
+ import '../../components/Accordion/components/AccordionItem/AccordionItem.js';
45
+ import '../../components/Alert/Alert.js';
46
+ import '../../components/ShadowDOM/ShadowDOM.js';
47
+ import '../../components/IconButton/IconButton.js';
48
+ import '../../components/InlineWidget/InlineWidget.js';
49
+ import '../../components/Input/Input.js';
50
+ import '../../components/IsBrowser/IsBrowser.js';
51
+ import '../../components/MenuList/Dropdown/Dropdown.js';
52
+ import '../../components/Transition/ZoomTransition/ZoomTransition.js';
53
+ import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
54
+ import '../../components/Transition/OpacityTransition/OpacityTransition.js';
55
+ import '../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.js';
56
+ import '../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
57
+ import '../../components/Popper/Popper/Popper.js';
58
+ import '../../components/Popper/PopperContext/PopperContext.js';
59
+ import 'react-focus-lock';
60
+ import 'qrcode';
61
+ import 'formik';
62
+ import '../../views/WalletList/WalletList.js';
63
+ import '../SocialRedirectContext/SocialRedirectContext.js';
64
+ import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
65
+ import '@hcaptcha/react-hcaptcha';
66
+ import '../FooterAnimationContext/index.js';
67
+ import '../WalletGroupContext/WalletGroupContext.js';
68
+ import '../MfaSettingsContext/MfaSettingsContext.js';
69
+ import '../IpConfigurationContext/IpConfigurationContext.js';
70
+ import '../PasskeyContext/PasskeyContext.js';
71
+ import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
72
+ import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
73
+ import '../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
74
+ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
75
+
76
+ const reinitializeContext = createContext(undefined);
77
+ /**
78
+ * Provider that provides a reinitialize function to its children.
79
+ * @param children The children to render.
80
+ * @param onReinitialize A callback that is called when reinitialize is called.
81
+ */
82
+ const ReinitializeContextProvider = ({ children, onReinitialize }) => {
83
+ // Initial key is undefined to not interfere on react strick mode
84
+ const [key, setKey] = useState();
85
+ const onReinitializeCallbackRef = useRef(onReinitialize);
86
+ onReinitializeCallbackRef.current = onReinitialize;
87
+ const reinitialize = useCallback(() => {
88
+ var _a;
89
+ const newKey = randomString(8);
90
+ (_a = onReinitializeCallbackRef.current) === null || _a === void 0 ? void 0 : _a.call(onReinitializeCallbackRef, newKey);
91
+ setKey(newKey);
92
+ }, []);
93
+ return (jsx(reinitializeContext.Provider, { value: { key, reinitialize }, children: cloneElement(children, { key }) }));
94
+ };
95
+ /**
96
+ * Custom hook that provides an reinitialize function for the DynamicContextProvider.
97
+ * @returns The reinitialize function.
98
+ */
99
+ const useReinitialize = () => {
100
+ const context = useContext(reinitializeContext);
101
+ if (context === undefined) {
102
+ throw new Error('usage of useReinitialize not wrapped in `ReinitializeContextProvider`.');
103
+ }
104
+ return context.reinitialize;
105
+ };
106
+
107
+ export { ReinitializeContextProvider, reinitializeContext, useReinitialize };
@@ -0,0 +1 @@
1
+ export { ReinitializeContextProvider, useReinitialize, } from './ReinitializeContextProvider';
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
  var React = require('react');
8
+ require('../../../../_virtual/_tslib.cjs');
8
9
  require('../DynamicContext/DynamicContext.cjs');
9
10
  require('@dynamic-labs/sdk-api-core');
10
11
  require('../../shared/logger.cjs');
@@ -19,7 +20,6 @@ require('../../shared/utils/classes/storage/sessionStorage.cjs');
19
20
  require('@dynamic-labs/utils');
20
21
  require('../../shared/consts/index.cjs');
21
22
  require('../../events/dynamicEvents.cjs');
22
- require('../../../../_virtual/_tslib.cjs');
23
23
  require('../CaptchaContext/CaptchaContext.cjs');
24
24
  require('../ErrorContext/ErrorContext.cjs');
25
25
  require('@dynamic-labs/multi-wallet');
@@ -1,6 +1,7 @@
1
1
  'use client'
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { createContext, useContext, useState, useMemo } from 'react';
4
+ import '../../../../_virtual/_tslib.js';
4
5
  import '../DynamicContext/DynamicContext.js';
5
6
  import '@dynamic-labs/sdk-api-core';
6
7
  import '../../shared/logger.js';
@@ -15,7 +16,6 @@ import '../../shared/utils/classes/storage/sessionStorage.js';
15
16
  import '@dynamic-labs/utils';
16
17
  import '../../shared/consts/index.js';
17
18
  import '../../events/dynamicEvents.js';
18
- import '../../../../_virtual/_tslib.js';
19
19
  import '../CaptchaContext/CaptchaContext.js';
20
20
  import '../ErrorContext/ErrorContext.js';
21
21
  import '@dynamic-labs/multi-wallet';
@@ -2,4 +2,5 @@ export type MultiWalletInternalEvents = {
2
2
  triggerComputePrimaryWalletMultiWalletStateFromAccounts: (props: {
3
3
  accounts: string[];
4
4
  }) => void;
5
+ triggerConnectAndSign: () => void;
5
6
  };
@@ -5,4 +5,4 @@ export * from './actions/userActions';
5
5
  export * from './hooks/useNetworkConfigurations';
6
6
  export * from './hooks/useProjectSettings';
7
7
  export * from './hooks/useUser';
8
- export { initializeStore } from './store';
8
+ export { initializeStore, removeStoreInstance } from './store';
@@ -17,6 +17,11 @@ const getStore = () => {
17
17
  }
18
18
  return store;
19
19
  };
20
+ const removeStoreInstance = () => {
21
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
22
+ // @ts-ignore
23
+ store = undefined;
24
+ };
20
25
  const initializeStore = ({ storageSuffix, environmentId, }) => {
21
26
  if (store) {
22
27
  return;
@@ -47,3 +52,4 @@ const getStorage = () => {
47
52
 
48
53
  exports.getStore = getStore;
49
54
  exports.initializeStore = initializeStore;
55
+ exports.removeStoreInstance = removeStoreInstance;
@@ -1,4 +1,5 @@
1
1
  import { StoreApi } from '@dynamic-labs/store';
2
2
  import { SdkStore, SdkStoreProps } from './types';
3
3
  export declare const getStore: () => StoreApi<SdkStore>;
4
+ export declare const removeStoreInstance: () => void;
4
5
  export declare const initializeStore: ({ storageSuffix, environmentId, }: SdkStoreProps) => void;
@@ -13,6 +13,11 @@ const getStore = () => {
13
13
  }
14
14
  return store;
15
15
  };
16
+ const removeStoreInstance = () => {
17
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18
+ // @ts-ignore
19
+ store = undefined;
20
+ };
16
21
  const initializeStore = ({ storageSuffix, environmentId, }) => {
17
22
  if (store) {
18
23
  return;
@@ -41,4 +46,4 @@ const getStorage = () => {
41
46
  return window.localStorage;
42
47
  };
43
48
 
44
- export { getStore, initializeStore };
49
+ export { getStore, initializeStore, removeStoreInstance };
@@ -2,7 +2,7 @@ import { DynamicEvents } from '../../../../events';
2
2
  import { EventArgs } from '../types';
3
3
  type DynamicEventListener<E extends keyof DynamicEvents> = (...args: EventArgs<DynamicEvents, E>) => void;
4
4
  /** Allows us to subscribe to all dynamicEvents with a hook, even the internal ones */
5
- export declare const useInternalDynamicEvents: <E extends keyof import("../../../../events/auth").AuthEvents | keyof import("../../../../events/ui").UIEvents | keyof import("../../../../events/otp").OTPEvents | keyof import("../../../../events/wallets").WalletEvents | keyof import("../../../../events/passkey").PasskeyEvents | "farcasterConnectCancelled" | keyof import("../../../../events/embeddedWallet").EmbeddedWalletEvents | "triggerComputePrimaryWalletMultiWalletStateFromAccounts">(event: E, listener: DynamicEventListener<E>) => void;
5
+ export declare const useInternalDynamicEvents: <E extends keyof import("../../../../events/auth").AuthEvents | keyof import("../../../../events/ui").UIEvents | keyof import("../../../../events/otp").OTPEvents | keyof import("../../../../events/wallets").WalletEvents | keyof import("../../../../events/passkey").PasskeyEvents | "farcasterConnectCancelled" | keyof import("../../../../events/embeddedWallet").EmbeddedWalletEvents | keyof import("../../../../events/multiWallet").MultiWalletInternalEvents>(event: E, listener: DynamicEventListener<E>) => void;
6
6
  /** Allows subscribing to dynamic events directly inside components with a hook */
7
7
  export declare const useDynamicEvents: <E extends "logout" | "emailVerificationResult" | "walletAdded" | "embeddedWalletCreated">(event: E, listener: DynamicEventListener<E>) => void;
8
8
  export {};
@@ -3,6 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
+ var _tslib = require('../../../../../../_virtual/_tslib.cjs');
6
7
  var React = require('react');
7
8
  require('../../../../context/DynamicContext/DynamicContext.cjs');
8
9
  require('@dynamic-labs/sdk-api-core');
@@ -18,8 +19,7 @@ require('../../../../shared/utils/classes/storage/localStorage.cjs');
18
19
  require('../../../../shared/utils/classes/storage/sessionStorage.cjs');
19
20
  require('@dynamic-labs/utils');
20
21
  require('../../../../shared/consts/index.cjs');
21
- require('../../../../events/dynamicEvents.cjs');
22
- require('../../../../../../_virtual/_tslib.cjs');
22
+ var useDynamicEvents = require('../../events/useDynamicEvents/useDynamicEvents.cjs');
23
23
  var useConnectAndSign = require('../../authenticationHooks/useConnectAndSign/useConnectAndSign.cjs');
24
24
  require('../../../../context/ErrorContext/ErrorContext.cjs');
25
25
  require('../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
@@ -31,6 +31,7 @@ require('react-international-phone');
31
31
  var requiresTwoStepAuthentication = require('../../../functions/requiresTwoStepAuthentication/requiresTwoStepAuthentication.cjs');
32
32
  require('@dynamic-labs/store');
33
33
  require('../../../../locale/locale.cjs');
34
+ require('../../../../events/dynamicEvents.cjs');
34
35
  require('../../../../context/CaptchaContext/CaptchaContext.cjs');
35
36
  require('../../../../context/VerificationContext/VerificationContext.cjs');
36
37
  require('react-dom');
@@ -82,29 +83,54 @@ var useInternalDynamicContext = require('../../../../context/DynamicContext/useD
82
83
  const useVerifyOnAwaitingSignature = () => {
83
84
  const { awaitingSignatureState, multiWalletWidgetState, setMultiWalletWidgetState, legacyIsVerifying, setLegacyIsVerifying, selectedWalletConnector, } = useInternalDynamicContext.useInternalDynamicContext();
84
85
  const triggerConnectAndSign = useConnectAndSign.useConnectAndSign();
86
+ // this is to prevent calling runConnectAndSign multiple times
87
+ // due to changes in legacyIsVerifying
88
+ const isVerifying = React.useRef(false);
89
+ const runConnectAndSign = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
90
+ logger.logger.debug('runConnectAndSign', {
91
+ selectedWalletConnector,
92
+ });
93
+ if (!selectedWalletConnector) {
94
+ return;
95
+ }
96
+ isVerifying.current = true;
97
+ setLegacyIsVerifying(true);
98
+ try {
99
+ yield triggerConnectAndSign({
100
+ walletConnector: selectedWalletConnector,
101
+ });
102
+ }
103
+ catch (e) {
104
+ logger.logger.error(e);
105
+ }
106
+ setMultiWalletWidgetState('idle');
107
+ setLegacyIsVerifying(false);
108
+ isVerifying.current = false;
109
+ }), [
110
+ selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.key,
111
+ setLegacyIsVerifying,
112
+ setMultiWalletWidgetState,
113
+ triggerConnectAndSign,
114
+ ]);
85
115
  React.useEffect(() => {
86
116
  if (!legacyIsVerifying &&
117
+ !isVerifying.current &&
87
118
  multiWalletWidgetState === 'awaiting_signature' &&
88
119
  selectedWalletConnector &&
89
120
  awaitingSignatureState === 'linking_new_wallet' &&
90
121
  !requiresTwoStepAuthentication.requiresTwoStepAuthentication(selectedWalletConnector)) {
91
- setLegacyIsVerifying(true);
92
- triggerConnectAndSign({ walletConnector: selectedWalletConnector })
93
- .catch((e) => {
94
- logger.logger.error(e);
95
- })
96
- .finally(() => {
97
- setMultiWalletWidgetState('idle');
98
- setLegacyIsVerifying(false);
99
- });
122
+ runConnectAndSign();
100
123
  }
101
124
  }, [
125
+ runConnectAndSign,
102
126
  awaitingSignatureState,
103
- selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.key,
127
+ legacyIsVerifying,
104
128
  multiWalletWidgetState,
129
+ selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.key,
130
+ setLegacyIsVerifying,
105
131
  setMultiWalletWidgetState,
106
- legacyIsVerifying,
107
132
  ]);
133
+ useDynamicEvents.useInternalDynamicEvents('triggerConnectAndSign', runConnectAndSign);
108
134
  };
109
135
 
110
136
  exports.useVerifyOnAwaitingSignature = useVerifyOnAwaitingSignature;
@@ -1,5 +1,6 @@
1
1
  'use client'
2
- import { useEffect } from 'react';
2
+ import { __awaiter } from '../../../../../../_virtual/_tslib.js';
3
+ import { useRef, useCallback, useEffect } from 'react';
3
4
  import '../../../../context/DynamicContext/DynamicContext.js';
4
5
  import '@dynamic-labs/sdk-api-core';
5
6
  import { logger } from '../../../../shared/logger.js';
@@ -14,8 +15,7 @@ import '../../../../shared/utils/classes/storage/localStorage.js';
14
15
  import '../../../../shared/utils/classes/storage/sessionStorage.js';
15
16
  import '@dynamic-labs/utils';
16
17
  import '../../../../shared/consts/index.js';
17
- import '../../../../events/dynamicEvents.js';
18
- import '../../../../../../_virtual/_tslib.js';
18
+ import { useInternalDynamicEvents } from '../../events/useDynamicEvents/useDynamicEvents.js';
19
19
  import { useConnectAndSign } from '../../authenticationHooks/useConnectAndSign/useConnectAndSign.js';
20
20
  import '../../../../context/ErrorContext/ErrorContext.js';
21
21
  import '../../../../context/AccessDeniedContext/AccessDeniedContext.js';
@@ -27,6 +27,7 @@ import 'react-international-phone';
27
27
  import { requiresTwoStepAuthentication } from '../../../functions/requiresTwoStepAuthentication/requiresTwoStepAuthentication.js';
28
28
  import '@dynamic-labs/store';
29
29
  import '../../../../locale/locale.js';
30
+ import '../../../../events/dynamicEvents.js';
30
31
  import '../../../../context/CaptchaContext/CaptchaContext.js';
31
32
  import '../../../../context/VerificationContext/VerificationContext.js';
32
33
  import 'react-dom';
@@ -78,29 +79,54 @@ import { useInternalDynamicContext } from '../../../../context/DynamicContext/us
78
79
  const useVerifyOnAwaitingSignature = () => {
79
80
  const { awaitingSignatureState, multiWalletWidgetState, setMultiWalletWidgetState, legacyIsVerifying, setLegacyIsVerifying, selectedWalletConnector, } = useInternalDynamicContext();
80
81
  const triggerConnectAndSign = useConnectAndSign();
82
+ // this is to prevent calling runConnectAndSign multiple times
83
+ // due to changes in legacyIsVerifying
84
+ const isVerifying = useRef(false);
85
+ const runConnectAndSign = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
86
+ logger.debug('runConnectAndSign', {
87
+ selectedWalletConnector,
88
+ });
89
+ if (!selectedWalletConnector) {
90
+ return;
91
+ }
92
+ isVerifying.current = true;
93
+ setLegacyIsVerifying(true);
94
+ try {
95
+ yield triggerConnectAndSign({
96
+ walletConnector: selectedWalletConnector,
97
+ });
98
+ }
99
+ catch (e) {
100
+ logger.error(e);
101
+ }
102
+ setMultiWalletWidgetState('idle');
103
+ setLegacyIsVerifying(false);
104
+ isVerifying.current = false;
105
+ }), [
106
+ selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.key,
107
+ setLegacyIsVerifying,
108
+ setMultiWalletWidgetState,
109
+ triggerConnectAndSign,
110
+ ]);
81
111
  useEffect(() => {
82
112
  if (!legacyIsVerifying &&
113
+ !isVerifying.current &&
83
114
  multiWalletWidgetState === 'awaiting_signature' &&
84
115
  selectedWalletConnector &&
85
116
  awaitingSignatureState === 'linking_new_wallet' &&
86
117
  !requiresTwoStepAuthentication(selectedWalletConnector)) {
87
- setLegacyIsVerifying(true);
88
- triggerConnectAndSign({ walletConnector: selectedWalletConnector })
89
- .catch((e) => {
90
- logger.error(e);
91
- })
92
- .finally(() => {
93
- setMultiWalletWidgetState('idle');
94
- setLegacyIsVerifying(false);
95
- });
118
+ runConnectAndSign();
96
119
  }
97
120
  }, [
121
+ runConnectAndSign,
98
122
  awaitingSignatureState,
99
- selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.key,
123
+ legacyIsVerifying,
100
124
  multiWalletWidgetState,
125
+ selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.key,
126
+ setLegacyIsVerifying,
101
127
  setMultiWalletWidgetState,
102
- legacyIsVerifying,
103
128
  ]);
129
+ useInternalDynamicEvents('triggerConnectAndSign', runConnectAndSign);
104
130
  };
105
131
 
106
132
  export { useVerifyOnAwaitingSignature };
@@ -20,6 +20,64 @@ require('@dynamic-labs/utils');
20
20
  require('../../../shared/consts/index.cjs');
21
21
  var useDynamicEvents = require('../events/useDynamicEvents/useDynamicEvents.cjs');
22
22
  var useWalletConnectorEvent = require('../events/useWalletConnectorEvent/useWalletConnectorEvent.cjs');
23
+ require('@dynamic-labs/multi-wallet');
24
+ require('react-international-phone');
25
+ require('../../../config/ApiEndpoint.cjs');
26
+ require('@dynamic-labs/store');
27
+ require('../../../locale/locale.cjs');
28
+ require('../../../context/DynamicContext/DynamicContext.cjs');
29
+ require('../../../context/CaptchaContext/CaptchaContext.cjs');
30
+ require('../../../context/ErrorContext/ErrorContext.cjs');
31
+ require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
32
+ require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
33
+ require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
34
+ var dynamicEvents = require('../../../events/dynamicEvents.cjs');
35
+ require('../../../context/VerificationContext/VerificationContext.cjs');
36
+ require('react-dom');
37
+ require('../../../context/WalletContext/WalletContext.cjs');
38
+ require('../../../context/ThemeContext/ThemeContext.cjs');
39
+ require('../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
40
+ require('@dynamic-labs/types');
41
+ require('../../../context/LoadingContext/LoadingContext.cjs');
42
+ require('yup');
43
+ require('../../../context/MockContext/MockContext.cjs');
44
+ require('../../../views/CollectUserDataView/useFields.cjs');
45
+ require('../../../context/FieldsStateContext/FieldsStateContext.cjs');
46
+ require('../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
47
+ require('@dynamic-labs/rpc-providers');
48
+ require('react-i18next');
49
+ require('../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
50
+ require('../../../components/Alert/Alert.cjs');
51
+ require('../../../components/ShadowDOM/ShadowDOM.cjs');
52
+ require('../../../components/IconButton/IconButton.cjs');
53
+ require('../../../components/InlineWidget/InlineWidget.cjs');
54
+ require('../../../components/Input/Input.cjs');
55
+ require('../../../components/IsBrowser/IsBrowser.cjs');
56
+ require('../../../components/MenuList/Dropdown/Dropdown.cjs');
57
+ require('../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
58
+ require('../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
59
+ require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
60
+ require('../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.cjs');
61
+ require('../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
62
+ require('../../../components/Popper/Popper/Popper.cjs');
63
+ require('../../../components/Popper/PopperContext/PopperContext.cjs');
64
+ require('react-focus-lock');
65
+ require('qrcode');
66
+ require('formik');
67
+ require('../../../views/WalletList/WalletList.cjs');
68
+ require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
69
+ require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
70
+ require('@hcaptcha/react-hcaptcha');
71
+ require('../../../context/FooterAnimationContext/index.cjs');
72
+ require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
73
+ require('../../../context/MfaSettingsContext/MfaSettingsContext.cjs');
74
+ require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
75
+ require('../../../context/PasskeyContext/PasskeyContext.cjs');
76
+ require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
77
+ require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
78
+ require('../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
79
+ require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
80
+ var logVerboseTroubleshootingMessage = require('../../functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.cjs');
23
81
 
24
82
  const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet, multiWalletWidgetState, primaryWallet, secondaryWallets, selectedWalletConnector, selectedWalletWithAction, setSelectedWalletConnectorKey, setSelectedWalletWithAction, setMultiWalletWidgetState, user, setPrimaryWalletId, authMode, refreshConnectedWallet, }) => {
25
83
  useWalletConnectorEvent.useWalletConnectorEvent(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector, 'disconnect', () => {
@@ -34,7 +92,12 @@ const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet,
34
92
  refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
35
93
  });
36
94
  const handleAccountChangeWhenAwaitingAccountSwitch = React.useCallback((isPrimaryWallet, newAddress) => {
95
+ logger.logger.debug('handleAccountChangeWhenAwaitingAccountSwitch', {
96
+ isPrimaryWallet,
97
+ newAddress,
98
+ });
37
99
  const linkedSecondaryWallet = secondaryWallets.find((wallet) => walletConnectorCore.isSameAddress(wallet.address, newAddress, wallet.chain));
100
+ logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[handleAccountChangeWhenAwaitingAccountSwitch]', { linkedSecondaryWallet });
38
101
  // this means the user is linking a new account, so we need proof of ownership...
39
102
  if (!linkedSecondaryWallet) {
40
103
  setMultiWalletWidgetState('awaiting_signature', undefined, 'linking_new_wallet');
@@ -43,6 +106,12 @@ const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet,
43
106
  }
44
107
  return;
45
108
  }
109
+ const isTryingToUpdateUnkownWallet = linkedSecondaryWallet.connector.key === 'unknown';
110
+ if (isTryingToUpdateUnkownWallet) {
111
+ //prompt the user to connect and sign with the wallet
112
+ dynamicEvents.dynamicEvents.emit('triggerConnectAndSign');
113
+ return;
114
+ }
46
115
  // ...otherwise, the user is switching primary accounts betweeen the same wallet
47
116
  setSelectedWalletWithAction(null);
48
117
  setPrimaryWalletId(linkedSecondaryWallet.id);
@@ -56,6 +125,13 @@ const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet,
56
125
  setPrimaryWalletId,
57
126
  ]);
58
127
  const calculatePrimaryWalletMultiWalletStateFromAccounts = React.useCallback(({ accounts }) => {
128
+ logger.logger.debug('calculatePrimaryWalletMultiWalletStateFromAccounts', {
129
+ accounts,
130
+ authMode,
131
+ multiWallet,
132
+ multiWalletWidgetState,
133
+ primaryWallet,
134
+ });
59
135
  // change the api here
60
136
  if (!primaryWallet)
61
137
  return;
@@ -16,6 +16,64 @@ import '@dynamic-labs/utils';
16
16
  import '../../../shared/consts/index.js';
17
17
  import { useInternalDynamicEvents } from '../events/useDynamicEvents/useDynamicEvents.js';
18
18
  import { useWalletConnectorEvent } from '../events/useWalletConnectorEvent/useWalletConnectorEvent.js';
19
+ import '@dynamic-labs/multi-wallet';
20
+ import 'react-international-phone';
21
+ import '../../../config/ApiEndpoint.js';
22
+ import '@dynamic-labs/store';
23
+ import '../../../locale/locale.js';
24
+ import '../../../context/DynamicContext/DynamicContext.js';
25
+ import '../../../context/CaptchaContext/CaptchaContext.js';
26
+ import '../../../context/ErrorContext/ErrorContext.js';
27
+ import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
28
+ import '../../../context/AccountExistsContext/AccountExistsContext.js';
29
+ import '../../../context/UserWalletsContext/UserWalletsContext.js';
30
+ import { dynamicEvents } from '../../../events/dynamicEvents.js';
31
+ import '../../../context/VerificationContext/VerificationContext.js';
32
+ import 'react-dom';
33
+ import '../../../context/WalletContext/WalletContext.js';
34
+ import '../../../context/ThemeContext/ThemeContext.js';
35
+ import '../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
36
+ import '@dynamic-labs/types';
37
+ import '../../../context/LoadingContext/LoadingContext.js';
38
+ import 'yup';
39
+ import '../../../context/MockContext/MockContext.js';
40
+ import '../../../views/CollectUserDataView/useFields.js';
41
+ import '../../../context/FieldsStateContext/FieldsStateContext.js';
42
+ import '../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
43
+ import '@dynamic-labs/rpc-providers';
44
+ import 'react-i18next';
45
+ import '../../../components/Accordion/components/AccordionItem/AccordionItem.js';
46
+ import '../../../components/Alert/Alert.js';
47
+ import '../../../components/ShadowDOM/ShadowDOM.js';
48
+ import '../../../components/IconButton/IconButton.js';
49
+ import '../../../components/InlineWidget/InlineWidget.js';
50
+ import '../../../components/Input/Input.js';
51
+ import '../../../components/IsBrowser/IsBrowser.js';
52
+ import '../../../components/MenuList/Dropdown/Dropdown.js';
53
+ import '../../../components/Transition/ZoomTransition/ZoomTransition.js';
54
+ import '../../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
55
+ import '../../../components/Transition/OpacityTransition/OpacityTransition.js';
56
+ import '../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.js';
57
+ import '../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
58
+ import '../../../components/Popper/Popper/Popper.js';
59
+ import '../../../components/Popper/PopperContext/PopperContext.js';
60
+ import 'react-focus-lock';
61
+ import 'qrcode';
62
+ import 'formik';
63
+ import '../../../views/WalletList/WalletList.js';
64
+ import '../../../context/SocialRedirectContext/SocialRedirectContext.js';
65
+ import '../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
66
+ import '@hcaptcha/react-hcaptcha';
67
+ import '../../../context/FooterAnimationContext/index.js';
68
+ import '../../../context/WalletGroupContext/WalletGroupContext.js';
69
+ import '../../../context/MfaSettingsContext/MfaSettingsContext.js';
70
+ import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
71
+ import '../../../context/PasskeyContext/PasskeyContext.js';
72
+ import '../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
73
+ import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
74
+ import '../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
75
+ import '../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
76
+ import { logVerboseTroubleshootingMessage } from '../../functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.js';
19
77
 
20
78
  const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet, multiWalletWidgetState, primaryWallet, secondaryWallets, selectedWalletConnector, selectedWalletWithAction, setSelectedWalletConnectorKey, setSelectedWalletWithAction, setMultiWalletWidgetState, user, setPrimaryWalletId, authMode, refreshConnectedWallet, }) => {
21
79
  useWalletConnectorEvent(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector, 'disconnect', () => {
@@ -30,7 +88,12 @@ const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet,
30
88
  refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
31
89
  });
32
90
  const handleAccountChangeWhenAwaitingAccountSwitch = useCallback((isPrimaryWallet, newAddress) => {
91
+ logger.debug('handleAccountChangeWhenAwaitingAccountSwitch', {
92
+ isPrimaryWallet,
93
+ newAddress,
94
+ });
33
95
  const linkedSecondaryWallet = secondaryWallets.find((wallet) => isSameAddress(wallet.address, newAddress, wallet.chain));
96
+ logVerboseTroubleshootingMessage('[handleAccountChangeWhenAwaitingAccountSwitch]', { linkedSecondaryWallet });
34
97
  // this means the user is linking a new account, so we need proof of ownership...
35
98
  if (!linkedSecondaryWallet) {
36
99
  setMultiWalletWidgetState('awaiting_signature', undefined, 'linking_new_wallet');
@@ -39,6 +102,12 @@ const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet,
39
102
  }
40
103
  return;
41
104
  }
105
+ const isTryingToUpdateUnkownWallet = linkedSecondaryWallet.connector.key === 'unknown';
106
+ if (isTryingToUpdateUnkownWallet) {
107
+ //prompt the user to connect and sign with the wallet
108
+ dynamicEvents.emit('triggerConnectAndSign');
109
+ return;
110
+ }
42
111
  // ...otherwise, the user is switching primary accounts betweeen the same wallet
43
112
  setSelectedWalletWithAction(null);
44
113
  setPrimaryWalletId(linkedSecondaryWallet.id);
@@ -52,6 +121,13 @@ const useWalletEventListeners = ({ disconnectWallet, handleLogOut, multiWallet,
52
121
  setPrimaryWalletId,
53
122
  ]);
54
123
  const calculatePrimaryWalletMultiWalletStateFromAccounts = useCallback(({ accounts }) => {
124
+ logger.debug('calculatePrimaryWalletMultiWalletStateFromAccounts', {
125
+ accounts,
126
+ authMode,
127
+ multiWallet,
128
+ multiWalletWidgetState,
129
+ primaryWallet,
130
+ });
55
131
  // change the api here
56
132
  if (!primaryWallet)
57
133
  return;
@@ -9,7 +9,7 @@ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
9
  require('react');
10
10
  require('../../../context/DynamicContext/DynamicContext.cjs');
11
11
  require('@dynamic-labs/sdk-api-core');
12
- require('../../../shared/logger.cjs');
12
+ var logger = require('../../../shared/logger.cjs');
13
13
  require('@dynamic-labs/iconic');
14
14
  require('react/jsx-runtime');
15
15
  var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
@@ -31,6 +31,7 @@ require('@dynamic-labs/multi-wallet');
31
31
  require('react-international-phone');
32
32
  var requiresTwoStepAuthentication = require('../../functions/requiresTwoStepAuthentication/requiresTwoStepAuthentication.cjs');
33
33
  require('@dynamic-labs/store');
34
+ var logVerboseTroubleshootingMessage = require('../../functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.cjs');
34
35
  require('../../../locale/locale.cjs');
35
36
  require('../../../context/CaptchaContext/CaptchaContext.cjs');
36
37
  var useConnectAndSignSplitSteps = require('../authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs');
@@ -90,7 +91,11 @@ const useWalletItemActions = () => {
90
91
  const { onlyConnectUser } = useConnectAndSignSplitSteps.useConnectAndSignSplitSteps();
91
92
  const connectAndSignWallet = useConnectAndSign.useConnectAndSign();
92
93
  const handleCustodialWalletClick = (walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
94
+ logger.logger.debug('handleCustodialWalletClick', walletConnector);
93
95
  const twoStepAuthentication = requiresTwoStepAuthentication.requiresTwoStepAuthentication(walletConnector);
96
+ logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[handleCustodialWalletClick]', {
97
+ twoStepAuthentication,
98
+ });
94
99
  if (twoStepAuthentication) {
95
100
  setSelectedWalletConnectorKey(walletConnector.key);
96
101
  yield onlyConnectUser({
@@ -105,6 +110,7 @@ const useWalletItemActions = () => {
105
110
  });
106
111
  const handleMobileWalletClick = (walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
107
112
  var _a;
113
+ logger.logger.debug('handleMobileWalletClick', walletConnector);
108
114
  setSelectedWalletConnectorKey(walletConnector.key);
109
115
  // We need to set to LS when about to verify phantom wallet on mobile
110
116
  // because the deeplink interrupts this code execution and then redirects back on a new tab.
@@ -124,10 +130,12 @@ const useWalletItemActions = () => {
124
130
  onlyConnectUser({ walletConnector });
125
131
  });
126
132
  const handleInstalledExtensionClick = (walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
133
+ logger.logger.debug('handleInstalledExtensionClick', walletConnector);
127
134
  setSelectedWalletConnectorKey(walletConnector.key);
128
135
  setMultiWalletWidgetState('awaiting_signature', undefined, 'linking_new_wallet');
129
136
  });
130
137
  const handleUninstalledClick = (walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
138
+ logger.logger.debug('handleUninstalledClick', walletConnector);
131
139
  setSelectedWalletConnectorKey(walletConnector.key);
132
140
  if (!walletConnector.canConnectViaQrCode) {
133
141
  setView('no-qr-not-installed');
@@ -149,8 +157,14 @@ const useWalletItemActions = () => {
149
157
  setError(undefined);
150
158
  });
151
159
  const handleAlreadyConnectedWallet = (walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
160
+ logger.logger.debug('handleAlreadyConnectedWallet', walletConnector);
152
161
  const connectedAccounts = yield walletConnector.getConnectedAccounts();
153
162
  const activeAccountAlreadyLinked = linkedWallets.find((wallet) => { var _a; return wallet.address.toLowerCase() === ((_a = connectedAccounts[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
163
+ logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[handleAlreadyConnectedWallet]', {
164
+ activeAccountAlreadyLinked,
165
+ connectedAccounts,
166
+ linkedWallets,
167
+ });
154
168
  if (activeAccountAlreadyLinked) {
155
169
  setMultiWalletWidgetState('awaiting_account_switch', 'linking_new_wallet');
156
170
  }
@@ -180,6 +194,11 @@ const useWalletItemActions = () => {
180
194
  const { walletConnector, isInstalledOnBrowser } = wallet;
181
195
  const shouldEndWalletConnectorSession = walletConnector.connectedChain === 'FLOW' ||
182
196
  walletConnectorCore.isPhantomRedirectConnector(walletConnector);
197
+ logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[handleWalletItemClick]', {
198
+ mockedSDK,
199
+ shouldEndWalletConnectorSession,
200
+ wallet,
201
+ });
183
202
  if (mockedSDK)
184
203
  return;
185
204
  if (shouldEndWalletConnectorSession) {
@@ -5,7 +5,7 @@ import { isPhantomRedirectConnector } from '@dynamic-labs/wallet-connector-core'
5
5
  import 'react';
6
6
  import '../../../context/DynamicContext/DynamicContext.js';
7
7
  import '@dynamic-labs/sdk-api-core';
8
- import '../../../shared/logger.js';
8
+ import { logger } from '../../../shared/logger.js';
9
9
  import '@dynamic-labs/iconic';
10
10
  import 'react/jsx-runtime';
11
11
  import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
@@ -27,6 +27,7 @@ import '@dynamic-labs/multi-wallet';
27
27
  import 'react-international-phone';
28
28
  import { requiresTwoStepAuthentication } from '../../functions/requiresTwoStepAuthentication/requiresTwoStepAuthentication.js';
29
29
  import '@dynamic-labs/store';
30
+ import { logVerboseTroubleshootingMessage } from '../../functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.js';
30
31
  import '../../../locale/locale.js';
31
32
  import '../../../context/CaptchaContext/CaptchaContext.js';
32
33
  import { useConnectAndSignSplitSteps } from '../authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js';
@@ -86,7 +87,11 @@ const useWalletItemActions = () => {
86
87
  const { onlyConnectUser } = useConnectAndSignSplitSteps();
87
88
  const connectAndSignWallet = useConnectAndSign();
88
89
  const handleCustodialWalletClick = (walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
90
+ logger.debug('handleCustodialWalletClick', walletConnector);
89
91
  const twoStepAuthentication = requiresTwoStepAuthentication(walletConnector);
92
+ logVerboseTroubleshootingMessage('[handleCustodialWalletClick]', {
93
+ twoStepAuthentication,
94
+ });
90
95
  if (twoStepAuthentication) {
91
96
  setSelectedWalletConnectorKey(walletConnector.key);
92
97
  yield onlyConnectUser({
@@ -101,6 +106,7 @@ const useWalletItemActions = () => {
101
106
  });
102
107
  const handleMobileWalletClick = (walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
103
108
  var _a;
109
+ logger.debug('handleMobileWalletClick', walletConnector);
104
110
  setSelectedWalletConnectorKey(walletConnector.key);
105
111
  // We need to set to LS when about to verify phantom wallet on mobile
106
112
  // because the deeplink interrupts this code execution and then redirects back on a new tab.
@@ -120,10 +126,12 @@ const useWalletItemActions = () => {
120
126
  onlyConnectUser({ walletConnector });
121
127
  });
122
128
  const handleInstalledExtensionClick = (walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
129
+ logger.debug('handleInstalledExtensionClick', walletConnector);
123
130
  setSelectedWalletConnectorKey(walletConnector.key);
124
131
  setMultiWalletWidgetState('awaiting_signature', undefined, 'linking_new_wallet');
125
132
  });
126
133
  const handleUninstalledClick = (walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
134
+ logger.debug('handleUninstalledClick', walletConnector);
127
135
  setSelectedWalletConnectorKey(walletConnector.key);
128
136
  if (!walletConnector.canConnectViaQrCode) {
129
137
  setView('no-qr-not-installed');
@@ -145,8 +153,14 @@ const useWalletItemActions = () => {
145
153
  setError(undefined);
146
154
  });
147
155
  const handleAlreadyConnectedWallet = (walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
156
+ logger.debug('handleAlreadyConnectedWallet', walletConnector);
148
157
  const connectedAccounts = yield walletConnector.getConnectedAccounts();
149
158
  const activeAccountAlreadyLinked = linkedWallets.find((wallet) => { var _a; return wallet.address.toLowerCase() === ((_a = connectedAccounts[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
159
+ logVerboseTroubleshootingMessage('[handleAlreadyConnectedWallet]', {
160
+ activeAccountAlreadyLinked,
161
+ connectedAccounts,
162
+ linkedWallets,
163
+ });
150
164
  if (activeAccountAlreadyLinked) {
151
165
  setMultiWalletWidgetState('awaiting_account_switch', 'linking_new_wallet');
152
166
  }
@@ -176,6 +190,11 @@ const useWalletItemActions = () => {
176
190
  const { walletConnector, isInstalledOnBrowser } = wallet;
177
191
  const shouldEndWalletConnectorSession = walletConnector.connectedChain === 'FLOW' ||
178
192
  isPhantomRedirectConnector(walletConnector);
193
+ logVerboseTroubleshootingMessage('[handleWalletItemClick]', {
194
+ mockedSDK,
195
+ shouldEndWalletConnectorSession,
196
+ wallet,
197
+ });
179
198
  if (mockedSDK)
180
199
  return;
181
200
  if (shouldEndWalletConnectorSession) {