@dynamic-labs/sdk-react-core 1.0.5 → 1.0.7
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 +22 -0
- package/package.cjs +3 -3
- package/package.js +3 -3
- package/package.json +12 -12
- package/src/index.cjs +11 -9
- package/src/index.js +6 -5
- package/src/lib/Main.cjs +25 -10
- package/src/lib/Main.js +25 -10
- package/src/lib/components/IconWithSpinner/IconWithSpinner.cjs +1 -1
- package/src/lib/components/IconWithSpinner/IconWithSpinner.js +1 -1
- package/src/lib/components/IconWithSpinner/Spinner/Spinner.cjs +1 -1
- package/src/lib/components/IconWithSpinner/Spinner/Spinner.js +1 -1
- package/src/lib/components/IconWithStatus/IconWithStatus.cjs +1 -1
- package/src/lib/components/IconWithStatus/IconWithStatus.js +1 -1
- package/src/lib/components/MenuList/Dropdown/Dropdown.cjs +1 -1
- package/src/lib/components/MenuList/Dropdown/Dropdown.js +1 -1
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +4 -1
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +4 -1
- package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +1 -1
- package/src/lib/components/SendBalanceForm/SendBalanceForm.js +1 -1
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.cjs +2 -2
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.js +2 -2
- package/src/lib/components/UserProfileForm/UserProfileForm.cjs +1 -1
- package/src/lib/components/UserProfileForm/UserProfileForm.js +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +4 -2
- package/src/lib/context/DynamicContext/DynamicContext.js +4 -2
- package/src/lib/context/DynamicContext/hooks/useEmailLoginState/useEmailLoginState.cjs +1 -1
- package/src/lib/context/DynamicContext/hooks/useEmailLoginState/useEmailLoginState.js +1 -1
- package/src/lib/data/api.cjs +2 -2
- package/src/lib/data/api.d.ts +1 -0
- package/src/lib/data/api.js +2 -2
- package/src/lib/shared/utils/hooks/index.d.ts +5 -4
- package/src/lib/shared/utils/hooks/useThrottle/index.d.ts +1 -0
- package/src/lib/shared/utils/hooks/useThrottle/useThrottle.cjs +29 -0
- package/src/lib/shared/utils/hooks/useThrottle/useThrottle.d.ts +8 -0
- package/src/lib/shared/utils/hooks/useThrottle/useThrottle.js +25 -0
- package/src/lib/utils/functions/getWalletIdentifier/getWalletIdentifier.cjs +7 -0
- package/src/lib/utils/functions/getWalletIdentifier/getWalletIdentifier.d.ts +2 -0
- package/src/lib/utils/functions/getWalletIdentifier/getWalletIdentifier.js +3 -0
- package/src/lib/utils/functions/getWalletIdentifier/index.d.ts +1 -0
- package/src/lib/utils/functions/index.d.ts +5 -3
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +13 -2
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +13 -2
- package/src/lib/utils/hooks/useColorSchemePreference/useColorSchemePreference.cjs +1 -1
- package/src/lib/utils/hooks/useColorSchemePreference/useColorSchemePreference.js +1 -1
- package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.cjs +1 -1
- package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.js +1 -1
- package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.cjs +1 -1
- package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.js +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +14 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +14 -6
- package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +15 -1
- package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +16 -2
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +7 -1
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.d.ts +4 -2
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +7 -1
- package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.cjs +1 -1
- package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.js +1 -1
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +1 -1
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +1 -1
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +1 -1
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +1 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -1
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +2 -1
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +2 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.cjs +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.js +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/verifyZeroDevIsSetup.cjs +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/verifyZeroDevIsSetup.js +1 -1
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +8 -4
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +8 -4
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +4 -3
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +4 -3
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +1 -1
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +1 -1
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.cjs +67 -43
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.d.ts +5 -7
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.js +68 -44
- package/src/lib/views/LoginView/sections/SocialSignInSection/SocialSignInSection.cjs +1 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/SocialSignInSection.js +1 -1
- package/src/lib/views/LoginView/useLoginView.cjs +1 -1
- package/src/lib/views/LoginView/useLoginView.js +1 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.js +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.cjs +2 -2
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.js +2 -2
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +1 -1
- package/src/lib/views/QrCodeView/QrCodeView.cjs +1 -1
- package/src/lib/views/QrCodeView/QrCodeView.js +1 -1
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +2 -2
- package/src/lib/widgets/DynamicWidget/components/WalletIconWithStatus/WalletIconWithStatus.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/components/WalletIconWithStatus/WalletIconWithStatus.js +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +1 -6
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +1 -6
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Dispatch, SetStateAction } from 'react';
|
|
2
2
|
import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api';
|
|
3
|
-
import { UserProfile, Wallet } from '../../../shared';
|
|
3
|
+
import { DynamicEventsCallbacks, UserProfile, Wallet } from '../../../shared';
|
|
4
4
|
type UseHandleUnlinkProps = {
|
|
5
5
|
environmentId: string;
|
|
6
6
|
primaryWalletId: string | undefined;
|
|
7
7
|
secondaryWallets: Wallet[];
|
|
8
8
|
setUser: Dispatch<SetStateAction<UserProfile | undefined>>;
|
|
9
9
|
verifiedCredentials: JwtVerifiedCredential[];
|
|
10
|
+
eventsCallbacks: DynamicEventsCallbacks | undefined;
|
|
11
|
+
user: UserProfile | undefined;
|
|
10
12
|
};
|
|
11
|
-
export declare const useHandleUnlinkWallet: ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }: UseHandleUnlinkProps) => (walletId: string) => Promise<void>;
|
|
13
|
+
export declare const useHandleUnlinkWallet: ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, user, eventsCallbacks, }: UseHandleUnlinkProps) => (walletId: string) => Promise<void>;
|
|
12
14
|
export {};
|
|
@@ -16,7 +16,7 @@ import '../../../shared/consts/index.js';
|
|
|
16
16
|
import { handleUnlinkHelper } from '../../functions/handleUnlinkHelper/handleUnlinkHelper.js';
|
|
17
17
|
import { isSameWalletName } from '../../functions/isSameWalletName/isSameWalletName.js';
|
|
18
18
|
|
|
19
|
-
const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }) => {
|
|
19
|
+
const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, user, eventsCallbacks, }) => {
|
|
20
20
|
const callback = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
21
|
var _a;
|
|
22
22
|
// when we call handleUnlinkWallet on the same execution stack as setPrimaryWallet, the value of
|
|
@@ -31,6 +31,7 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
|
|
|
31
31
|
const currentPrimaryWalletId = (_a = LocalStorage.getFromLS(PRIMARY_WALLET_ID)) !== null && _a !== void 0 ? _a : primaryWalletId;
|
|
32
32
|
if (walletId === currentPrimaryWalletId)
|
|
33
33
|
return;
|
|
34
|
+
const vcWalletFromId = user === null || user === void 0 ? void 0 : user.verifiedCredentials.find((wallet) => wallet.id === walletId);
|
|
34
35
|
const newUser = yield handleUnlinkHelper({
|
|
35
36
|
environmentId,
|
|
36
37
|
primaryWalletId: currentPrimaryWalletId,
|
|
@@ -46,12 +47,17 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
|
|
|
46
47
|
if (numberOfLinkedWallets === 1) {
|
|
47
48
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
|
|
48
49
|
}
|
|
50
|
+
if (vcWalletFromId && (eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUnlinkSuccess)) {
|
|
51
|
+
eventsCallbacks.onUnlinkSuccess(vcWalletFromId);
|
|
52
|
+
}
|
|
49
53
|
}), [
|
|
50
54
|
primaryWalletId,
|
|
51
55
|
environmentId,
|
|
52
56
|
secondaryWallets,
|
|
53
57
|
setUser,
|
|
54
58
|
verifiedCredentials,
|
|
59
|
+
eventsCallbacks,
|
|
60
|
+
user,
|
|
55
61
|
]);
|
|
56
62
|
return callback;
|
|
57
63
|
};
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
6
6
|
var useOnlyConnectedMode = require('../useOnlyConnectedMode/useOnlyConnectedMode.cjs');
|
|
7
7
|
var getUserProfileFields = require('../../functions/getUserProfileFields/getUserProfileFields.cjs');
|
|
8
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
8
9
|
require('@dynamic-labs/sdk-api');
|
|
9
10
|
require('../../../shared/logger.cjs');
|
|
10
11
|
require('@dynamic-labs/iconic');
|
|
11
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
12
12
|
require('react/jsx-runtime');
|
|
13
13
|
require('../../../context/ViewContext/ViewContext.cjs');
|
|
14
14
|
require('react');
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
2
2
|
import { useOnlyConnectedMode } from '../useOnlyConnectedMode/useOnlyConnectedMode.js';
|
|
3
3
|
import { getUserProfileFields } from '../../functions/getUserProfileFields/getUserProfileFields.js';
|
|
4
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
4
5
|
import '@dynamic-labs/sdk-api';
|
|
5
6
|
import '../../../shared/logger.js';
|
|
6
7
|
import '@dynamic-labs/iconic';
|
|
7
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
8
8
|
import 'react/jsx-runtime';
|
|
9
9
|
import '../../../context/ViewContext/ViewContext.js';
|
|
10
10
|
import 'react';
|
|
@@ -7,10 +7,10 @@ var React = require('react');
|
|
|
7
7
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
8
8
|
var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
|
|
9
9
|
var constants = require('../../../views/Passkey/PasskeyRecovery/constants.cjs');
|
|
10
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
10
11
|
require('@dynamic-labs/sdk-api');
|
|
11
12
|
require('../../../shared/logger.cjs');
|
|
12
13
|
require('@dynamic-labs/iconic');
|
|
13
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
14
14
|
require('react/jsx-runtime');
|
|
15
15
|
require('@dynamic-labs/wallet-book');
|
|
16
16
|
require('../../constants/colors.cjs');
|
|
@@ -3,10 +3,10 @@ import { useCallback } from 'react';
|
|
|
3
3
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
4
4
|
import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
|
|
5
5
|
import { iframeContainerId } from '../../../views/Passkey/PasskeyRecovery/constants.js';
|
|
6
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
6
7
|
import '@dynamic-labs/sdk-api';
|
|
7
8
|
import '../../../shared/logger.js';
|
|
8
9
|
import '@dynamic-labs/iconic';
|
|
9
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
10
10
|
import 'react/jsx-runtime';
|
|
11
11
|
import '@dynamic-labs/wallet-book';
|
|
12
12
|
import '../../constants/colors.js';
|
|
@@ -8,10 +8,10 @@ var types = require('@dynamic-labs/types');
|
|
|
8
8
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
9
9
|
var api = require('../../../data/api.cjs');
|
|
10
10
|
var useUpdateUserProfileByJWTCallback = require('../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.cjs');
|
|
11
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
11
12
|
require('@dynamic-labs/sdk-api');
|
|
12
13
|
require('../../../shared/logger.cjs');
|
|
13
14
|
require('@dynamic-labs/iconic');
|
|
14
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
15
15
|
require('react/jsx-runtime');
|
|
16
16
|
require('../../../context/ViewContext/ViewContext.cjs');
|
|
17
17
|
require('@dynamic-labs/wallet-book');
|
|
@@ -4,10 +4,10 @@ import { SocialOAuthErrorCode } from '@dynamic-labs/types';
|
|
|
4
4
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
5
5
|
import { unlinkOAuth } from '../../../data/api.js';
|
|
6
6
|
import { useUpdateUserProfileByJWTCallback } from '../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.js';
|
|
7
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
7
8
|
import '@dynamic-labs/sdk-api';
|
|
8
9
|
import '../../../shared/logger.js';
|
|
9
10
|
import '@dynamic-labs/iconic';
|
|
10
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
11
11
|
import 'react/jsx-runtime';
|
|
12
12
|
import '../../../context/ViewContext/ViewContext.js';
|
|
13
13
|
import '@dynamic-labs/wallet-book';
|
|
@@ -10,11 +10,11 @@ var utils = require('@dynamic-labs/utils');
|
|
|
10
10
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
11
11
|
var api = require('../../../data/api.cjs');
|
|
12
12
|
var useUpdateUserProfileByJWTCallback = require('../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.cjs');
|
|
13
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
13
14
|
var digestSHA256 = require('../../functions/digestSHA256/digestSHA256.cjs');
|
|
14
15
|
var encodeBase64URL = require('../../functions/encodeBase64URL/encodeBase64URL.cjs');
|
|
15
16
|
var decodeJwt = require('../../../shared/utils/functions/decodeJwt/decodeJwt.cjs');
|
|
16
17
|
require('@dynamic-labs/iconic');
|
|
17
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
18
18
|
require('react/jsx-runtime');
|
|
19
19
|
var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
|
|
20
20
|
var logger = require('../../../shared/logger.cjs');
|
|
@@ -6,11 +6,11 @@ import { isMobile, SocialAccountAlreadyExistsError, NoAccessError } from '@dynam
|
|
|
6
6
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
7
7
|
import { getOAuthResult, verifyOAuth, signInOAuth } from '../../../data/api.js';
|
|
8
8
|
import { useUpdateUserProfileByJWTCallback } from '../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.js';
|
|
9
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
9
10
|
import { digestSHA256 } from '../../functions/digestSHA256/digestSHA256.js';
|
|
10
11
|
import { encodeBase64URL } from '../../functions/encodeBase64URL/encodeBase64URL.js';
|
|
11
12
|
import { decodeJwt } from '../../../shared/utils/functions/decodeJwt/decodeJwt.js';
|
|
12
13
|
import '@dynamic-labs/iconic';
|
|
13
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
14
14
|
import 'react/jsx-runtime';
|
|
15
15
|
import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
|
|
16
16
|
import { logger } from '../../../shared/logger.js';
|
|
@@ -38,7 +38,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
38
38
|
const { setExistentAccountData } = AccountExistsContext.useAccountExistsContext();
|
|
39
39
|
const { setView, goToInitialView } = ViewContext.useViewContext();
|
|
40
40
|
const { setErrorMessage, setError } = ErrorContext.useErrorContext();
|
|
41
|
-
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, primaryWallet, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
41
|
+
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, primaryWallet, setMultiWalletWidgetState, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
42
42
|
// If the user is not already logged it means that we only need to verify
|
|
43
43
|
// We need this boolean for the part of the logic where we already persisted a new authToken,
|
|
44
44
|
// and need to distinguish between logic for verify or linking.
|
|
@@ -179,6 +179,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
179
179
|
}
|
|
180
180
|
index.storeAuthToken(Jwt);
|
|
181
181
|
setOnboardingOnlyJwt(undefined);
|
|
182
|
+
setMultiWalletWidgetState('idle');
|
|
182
183
|
setUser(user); // The user should only be set if no KYC is needed.
|
|
183
184
|
setShowAuthFlow(false);
|
|
184
185
|
/* istanbul ignore else */
|
|
@@ -34,7 +34,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
34
34
|
const { setExistentAccountData } = useAccountExistsContext();
|
|
35
35
|
const { setView, goToInitialView } = useViewContext();
|
|
36
36
|
const { setErrorMessage, setError } = useErrorContext();
|
|
37
|
-
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, primaryWallet, } = useInternalDynamicContext();
|
|
37
|
+
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallets, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, eventsCallbacks, primaryWallet, setMultiWalletWidgetState, } = useInternalDynamicContext();
|
|
38
38
|
// If the user is not already logged it means that we only need to verify
|
|
39
39
|
// We need this boolean for the part of the logic where we already persisted a new authToken,
|
|
40
40
|
// and need to distinguish between logic for verify or linking.
|
|
@@ -175,6 +175,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
|
|
|
175
175
|
}
|
|
176
176
|
storeAuthToken(Jwt);
|
|
177
177
|
setOnboardingOnlyJwt(undefined);
|
|
178
|
+
setMultiWalletWidgetState('idle');
|
|
178
179
|
setUser(user); // The user should only be set if no KYC is needed.
|
|
179
180
|
setShowAuthFlow(false);
|
|
180
181
|
/* istanbul ignore else */
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var sdkApi = require('@dynamic-labs/sdk-api');
|
|
6
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
6
7
|
require('../../../../../shared/logger.cjs');
|
|
7
8
|
require('@dynamic-labs/iconic');
|
|
8
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
9
9
|
require('react/jsx-runtime');
|
|
10
10
|
require('../../../../../context/ViewContext/ViewContext.cjs');
|
|
11
11
|
require('react');
|
package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ProviderEnum } from '@dynamic-labs/sdk-api';
|
|
2
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
2
3
|
import '../../../../../shared/logger.js';
|
|
3
4
|
import '@dynamic-labs/iconic';
|
|
4
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
6
6
|
import '../../../../../context/ViewContext/ViewContext.js';
|
|
7
7
|
import 'react';
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var sdkApi = require('@dynamic-labs/sdk-api');
|
|
6
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
6
7
|
require('../../../../../shared/logger.cjs');
|
|
7
8
|
require('@dynamic-labs/iconic');
|
|
8
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
9
9
|
require('react/jsx-runtime');
|
|
10
10
|
require('../../../../../context/ViewContext/ViewContext.cjs');
|
|
11
11
|
require('react');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ProviderEnum } from '@dynamic-labs/sdk-api';
|
|
2
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
2
3
|
import '../../../../../shared/logger.js';
|
|
3
4
|
import '@dynamic-labs/iconic';
|
|
4
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
6
6
|
import '../../../../../context/ViewContext/ViewContext.js';
|
|
7
7
|
import 'react';
|
|
@@ -17,6 +17,8 @@ require('../../constants/colors.cjs');
|
|
|
17
17
|
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
18
18
|
require('viem');
|
|
19
19
|
require('../../../shared/consts/index.cjs');
|
|
20
|
+
require('@dynamic-labs/multi-wallet');
|
|
21
|
+
var getWalletIdentifier = require('../../functions/getWalletIdentifier/getWalletIdentifier.cjs');
|
|
20
22
|
var isSameWalletName = require('../../functions/isSameWalletName/isSameWalletName.cjs');
|
|
21
23
|
var useWalletsConnectionState = require('../useWalletsConnectionState/useWalletsConnectionState.cjs');
|
|
22
24
|
var reconnectSocialWallet = require('./reconnectSocialWallet.cjs');
|
|
@@ -64,13 +66,15 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
|
|
|
64
66
|
React.useEffect(() => walletsBasedOnAuthMode.forEach((wallet) => {
|
|
65
67
|
wallet.connector.initEventListener();
|
|
66
68
|
}), [walletsBasedOnAuthMode]);
|
|
67
|
-
const {
|
|
68
|
-
const wallets = React.useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(
|
|
69
|
+
const { connectedWalletsMap, didConnectedStateLoad } = useWalletsConnectionState.useWalletsConnectionState(walletsBasedOnAuthMode);
|
|
70
|
+
const wallets = React.useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletsMap[getWalletIdentifier.getWalletIdentifier(wallet)]) }))), [connectedWalletsMap, walletsBasedOnAuthMode]);
|
|
69
71
|
const { setUserWallets } = UserWalletsContext.useInternalUserWallets();
|
|
70
72
|
// Keep userWallets in sync whenever linkedWallets changes
|
|
71
73
|
React.useEffect(() => {
|
|
74
|
+
if (!didConnectedStateLoad.current)
|
|
75
|
+
return;
|
|
72
76
|
setUserWallets((userWallets) => updateUserWalletsFromLinkedWallets.updateUserWalletsFromLinkedWallets(userWallets, wallets));
|
|
73
|
-
}, [setUserWallets, wallets]);
|
|
77
|
+
}, [didConnectedStateLoad, setUserWallets, wallets]);
|
|
74
78
|
const primaryWallet = React.useMemo(() => { var _a; return (_a = wallets.find((wallet) => wallet.id === primaryWalletId)) !== null && _a !== void 0 ? _a : null; }, [primaryWalletId, wallets]);
|
|
75
79
|
const secondaryWallets = React.useMemo(() => canHaveMultipleWalletsConnected
|
|
76
80
|
? wallets.filter((wallet) => wallet.id !== primaryWalletId)
|
|
@@ -169,7 +173,7 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
|
|
|
169
173
|
setQrcodeUri,
|
|
170
174
|
]);
|
|
171
175
|
return {
|
|
172
|
-
didConnectedStateLoad,
|
|
176
|
+
didConnectedStateLoad: didConnectedStateLoad.current,
|
|
173
177
|
primaryWallet,
|
|
174
178
|
secondaryWallets,
|
|
175
179
|
setPrimaryWallet,
|
|
@@ -13,6 +13,8 @@ import '../../constants/colors.js';
|
|
|
13
13
|
import '../../../shared/utils/classes/storage/localStorage.js';
|
|
14
14
|
import 'viem';
|
|
15
15
|
import '../../../shared/consts/index.js';
|
|
16
|
+
import '@dynamic-labs/multi-wallet';
|
|
17
|
+
import { getWalletIdentifier } from '../../functions/getWalletIdentifier/getWalletIdentifier.js';
|
|
16
18
|
import { isSameWalletName } from '../../functions/isSameWalletName/isSameWalletName.js';
|
|
17
19
|
import { useWalletsConnectionState } from '../useWalletsConnectionState/useWalletsConnectionState.js';
|
|
18
20
|
import { reconnectSocialWallet } from './reconnectSocialWallet.js';
|
|
@@ -60,13 +62,15 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
|
|
|
60
62
|
useEffect(() => walletsBasedOnAuthMode.forEach((wallet) => {
|
|
61
63
|
wallet.connector.initEventListener();
|
|
62
64
|
}), [walletsBasedOnAuthMode]);
|
|
63
|
-
const {
|
|
64
|
-
const wallets = useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(
|
|
65
|
+
const { connectedWalletsMap, didConnectedStateLoad } = useWalletsConnectionState(walletsBasedOnAuthMode);
|
|
66
|
+
const wallets = useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletsMap[getWalletIdentifier(wallet)]) }))), [connectedWalletsMap, walletsBasedOnAuthMode]);
|
|
65
67
|
const { setUserWallets } = useInternalUserWallets();
|
|
66
68
|
// Keep userWallets in sync whenever linkedWallets changes
|
|
67
69
|
useEffect(() => {
|
|
70
|
+
if (!didConnectedStateLoad.current)
|
|
71
|
+
return;
|
|
68
72
|
setUserWallets((userWallets) => updateUserWalletsFromLinkedWallets(userWallets, wallets));
|
|
69
|
-
}, [setUserWallets, wallets]);
|
|
73
|
+
}, [didConnectedStateLoad, setUserWallets, wallets]);
|
|
70
74
|
const primaryWallet = useMemo(() => { var _a; return (_a = wallets.find((wallet) => wallet.id === primaryWalletId)) !== null && _a !== void 0 ? _a : null; }, [primaryWalletId, wallets]);
|
|
71
75
|
const secondaryWallets = useMemo(() => canHaveMultipleWalletsConnected
|
|
72
76
|
? wallets.filter((wallet) => wallet.id !== primaryWalletId)
|
|
@@ -165,7 +169,7 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
|
|
|
165
169
|
setQrcodeUri,
|
|
166
170
|
]);
|
|
167
171
|
return {
|
|
168
|
-
didConnectedStateLoad,
|
|
172
|
+
didConnectedStateLoad: didConnectedStateLoad.current,
|
|
169
173
|
primaryWallet,
|
|
170
174
|
secondaryWallets,
|
|
171
175
|
setPrimaryWallet,
|
|
@@ -65,12 +65,13 @@ const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetS
|
|
|
65
65
|
if (!primaryWallet)
|
|
66
66
|
return;
|
|
67
67
|
const [newAddress] = accounts;
|
|
68
|
-
const
|
|
69
|
-
if (authMode === 'connect-only') {
|
|
68
|
+
const changedAddress = !walletConnectorCore.isSameAddress(newAddress, primaryWallet.address, primaryWallet.chain);
|
|
69
|
+
if (changedAddress && authMode === 'connect-only') {
|
|
70
70
|
refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
const newWallet = secondaryWallets.find((wallet) => walletConnectorCore.isSameAddress(wallet.address, newAddress, wallet.chain));
|
|
74
|
+
if (!changedAddress) {
|
|
74
75
|
setMultiWalletWidgetState('idle');
|
|
75
76
|
}
|
|
76
77
|
else if (!multiWallet) {
|
|
@@ -61,12 +61,13 @@ const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetS
|
|
|
61
61
|
if (!primaryWallet)
|
|
62
62
|
return;
|
|
63
63
|
const [newAddress] = accounts;
|
|
64
|
-
const
|
|
65
|
-
if (authMode === 'connect-only') {
|
|
64
|
+
const changedAddress = !isSameAddress(newAddress, primaryWallet.address, primaryWallet.chain);
|
|
65
|
+
if (changedAddress && authMode === 'connect-only') {
|
|
66
66
|
refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
|
-
|
|
69
|
+
const newWallet = secondaryWallets.find((wallet) => isSameAddress(wallet.address, newAddress, wallet.chain));
|
|
70
|
+
if (!changedAddress) {
|
|
70
71
|
setMultiWalletWidgetState('idle');
|
|
71
72
|
}
|
|
72
73
|
else if (!multiWallet) {
|
|
@@ -8,10 +8,10 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useInte
|
|
|
8
8
|
var ErrorContext = require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
9
9
|
var MockContext = require('../../../context/MockContext/MockContext.cjs');
|
|
10
10
|
var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
|
|
11
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
11
12
|
require('@dynamic-labs/sdk-api');
|
|
12
13
|
require('../../../shared/logger.cjs');
|
|
13
14
|
require('@dynamic-labs/iconic');
|
|
14
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
15
15
|
require('react/jsx-runtime');
|
|
16
16
|
require('react');
|
|
17
17
|
require('@dynamic-labs/wallet-book');
|
|
@@ -4,10 +4,10 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useIn
|
|
|
4
4
|
import { useErrorContext } from '../../../context/ErrorContext/ErrorContext.js';
|
|
5
5
|
import { useMockContext } from '../../../context/MockContext/MockContext.js';
|
|
6
6
|
import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
|
|
7
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
7
8
|
import '@dynamic-labs/sdk-api';
|
|
8
9
|
import '../../../shared/logger.js';
|
|
9
10
|
import '@dynamic-labs/iconic';
|
|
10
|
-
import '@dynamic-labs/wallet-connector-core';
|
|
11
11
|
import 'react/jsx-runtime';
|
|
12
12
|
import 'react';
|
|
13
13
|
import '@dynamic-labs/wallet-book';
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
6
|
var React = require('react');
|
|
7
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
7
8
|
require('@dynamic-labs/sdk-api');
|
|
8
|
-
|
|
9
|
+
require('../../../shared/logger.cjs');
|
|
9
10
|
require('@dynamic-labs/iconic');
|
|
10
|
-
require('@dynamic-labs/wallet-connector-core');
|
|
11
11
|
require('react/jsx-runtime');
|
|
12
12
|
require('../../../context/ViewContext/ViewContext.cjs');
|
|
13
13
|
require('@dynamic-labs/wallet-book');
|
|
@@ -15,68 +15,92 @@ require('../../constants/colors.cjs');
|
|
|
15
15
|
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
16
16
|
require('viem');
|
|
17
17
|
require('@dynamic-labs/utils');
|
|
18
|
+
var useThrottle = require('../../../shared/utils/hooks/useThrottle/useThrottle.cjs');
|
|
18
19
|
require('../../../shared/consts/index.cjs');
|
|
19
|
-
var useWalletConnectorEvent = require('../useWalletConnectorEvent/useWalletConnectorEvent.cjs');
|
|
20
20
|
require('@dynamic-labs/multi-wallet');
|
|
21
|
+
var getWalletIdentifier = require('../../functions/getWalletIdentifier/getWalletIdentifier.cjs');
|
|
21
22
|
var isWalletConnected = require('../../functions/isWalletConnected/isWalletConnected.cjs');
|
|
22
23
|
var useEventListener = require('../useEventListener/useEventListener.cjs');
|
|
24
|
+
var useWalletConnectorEvent = require('../useWalletConnectorEvent/useWalletConnectorEvent.cjs');
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
/**
|
|
27
|
+
* For the given wallet array, this returns an object mapping from each wallet's
|
|
28
|
+
* identifier to whether its connector recognizes it as currently connected or not.
|
|
29
|
+
*/
|
|
30
|
+
const getConnectedWalletsMap = (wallets) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
const newMap = {};
|
|
32
|
+
yield Promise.all(wallets.map((wallet) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
newMap[getWalletIdentifier.getWalletIdentifier(wallet)] = yield isWalletConnected.isWalletConnected(wallet);
|
|
34
|
+
})));
|
|
35
|
+
return newMap;
|
|
36
|
+
});
|
|
31
37
|
const useWalletsConnectionState = (wallets) => {
|
|
32
|
-
const [
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
38
|
+
const [connectedWalletsMap, setConnectedWalletsMap] = React.useState({});
|
|
39
|
+
/**
|
|
40
|
+
* Whether the connection map has been loaded off of the current wallet array.
|
|
41
|
+
* Always false for empty wallet arrays.
|
|
42
|
+
*/
|
|
43
|
+
const didConnectedStateLoad = React.useRef(false);
|
|
44
|
+
/**
|
|
45
|
+
* When an accountChanged event is raised, we store the incoming wallet here
|
|
46
|
+
* until it is finally reflected in the wallets prop.
|
|
47
|
+
* During this time we do not update the connectedWalletsMap.
|
|
48
|
+
* This way, we avoid setting the connected state of the primary wallet
|
|
49
|
+
* to false due to a state transition delay.
|
|
50
|
+
*/
|
|
51
|
+
const incomingWalletSwitchAddress = React.useRef(undefined);
|
|
39
52
|
const computeConnectedStateForWallets = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
setState(connectedWalletsMap);
|
|
45
|
-
}), [wallets]);
|
|
46
|
-
const handleOnEventUpdate = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
-
if (!wallets.length)
|
|
48
|
-
return;
|
|
49
|
-
const callTimestamp = new Date().getTime();
|
|
50
|
-
const diffFromLastCall = callTimestamp - lastCallTimestamp.current;
|
|
51
|
-
lastCallTimestamp.current = callTimestamp;
|
|
52
|
-
// getConnectedAccounts trigger accountChanged event for Phantom EVM wallets
|
|
53
|
-
// which causes a loop of calls to this function
|
|
54
|
-
if (diffFromLastCall < 1000) {
|
|
55
|
-
logger.logger.warn('computeConnectedStateForWallets: skipping due too many calls.');
|
|
53
|
+
didConnectedStateLoad.current = false;
|
|
54
|
+
const newMap = yield getConnectedWalletsMap(wallets);
|
|
55
|
+
if (Object.values(newMap).length === 0) {
|
|
56
|
+
setConnectedWalletsMap({});
|
|
56
57
|
return;
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
didConnectedStateLoad.current = true;
|
|
60
|
+
// If there is an incoming account switch and it isn't yet finished,
|
|
61
|
+
// we don't change the map to avoid setting it to a misleading state
|
|
62
|
+
if (incomingWalletSwitchAddress.current) {
|
|
63
|
+
const accountSwitchIsComplete = wallets.some((wallet) => walletConnectorCore.isSameAddress(incomingWalletSwitchAddress.current, wallet.address, wallet.chain));
|
|
64
|
+
if (accountSwitchIsComplete)
|
|
65
|
+
incomingWalletSwitchAddress.current = undefined;
|
|
66
|
+
else
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
setConnectedWalletsMap(newMap);
|
|
70
|
+
}), [wallets]);
|
|
71
|
+
/** A string that is unique for each possible value of the wallets prop */
|
|
72
|
+
const walletsHash = wallets.map(getWalletIdentifier.getWalletIdentifier).join('-');
|
|
73
|
+
const connectors = wallets.map(({ connector }) => connector);
|
|
74
|
+
// getConnectedAccounts trigger accountChanged event for Phantom EVM wallets
|
|
75
|
+
// which causes a loop of calls to this function, so we throttle it
|
|
76
|
+
const handleEvent = useThrottle.useThrottle(() => {
|
|
77
|
+
if (walletsHash)
|
|
78
|
+
computeConnectedStateForWallets();
|
|
79
|
+
}, 1000);
|
|
80
|
+
const onAccountChange = ({ accounts }) => {
|
|
81
|
+
incomingWalletSwitchAddress.current = accounts[0];
|
|
82
|
+
handleEvent();
|
|
83
|
+
};
|
|
84
|
+
useWalletConnectorEvent.useWalletConnectorEvent(connectors, 'accountChange', onAccountChange);
|
|
85
|
+
useWalletConnectorEvent.useWalletConnectorEvent(connectors, 'disconnect', handleEvent);
|
|
86
|
+
useWalletConnectorEvent.useWalletConnectorEvent(connectors, 'chainChange', handleEvent);
|
|
63
87
|
React.useEffect(() => {
|
|
64
88
|
computeConnectedStateForWallets();
|
|
65
89
|
},
|
|
66
90
|
/**
|
|
67
|
-
* This is using a custom key to force the useEffect to run only when
|
|
68
|
-
*
|
|
91
|
+
* This is using a custom key to force the useEffect to run only when the ids of the
|
|
92
|
+
* wallets change.
|
|
69
93
|
*/
|
|
70
94
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
71
|
-
[
|
|
95
|
+
[walletsHash]);
|
|
72
96
|
/**
|
|
73
97
|
* This is a workaround to detect when the user switches to another tab/extension
|
|
74
98
|
* and then comes back to the dapp.
|
|
75
99
|
*/
|
|
76
100
|
useEventListener.useEventListener('focus', computeConnectedStateForWallets);
|
|
77
101
|
return {
|
|
78
|
-
|
|
79
|
-
didConnectedStateLoad
|
|
102
|
+
connectedWalletsMap,
|
|
103
|
+
didConnectedStateLoad,
|
|
80
104
|
};
|
|
81
105
|
};
|
|
82
106
|
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
1
2
|
import { Wallet } from '../../../shared';
|
|
2
|
-
type
|
|
3
|
-
|
|
4
|
-
connectedWalletsMap: {
|
|
5
|
-
[address: string]: boolean;
|
|
6
|
-
};
|
|
3
|
+
type ConnectedWalletsMap = {
|
|
4
|
+
[address: string]: boolean;
|
|
7
5
|
};
|
|
8
6
|
type WalletsConnectionStateHook = (wallets: Wallet[]) => {
|
|
9
|
-
|
|
10
|
-
didConnectedStateLoad:
|
|
7
|
+
connectedWalletsMap: ConnectedWalletsMap;
|
|
8
|
+
didConnectedStateLoad: MutableRefObject<boolean>;
|
|
11
9
|
};
|
|
12
10
|
export declare const useWalletsConnectionState: WalletsConnectionStateHook;
|
|
13
11
|
export {};
|