blocknative / web3-onboard

Client library to onboard users to web3 apps
https://onboard.blocknative.com/
MIT License
854 stars 510 forks source link

Installing okxWallet will affect other native wallets such as MetaMask Coinbase Wallet and Binance Smart Wallet #1703

Closed xinchen37 closed 1 year ago

xinchen37 commented 1 year ago

Current Behavior

Installing okxWallet will affect other native wallets such as MetaMask Coinbase Wallet and Binance Smart Wallet

image

Expected Behavior

Wallet normal connection

Steps To Reproduce

import injectedModule from '@web3-onboard/injected-wallets' import coinbaseWalletModule from '@web3-onboard/coinbase'

const injected = injectedModule({ displayUnavailable: true }) const coinbaseWalletSdk = coinbaseWalletModule({ darkMode: true })

init({ wallets: [injected, coinbaseWalletSdk], chains: [ { id: '0x1', token: 'ETH', label: 'Ethereum Mainnet', rpcUrl } ] })

What package is effected by this issue?

@web3-onboard/injected

Is this a build or a runtime issue?

Runtime

Package Version

"@web3-onboard/coinbase": "^2.2.3", "@web3-onboard/injected-wallets": "^2.8.6", "@web3-onboard/vue": "^2.5.7-alpha.3", "@web3-onboard/walletconnect": "^2.3.7",

Node Version

v18.12.1

What browsers are you seeing the problem on?

Chrome

Relevant log output

No response

Anything else?

image

Sanity Check

leightkt commented 1 year ago

@xinchen37 are you referring to the OXC browser extension or the desktop or mobile app?

I've installed the browser extension and am still able to successfully connect to my metmask wallet.

leightkt commented 1 year ago

We also have some troubleshooting tips for multiple wallets: https://onboard.blocknative.com/docs/resources/troubleshooting#_2-multiple-wallets-installed

leightkt commented 1 year ago

@xinchen37 Double check that your metamask extension is enabled. I also suggest if you have OXC set as your default wallet- you try turning that off and refreshing/retrying to connect to metmask.

xinchen37 commented 1 year ago

@leightkt Enabling OKX Wallet overwrites window.ethereum. Disabling OKX Wallet works fine

image

Disable OKX Wallet

image
leightkt commented 1 year ago

@xinchen37 This is unfortunately a known issue:

https://onboard.blocknative.com/docs/resources/troubleshooting#_2-multiple-wallets-installed

This is the case with MetaMask which injects to the window.ethereum browser space as does many other wallets. With current EIP standards this space can only hold one wallet so the wallet that loads the slowest will override the previous and be the only wallet available. To address this issue:

Users should navigate to their browser's extension settings (within Chrome browser it is: chrome://extensions/ or you can click the puzzle piece in the extension row) Ensure that all other browser wallets are disabled (or not set to be the default web3 wallet) and your target wallet is enabled Once this is completed a refresh of the browser should give the dapp access to the desired wallet.

leightkt commented 1 year ago

Closing this issue- please feel free to continue the conversation if you run into anything else!