@dynamic-labs/sdk-react-core 2.2.8 → 2.2.10
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 +1 -1
- package/package.js +1 -1
- package/package.json +13 -13
- package/src/lib/shared/utils/functions/shortenEmail/shortenEmail.d.ts +6 -0
- package/src/lib/utils/functions/isMultiAssetSupportedNetwork/isMultiAssetSupportedNetwork.cjs +4 -3
- package/src/lib/utils/functions/isMultiAssetSupportedNetwork/isMultiAssetSupportedNetwork.js +4 -3
- package/src/lib/utils/functions/validatePhoneLength/validatePhoneLength.cjs +2 -7
- package/src/lib/utils/functions/validatePhoneLength/validatePhoneLength.d.ts +1 -1
- package/src/lib/utils/functions/validatePhoneLength/validatePhoneLength.js +3 -8
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +45 -45
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +45 -45
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +17 -16
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +17 -16
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.cjs +6 -4
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.js +6 -4
- package/src/lib/views/FarcasterConnectView/FarcasterConnectView.cjs +3 -2
- package/src/lib/views/FarcasterConnectView/FarcasterConnectView.js +3 -2
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +5 -1
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +5 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.cjs +3 -2
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.js +3 -2
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js +1 -1
- package/src/lib/utils/functions/isWalletLinked/isWalletLinked.cjs +0 -16
- package/src/lib/utils/functions/isWalletLinked/isWalletLinked.js +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
|
|
2
|
+
### [2.2.10](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.9...v2.2.10) (2024-07-05)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* Allow user to close connect wallet modal to cancel making a wallet primary. ([#6251](https://github.com/dynamic-labs/DynamicAuth/issues/6251)) ([5a53fac](https://github.com/dynamic-labs/DynamicAuth/commit/5a53fac6e3e77de880e3fe5619b0c2be32fe5a92))
|
|
8
|
+
* Use white color in farcaster qr code when in dark mode to improve scanning. ([#6247](https://github.com/dynamic-labs/DynamicAuth/issues/6247)) ([1967bd7](https://github.com/dynamic-labs/DynamicAuth/commit/1967bd71423ae03c73fdce53adc41ad01f09a52e))
|
|
9
|
+
|
|
10
|
+
### [2.2.9](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.8...v2.2.9) (2024-07-04)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add solana support for multi-asset ([#6239](https://github.com/dynamic-labs/DynamicAuth/issues/6239)) ([4e9a924](https://github.com/dynamic-labs/DynamicAuth/commit/4e9a92464253d60fce1542ca38664330e74cf4d6)), closes [#6222](https://github.com/dynamic-labs/DynamicAuth/issues/6222)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* relax phone number length validation ([#6226](https://github.com/dynamic-labs/DynamicAuth/issues/6226)) ([#6231](https://github.com/dynamic-labs/DynamicAuth/issues/6231)) ([2419441](https://github.com/dynamic-labs/DynamicAuth/commit/2419441f471a5edc3c0e831e24840d9d85d4a570))
|
|
21
|
+
* set last active account on accountChange request ([#6218](https://github.com/dynamic-labs/DynamicAuth/issues/6218)) ([#6228](https://github.com/dynamic-labs/DynamicAuth/issues/6228)) ([1842445](https://github.com/dynamic-labs/DynamicAuth/commit/184244535faeaea09f55ef0c0a62a4ace41432c7))
|
|
22
|
+
* stop auto-switching to connected secondary wallet if primary wallet is not connected ([#6196](https://github.com/dynamic-labs/DynamicAuth/issues/6196)) ([#6233](https://github.com/dynamic-labs/DynamicAuth/issues/6233)) ([82fd872](https://github.com/dynamic-labs/DynamicAuth/commit/82fd87251758b39c31dd334abc85dc05a7e8affa))
|
|
23
|
+
|
|
2
24
|
### [2.2.8](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.7...v2.2.8) (2024-07-01)
|
|
3
25
|
|
|
4
26
|
|
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": "2.2.
|
|
3
|
+
"version": "2.2.10",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -17,18 +17,18 @@
|
|
|
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": "2.2.
|
|
21
|
-
"@dynamic-labs/logger": "2.2.
|
|
22
|
-
"@dynamic-labs/multi-wallet": "2.2.
|
|
23
|
-
"@dynamic-labs/rpc-provider-ethereum": "2.2.
|
|
24
|
-
"@dynamic-labs/rpc-provider-solana": "2.2.
|
|
25
|
-
"@dynamic-labs/rpc-providers": "2.2.
|
|
26
|
-
"@dynamic-labs/store": "2.2.
|
|
27
|
-
"@dynamic-labs/types": "2.2.
|
|
28
|
-
"@dynamic-labs/utils": "2.2.
|
|
29
|
-
"@dynamic-labs/viem-utils": "2.2.
|
|
30
|
-
"@dynamic-labs/wallet-book": "2.2.
|
|
31
|
-
"@dynamic-labs/wallet-connector-core": "2.2.
|
|
20
|
+
"@dynamic-labs/iconic": "2.2.10",
|
|
21
|
+
"@dynamic-labs/logger": "2.2.10",
|
|
22
|
+
"@dynamic-labs/multi-wallet": "2.2.10",
|
|
23
|
+
"@dynamic-labs/rpc-provider-ethereum": "2.2.10",
|
|
24
|
+
"@dynamic-labs/rpc-provider-solana": "2.2.10",
|
|
25
|
+
"@dynamic-labs/rpc-providers": "2.2.10",
|
|
26
|
+
"@dynamic-labs/store": "2.2.10",
|
|
27
|
+
"@dynamic-labs/types": "2.2.10",
|
|
28
|
+
"@dynamic-labs/utils": "2.2.10",
|
|
29
|
+
"@dynamic-labs/viem-utils": "2.2.10",
|
|
30
|
+
"@dynamic-labs/wallet-book": "2.2.10",
|
|
31
|
+
"@dynamic-labs/wallet-connector-core": "2.2.10",
|
|
32
32
|
"eventemitter3": "5.0.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
package/src/lib/utils/functions/isMultiAssetSupportedNetwork/isMultiAssetSupportedNetwork.cjs
CHANGED
|
@@ -7,9 +7,10 @@ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
|
7
7
|
var constants = require('./constants.cjs');
|
|
8
8
|
|
|
9
9
|
const isMultiAssetSupportedNetwork = (walletConnector, network) => {
|
|
10
|
-
const isNetworkMultiAssetSupported = (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === sdkApiCore.ChainEnum.
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const isNetworkMultiAssetSupported = (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === sdkApiCore.ChainEnum.Sol ||
|
|
11
|
+
((walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === sdkApiCore.ChainEnum.Evm &&
|
|
12
|
+
typeof network === 'number' &&
|
|
13
|
+
constants.MULTI_ASSET_SUPPORTED_NETWORKS.includes(network));
|
|
13
14
|
return Boolean(isNetworkMultiAssetSupported);
|
|
14
15
|
};
|
|
15
16
|
|
package/src/lib/utils/functions/isMultiAssetSupportedNetwork/isMultiAssetSupportedNetwork.js
CHANGED
|
@@ -3,9 +3,10 @@ import { ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
|
3
3
|
import { MULTI_ASSET_SUPPORTED_NETWORKS } from './constants.js';
|
|
4
4
|
|
|
5
5
|
const isMultiAssetSupportedNetwork = (walletConnector, network) => {
|
|
6
|
-
const isNetworkMultiAssetSupported = (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === ChainEnum.
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const isNetworkMultiAssetSupported = (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === ChainEnum.Sol ||
|
|
7
|
+
((walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === ChainEnum.Evm &&
|
|
8
|
+
typeof network === 'number' &&
|
|
9
|
+
MULTI_ASSET_SUPPORTED_NETWORKS.includes(network));
|
|
9
10
|
return Boolean(isNetworkMultiAssetSupported);
|
|
10
11
|
};
|
|
11
12
|
|
|
@@ -5,12 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var reactInternationalPhone = require('react-international-phone');
|
|
7
7
|
|
|
8
|
-
/** Whether phone number
|
|
9
|
-
const validatePhoneLength = (phone, country) => reactInternationalPhone.removeDialCode({ dialCode: country.dialCode, phone }).length
|
|
10
|
-
reactInternationalPhone.getActiveFormattingMask({
|
|
11
|
-
country,
|
|
12
|
-
disableFormatting: true,
|
|
13
|
-
phone,
|
|
14
|
-
}).length;
|
|
8
|
+
/** Whether phone number is not empty */
|
|
9
|
+
const validatePhoneLength = (phone, country) => reactInternationalPhone.removeDialCode({ dialCode: country.dialCode, phone }).length > 0;
|
|
15
10
|
|
|
16
11
|
exports.validatePhoneLength = validatePhoneLength;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ParsedCountry } from 'react-international-phone';
|
|
2
|
-
/** Whether phone number
|
|
2
|
+
/** Whether phone number is not empty */
|
|
3
3
|
export declare const validatePhoneLength: (phone: string, country: ParsedCountry) => boolean;
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import { removeDialCode
|
|
2
|
+
import { removeDialCode } from 'react-international-phone';
|
|
3
3
|
|
|
4
|
-
/** Whether phone number
|
|
5
|
-
const validatePhoneLength = (phone, country) => removeDialCode({ dialCode: country.dialCode, phone }).length
|
|
6
|
-
getActiveFormattingMask({
|
|
7
|
-
country,
|
|
8
|
-
disableFormatting: true,
|
|
9
|
-
phone,
|
|
10
|
-
}).length;
|
|
4
|
+
/** Whether phone number is not empty */
|
|
5
|
+
const validatePhoneLength = (phone, country) => removeDialCode({ dialCode: country.dialCode, phone }).length > 0;
|
|
11
6
|
|
|
12
7
|
export { validatePhoneLength };
|
|
@@ -29,6 +29,7 @@ require('viem/chains');
|
|
|
29
29
|
require('../../../../config/ApiEndpoint.cjs');
|
|
30
30
|
require('@dynamic-labs/store');
|
|
31
31
|
require('../../../../locale/locale.cjs');
|
|
32
|
+
var logVerboseTroubleshootingMessage = require('../../../functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.cjs');
|
|
32
33
|
require('../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
33
34
|
require('../../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
34
35
|
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
@@ -78,63 +79,57 @@ require('../../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
|
|
|
78
79
|
require('../../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
|
|
79
80
|
require('../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
80
81
|
var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
81
|
-
var isWalletLinked = require('../../../functions/isWalletLinked/isWalletLinked.cjs');
|
|
82
82
|
|
|
83
83
|
const useSyncPrimaryWallet = (canSync = true) => {
|
|
84
|
-
const { setShowAuthFlow, isAuthenticated, authMode, connectWallet, handleLogOut, multiWalletWidgetState, primaryWallet,
|
|
84
|
+
const { setShowAuthFlow, isAuthenticated, authMode, connectWallet, handleLogOut, multiWalletWidgetState, primaryWallet, setMultiWalletWidgetState, showLockedWalletView, secondaryWallets, setPrimaryWallet, setSelectedWalletWithAction, multiWallet, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
85
85
|
const { setView } = ViewContext.useViewContext();
|
|
86
86
|
const handlePrimaryWalletNotActive = React.useCallback((connectedAddress) => {
|
|
87
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] handlePrimaryWalletNotActive', {
|
|
88
|
+
authMode,
|
|
89
|
+
connectedAddress,
|
|
90
|
+
primaryWallet: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address,
|
|
91
|
+
});
|
|
87
92
|
if (!primaryWallet)
|
|
88
93
|
return;
|
|
89
94
|
if (authMode === 'connect-only') {
|
|
90
95
|
connectWallet(primaryWallet.connector);
|
|
91
96
|
return;
|
|
92
97
|
}
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
setSelectedWalletWithAction({
|
|
104
|
-
action: 'select',
|
|
105
|
-
wallet: primaryWallet,
|
|
106
|
-
});
|
|
107
|
-
setMultiWalletWidgetState('awaiting_account_switch', 'primary_not_connected');
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
setPrimaryWallet(connectedSecondaryWallet.id);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if (showWidgetStatePopup) {
|
|
114
|
-
// user updates wallet address in the widget
|
|
115
|
-
setShowWidgetStatePopup(false);
|
|
116
|
-
setMultiWalletWidgetState('awaiting_account_switch', 'switching_primary');
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
// !showWidgetStatePopup - user comes back to site with different wallet address
|
|
120
|
-
const connectedWallet = secondaryWallets.find((wallet) => wallet.connected &&
|
|
121
|
-
walletConnectorCore.isSameAddress(wallet.address, connectedAddress, wallet.chain));
|
|
122
|
-
if (connectedWallet) {
|
|
123
|
-
setPrimaryWallet(connectedWallet.id);
|
|
98
|
+
const connectedWalletWithSameProvider = connectedAddress &&
|
|
99
|
+
secondaryWallets.find((wallet) => wallet.connected &&
|
|
100
|
+
wallet.connector.key === primaryWallet.connector.key &&
|
|
101
|
+
walletConnectorCore.isSameAddress(wallet.address, connectedAddress, wallet.chain));
|
|
102
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] handlePrimaryWalletNotActive', {
|
|
103
|
+
connectedWalletWithSameProvider,
|
|
104
|
+
multiWallet,
|
|
105
|
+
});
|
|
106
|
+
if (multiWallet && connectedWalletWithSameProvider) {
|
|
107
|
+
setPrimaryWallet(connectedWalletWithSameProvider.id);
|
|
124
108
|
return;
|
|
125
109
|
}
|
|
126
|
-
|
|
110
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] handlePrimaryWalletNotActive - setSelectedWalletWithAction(primaryWallet)');
|
|
111
|
+
setSelectedWalletWithAction({
|
|
112
|
+
action: 'select',
|
|
113
|
+
wallet: primaryWallet,
|
|
114
|
+
});
|
|
115
|
+
setMultiWalletWidgetState('awaiting_account_switch', 'switching_primary');
|
|
127
116
|
}, [
|
|
128
|
-
primaryWallet,
|
|
129
117
|
authMode,
|
|
118
|
+
primaryWallet,
|
|
130
119
|
secondaryWallets,
|
|
131
|
-
|
|
120
|
+
multiWallet,
|
|
121
|
+
setSelectedWalletWithAction,
|
|
132
122
|
setMultiWalletWidgetState,
|
|
133
|
-
setPrimaryWallet,
|
|
134
|
-
setShowWidgetStatePopup,
|
|
135
123
|
connectWallet,
|
|
124
|
+
setPrimaryWallet,
|
|
136
125
|
]);
|
|
137
126
|
React.useEffect(() => {
|
|
127
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet]', {
|
|
128
|
+
canSync,
|
|
129
|
+
connectedChain: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector.connectedChain,
|
|
130
|
+
multiWalletWidgetState,
|
|
131
|
+
primaryWallet: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address,
|
|
132
|
+
});
|
|
138
133
|
if (!canSync)
|
|
139
134
|
return;
|
|
140
135
|
if (!primaryWallet || multiWalletWidgetState !== 'idle')
|
|
@@ -147,6 +142,10 @@ const useSyncPrimaryWallet = (canSync = true) => {
|
|
|
147
142
|
.getConnectedAccounts()
|
|
148
143
|
.then((accounts) => {
|
|
149
144
|
const [connectedAddress] = accounts;
|
|
145
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts', {
|
|
146
|
+
accounts,
|
|
147
|
+
connectedAddress,
|
|
148
|
+
});
|
|
150
149
|
if (!connectedAddress) {
|
|
151
150
|
throw new utils.DynamicError('Missing wallet address', errors.MISSING_ADDRESS_ERROR);
|
|
152
151
|
}
|
|
@@ -156,31 +155,32 @@ const useSyncPrimaryWallet = (canSync = true) => {
|
|
|
156
155
|
handlePrimaryWalletNotActive(connectedAddress);
|
|
157
156
|
})
|
|
158
157
|
.catch((e) => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
158
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts error', {
|
|
159
|
+
error: e,
|
|
160
|
+
isAuthenticated,
|
|
161
|
+
});
|
|
164
162
|
// user is logged in (has valid jwt), but no wallet is connected
|
|
165
163
|
if (isAuthenticated && e.code === errors.MISSING_ADDRESS_ERROR) {
|
|
166
164
|
if (!primaryWallet.connector.isInstalledOnBrowser()) {
|
|
165
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts error - not installed in browser - will log out');
|
|
167
166
|
handleLogOut();
|
|
168
167
|
return;
|
|
169
168
|
}
|
|
170
169
|
if (showLockedWalletView) {
|
|
170
|
+
logVerboseTroubleshootingMessage.logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts error - will show locked wallet view');
|
|
171
171
|
setShowAuthFlow(true);
|
|
172
172
|
setView('wallet-locked-view');
|
|
173
|
+
return;
|
|
173
174
|
}
|
|
175
|
+
handlePrimaryWalletNotActive();
|
|
174
176
|
}
|
|
175
177
|
});
|
|
176
178
|
}, [
|
|
177
179
|
primaryWallet,
|
|
178
|
-
secondaryWallets,
|
|
179
180
|
multiWalletWidgetState,
|
|
180
181
|
setMultiWalletWidgetState,
|
|
181
182
|
handlePrimaryWalletNotActive,
|
|
182
183
|
handleLogOut,
|
|
183
|
-
setPrimaryWallet,
|
|
184
184
|
canSync,
|
|
185
185
|
setView,
|
|
186
186
|
setShowAuthFlow,
|
|
@@ -25,6 +25,7 @@ import 'viem/chains';
|
|
|
25
25
|
import '../../../../config/ApiEndpoint.js';
|
|
26
26
|
import '@dynamic-labs/store';
|
|
27
27
|
import '../../../../locale/locale.js';
|
|
28
|
+
import { logVerboseTroubleshootingMessage } from '../../../functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.js';
|
|
28
29
|
import '../../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
29
30
|
import '../../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
30
31
|
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
@@ -74,63 +75,57 @@ import '../../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
|
|
|
74
75
|
import '../../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
|
|
75
76
|
import '../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
76
77
|
import { useInternalDynamicContext } from '../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
77
|
-
import { isWalletLinked } from '../../../functions/isWalletLinked/isWalletLinked.js';
|
|
78
78
|
|
|
79
79
|
const useSyncPrimaryWallet = (canSync = true) => {
|
|
80
|
-
const { setShowAuthFlow, isAuthenticated, authMode, connectWallet, handleLogOut, multiWalletWidgetState, primaryWallet,
|
|
80
|
+
const { setShowAuthFlow, isAuthenticated, authMode, connectWallet, handleLogOut, multiWalletWidgetState, primaryWallet, setMultiWalletWidgetState, showLockedWalletView, secondaryWallets, setPrimaryWallet, setSelectedWalletWithAction, multiWallet, } = useInternalDynamicContext();
|
|
81
81
|
const { setView } = useViewContext();
|
|
82
82
|
const handlePrimaryWalletNotActive = useCallback((connectedAddress) => {
|
|
83
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] handlePrimaryWalletNotActive', {
|
|
84
|
+
authMode,
|
|
85
|
+
connectedAddress,
|
|
86
|
+
primaryWallet: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address,
|
|
87
|
+
});
|
|
83
88
|
if (!primaryWallet)
|
|
84
89
|
return;
|
|
85
90
|
if (authMode === 'connect-only') {
|
|
86
91
|
connectWallet(primaryWallet.connector);
|
|
87
92
|
return;
|
|
88
93
|
}
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
setSelectedWalletWithAction({
|
|
100
|
-
action: 'select',
|
|
101
|
-
wallet: primaryWallet,
|
|
102
|
-
});
|
|
103
|
-
setMultiWalletWidgetState('awaiting_account_switch', 'primary_not_connected');
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
setPrimaryWallet(connectedSecondaryWallet.id);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (showWidgetStatePopup) {
|
|
110
|
-
// user updates wallet address in the widget
|
|
111
|
-
setShowWidgetStatePopup(false);
|
|
112
|
-
setMultiWalletWidgetState('awaiting_account_switch', 'switching_primary');
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
// !showWidgetStatePopup - user comes back to site with different wallet address
|
|
116
|
-
const connectedWallet = secondaryWallets.find((wallet) => wallet.connected &&
|
|
117
|
-
isSameAddress(wallet.address, connectedAddress, wallet.chain));
|
|
118
|
-
if (connectedWallet) {
|
|
119
|
-
setPrimaryWallet(connectedWallet.id);
|
|
94
|
+
const connectedWalletWithSameProvider = connectedAddress &&
|
|
95
|
+
secondaryWallets.find((wallet) => wallet.connected &&
|
|
96
|
+
wallet.connector.key === primaryWallet.connector.key &&
|
|
97
|
+
isSameAddress(wallet.address, connectedAddress, wallet.chain));
|
|
98
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] handlePrimaryWalletNotActive', {
|
|
99
|
+
connectedWalletWithSameProvider,
|
|
100
|
+
multiWallet,
|
|
101
|
+
});
|
|
102
|
+
if (multiWallet && connectedWalletWithSameProvider) {
|
|
103
|
+
setPrimaryWallet(connectedWalletWithSameProvider.id);
|
|
120
104
|
return;
|
|
121
105
|
}
|
|
122
|
-
|
|
106
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] handlePrimaryWalletNotActive - setSelectedWalletWithAction(primaryWallet)');
|
|
107
|
+
setSelectedWalletWithAction({
|
|
108
|
+
action: 'select',
|
|
109
|
+
wallet: primaryWallet,
|
|
110
|
+
});
|
|
111
|
+
setMultiWalletWidgetState('awaiting_account_switch', 'switching_primary');
|
|
123
112
|
}, [
|
|
124
|
-
primaryWallet,
|
|
125
113
|
authMode,
|
|
114
|
+
primaryWallet,
|
|
126
115
|
secondaryWallets,
|
|
127
|
-
|
|
116
|
+
multiWallet,
|
|
117
|
+
setSelectedWalletWithAction,
|
|
128
118
|
setMultiWalletWidgetState,
|
|
129
|
-
setPrimaryWallet,
|
|
130
|
-
setShowWidgetStatePopup,
|
|
131
119
|
connectWallet,
|
|
120
|
+
setPrimaryWallet,
|
|
132
121
|
]);
|
|
133
122
|
useEffect(() => {
|
|
123
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet]', {
|
|
124
|
+
canSync,
|
|
125
|
+
connectedChain: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector.connectedChain,
|
|
126
|
+
multiWalletWidgetState,
|
|
127
|
+
primaryWallet: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address,
|
|
128
|
+
});
|
|
134
129
|
if (!canSync)
|
|
135
130
|
return;
|
|
136
131
|
if (!primaryWallet || multiWalletWidgetState !== 'idle')
|
|
@@ -143,6 +138,10 @@ const useSyncPrimaryWallet = (canSync = true) => {
|
|
|
143
138
|
.getConnectedAccounts()
|
|
144
139
|
.then((accounts) => {
|
|
145
140
|
const [connectedAddress] = accounts;
|
|
141
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts', {
|
|
142
|
+
accounts,
|
|
143
|
+
connectedAddress,
|
|
144
|
+
});
|
|
146
145
|
if (!connectedAddress) {
|
|
147
146
|
throw new DynamicError('Missing wallet address', MISSING_ADDRESS_ERROR);
|
|
148
147
|
}
|
|
@@ -152,31 +151,32 @@ const useSyncPrimaryWallet = (canSync = true) => {
|
|
|
152
151
|
handlePrimaryWalletNotActive(connectedAddress);
|
|
153
152
|
})
|
|
154
153
|
.catch((e) => {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
154
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts error', {
|
|
155
|
+
error: e,
|
|
156
|
+
isAuthenticated,
|
|
157
|
+
});
|
|
160
158
|
// user is logged in (has valid jwt), but no wallet is connected
|
|
161
159
|
if (isAuthenticated && e.code === MISSING_ADDRESS_ERROR) {
|
|
162
160
|
if (!primaryWallet.connector.isInstalledOnBrowser()) {
|
|
161
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts error - not installed in browser - will log out');
|
|
163
162
|
handleLogOut();
|
|
164
163
|
return;
|
|
165
164
|
}
|
|
166
165
|
if (showLockedWalletView) {
|
|
166
|
+
logVerboseTroubleshootingMessage('[useSyncPrimaryWallet] getConnectedAccounts error - will show locked wallet view');
|
|
167
167
|
setShowAuthFlow(true);
|
|
168
168
|
setView('wallet-locked-view');
|
|
169
|
+
return;
|
|
169
170
|
}
|
|
171
|
+
handlePrimaryWalletNotActive();
|
|
170
172
|
}
|
|
171
173
|
});
|
|
172
174
|
}, [
|
|
173
175
|
primaryWallet,
|
|
174
|
-
secondaryWallets,
|
|
175
176
|
multiWalletWidgetState,
|
|
176
177
|
setMultiWalletWidgetState,
|
|
177
178
|
handlePrimaryWalletNotActive,
|
|
178
179
|
handleLogOut,
|
|
179
|
-
setPrimaryWallet,
|
|
180
180
|
canSync,
|
|
181
181
|
setView,
|
|
182
182
|
setShowAuthFlow,
|
|
@@ -184,7 +184,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
184
184
|
network: currentWalletConnectorNetwork,
|
|
185
185
|
});
|
|
186
186
|
});
|
|
187
|
-
const shouldSkipCreatingVisit = authMode === 'connect-only' && !enableVisitTrackingOnConnectOnly;
|
|
188
187
|
const connectWallet = (walletConnector, getAddressOpts, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
189
188
|
const { applyHandleConnectedWallet = true } = options !== null && options !== void 0 ? options : {};
|
|
190
189
|
const walletAddress = yield walletConnector.getAddress(getAddressOpts);
|
|
@@ -203,6 +202,23 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
203
202
|
return;
|
|
204
203
|
}
|
|
205
204
|
}
|
|
205
|
+
const isWalletStored = connectedWalletsInfo.some(({ walletConnectorKey: storedWalletConnectorKey }) => storedWalletConnectorKey === walletConnector.key);
|
|
206
|
+
const walletChain = walletConnector.connectedChain;
|
|
207
|
+
const shouldCreateVisit = !isWalletStored &&
|
|
208
|
+
(authMode !== 'connect-only' || enableVisitTrackingOnConnectOnly);
|
|
209
|
+
if (shouldCreateVisit) {
|
|
210
|
+
// send information to backend to kick off background jobs
|
|
211
|
+
// so verify/sign on the next step could go by more quickly
|
|
212
|
+
// this is async work, but DO NOT AWAIT
|
|
213
|
+
session.createVisit({
|
|
214
|
+
authMode,
|
|
215
|
+
chain: walletChain || '',
|
|
216
|
+
environmentId,
|
|
217
|
+
publicWalletAddress: walletAddress,
|
|
218
|
+
walletName: walletConnector.key,
|
|
219
|
+
walletProvider: getWalletProvider.getWalletProvider(walletConnector),
|
|
220
|
+
});
|
|
221
|
+
}
|
|
206
222
|
// On connect and sign, we don't want to add this wallet to userWallets
|
|
207
223
|
// until it has been signed. Therefore, we don't add it to
|
|
208
224
|
// the connectedWallets array because userWallets draws from it.
|
|
@@ -216,8 +232,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
216
232
|
setPrimaryWalletId(walletId);
|
|
217
233
|
}
|
|
218
234
|
addedWalletsIds.current.push(walletId);
|
|
219
|
-
const walletChain = walletConnector.connectedChain;
|
|
220
|
-
const isWalletStored = connectedWalletsInfo.some(({ walletConnectorKey: storedWalletConnectorKey }) => storedWalletConnectorKey === walletConnector.key);
|
|
221
235
|
if (isWalletStored) {
|
|
222
236
|
yield updateConnectedWalletsList();
|
|
223
237
|
}
|
|
@@ -229,19 +243,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
229
243
|
walletConnectorKey: walletConnector.key,
|
|
230
244
|
walletId,
|
|
231
245
|
});
|
|
232
|
-
if (!shouldSkipCreatingVisit) {
|
|
233
|
-
// send information to backend to kick off background jobs
|
|
234
|
-
// so verify/sign on the next step could go by more quickly
|
|
235
|
-
// this is async work, but DO NOT AWAIT
|
|
236
|
-
session.createVisit({
|
|
237
|
-
authMode,
|
|
238
|
-
chain: walletChain || '',
|
|
239
|
-
environmentId,
|
|
240
|
-
publicWalletAddress: walletAddress,
|
|
241
|
-
walletName: walletConnector.key,
|
|
242
|
-
walletProvider: getWalletProvider.getWalletProvider(walletConnector),
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
246
|
}
|
|
246
247
|
return { address: walletAddress, id: walletId };
|
|
247
248
|
});
|
|
@@ -180,7 +180,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
180
180
|
network: currentWalletConnectorNetwork,
|
|
181
181
|
});
|
|
182
182
|
});
|
|
183
|
-
const shouldSkipCreatingVisit = authMode === 'connect-only' && !enableVisitTrackingOnConnectOnly;
|
|
184
183
|
const connectWallet = (walletConnector, getAddressOpts, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
185
184
|
const { applyHandleConnectedWallet = true } = options !== null && options !== void 0 ? options : {};
|
|
186
185
|
const walletAddress = yield walletConnector.getAddress(getAddressOpts);
|
|
@@ -199,6 +198,23 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
199
198
|
return;
|
|
200
199
|
}
|
|
201
200
|
}
|
|
201
|
+
const isWalletStored = connectedWalletsInfo.some(({ walletConnectorKey: storedWalletConnectorKey }) => storedWalletConnectorKey === walletConnector.key);
|
|
202
|
+
const walletChain = walletConnector.connectedChain;
|
|
203
|
+
const shouldCreateVisit = !isWalletStored &&
|
|
204
|
+
(authMode !== 'connect-only' || enableVisitTrackingOnConnectOnly);
|
|
205
|
+
if (shouldCreateVisit) {
|
|
206
|
+
// send information to backend to kick off background jobs
|
|
207
|
+
// so verify/sign on the next step could go by more quickly
|
|
208
|
+
// this is async work, but DO NOT AWAIT
|
|
209
|
+
createVisit({
|
|
210
|
+
authMode,
|
|
211
|
+
chain: walletChain || '',
|
|
212
|
+
environmentId,
|
|
213
|
+
publicWalletAddress: walletAddress,
|
|
214
|
+
walletName: walletConnector.key,
|
|
215
|
+
walletProvider: getWalletProvider(walletConnector),
|
|
216
|
+
});
|
|
217
|
+
}
|
|
202
218
|
// On connect and sign, we don't want to add this wallet to userWallets
|
|
203
219
|
// until it has been signed. Therefore, we don't add it to
|
|
204
220
|
// the connectedWallets array because userWallets draws from it.
|
|
@@ -212,8 +228,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
212
228
|
setPrimaryWalletId(walletId);
|
|
213
229
|
}
|
|
214
230
|
addedWalletsIds.current.push(walletId);
|
|
215
|
-
const walletChain = walletConnector.connectedChain;
|
|
216
|
-
const isWalletStored = connectedWalletsInfo.some(({ walletConnectorKey: storedWalletConnectorKey }) => storedWalletConnectorKey === walletConnector.key);
|
|
217
231
|
if (isWalletStored) {
|
|
218
232
|
yield updateConnectedWalletsList();
|
|
219
233
|
}
|
|
@@ -225,19 +239,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
225
239
|
walletConnectorKey: walletConnector.key,
|
|
226
240
|
walletId,
|
|
227
241
|
});
|
|
228
|
-
if (!shouldSkipCreatingVisit) {
|
|
229
|
-
// send information to backend to kick off background jobs
|
|
230
|
-
// so verify/sign on the next step could go by more quickly
|
|
231
|
-
// this is async work, but DO NOT AWAIT
|
|
232
|
-
createVisit({
|
|
233
|
-
authMode,
|
|
234
|
-
chain: walletChain || '',
|
|
235
|
-
environmentId,
|
|
236
|
-
publicWalletAddress: walletAddress,
|
|
237
|
-
walletName: walletConnector.key,
|
|
238
|
-
walletProvider: getWalletProvider(walletConnector),
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
242
|
}
|
|
242
243
|
return { address: walletAddress, id: walletId };
|
|
243
244
|
});
|
|
@@ -94,14 +94,16 @@ const useTokenBalances = ({ accountAddress, networkId, chainName = sdkApiCore.Ch
|
|
|
94
94
|
setError(errors.USER_NOT_LOGGED_IN);
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
|
-
if (
|
|
97
|
+
if (![sdkApiCore.ChainEnum.Evm, sdkApiCore.ChainEnum.Sol].includes(requestChainName)) {
|
|
98
98
|
setError(`Chain ${requestChainName} is not supported for token balances`);
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
101
|
if (!isLoading &&
|
|
102
102
|
requestAccount &&
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
((chainName === sdkApiCore.ChainEnum.Evm &&
|
|
104
|
+
requestNetwork &&
|
|
105
|
+
Object.values(sdkApiCore.GetAccountBalancesNetworkIdEnum).includes(requestNetwork)) ||
|
|
106
|
+
chainName === sdkApiCore.ChainEnum.Sol)) {
|
|
105
107
|
setIsLoading(true);
|
|
106
108
|
balances.getAccountTokenBalances({
|
|
107
109
|
accountAddress: requestAccount,
|
|
@@ -109,7 +111,7 @@ const useTokenBalances = ({ accountAddress, networkId, chainName = sdkApiCore.Ch
|
|
|
109
111
|
environmentId,
|
|
110
112
|
includeNative: includeNativeBalance,
|
|
111
113
|
includePrices: includeFiat,
|
|
112
|
-
networkId: Number(requestNetwork),
|
|
114
|
+
networkId: chainName === sdkApiCore.ChainEnum.Evm ? Number(requestNetwork) : 0,
|
|
113
115
|
})
|
|
114
116
|
.then((response) => {
|
|
115
117
|
if (response) {
|
|
@@ -90,14 +90,16 @@ const useTokenBalances = ({ accountAddress, networkId, chainName = ChainEnum.Evm
|
|
|
90
90
|
setError(USER_NOT_LOGGED_IN);
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
93
|
-
if (
|
|
93
|
+
if (![ChainEnum.Evm, ChainEnum.Sol].includes(requestChainName)) {
|
|
94
94
|
setError(`Chain ${requestChainName} is not supported for token balances`);
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
97
|
if (!isLoading &&
|
|
98
98
|
requestAccount &&
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
((chainName === ChainEnum.Evm &&
|
|
100
|
+
requestNetwork &&
|
|
101
|
+
Object.values(GetAccountBalancesNetworkIdEnum).includes(requestNetwork)) ||
|
|
102
|
+
chainName === ChainEnum.Sol)) {
|
|
101
103
|
setIsLoading(true);
|
|
102
104
|
getAccountTokenBalances({
|
|
103
105
|
accountAddress: requestAccount,
|
|
@@ -105,7 +107,7 @@ const useTokenBalances = ({ accountAddress, networkId, chainName = ChainEnum.Evm
|
|
|
105
107
|
environmentId,
|
|
106
108
|
includeNative: includeNativeBalance,
|
|
107
109
|
includePrices: includeFiat,
|
|
108
|
-
networkId: Number(requestNetwork),
|
|
110
|
+
networkId: chainName === ChainEnum.Evm ? Number(requestNetwork) : 0,
|
|
109
111
|
})
|
|
110
112
|
.then((response) => {
|
|
111
113
|
if (response) {
|
|
@@ -58,7 +58,7 @@ require('../../context/WalletGroupContext/WalletGroupContext.cjs');
|
|
|
58
58
|
require('../../context/MfaSettingsContext/MfaSettingsContext.cjs');
|
|
59
59
|
require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
|
|
60
60
|
require('react-focus-lock');
|
|
61
|
-
require('../../context/ThemeContext/ThemeContext.cjs');
|
|
61
|
+
var ThemeContext = require('../../context/ThemeContext/ThemeContext.cjs');
|
|
62
62
|
require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
|
|
63
63
|
require('../../components/IconButton/IconButton.cjs');
|
|
64
64
|
require('../../components/MenuList/Dropdown/Dropdown.cjs');
|
|
@@ -80,9 +80,10 @@ require('@hcaptcha/react-hcaptcha');
|
|
|
80
80
|
require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
81
81
|
|
|
82
82
|
const FarcasterConnectView = ({ url }) => {
|
|
83
|
+
const { theme: { theme }, } = ThemeContext.useThemeContext();
|
|
83
84
|
const iconThemeVariant = useIconThemeVariant.useIconThemeVariant();
|
|
84
85
|
const icon = jsxRuntime.jsx(iconic.SocialIcon, { name: 'farcaster', variant: iconThemeVariant });
|
|
85
|
-
return (jsxRuntime.jsx(QrCodeWrapper.QrCodeWrapper, { uri: url, accentColor: '#7b65c0', icon: icon, showCopyToClipboardButton: true }));
|
|
86
|
+
return (jsxRuntime.jsx(QrCodeWrapper.QrCodeWrapper, { uri: url, accentColor: iconThemeVariant === 'dark' ? theme.colors.textPrimary : '#7b65c0', icon: icon, showCopyToClipboardButton: true }));
|
|
86
87
|
};
|
|
87
88
|
|
|
88
89
|
exports.FarcasterConnectView = FarcasterConnectView;
|
|
@@ -54,7 +54,7 @@ import '../../context/WalletGroupContext/WalletGroupContext.js';
|
|
|
54
54
|
import '../../context/MfaSettingsContext/MfaSettingsContext.js';
|
|
55
55
|
import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
|
|
56
56
|
import 'react-focus-lock';
|
|
57
|
-
import '../../context/ThemeContext/ThemeContext.js';
|
|
57
|
+
import { useThemeContext } from '../../context/ThemeContext/ThemeContext.js';
|
|
58
58
|
import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
|
|
59
59
|
import '../../components/IconButton/IconButton.js';
|
|
60
60
|
import '../../components/MenuList/Dropdown/Dropdown.js';
|
|
@@ -76,9 +76,10 @@ import '@hcaptcha/react-hcaptcha';
|
|
|
76
76
|
import '../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
77
77
|
|
|
78
78
|
const FarcasterConnectView = ({ url }) => {
|
|
79
|
+
const { theme: { theme }, } = useThemeContext();
|
|
79
80
|
const iconThemeVariant = useIconThemeVariant();
|
|
80
81
|
const icon = jsx(SocialIcon, { name: 'farcaster', variant: iconThemeVariant });
|
|
81
|
-
return (jsx(QrCodeWrapper, { uri: url, accentColor: '#7b65c0', icon: icon, showCopyToClipboardButton: true }));
|
|
82
|
+
return (jsx(QrCodeWrapper, { uri: url, accentColor: iconThemeVariant === 'dark' ? theme.colors.textPrimary : '#7b65c0', icon: icon, showCopyToClipboardButton: true }));
|
|
82
83
|
};
|
|
83
84
|
|
|
84
85
|
export { FarcasterConnectView };
|
package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs
CHANGED
|
@@ -108,7 +108,11 @@ const ActiveWalletInformation = ({ isLoading = false, }) => {
|
|
|
108
108
|
const { primaryWallet, network, projectSettings, handleLogOut, user, walletConnector, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
109
109
|
const { setDynamicWidgetView } = DynamicWidgetContext.useWidgetContext();
|
|
110
110
|
const { isTurnkeyWalletWithoutAuthenticator } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
111
|
-
const { isLoading: isLoadingTokenBalances, tokenBalances } = useTokenBalances.useTokenBalances({
|
|
111
|
+
const { isLoading: isLoadingTokenBalances, tokenBalances } = useTokenBalances.useTokenBalances({
|
|
112
|
+
chainName: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector.connectedChain,
|
|
113
|
+
includeFiat: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.showFiat,
|
|
114
|
+
includeNativeBalance: true,
|
|
115
|
+
});
|
|
112
116
|
const filteredTokenBalances = (tokenBalances === null || tokenBalances === void 0 ? void 0 : tokenBalances.filter((token) => token.name)) || [];
|
|
113
117
|
const address = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address;
|
|
114
118
|
const nameService = useFetchNameService.useFetchNameService(address);
|
package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js
CHANGED
|
@@ -104,7 +104,11 @@ const ActiveWalletInformation = ({ isLoading = false, }) => {
|
|
|
104
104
|
const { primaryWallet, network, projectSettings, handleLogOut, user, walletConnector, } = useInternalDynamicContext();
|
|
105
105
|
const { setDynamicWidgetView } = useWidgetContext();
|
|
106
106
|
const { isTurnkeyWalletWithoutAuthenticator } = useIsTurnkeyWallet();
|
|
107
|
-
const { isLoading: isLoadingTokenBalances, tokenBalances } = useTokenBalances({
|
|
107
|
+
const { isLoading: isLoadingTokenBalances, tokenBalances } = useTokenBalances({
|
|
108
|
+
chainName: primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector.connectedChain,
|
|
109
|
+
includeFiat: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.showFiat,
|
|
110
|
+
includeNativeBalance: true,
|
|
111
|
+
});
|
|
108
112
|
const filteredTokenBalances = (tokenBalances === null || tokenBalances === void 0 ? void 0 : tokenBalances.filter((token) => token.name)) || [];
|
|
109
113
|
const address = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address;
|
|
110
114
|
const nameService = useFetchNameService(address);
|
|
@@ -85,12 +85,13 @@ require('../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
|
85
85
|
var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
86
86
|
|
|
87
87
|
const PendingAccountSwitchContent = () => {
|
|
88
|
-
var _a, _b;
|
|
88
|
+
var _a, _b, _c, _d;
|
|
89
89
|
const { selectedWalletWithAction, primaryWallet, secondaryWallets } = useInternalDynamicContext.useInternalDynamicContext();
|
|
90
90
|
const selectedConnector = (_a = selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet) === null || _a === void 0 ? void 0 : _a.connector;
|
|
91
91
|
const isSameWallet = (selectedConnector === null || selectedConnector === void 0 ? void 0 : selectedConnector.key) === (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector.key);
|
|
92
92
|
const { data: connectedWallet } = useConnectedAccountWallet.useConnectedAccountWallet((_b = selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet) === null || _b === void 0 ? void 0 : _b.connector, secondaryWallets);
|
|
93
|
-
|
|
93
|
+
const selectedWalletToSwitchTo = (_d = (_c = selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet) !== null && _c !== void 0 ? _c : primaryWallet) !== null && _d !== void 0 ? _d : undefined;
|
|
94
|
+
return (jsxRuntime.jsx(DefaultPromptModal.DefaultPromptLayout, { dataTestId: 'pending-account-switch', icon: jsxRuntime.jsx(walletBook.WalletIcon, { walletKey: selectedConnector === null || selectedConnector === void 0 ? void 0 : selectedConnector.key }), title: `Switch wallet in ${selectedWalletToSwitchTo === null || selectedWalletToSwitchTo === void 0 ? void 0 : selectedWalletToSwitchTo.connector.name}`, children: isSameWallet || !connectedWallet ? (jsxRuntime.jsx(SwitchAccountView.SwitchAccountView, { selectedWalletToSwitchTo: selectedWalletToSwitchTo })) : (jsxRuntime.jsx(SwitchOrUseActiveAccountView.SwitchOrUseActiveAccountView, { connectedWallet: connectedWallet, selectedWalletToSwitchTo: selectedWalletToSwitchTo })) }));
|
|
94
95
|
};
|
|
95
96
|
const PendingAccountSwitchWidgetPortal = () => (jsxRuntime.jsx(WidgetPortal.WidgetPortal, { children: jsxRuntime.jsx(PendingAccountSwitchContent, {}) }));
|
|
96
97
|
const PendingAccountSwitchModal = () => (jsxRuntime.jsx(PromptModal.PromptModal, { children: jsxRuntime.jsx(PendingAccountSwitchContent, {}) }));
|
package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.js
CHANGED
|
@@ -81,12 +81,13 @@ import '../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
|
81
81
|
import { useInternalDynamicContext } from '../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
82
82
|
|
|
83
83
|
const PendingAccountSwitchContent = () => {
|
|
84
|
-
var _a, _b;
|
|
84
|
+
var _a, _b, _c, _d;
|
|
85
85
|
const { selectedWalletWithAction, primaryWallet, secondaryWallets } = useInternalDynamicContext();
|
|
86
86
|
const selectedConnector = (_a = selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet) === null || _a === void 0 ? void 0 : _a.connector;
|
|
87
87
|
const isSameWallet = (selectedConnector === null || selectedConnector === void 0 ? void 0 : selectedConnector.key) === (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector.key);
|
|
88
88
|
const { data: connectedWallet } = useConnectedAccountWallet((_b = selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet) === null || _b === void 0 ? void 0 : _b.connector, secondaryWallets);
|
|
89
|
-
|
|
89
|
+
const selectedWalletToSwitchTo = (_d = (_c = selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet) !== null && _c !== void 0 ? _c : primaryWallet) !== null && _d !== void 0 ? _d : undefined;
|
|
90
|
+
return (jsx(DefaultPromptLayout, { dataTestId: 'pending-account-switch', icon: jsx(WalletIcon, { walletKey: selectedConnector === null || selectedConnector === void 0 ? void 0 : selectedConnector.key }), title: `Switch wallet in ${selectedWalletToSwitchTo === null || selectedWalletToSwitchTo === void 0 ? void 0 : selectedWalletToSwitchTo.connector.name}`, children: isSameWallet || !connectedWallet ? (jsx(SwitchAccountView, { selectedWalletToSwitchTo: selectedWalletToSwitchTo })) : (jsx(SwitchOrUseActiveAccountView, { connectedWallet: connectedWallet, selectedWalletToSwitchTo: selectedWalletToSwitchTo })) }));
|
|
90
91
|
};
|
|
91
92
|
const PendingAccountSwitchWidgetPortal = () => (jsx(WidgetPortal, { children: jsx(PendingAccountSwitchContent, {}) }));
|
|
92
93
|
const PendingAccountSwitchModal = () => (jsx(PromptModal, { children: jsx(PendingAccountSwitchContent, {}) }));
|
package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs
CHANGED
|
@@ -103,7 +103,7 @@ const PendingConnectionContent = () => {
|
|
|
103
103
|
return (jsxRuntime.jsx(DefaultPromptModal.DefaultPromptLayout, { dataTestId: 'pending-connection-modal', icon: jsxRuntime.jsx(AuthProviderIcon.AuthProviderIcon // eslint-disable-line
|
|
104
104
|
, { wallet: selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet }), title: title, children: jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'secondary', weight: 'regular', "data-testid": 'content', children: description }) }));
|
|
105
105
|
};
|
|
106
|
-
const PendingConnectionModal = () => (jsxRuntime.jsx(PromptModal.PromptModal, { onClose: useCloseMultiWalletPrompt.useCloseMultiWalletPrompt, children: jsxRuntime.jsx(PendingConnectionContent, {}) }));
|
|
106
|
+
const PendingConnectionModal = () => (jsxRuntime.jsx(PromptModal.PromptModal, { onClose: useCloseMultiWalletPrompt.useCloseMultiWalletPrompt(), children: jsxRuntime.jsx(PendingConnectionContent, {}) }));
|
|
107
107
|
const PendingConnectionWidgetPortal = () => (jsxRuntime.jsx(WidgetPortal.WidgetPortal, { onClose: useCloseMultiWalletPrompt.useCloseMultiWalletPrompt(), children: jsxRuntime.jsx(PendingConnectionContent, {}) }));
|
|
108
108
|
|
|
109
109
|
exports.PendingConnectionModal = PendingConnectionModal;
|
package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js
CHANGED
|
@@ -99,7 +99,7 @@ const PendingConnectionContent = () => {
|
|
|
99
99
|
return (jsx(DefaultPromptLayout, { dataTestId: 'pending-connection-modal', icon: jsx(AuthProviderIcon // eslint-disable-line
|
|
100
100
|
, { wallet: selectedWalletWithAction === null || selectedWalletWithAction === void 0 ? void 0 : selectedWalletWithAction.wallet }), title: title, children: jsx(Typography, { variant: 'body_normal', color: 'secondary', weight: 'regular', "data-testid": 'content', children: description }) }));
|
|
101
101
|
};
|
|
102
|
-
const PendingConnectionModal = () => (jsx(PromptModal, { onClose: useCloseMultiWalletPrompt, children: jsx(PendingConnectionContent, {}) }));
|
|
102
|
+
const PendingConnectionModal = () => (jsx(PromptModal, { onClose: useCloseMultiWalletPrompt(), children: jsx(PendingConnectionContent, {}) }));
|
|
103
103
|
const PendingConnectionWidgetPortal = () => (jsx(WidgetPortal, { onClose: useCloseMultiWalletPrompt(), children: jsx(PendingConnectionContent, {}) }));
|
|
104
104
|
|
|
105
105
|
export { PendingConnectionModal, PendingConnectionWidgetPortal };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
-
|
|
6
|
-
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
7
|
-
|
|
8
|
-
const isWalletLinked = (address, linkedWallets) => {
|
|
9
|
-
if (!address || !(linkedWallets === null || linkedWallets === void 0 ? void 0 : linkedWallets.length)) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
const linkedWallet = linkedWallets.find((wallet) => walletConnectorCore.isSameAddress(wallet.address, address, wallet.chain));
|
|
13
|
-
return Boolean(linkedWallet);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
exports.isWalletLinked = isWalletLinked;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
import { isSameAddress } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
|
|
4
|
-
const isWalletLinked = (address, linkedWallets) => {
|
|
5
|
-
if (!address || !(linkedWallets === null || linkedWallets === void 0 ? void 0 : linkedWallets.length)) {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
const linkedWallet = linkedWallets.find((wallet) => isSameAddress(wallet.address, address, wallet.chain));
|
|
9
|
-
return Boolean(linkedWallet);
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export { isWalletLinked };
|