Skip to content

Commit 6ceda4a

Browse files
authored
fix: update metamask change option (#48)
1 parent 7424c7c commit 6ceda4a

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

components/Bridge/WalletSwitch/NEVMConnect.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ITransfer } from "@contexts/Transfer/types";
77
import { useNevmBalance } from "utils/balance-hooks";
88
import { MIN_AMOUNT } from "@constants";
99
import { useFeatureFlags } from "../hooks/useFeatureFlags";
10+
import { useConnectedWallet } from "@contexts/ConnectedWallet/useConnectedWallet";
1011

1112
type NEVMConnectProps = {
1213
transfer: ITransfer;
@@ -21,15 +22,21 @@ const NEVMConnect: React.FC<NEVMConnectProps> = ({ setNevm, transfer }) => {
2122
const { isBitcoinBased, switchTo, changeAccount, isEVMInjected } =
2223
usePaliWalletV2();
2324
const balance = useNevmBalance(transfer.nevmAddress);
25+
const { connectNEVM, nevm } = useConnectedWallet();
2426

2527
const setTransferNevm = () => {
2628
if (!account) return;
2729
setNevm({ address: account });
2830
};
2931

3032
const change = () => {
31-
const prom = isBitcoinBased ? switchTo("ethereum") : Promise.resolve();
3233
setNevm({ address: "" });
34+
if (nevm.type === "metamask") {
35+
connectNEVM("metamask");
36+
return;
37+
}
38+
39+
const prom = isBitcoinBased ? switchTo("ethereum") : Promise.resolve();
3340
prom.then(() => changeAccount());
3441
};
3542

contexts/ConnectedWallet/NEVMProvider.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,16 @@ const NEVMProvider: React.FC<NEVMProviderProps> = ({ children }) => {
134134
};
135135

136136
const connect = () => {
137-
account.refetch();
137+
let prePromise = account.isFetched
138+
? window.ethereum.request({
139+
method: "wallet_revokePermissions",
140+
params: [{ eth_accounts: {} }],
141+
})
142+
: Promise.resolve();
143+
144+
prePromise.then(() => {
145+
return account.refetch();
146+
});
138147
};
139148

140149
const signMessage = (message: string): Promise<string> => {

yarn.lock

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3839,13 +3839,6 @@ eth-object@^1.0.3, "eth-object@https://github.com/syscoin/eth-object.git":
38393839
dependencies:
38403840
eth-util-lite "^1.0.1"
38413841

3842-
"eth-object@git+https://github.com/syscoin/eth-object.git":
3843-
version "1.0.3"
3844-
uid b5ff300f57c136138b31d6e570c816a147e0f1c9
3845-
resolved "git+https://github.com/syscoin/eth-object.git#b5ff300f57c136138b31d6e570c816a147e0f1c9"
3846-
dependencies:
3847-
eth-util-lite "^1.0.1"
3848-
38493842
eth-proof@^2.1.6:
38503843
version "2.1.6"
38513844
resolved "https://registry.yarnpkg.com/eth-proof/-/eth-proof-2.1.6.tgz#6c8a468f82334d9c79347324e6eb237f1ecc965f"

0 commit comments

Comments
 (0)