From 54f7ee411048b0da6aa9e746f4b2bc41b3cb9eab Mon Sep 17 00:00:00 2001 From: schmanu Date: Tue, 1 Aug 2023 15:16:24 +0200 Subject: [PATCH] fix: select correct wallet --- .../common/ConnectWallet/AccountCenter.tsx | 4 +++- src/hooks/wallets/useWallet.ts | 14 ++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/common/ConnectWallet/AccountCenter.tsx b/src/components/common/ConnectWallet/AccountCenter.tsx index 91142a0240..f594a1d95d 100644 --- a/src/components/common/ConnectWallet/AccountCenter.tsx +++ b/src/components/common/ConnectWallet/AccountCenter.tsx @@ -21,7 +21,9 @@ const AccountCenter = ({ wallet }: { wallet: ConnectedWallet }) => { const addressBook = useAddressBook() const prefix = chainInfo?.shortName - const handleSwitchWallet = () => { + const handleSwitchWallet = async () => { + await privy.logout() + privy.login() handleClose() } diff --git a/src/hooks/wallets/useWallet.ts b/src/hooks/wallets/useWallet.ts index 5a10c6289d..13251a43e8 100644 --- a/src/hooks/wallets/useWallet.ts +++ b/src/hooks/wallets/useWallet.ts @@ -1,4 +1,4 @@ -import { useWallets, type ConnectedWallet, type EIP1193Provider, usePrivy } from '@privy-io/react-auth' +import { useWallets, usePrivy, type ConnectedWallet, type EIP1193Provider } from '@privy-io/react-auth' import { useMemo } from 'react' import useAsync, { type AsyncResult } from '../useAsync' @@ -6,9 +6,10 @@ const useWallet = (): AsyncResult<(ConnectedWallet & { provider: EIP1193Provider const { wallets } = useWallets() const privy = usePrivy() - console.log('useWallet', wallets, privy) - - const embeddedWallet = useMemo(() => wallets.find((wallet) => wallet.linked), [wallets]) + const embeddedWallet = useMemo( + () => wallets.find((wallet) => wallet.address === privy.user?.wallet?.address), + [wallets, privy.user?.wallet?.address], + ) return useAsync(async () => { const provider = await embeddedWallet?.getEthereumProvider() @@ -17,11 +18,8 @@ const useWallet = (): AsyncResult<(ConnectedWallet & { provider: EIP1193Provider return null } - const chainId = await provider.request({ method: 'eth_chainId' }) - console.log('eth_chainId', chainId) - return embeddedWallet - ? { ...embeddedWallet, provider, chainId: chainId ?? embeddedWallet.chainId.replace('eip155:', '') } + ? { ...embeddedWallet, provider, chainId: embeddedWallet.chainId.replace('eip155:', '') } : null }, [embeddedWallet]) }