Skip to content

Commit

Permalink
Merge pull request #1242 from multiversx/development
Browse files Browse the repository at this point in the history
2.38.6
  • Loading branch information
arhtudormorar committed Aug 23, 2024
2 parents 15a9526 + 6d7aabe commit 45f7479
Show file tree
Hide file tree
Showing 12 changed files with 63 additions and 11 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [[v2.38.6]](https://github.com/multiversx/mx-sdk-dapp/pull/1242)] - 2024-08-23
- [Fixed double login with cross-window or metamask](https://github.com/multiversx/mx-sdk-dapp/pull/1241)

## [[v2.38.5]](https://github.com/multiversx/mx-sdk-dapp/pull/1240)] - 2024-08-14
- [Fixed transaction toast timer is reset after another toast was removed](https://github.com/multiversx/mx-sdk-dapp/pull/1239)

Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@multiversx/sdk-dapp",
"version": "2.38.5",
"version": "2.38.6",
"description": "A library to hold the main logic for a dapp on the MultiversX blockchain",
"author": "MultiversX",
"license": "GPL-3.0-or-later",
Expand Down Expand Up @@ -161,12 +161,12 @@
"@multiversx/sdk-extension-provider": "3.0.0",
"@multiversx/sdk-hw-provider": "6.4.0",
"@multiversx/sdk-metamask-provider": "0.0.5",
"@multiversx/sdk-metamask-proxy-provider": "0.3.2",
"@multiversx/sdk-metamask-proxy-provider": "0.3.3",
"@multiversx/sdk-native-auth-client": "1.0.7",
"@multiversx/sdk-opera-provider": "1.0.0-alpha.1",
"@multiversx/sdk-wallet": "4.2.0",
"@multiversx/sdk-wallet-connect-provider": "4.1.3",
"@multiversx/sdk-web-wallet-cross-window-provider": "0.4.1",
"@multiversx/sdk-web-wallet-cross-window-provider": "0.4.2",
"@multiversx/sdk-web-wallet-provider": "3.2.1",
"@multiversx/sdk-webview-provider": "0.0.11",
"@reduxjs/toolkit": "1.8.2",
Expand Down
23 changes: 23 additions & 0 deletions src/hooks/login/helpers/clearInitiatedLogins.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import {
CrossWindowProvider,
MetamaskProxyProvider
} from 'lib/sdkWebWalletCrossWindowProvider';
import { LoginMethodsEnum } from 'types';

export const clearInitiatedLogins = (props?: { skip: LoginMethodsEnum }) => {
Object.values(LoginMethodsEnum).forEach((method) => {
if (props?.skip && method === props.skip) {
return;
}
const crossWindowProvider = CrossWindowProvider.getInstance();
if (crossWindowProvider.isInitialized()) {
crossWindowProvider.dispose();
}
const metamaskProvider = MetamaskProxyProvider.getInstance();
if (metamaskProvider.isInitialized()) {
metamaskProvider.dispose();
}
});

return null;
};
1 change: 1 addition & 0 deletions src/hooks/login/helpers/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './clearInitiatedLogins';
5 changes: 5 additions & 0 deletions src/hooks/login/useCrossWindowLogin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { getLatestNonce } from 'utils/account/getLatestNonce';
import { getIsLoggedIn } from 'utils/getIsLoggedIn';
import { optionalRedirect } from 'utils/internal';
import { getWindowLocation } from 'utils/window/getWindowLocation';
import { clearInitiatedLogins } from './helpers';
import { useLoginService } from './useLoginService';

export type UseCrossWindowLoginReturnType = [
Expand Down Expand Up @@ -51,6 +52,10 @@ export const useCrossWindowLogin = ({
throw new Error(SECOND_LOGIN_ATTEMPT_ERROR);
}

clearInitiatedLogins({
skip: LoginMethodsEnum.crossWindow
});

setIsLoading(true);
const isSuccessfullyInitialized: boolean =
await CrossWindowProvider.getInstance().init();
Expand Down
3 changes: 3 additions & 0 deletions src/hooks/login/useExtensionLogin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { getIsLoggedIn } from 'utils/getIsLoggedIn';
import { optionalRedirect } from 'utils/internal';
import { addOriginToLocationPath } from 'utils/window';
import { getDefaultCallbackUrl } from 'utils/window';
import { clearInitiatedLogins } from './helpers';
import { useLoginService } from './useLoginService';

export type UseExtensionLoginReturnType = [
Expand Down Expand Up @@ -42,6 +43,8 @@ export const useExtensionLogin = ({
throw new Error(SECOND_LOGIN_ATTEMPT_ERROR);
}

clearInitiatedLogins();

setIsLoading(true);
const provider: ExtensionProvider = ExtensionProvider.getInstance();

Expand Down
3 changes: 3 additions & 0 deletions src/hooks/login/useLedgerLogin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
OnProviderLoginType
} from '../../types';
import { getIsLoggedIn } from '../../utils';
import { clearInitiatedLogins } from './helpers';
import { useAddressScreens } from './useAddressScreens';
import { useLoginService } from './useLoginService';
const failInitializeErrorText = 'Check if the MultiversX App is open on Ledger';
Expand Down Expand Up @@ -276,6 +277,8 @@ export const useLedgerLogin = ({
throw new Error(SECOND_LOGIN_ATTEMPT_ERROR);
}

clearInitiatedLogins();

setError('');

try {
Expand Down
3 changes: 3 additions & 0 deletions src/hooks/login/useMetamaskLogin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { getIsLoggedIn } from 'utils/getIsLoggedIn';
import { optionalRedirect } from 'utils/internal';
import { addOriginToLocationPath } from 'utils/window';
import { getDefaultCallbackUrl } from 'utils/window';
import { clearInitiatedLogins } from './helpers';
import { useLoginService } from './useLoginService';

export type UseMetamaskLoginReturnType = [
Expand Down Expand Up @@ -42,6 +43,8 @@ export const useMetamaskLogin = ({
throw new Error(SECOND_LOGIN_ATTEMPT_ERROR);
}

clearInitiatedLogins();

setIsLoading(true);
const provider: MetamaskProvider = MetamaskProvider.getInstance();

Expand Down
5 changes: 5 additions & 0 deletions src/hooks/login/useMetamaskProxyLogin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {
import { getLatestNonce } from 'utils/account/getLatestNonce';
import { getIsLoggedIn } from 'utils/getIsLoggedIn';
import { getWindowLocation } from 'utils/window/getWindowLocation';
import { clearInitiatedLogins } from './helpers';
import { useLoginService } from './useLoginService';

export type UseMetamaskProxyLoginReturnType = [
Expand Down Expand Up @@ -46,6 +47,10 @@ export const useMetamaskProxyLogin = ({
throw new Error(SECOND_LOGIN_ATTEMPT_ERROR);
}

clearInitiatedLogins({
skip: LoginMethodsEnum.metamaskProxy
});

setIsLoading(true);
const provider = MetamaskProxyProvider.getInstance();

Expand Down
3 changes: 3 additions & 0 deletions src/hooks/login/useOperaLogin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { getIsLoggedIn } from 'utils/getIsLoggedIn';
import { optionalRedirect } from 'utils/internal';
import { getDefaultCallbackUrl } from 'utils/window';
import { getWindowLocation } from 'utils/window/getWindowLocation';
import { clearInitiatedLogins } from './helpers';
import { useLoginService } from './useLoginService';

export type UseOperaLoginReturnType = [
Expand Down Expand Up @@ -42,6 +43,8 @@ export const useOperaLogin = ({
throw new Error(SECOND_LOGIN_ATTEMPT_ERROR);
}

clearInitiatedLogins();

setIsLoading(true);
const provider: OperaProvider = OperaProvider.getInstance();

Expand Down
3 changes: 3 additions & 0 deletions src/hooks/login/useWalletConnectV2Login.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import {
LoginHookGenericStateType,
OnProviderLoginType
} from '../../types/login.types';
import { clearInitiatedLogins } from './helpers';
import { useLoginService } from './useLoginService';

export enum WalletConnectV2Error {
Expand Down Expand Up @@ -284,6 +285,8 @@ export const useWalletConnectV2Login = ({
};

async function initiateLogin(loginProvider = true) {
clearInitiatedLogins();

const chainId = await waitForChainID({ maxRetries: 15 });

if (!chainId) {
Expand Down
16 changes: 8 additions & 8 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2400,10 +2400,10 @@
"@metamask/providers" "16.0.0"
"@multiversx/sdk-core" "12.18.0"

"@multiversx/sdk-metamask-proxy-provider@0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@multiversx/sdk-metamask-proxy-provider/-/sdk-metamask-proxy-provider-0.3.2.tgz#907813f0695b8dbda5fbd2068e222d7516aefe11"
integrity sha512-U7i5bpJgAaF0qe21Conu5/fO1i7h6zMsaCdptr4on/r2VGFgWln7pg0nMdhTo6U89nKOADsQVVVxvRla7sg5vw==
"@multiversx/sdk-metamask-proxy-provider@0.3.3":
version "0.3.3"
resolved "https://registry.yarnpkg.com/@multiversx/sdk-metamask-proxy-provider/-/sdk-metamask-proxy-provider-0.3.3.tgz#4b031cad2170e87a570e78a1905533bc74dd1d09"
integrity sha512-78/LboIqdAgt1713PB7d3xSLqUUy1UK2QUDErqoPgfwmMjXxOiiSiq7b1STZRRXT3Wjzhiysrf5niszXoZUJmw==
dependencies:
"@types/jest" "^29.5.11"
"@types/qs" "6.9.10"
Expand Down Expand Up @@ -2455,10 +2455,10 @@
tweetnacl "1.0.3"
uuid "8.3.2"

"@multiversx/sdk-web-wallet-cross-window-provider@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@multiversx/sdk-web-wallet-cross-window-provider/-/sdk-web-wallet-cross-window-provider-0.4.1.tgz#1b68a6e65acea2a7adf5696edb10c17c43f19b18"
integrity sha512-GgO3CUE679I0A1p+RVSwCXxcXfskbJA/gHKF0eviezN9yTJof7XtZmaOzFoH0ekKX97YIDQ8QQy5+/FPYm9ERA==
"@multiversx/sdk-web-wallet-cross-window-provider@0.4.2":
version "0.4.2"
resolved "https://registry.yarnpkg.com/@multiversx/sdk-web-wallet-cross-window-provider/-/sdk-web-wallet-cross-window-provider-0.4.2.tgz#49f6d7f526bd3ed16bb7c9eb85b084d710f2168f"
integrity sha512-0J99FYrMyQ9wzjGJKGc6nim2s4tZGMsmEClU/5lZDkTwgbfJd2LdMX2bm4yMYmBE8uUp/qOIHQOXFMZCW7VDFQ==
dependencies:
"@types/jest" "^29.5.11"
"@types/qs" "6.9.10"
Expand Down

0 comments on commit 45f7479

Please sign in to comment.