@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.
- package/CHANGELOG.md +21 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +10 -10
- package/src/index.cjs +2 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/lib/Main.cjs +1 -0
- package/src/lib/Main.js +1 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +2 -1
- package/src/lib/context/DynamicContext/DynamicContext.js +3 -2
- package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.cjs +113 -0
- package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.d.ts +22 -0
- package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.js +107 -0
- package/src/lib/context/ReinitializeContext/index.d.ts +1 -0
- package/src/lib/context/WalletContext/WalletContext.cjs +1 -1
- package/src/lib/context/WalletContext/WalletContext.js +1 -1
- package/src/lib/events/multiWallet.d.ts +1 -0
- package/src/lib/store/index.d.ts +1 -1
- package/src/lib/store/store.cjs +6 -0
- package/src/lib/store/store.d.ts +1 -0
- package/src/lib/store/store.js +6 -1
- package/src/lib/utils/hooks/events/useDynamicEvents/useDynamicEvents.d.ts +1 -1
- package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.cjs +39 -13
- package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.js +40 -14
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +76 -0
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +76 -0
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +20 -1
- 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
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
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.
|
|
21
|
-
"@dynamic-labs/logger": "3.0.0-alpha.
|
|
22
|
-
"@dynamic-labs/multi-wallet": "3.0.0-alpha.
|
|
23
|
-
"@dynamic-labs/rpc-providers": "3.0.0-alpha.
|
|
24
|
-
"@dynamic-labs/store": "3.0.0-alpha.
|
|
25
|
-
"@dynamic-labs/types": "3.0.0-alpha.
|
|
26
|
-
"@dynamic-labs/utils": "3.0.0-alpha.
|
|
27
|
-
"@dynamic-labs/wallet-book": "3.0.0-alpha.
|
|
28
|
-
"@dynamic-labs/wallet-connector-core": "3.0.0-alpha.
|
|
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';
|
package/src/lib/store/index.d.ts
CHANGED
|
@@ -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';
|
package/src/lib/store/store.cjs
CHANGED
|
@@ -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;
|
package/src/lib/store/store.d.ts
CHANGED
|
@@ -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;
|
package/src/lib/store/store.js
CHANGED
|
@@ -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 | "
|
|
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('
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import {
|
|
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 '
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|