From 016ebacfe6dd342fadb90e5987ee8864ba22baf5 Mon Sep 17 00:00:00 2001 From: TranTrungTien <71311738+TranTrungTien@users.noreply.github.com> Date: Thu, 1 Aug 2024 10:35:49 +0700 Subject: [PATCH] Revert "[feat][704] remove request change chain id while opening multiple tabs" (#3667) --- src/app/core/services/wallet.service.ts | 15 ++++++++++++--- .../evm-contract/evm-read/evm-read.component.ts | 10 ++++++++++ .../proposal-vote/proposal-vote.component.ts | 5 +++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/app/core/services/wallet.service.ts b/src/app/core/services/wallet.service.ts index d11f04fa1..b48ad9148 100644 --- a/src/app/core/services/wallet.service.ts +++ b/src/app/core/services/wallet.service.ts @@ -212,10 +212,11 @@ export class WalletService implements OnDestroy { } restoreEvmAccounts() { - const account = local.getItem(STORAGE_KEY.CURRENT_EVM_WALLET); - if (!account) return; + let account = local.getItem(STORAGE_KEY.CURRENT_EVM_WALLET); - this.walletAccount = account + if (account) { + this.connectEvmWallet().then().catch(); + } } restoreAccounts() { @@ -248,9 +249,17 @@ export class WalletService implements OnDestroy { } evmChangeEvent() { + const reconnect = () => { + const timeoutId = setTimeout(() => { + clearTimeout(timeoutId); + this.connectToChain(); + }, 1000); + }; + (window as any).ethereum?.on('accountsChanged', () => { this.connectEvmWallet(true).then().catch(); }); + (window as any).ethereum?.on('chainChanged', reconnect); } private async _getSigningCosmWasmClientAuto() { diff --git a/src/app/pages/evm-contracts/evm-contracts-detail/evm-contract-content/evm-contract/evm-read/evm-read.component.ts b/src/app/pages/evm-contracts/evm-contracts-detail/evm-contract-content/evm-contract/evm-read/evm-read.component.ts index c4f0d0928..e5c710030 100644 --- a/src/app/pages/evm-contracts/evm-contracts-detail/evm-contract-content/evm-contract/evm-read/evm-read.component.ts +++ b/src/app/pages/evm-contracts/evm-contracts-detail/evm-contract-content/evm-contract/evm-read/evm-read.component.ts @@ -140,6 +140,16 @@ export class EvmReadComponent implements OnChanges { return; } + const connected = await this.walletService.connectToChain(); + if (!connected) { + jsonFragment.isLoading = false; + jsonFragment.error = { + code: 'error', + message: `Please switch to ${this.environmentService.evmChainInfo.chain} chain.`, + }; + return; + } + const contract = this.createContract(); if (!contract) { diff --git a/src/app/pages/proposal/proposal-vote/proposal-vote.component.ts b/src/app/pages/proposal/proposal-vote/proposal-vote.component.ts index ae93d85b1..b29927881 100644 --- a/src/app/pages/proposal/proposal-vote/proposal-vote.component.ts +++ b/src/app/pages/proposal/proposal-vote/proposal-vote.component.ts @@ -1,8 +1,9 @@ import { Component, Inject } from '@angular/core'; import { - MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef, + MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, } from '@angular/material/legacy-dialog'; +import { MsgVote } from 'cosmjs-types/cosmos/gov/v1beta1/tx'; import { TIME_OUT_CALL_API } from 'src/app/core/constants/common.constant'; import { TRANSACTION_TYPE_ENUM } from 'src/app/core/constants/transaction.enum'; import { EnvironmentService } from 'src/app/core/data-services/environment.service'; @@ -41,7 +42,7 @@ export class ProposalVoteComponent { this.keyVote = data.voteValue ?? null; } - async vote() { + async vote() { const account = this.walletService.getAccount(); if (!account) {