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

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,20 @@
1
1
 
2
+ ### [0.18.100-viem.16](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.100-viem.15...v0.18.100-viem.16) (2023-09-11)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * catch error sending sdkSettings and log warning v18-viem ([#3277](https://github.com/dynamic-labs/DynamicAuth/issues/3277)) ([af86753](https://github.com/dynamic-labs/DynamicAuth/commit/af86753f4b73c0ec4ba981c9ffd47af21fac9d8d)), closes [#3274](https://github.com/dynamic-labs/DynamicAuth/issues/3274)
8
+ * issue where unexpected token would occur when bundlers defined process.env ([#3283](https://github.com/dynamic-labs/DynamicAuth/issues/3283)) ([16110f9](https://github.com/dynamic-labs/DynamicAuth/commit/16110f90f02841104b053365b17343ed80a72018))
9
+ * seprate ls checks for dynamiccontext and wagmi settings v18-viem ([#3279](https://github.com/dynamic-labs/DynamicAuth/issues/3279)) ([e31d85e](https://github.com/dynamic-labs/DynamicAuth/commit/e31d85e576d0fba31616d6aa408316c261f42373)), closes [#3275](https://github.com/dynamic-labs/DynamicAuth/issues/3275)
10
+
11
+ ### [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)
12
+
13
+
14
+ ### Bug Fixes
15
+ * 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))
16
+ * 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)
17
+
2
18
  ### [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
19
 
4
20
 
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.16";
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.16";
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.16",
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.16",
19
+ "@dynamic-labs/multi-wallet": "0.18.100-viem.16",
20
+ "@dynamic-labs/rpc-providers": "0.18.100-viem.16",
21
+ "@dynamic-labs/types": "0.18.100-viem.16",
22
+ "@dynamic-labs/utils": "0.18.100-viem.16",
23
+ "@dynamic-labs/wallet-book": "0.18.100-viem.16",
24
+ "@dynamic-labs/wallet-connector-core": "0.18.100-viem.16",
25
25
  "eventemitter3": "5.0.1"
26
26
  },
27
27
  "devDependencies": {
@@ -11,12 +11,16 @@ 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 dynamicContextSettingsTimer;
22
+ let wagmiSettingsTimer;
23
+ const sdkSettingsTimeout = 24 * 60 * 60 * 1000; // 24 hours
20
24
  const isAuthTokenExpired = (token) => {
21
25
  const decoded = decodeJwt.decodeJwt(token);
22
26
  if (!decoded) {
@@ -66,7 +70,42 @@ const getInitialView = ({ connectedWallets, loginWithEmail, isBridgeFlow, isFull
66
70
  }
67
71
  return 'wallet-list';
68
72
  };
73
+ const setDynamicContextSessionSettings = () => {
74
+ setSessionSettings(localStorage$1.DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS);
75
+ dynamicContextSettingsTimer = setTimeout(isDynamicContextSessionSettingExpired, sdkSettingsTimeout);
76
+ };
77
+ const setWagmiSessionSettings = () => {
78
+ setSessionSettings(localStorage$1.WAGMI_LAST_SESSION_SETTINGS);
79
+ wagmiSettingsTimer = setTimeout(isWagmiSessionSettingExpired, sdkSettingsTimeout);
80
+ };
81
+ const setSessionSettings = (lsKey) => {
82
+ const timestamp = new Date().getTime();
83
+ localStorage.LocalStorage.setToLS(lsKey, timestamp.toString());
84
+ };
85
+ const isDynamicContextSessionSettingExpired = () => isSettingExpired(localStorage$1.DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS, dynamicContextSettingsTimer);
86
+ const isWagmiSessionSettingExpired = () => isSettingExpired(localStorage$1.WAGMI_LAST_SESSION_SETTINGS, wagmiSettingsTimer);
87
+ const isSettingExpired = (lsKey, timer) => {
88
+ const lastSentTime = localStorage.LocalStorage.getFromLS(lsKey);
89
+ // should set new time
90
+ if (!lastSentTime) {
91
+ return true;
92
+ }
93
+ const lastSentTimestamp = parseInt(lastSentTime);
94
+ const currentTime = new Date().getTime();
95
+ if (currentTime - lastSentTimestamp > sdkSettingsTimeout) {
96
+ // Reset session-related data here
97
+ clearTimeout(timer);
98
+ localStorage.LocalStorage.removeFromLS(lsKey);
99
+ return true;
100
+ }
101
+ return false;
102
+ };
69
103
 
70
104
  exports.getInitialView = getInitialView;
71
105
  exports.initExpirationTime = initExpirationTime;
72
106
  exports.isAuthTokenExpired = isAuthTokenExpired;
107
+ exports.isDynamicContextSessionSettingExpired = isDynamicContextSessionSettingExpired;
108
+ exports.isWagmiSessionSettingExpired = isWagmiSessionSettingExpired;
109
+ exports.sdkSettingsTimeout = sdkSettingsTimeout;
110
+ exports.setDynamicContextSessionSettings = setDynamicContextSessionSettings;
111
+ exports.setWagmiSessionSettings = setWagmiSessionSettings;
@@ -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,7 @@ export declare const getInitialView: ({ connectedWallets, loginWithEmail, isBrid
9
10
  isFullyConnected: boolean;
10
11
  isMultiWalletEnabled: boolean;
11
12
  }) => ViewType;
13
+ export declare const setDynamicContextSessionSettings: () => void;
14
+ export declare const setWagmiSessionSettings: () => void;
15
+ export declare const isDynamicContextSessionSettingExpired: () => boolean;
16
+ export declare const isWagmiSessionSettingExpired: () => boolean;
@@ -7,12 +7,16 @@ import 'react';
7
7
  import '../../shared/logger.js';
8
8
  import '@dynamic-labs/wallet-book';
9
9
  import '@dynamic-labs/utils';
10
+ import { DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS, WAGMI_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 dynamicContextSettingsTimer;
18
+ let wagmiSettingsTimer;
19
+ const sdkSettingsTimeout = 24 * 60 * 60 * 1000; // 24 hours
16
20
  const isAuthTokenExpired = (token) => {
17
21
  const decoded = decodeJwt(token);
18
22
  if (!decoded) {
@@ -62,5 +66,35 @@ const getInitialView = ({ connectedWallets, loginWithEmail, isBridgeFlow, isFull
62
66
  }
63
67
  return 'wallet-list';
64
68
  };
69
+ const setDynamicContextSessionSettings = () => {
70
+ setSessionSettings(DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS);
71
+ dynamicContextSettingsTimer = setTimeout(isDynamicContextSessionSettingExpired, sdkSettingsTimeout);
72
+ };
73
+ const setWagmiSessionSettings = () => {
74
+ setSessionSettings(WAGMI_LAST_SESSION_SETTINGS);
75
+ wagmiSettingsTimer = setTimeout(isWagmiSessionSettingExpired, sdkSettingsTimeout);
76
+ };
77
+ const setSessionSettings = (lsKey) => {
78
+ const timestamp = new Date().getTime();
79
+ LocalStorage.setToLS(lsKey, timestamp.toString());
80
+ };
81
+ const isDynamicContextSessionSettingExpired = () => isSettingExpired(DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS, dynamicContextSettingsTimer);
82
+ const isWagmiSessionSettingExpired = () => isSettingExpired(WAGMI_LAST_SESSION_SETTINGS, wagmiSettingsTimer);
83
+ const isSettingExpired = (lsKey, timer) => {
84
+ const lastSentTime = LocalStorage.getFromLS(lsKey);
85
+ // should set new time
86
+ if (!lastSentTime) {
87
+ return true;
88
+ }
89
+ const lastSentTimestamp = parseInt(lastSentTime);
90
+ const currentTime = new Date().getTime();
91
+ if (currentTime - lastSentTimestamp > sdkSettingsTimeout) {
92
+ // Reset session-related data here
93
+ clearTimeout(timer);
94
+ LocalStorage.removeFromLS(lsKey);
95
+ return true;
96
+ }
97
+ return false;
98
+ };
65
99
 
66
- export { getInitialView, initExpirationTime, isAuthTokenExpired };
100
+ export { getInitialView, initExpirationTime, isAuthTokenExpired, isDynamicContextSessionSettingExpired, isWagmiSessionSettingExpired, sdkSettingsTimeout, setDynamicContextSessionSettings, setWagmiSessionSettings };
@@ -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 = {
@@ -401,19 +402,24 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
401
402
  const sendDynamicProps = (environmentId, settingsToSend) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
402
403
  try {
403
404
  const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
404
- if (dynamicContextProps || dynamicWagmiSettings) {
405
- yield sdkApi().logDynamicSdkSettings({
406
- environmentId,
407
- sdkSettingsRequest: {
408
- dynamicContextProps,
409
- dynamicWagmiSettings,
410
- },
411
- });
405
+ if (dynamicContextProps) {
406
+ yield sendDynamicContextSettings(environmentId, { dynamicContextProps }, helpers.isDynamicContextSessionSettingExpired, helpers.setDynamicContextSessionSettings);
407
+ }
408
+ if (dynamicWagmiSettings) {
409
+ yield sendDynamicContextSettings(environmentId, { dynamicWagmiSettings }, helpers.isWagmiSessionSettingExpired, helpers.setWagmiSessionSettings);
412
410
  }
413
411
  }
414
- catch (e) {
415
- logger.logger.error(e);
412
+ catch (error) {
413
+ logger.logger.warn('Error caught when sending sdkSettings to api. Please notify Dynamic, and send the DynamicContextProvider settings you currently have configured', { error });
414
+ }
415
+ });
416
+ const sendDynamicContextSettings = (environmentId, sdkSettingsRequest, isSdkSettingExpired, setSDKSessionSettings) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
417
+ // sent once. no need to send again
418
+ if (!isSdkSettingExpired()) {
419
+ return;
416
420
  }
421
+ yield sdkApi().logDynamicSdkSettings({ environmentId, sdkSettingsRequest });
422
+ setSDKSessionSettings();
417
423
  });
418
424
  const mergeUserAccounts = (userJwt, environmentId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
419
425
  try {
@@ -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 { isDynamicContextSessionSettingExpired, setDynamicContextSessionSettings, isWagmiSessionSettingExpired, setWagmiSessionSettings } from '../context/DynamicContext/helpers.js';
17
18
 
18
19
  const sdkApi = (jwt) => {
19
20
  const settings = {
@@ -397,19 +398,24 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
397
398
  const sendDynamicProps = (environmentId, settingsToSend) => __awaiter(void 0, void 0, void 0, function* () {
398
399
  try {
399
400
  const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
400
- if (dynamicContextProps || dynamicWagmiSettings) {
401
- yield sdkApi().logDynamicSdkSettings({
402
- environmentId,
403
- sdkSettingsRequest: {
404
- dynamicContextProps,
405
- dynamicWagmiSettings,
406
- },
407
- });
401
+ if (dynamicContextProps) {
402
+ yield sendDynamicContextSettings(environmentId, { dynamicContextProps }, isDynamicContextSessionSettingExpired, setDynamicContextSessionSettings);
403
+ }
404
+ if (dynamicWagmiSettings) {
405
+ yield sendDynamicContextSettings(environmentId, { dynamicWagmiSettings }, isWagmiSessionSettingExpired, setWagmiSessionSettings);
408
406
  }
409
407
  }
410
- catch (e) {
411
- logger.error(e);
408
+ catch (error) {
409
+ logger.warn('Error caught when sending sdkSettings to api. Please notify Dynamic, and send the DynamicContextProvider settings you currently have configured', { error });
410
+ }
411
+ });
412
+ const sendDynamicContextSettings = (environmentId, sdkSettingsRequest, isSdkSettingExpired, setSDKSessionSettings) => __awaiter(void 0, void 0, void 0, function* () {
413
+ // sent once. no need to send again
414
+ if (!isSdkSettingExpired()) {
415
+ return;
412
416
  }
417
+ yield sdkApi().logDynamicSdkSettings({ environmentId, sdkSettingsRequest });
418
+ setSDKSessionSettings();
413
419
  });
414
420
  const mergeUserAccounts = (userJwt, environmentId) => __awaiter(void 0, void 0, void 0, function* () {
415
421
  try {
@@ -16,12 +16,15 @@ 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 DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS = 'dynamic_context_session_settings';
20
+ const WAGMI_LAST_SESSION_SETTINGS = 'dynamic_wagmi_session_settings';
19
21
 
20
22
  exports.AUTH_MODE = AUTH_MODE;
21
23
  exports.AUTH_TOKEN = AUTH_TOKEN;
22
24
  exports.AUTH_USER = AUTH_USER;
23
25
  exports.CONNECTED_WALLETS_INFO = CONNECTED_WALLETS_INFO;
24
26
  exports.CONNECTED_WALLET_NAME_SERVICE = CONNECTED_WALLET_NAME_SERVICE;
27
+ exports.DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS = DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS;
25
28
  exports.IS_FULLY_CONNECTED = IS_FULLY_CONNECTED;
26
29
  exports.IS_MULTI_WALLET_ENABLED = IS_MULTI_WALLET_ENABLED;
27
30
  exports.LAST_USED_WALLET = LAST_USED_WALLET;
@@ -30,4 +33,5 @@ exports.NEWTOWEB3_WALLET_EXTENSION_FLAG_KEY = NEWTOWEB3_WALLET_EXTENSION_FLAG_KE
30
33
  exports.NONCE_STORAGE_KEY = NONCE_STORAGE_KEY;
31
34
  exports.PRIMARY_WALLET_ID = PRIMARY_WALLET_ID;
32
35
  exports.PROJECT_SETTINGS_STORAGE_KEY = PROJECT_SETTINGS_STORAGE_KEY;
36
+ exports.WAGMI_LAST_SESSION_SETTINGS = WAGMI_LAST_SESSION_SETTINGS;
33
37
  exports.WALLET_PICKER_SEARCH_KEY = WALLET_PICKER_SEARCH_KEY;
@@ -13,3 +13,5 @@ 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 DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS = "dynamic_context_session_settings";
17
+ export declare const WAGMI_LAST_SESSION_SETTINGS = "dynamic_wagmi_session_settings";
@@ -12,5 +12,7 @@ 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 DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS = 'dynamic_context_session_settings';
16
+ const WAGMI_LAST_SESSION_SETTINGS = 'dynamic_wagmi_session_settings';
15
17
 
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 };
18
+ export { AUTH_MODE, AUTH_TOKEN, AUTH_USER, CONNECTED_WALLETS_INFO, CONNECTED_WALLET_NAME_SERVICE, DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS, 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, WAGMI_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 = [