如何分别指定与Coinbase钱包和Metamask的连接?
现在,当使用window.ethereum.enable()时,Metamask和Coinbase钱包扩展都会弹出。我想要两个单独的按钮,一个用于Metamask,另一个用于Coinbase钱包。
我的代码:
const { createAlchemyWeb3 } = require("@alch/alchemy-web3");
const web3 = createAlchemyWeb3(alchemyKey);
export const connectWallet = async () => {
if (window.ethereum) { //check if Metamask is installed
try {
const address = await window.ethereum.enable(); //connect Metamask
}
}
})
2条答案
按热度按时间f2uvfpb91#
从这个讨论中,似乎可以使用不同的Metamask请求方法来强制连接选择:
wallet_requestPermissions
似乎做到了这一点。gopyfrb32#
对我有用的是找到MetaMask提供程序并将其设置为
window.ethereum.selectedProvider
请注意,
providers
和selectedProvider
只有在安装了Coinbase钱包的情况下才会出现,而Metamask则不同。这个答案对于调用
ethereum.setSelectedProvider(provider)
的类似方法也很有用。