@dynamic-labs/sdk-react-core 0.18.100-viem.14 → 0.18.100-viem.15

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 CHANGED
@@ -1,4 +1,11 @@
1
1
 
2
+ ### [0.18.100-viem.15](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.100-viem.14...v0.18.100-viem.15) (2023-09-11)
3
+
4
+
5
+ ### Bug Fixes
6
+ * sdkSettings should call once per session ([#3189](https://github.com/dynamic-labs/DynamicAuth/issues/3189)) ([#3265](https://github.com/dynamic-labs/DynamicAuth/issues/3265)) ([f46a692](https://github.com/dynamic-labs/DynamicAuth/commit/f46a6927684caf5962e5b60a9927030a5f7720e2))
7
+ * wallet transition in the bridge ([#3268](https://github.com/dynamic-labs/DynamicAuth/issues/3268)) ([#3271](https://github.com/dynamic-labs/DynamicAuth/issues/3271)) ([95e6d5f](https://github.com/dynamic-labs/DynamicAuth/commit/95e6d5f6ff003ff428795bdd73e2d88da366ed56)), closes [#3243](https://github.com/dynamic-labs/DynamicAuth/issues/3243)
8
+
2
9
  ### [0.18.100-viem.14](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.100-viem.13...v0.18.100-viem.14) (2023-09-05)
3
10
 
4
11
 
package/package.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.18.100-viem.14";
5
+ var version = "0.18.100-viem.15";
6
6
  var dependencies = {
7
7
  "react-focus-lock": "2.9.2",
8
8
  "@dynamic-labs/iconic": "0.1.27",
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.18.100-viem.14";
1
+ var version = "0.18.100-viem.15";
2
2
  var dependencies = {
3
3
  "react-focus-lock": "2.9.2",
4
4
  "@dynamic-labs/iconic": "0.1.27",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.18.100-viem.14",
3
+ "version": "0.18.100-viem.15",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -15,13 +15,13 @@
15
15
  "yup": "0.32.11",
16
16
  "formik": "2.2.9",
17
17
  "qrcode": "1.5.1",
18
- "@dynamic-labs/logger": "0.18.100-viem.14",
19
- "@dynamic-labs/multi-wallet": "0.18.100-viem.14",
20
- "@dynamic-labs/rpc-providers": "0.18.100-viem.14",
21
- "@dynamic-labs/types": "0.18.100-viem.14",
22
- "@dynamic-labs/utils": "0.18.100-viem.14",
23
- "@dynamic-labs/wallet-book": "0.18.100-viem.14",
24
- "@dynamic-labs/wallet-connector-core": "0.18.100-viem.14",
18
+ "@dynamic-labs/logger": "0.18.100-viem.15",
19
+ "@dynamic-labs/multi-wallet": "0.18.100-viem.15",
20
+ "@dynamic-labs/rpc-providers": "0.18.100-viem.15",
21
+ "@dynamic-labs/types": "0.18.100-viem.15",
22
+ "@dynamic-labs/utils": "0.18.100-viem.15",
23
+ "@dynamic-labs/wallet-book": "0.18.100-viem.15",
24
+ "@dynamic-labs/wallet-connector-core": "0.18.100-viem.15",
25
25
  "eventemitter3": "5.0.1"
26
26
  },
27
27
  "devDependencies": {
@@ -11,12 +11,15 @@ require('react');
11
11
  require('../../shared/logger.cjs');
12
12
  require('@dynamic-labs/wallet-book');
13
13
  require('@dynamic-labs/utils');
14
+ var localStorage$1 = require('../../utils/constants/localStorage.cjs');
14
15
  require('../../utils/constants/colors.cjs');
15
- require('../../shared/utils/classes/storage/localStorage.cjs');
16
+ var localStorage = require('../../shared/utils/classes/storage/localStorage.cjs');
16
17
  require('viem');
17
18
  var getAuthToken = require('../../utils/functions/getAuthToken/getAuthToken.cjs');
18
19
 
19
20
  let logoutTimer;
21
+ let sdkSettingsTimer;
22
+ const sdkSettingsTimeout = 24 * 60 * 60 * 1000; // 24 hours
20
23
  const isAuthTokenExpired = (token) => {
21
24
  const decoded = decodeJwt.decodeJwt(token);
22
25
  if (!decoded) {
@@ -66,7 +69,31 @@ const getInitialView = ({ connectedWallets, loginWithEmail, isBridgeFlow, isFull
66
69
  }
67
70
  return 'wallet-list';
68
71
  };
72
+ const setSDKSessionSettings = () => {
73
+ const timestamp = new Date().getTime();
74
+ localStorage.LocalStorage.setToLS(localStorage$1.SDK_LAST_SESSION_SETTINGS, timestamp.toString());
75
+ sdkSettingsTimer = setTimeout(isSDKSessionSettingExpired, sdkSettingsTimeout);
76
+ };
77
+ const isSDKSessionSettingExpired = () => {
78
+ const lastSentTime = localStorage.LocalStorage.getFromLS(localStorage$1.SDK_LAST_SESSION_SETTINGS);
79
+ // should set new time
80
+ if (!lastSentTime) {
81
+ return true;
82
+ }
83
+ const lastSentTimestamp = parseInt(lastSentTime);
84
+ const currentTime = new Date().getTime();
85
+ if (currentTime - lastSentTimestamp > sdkSettingsTimeout) {
86
+ // Reset session-related data here
87
+ clearTimeout(sdkSettingsTimer);
88
+ localStorage.LocalStorage.removeFromLS(localStorage$1.SDK_LAST_SESSION_SETTINGS);
89
+ return true;
90
+ }
91
+ return false;
92
+ };
69
93
 
70
94
  exports.getInitialView = getInitialView;
71
95
  exports.initExpirationTime = initExpirationTime;
72
96
  exports.isAuthTokenExpired = isAuthTokenExpired;
97
+ exports.isSDKSessionSettingExpired = isSDKSessionSettingExpired;
98
+ exports.sdkSettingsTimeout = sdkSettingsTimeout;
99
+ exports.setSDKSessionSettings = setSDKSessionSettings;
@@ -1,5 +1,6 @@
1
1
  import { Wallet } from '../../shared';
2
2
  import { ViewType } from '../ViewContext';
3
+ export declare const sdkSettingsTimeout: number;
3
4
  export declare const isAuthTokenExpired: (token: string) => boolean;
4
5
  export declare const initExpirationTime: (logout: VoidFunction) => void;
5
6
  export declare const getInitialView: ({ connectedWallets, loginWithEmail, isBridgeFlow, isFullyConnected, isMultiWalletEnabled, }: {
@@ -9,3 +10,5 @@ export declare const getInitialView: ({ connectedWallets, loginWithEmail, isBrid
9
10
  isFullyConnected: boolean;
10
11
  isMultiWalletEnabled: boolean;
11
12
  }) => ViewType;
13
+ export declare const setSDKSessionSettings: () => void;
14
+ export declare const isSDKSessionSettingExpired: () => boolean;
@@ -7,12 +7,15 @@ import 'react';
7
7
  import '../../shared/logger.js';
8
8
  import '@dynamic-labs/wallet-book';
9
9
  import '@dynamic-labs/utils';
10
+ import { SDK_LAST_SESSION_SETTINGS } from '../../utils/constants/localStorage.js';
10
11
  import '../../utils/constants/colors.js';
11
- import '../../shared/utils/classes/storage/localStorage.js';
12
+ import { LocalStorage } from '../../shared/utils/classes/storage/localStorage.js';
12
13
  import 'viem';
13
14
  import { getAuthToken } from '../../utils/functions/getAuthToken/getAuthToken.js';
14
15
 
15
16
  let logoutTimer;
17
+ let sdkSettingsTimer;
18
+ const sdkSettingsTimeout = 24 * 60 * 60 * 1000; // 24 hours
16
19
  const isAuthTokenExpired = (token) => {
17
20
  const decoded = decodeJwt(token);
18
21
  if (!decoded) {
@@ -62,5 +65,26 @@ const getInitialView = ({ connectedWallets, loginWithEmail, isBridgeFlow, isFull
62
65
  }
63
66
  return 'wallet-list';
64
67
  };
68
+ const setSDKSessionSettings = () => {
69
+ const timestamp = new Date().getTime();
70
+ LocalStorage.setToLS(SDK_LAST_SESSION_SETTINGS, timestamp.toString());
71
+ sdkSettingsTimer = setTimeout(isSDKSessionSettingExpired, sdkSettingsTimeout);
72
+ };
73
+ const isSDKSessionSettingExpired = () => {
74
+ const lastSentTime = LocalStorage.getFromLS(SDK_LAST_SESSION_SETTINGS);
75
+ // should set new time
76
+ if (!lastSentTime) {
77
+ return true;
78
+ }
79
+ const lastSentTimestamp = parseInt(lastSentTime);
80
+ const currentTime = new Date().getTime();
81
+ if (currentTime - lastSentTimestamp > sdkSettingsTimeout) {
82
+ // Reset session-related data here
83
+ clearTimeout(sdkSettingsTimer);
84
+ LocalStorage.removeFromLS(SDK_LAST_SESSION_SETTINGS);
85
+ return true;
86
+ }
87
+ return false;
88
+ };
65
89
 
66
- export { getInitialView, initExpirationTime, isAuthTokenExpired };
90
+ export { getInitialView, initExpirationTime, isAuthTokenExpired, isSDKSessionSettingExpired, sdkSettingsTimeout, setSDKSessionSettings };
@@ -18,6 +18,7 @@ require('../utils/constants/colors.cjs');
18
18
  require('../shared/utils/classes/storage/localStorage.cjs');
19
19
  require('viem');
20
20
  require('../shared/consts/index.cjs');
21
+ var helpers = require('../context/DynamicContext/helpers.cjs');
21
22
 
22
23
  const sdkApi = (jwt) => {
23
24
  const settings = {
@@ -400,6 +401,11 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
400
401
  });
401
402
  const sendDynamicProps = (environmentId, settingsToSend) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
402
403
  try {
404
+ const isSettingsExpired = helpers.isSDKSessionSettingExpired();
405
+ // sent once. no need to send again
406
+ if (!isSettingsExpired) {
407
+ return;
408
+ }
403
409
  const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
404
410
  if (dynamicContextProps || dynamicWagmiSettings) {
405
411
  yield sdkApi().logDynamicSdkSettings({
@@ -410,6 +416,7 @@ const sendDynamicProps = (environmentId, settingsToSend) => _tslib.__awaiter(voi
410
416
  },
411
417
  });
412
418
  }
419
+ helpers.setSDKSessionSettings();
413
420
  }
414
421
  catch (e) {
415
422
  logger.logger.error(e);
@@ -14,6 +14,7 @@ import '../utils/constants/colors.js';
14
14
  import '../shared/utils/classes/storage/localStorage.js';
15
15
  import 'viem';
16
16
  import '../shared/consts/index.js';
17
+ import { isSDKSessionSettingExpired, setSDKSessionSettings } from '../context/DynamicContext/helpers.js';
17
18
 
18
19
  const sdkApi = (jwt) => {
19
20
  const settings = {
@@ -396,6 +397,11 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
396
397
  });
397
398
  const sendDynamicProps = (environmentId, settingsToSend) => __awaiter(void 0, void 0, void 0, function* () {
398
399
  try {
400
+ const isSettingsExpired = isSDKSessionSettingExpired();
401
+ // sent once. no need to send again
402
+ if (!isSettingsExpired) {
403
+ return;
404
+ }
399
405
  const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
400
406
  if (dynamicContextProps || dynamicWagmiSettings) {
401
407
  yield sdkApi().logDynamicSdkSettings({
@@ -406,6 +412,7 @@ const sendDynamicProps = (environmentId, settingsToSend) => __awaiter(void 0, vo
406
412
  },
407
413
  });
408
414
  }
415
+ setSDKSessionSettings();
409
416
  }
410
417
  catch (e) {
411
418
  logger.error(e);
@@ -16,6 +16,7 @@ const AUTH_MODE = 'dynamic_auth_mode';
16
16
  const CONNECTED_WALLET_NAME_SERVICE = 'dynamic_connected_wallet_ns';
17
17
  const IS_FULLY_CONNECTED = 'dynamic_fully_connected';
18
18
  const IS_MULTI_WALLET_ENABLED = 'dynamic_multi_wallet_enabled';
19
+ const SDK_LAST_SESSION_SETTINGS = 'dynamic_session_settings';
19
20
 
20
21
  exports.AUTH_MODE = AUTH_MODE;
21
22
  exports.AUTH_TOKEN = AUTH_TOKEN;
@@ -30,4 +31,5 @@ exports.NEWTOWEB3_WALLET_EXTENSION_FLAG_KEY = NEWTOWEB3_WALLET_EXTENSION_FLAG_KE
30
31
  exports.NONCE_STORAGE_KEY = NONCE_STORAGE_KEY;
31
32
  exports.PRIMARY_WALLET_ID = PRIMARY_WALLET_ID;
32
33
  exports.PROJECT_SETTINGS_STORAGE_KEY = PROJECT_SETTINGS_STORAGE_KEY;
34
+ exports.SDK_LAST_SESSION_SETTINGS = SDK_LAST_SESSION_SETTINGS;
33
35
  exports.WALLET_PICKER_SEARCH_KEY = WALLET_PICKER_SEARCH_KEY;
@@ -13,3 +13,4 @@ export declare const AUTH_MODE = "dynamic_auth_mode";
13
13
  export declare const CONNECTED_WALLET_NAME_SERVICE = "dynamic_connected_wallet_ns";
14
14
  export declare const IS_FULLY_CONNECTED = "dynamic_fully_connected";
15
15
  export declare const IS_MULTI_WALLET_ENABLED = "dynamic_multi_wallet_enabled";
16
+ export declare const SDK_LAST_SESSION_SETTINGS = "dynamic_session_settings";
@@ -12,5 +12,6 @@ const AUTH_MODE = 'dynamic_auth_mode';
12
12
  const CONNECTED_WALLET_NAME_SERVICE = 'dynamic_connected_wallet_ns';
13
13
  const IS_FULLY_CONNECTED = 'dynamic_fully_connected';
14
14
  const IS_MULTI_WALLET_ENABLED = 'dynamic_multi_wallet_enabled';
15
+ const SDK_LAST_SESSION_SETTINGS = 'dynamic_session_settings';
15
16
 
16
- export { AUTH_MODE, AUTH_TOKEN, AUTH_USER, CONNECTED_WALLETS_INFO, CONNECTED_WALLET_NAME_SERVICE, IS_FULLY_CONNECTED, IS_MULTI_WALLET_ENABLED, LAST_USED_WALLET, NETWORKS_STORAGE_KEY, NEWTOWEB3_WALLET_EXTENSION_FLAG_KEY, NONCE_STORAGE_KEY, PRIMARY_WALLET_ID, PROJECT_SETTINGS_STORAGE_KEY, WALLET_PICKER_SEARCH_KEY };
17
+ export { AUTH_MODE, AUTH_TOKEN, AUTH_USER, CONNECTED_WALLETS_INFO, CONNECTED_WALLET_NAME_SERVICE, IS_FULLY_CONNECTED, IS_MULTI_WALLET_ENABLED, LAST_USED_WALLET, NETWORKS_STORAGE_KEY, NEWTOWEB3_WALLET_EXTENSION_FLAG_KEY, NONCE_STORAGE_KEY, PRIMARY_WALLET_ID, PROJECT_SETTINGS_STORAGE_KEY, SDK_LAST_SESSION_SETTINGS, WALLET_PICKER_SEARCH_KEY };
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _tslib = require('../../../../../../_virtual/_tslib.cjs');
6
6
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
7
- var utils = require('@dynamic-labs/utils');
8
7
  var showPendingConnectView = require('../helpers/showPendingConnectView.cjs');
9
8
  var isConnectOnly = require('../helpers/isConnectOnly.cjs');
10
9
  var useInternalDynamicContext = require('../../../../context/DynamicContext/useInternalDynamicContext.cjs');
@@ -16,6 +15,7 @@ require('@dynamic-labs/iconic');
16
15
  require('react/jsx-runtime');
17
16
  require('react');
18
17
  require('@dynamic-labs/wallet-book');
18
+ require('@dynamic-labs/utils');
19
19
  var localStorage$1 = require('../../../constants/localStorage.cjs');
20
20
  require('../../../constants/colors.cjs');
21
21
  var localStorage = require('../../../../shared/utils/classes/storage/localStorage.cjs');
@@ -32,7 +32,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
32
32
  const { setView, goToInitialView } = ViewContext.useViewContext();
33
33
  const { setErrorMessage } = ErrorContext.useErrorContext();
34
34
  const { captchaToken } = CaptchaContext.useCaptchaContext();
35
- const { authMode, connectWallet, consumeNonce, displaySiweStatement, environmentId, projectSettings, setIsSingleWalletAccount, user, walletUiUtils, setCallback, setIsVerificationInProgress, isFullyConnected, walletsToConnectByChain = [], connectedWallets, isBridgeFlow, selectedWalletConnector, walletsByChain, } = useInternalDynamicContext.useInternalDynamicContext();
35
+ const { authMode, connectWallet, consumeNonce, displaySiweStatement, environmentId, projectSettings, setIsSingleWalletAccount, user, walletUiUtils, setCallback, setIsVerificationInProgress, isFullyConnected, walletsToConnectByChain = [], } = useInternalDynamicContext.useInternalDynamicContext();
36
36
  const { handleWalletsToConnect } = useHandleWalletsToConnect.useHandleWalletsToConnect();
37
37
  const verifyWallet = useVerifyWallet.useVerifyWallet({
38
38
  consumeNonce,
@@ -42,7 +42,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
42
42
  setIsSingleWalletAccount,
43
43
  });
44
44
  return ({ walletConnector, fetchPublicAddressOpts = undefined, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
45
- var _a, _b, _c;
45
+ var _a, _b;
46
46
  // Raise verification ongoing flag
47
47
  setIsVerificationInProgress(true);
48
48
  try {
@@ -72,24 +72,8 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
72
72
  }
73
73
  if (isConnectOnly.isConnectOnly(user, authMode)) {
74
74
  localStorage.LocalStorage.setToLS(localStorage$1.LAST_USED_WALLET, walletConnector.name);
75
- if (isBridgeFlow) {
76
- const didConnectLastWallet = (selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.connectedChain) ===
77
- ((_a = utils.last(walletsByChain || [])) === null || _a === void 0 ? void 0 : _a.chain);
78
- // we don't want to re-calculate wallets to connect state if wallet is already connected.
79
- // it may happen when user switch network in connect flow on already connected wallet
80
- const isAlreadyConnected = connectedWallets.find((wallet) => walletConnectorCore.isSameAddress(publicWalletAddress, wallet.address, wallet.chain));
81
- if (shouldUpdateWallets &&
82
- (!isAlreadyConnected || didConnectLastWallet)) {
83
- handleWalletsToConnect();
84
- }
85
- if (isAlreadyConnected && !didConnectLastWallet) {
86
- setView('bridge-next-wallet-connection');
87
- }
88
- }
89
- else {
90
- if (shouldUpdateWallets) {
91
- handleWalletsToConnect();
92
- }
75
+ if (shouldUpdateWallets) {
76
+ handleWalletsToConnect();
93
77
  }
94
78
  if (!isFullyConnected || walletsToConnectByChain.length) {
95
79
  setCallback('connectSuccess');
@@ -97,7 +81,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
97
81
  return;
98
82
  }
99
83
  setCallback('connectSuccess');
100
- if ((_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.hCaptcha) === null || _b === void 0 ? void 0 : _b.enabled) {
84
+ if ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.hCaptcha) === null || _a === void 0 ? void 0 : _a.enabled) {
101
85
  setView('captcha');
102
86
  return;
103
87
  }
@@ -118,7 +102,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
118
102
  const userCancelled = (err === null || err === void 0 ? void 0 : err.code) === 'user-cancelled';
119
103
  if (!userCancelled)
120
104
  logger.logger.debug(err);
121
- setErrorMessage((_c = err === null || err === void 0 ? void 0 : err.code) === null || _c === void 0 ? void 0 : _c.toString());
105
+ setErrorMessage((_b = err === null || err === void 0 ? void 0 : err.code) === null || _b === void 0 ? void 0 : _b.toString());
122
106
  goToInitialView();
123
107
  // Since auth failed, clear verification flag
124
108
  // But if user cancelled, clearStatesOnBackClick will have already cleared it. So avoid
@@ -1,6 +1,5 @@
1
1
  import { __awaiter } from '../../../../../../_virtual/_tslib.js';
2
- import { isEmailWalletConnector, isEmailOTPWalletConnector, isBloctoConnector, isSameAddress } from '@dynamic-labs/wallet-connector-core';
3
- import { last } from '@dynamic-labs/utils';
2
+ import { isEmailWalletConnector, isEmailOTPWalletConnector, isBloctoConnector } from '@dynamic-labs/wallet-connector-core';
4
3
  import { showPendingConnectView } from '../helpers/showPendingConnectView.js';
5
4
  import { isConnectOnly } from '../helpers/isConnectOnly.js';
6
5
  import { useInternalDynamicContext } from '../../../../context/DynamicContext/useInternalDynamicContext.js';
@@ -12,6 +11,7 @@ import '@dynamic-labs/iconic';
12
11
  import 'react/jsx-runtime';
13
12
  import 'react';
14
13
  import '@dynamic-labs/wallet-book';
14
+ import '@dynamic-labs/utils';
15
15
  import { LAST_USED_WALLET } from '../../../constants/localStorage.js';
16
16
  import '../../../constants/colors.js';
17
17
  import { LocalStorage } from '../../../../shared/utils/classes/storage/localStorage.js';
@@ -28,7 +28,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
28
28
  const { setView, goToInitialView } = useViewContext();
29
29
  const { setErrorMessage } = useErrorContext();
30
30
  const { captchaToken } = useCaptchaContext();
31
- const { authMode, connectWallet, consumeNonce, displaySiweStatement, environmentId, projectSettings, setIsSingleWalletAccount, user, walletUiUtils, setCallback, setIsVerificationInProgress, isFullyConnected, walletsToConnectByChain = [], connectedWallets, isBridgeFlow, selectedWalletConnector, walletsByChain, } = useInternalDynamicContext();
31
+ const { authMode, connectWallet, consumeNonce, displaySiweStatement, environmentId, projectSettings, setIsSingleWalletAccount, user, walletUiUtils, setCallback, setIsVerificationInProgress, isFullyConnected, walletsToConnectByChain = [], } = useInternalDynamicContext();
32
32
  const { handleWalletsToConnect } = useHandleWalletsToConnect();
33
33
  const verifyWallet = useVerifyWallet({
34
34
  consumeNonce,
@@ -38,7 +38,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
38
38
  setIsSingleWalletAccount,
39
39
  });
40
40
  return ({ walletConnector, fetchPublicAddressOpts = undefined, }) => __awaiter(void 0, void 0, void 0, function* () {
41
- var _a, _b, _c;
41
+ var _a, _b;
42
42
  // Raise verification ongoing flag
43
43
  setIsVerificationInProgress(true);
44
44
  try {
@@ -68,24 +68,8 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
68
68
  }
69
69
  if (isConnectOnly(user, authMode)) {
70
70
  LocalStorage.setToLS(LAST_USED_WALLET, walletConnector.name);
71
- if (isBridgeFlow) {
72
- const didConnectLastWallet = (selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.connectedChain) ===
73
- ((_a = last(walletsByChain || [])) === null || _a === void 0 ? void 0 : _a.chain);
74
- // we don't want to re-calculate wallets to connect state if wallet is already connected.
75
- // it may happen when user switch network in connect flow on already connected wallet
76
- const isAlreadyConnected = connectedWallets.find((wallet) => isSameAddress(publicWalletAddress, wallet.address, wallet.chain));
77
- if (shouldUpdateWallets &&
78
- (!isAlreadyConnected || didConnectLastWallet)) {
79
- handleWalletsToConnect();
80
- }
81
- if (isAlreadyConnected && !didConnectLastWallet) {
82
- setView('bridge-next-wallet-connection');
83
- }
84
- }
85
- else {
86
- if (shouldUpdateWallets) {
87
- handleWalletsToConnect();
88
- }
71
+ if (shouldUpdateWallets) {
72
+ handleWalletsToConnect();
89
73
  }
90
74
  if (!isFullyConnected || walletsToConnectByChain.length) {
91
75
  setCallback('connectSuccess');
@@ -93,7 +77,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
93
77
  return;
94
78
  }
95
79
  setCallback('connectSuccess');
96
- if ((_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.hCaptcha) === null || _b === void 0 ? void 0 : _b.enabled) {
80
+ if ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.hCaptcha) === null || _a === void 0 ? void 0 : _a.enabled) {
97
81
  setView('captcha');
98
82
  return;
99
83
  }
@@ -114,7 +98,7 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
114
98
  const userCancelled = (err === null || err === void 0 ? void 0 : err.code) === 'user-cancelled';
115
99
  if (!userCancelled)
116
100
  logger.debug(err);
117
- setErrorMessage((_c = err === null || err === void 0 ? void 0 : err.code) === null || _c === void 0 ? void 0 : _c.toString());
101
+ setErrorMessage((_b = err === null || err === void 0 ? void 0 : err.code) === null || _b === void 0 ? void 0 : _b.toString());
118
102
  goToInitialView();
119
103
  // Since auth failed, clear verification flag
120
104
  // But if user cancelled, clearStatesOnBackClick will have already cleared it. So avoid
@@ -6,7 +6,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useInte
6
6
  var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
7
7
 
8
8
  const useHandleWalletsToConnect = () => {
9
- const { walletsToConnectByChain, setWalletsToConnectByChain, setShowAuthFlow, setIsFullyConnected, isFullyConnected, } = useInternalDynamicContext.useInternalDynamicContext();
9
+ const { walletsToConnectByChain, setWalletsToConnectByChain, setShowAuthFlow, setIsFullyConnected, selectedWalletConnector, isFullyConnected, } = useInternalDynamicContext.useInternalDynamicContext();
10
10
  const { setView, goToInitialView } = ViewContext.useViewContext();
11
11
  const handleWalletsToConnect = () => {
12
12
  if (!walletsToConnectByChain) {
@@ -19,6 +19,20 @@ const useHandleWalletsToConnect = () => {
19
19
  setShowAuthFlow(false);
20
20
  return goToInitialView();
21
21
  }
22
+ if (!selectedWalletConnector || !selectedWalletConnector.connectedChain) {
23
+ setShowAuthFlow(false);
24
+ return goToInitialView();
25
+ }
26
+ // Assuming based on the logic above that we have at least one more chain/wallet to connect
27
+ // If the current connected wallet is already connected to the bridge,
28
+ // we can go directly to bridge-next-wallet-connection since we know there is a different chain to connect
29
+ const walletChainsToConnect = walletsToConnectByChain
30
+ .filter((wallet) => wallet.numberOfWallets > 0)
31
+ .map((wallet) => wallet.chain.toString());
32
+ if (!walletChainsToConnect.includes(selectedWalletConnector.connectedChain)) {
33
+ setView('bridge-next-wallet-connection');
34
+ return;
35
+ }
22
36
  const [firstWallet, ...restOfTheWallets] = walletsToConnectByChain;
23
37
  if (firstWallet.numberOfWallets > 1) {
24
38
  const updatedWallets = [
@@ -2,7 +2,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useIn
2
2
  import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
3
3
 
4
4
  const useHandleWalletsToConnect = () => {
5
- const { walletsToConnectByChain, setWalletsToConnectByChain, setShowAuthFlow, setIsFullyConnected, isFullyConnected, } = useInternalDynamicContext();
5
+ const { walletsToConnectByChain, setWalletsToConnectByChain, setShowAuthFlow, setIsFullyConnected, selectedWalletConnector, isFullyConnected, } = useInternalDynamicContext();
6
6
  const { setView, goToInitialView } = useViewContext();
7
7
  const handleWalletsToConnect = () => {
8
8
  if (!walletsToConnectByChain) {
@@ -15,6 +15,20 @@ const useHandleWalletsToConnect = () => {
15
15
  setShowAuthFlow(false);
16
16
  return goToInitialView();
17
17
  }
18
+ if (!selectedWalletConnector || !selectedWalletConnector.connectedChain) {
19
+ setShowAuthFlow(false);
20
+ return goToInitialView();
21
+ }
22
+ // Assuming based on the logic above that we have at least one more chain/wallet to connect
23
+ // If the current connected wallet is already connected to the bridge,
24
+ // we can go directly to bridge-next-wallet-connection since we know there is a different chain to connect
25
+ const walletChainsToConnect = walletsToConnectByChain
26
+ .filter((wallet) => wallet.numberOfWallets > 0)
27
+ .map((wallet) => wallet.chain.toString());
28
+ if (!walletChainsToConnect.includes(selectedWalletConnector.connectedChain)) {
29
+ setView('bridge-next-wallet-connection');
30
+ return;
31
+ }
18
32
  const [firstWallet, ...restOfTheWallets] = walletsToConnectByChain;
19
33
  if (firstWallet.numberOfWallets > 1) {
20
34
  const updatedWallets = [