Metamask 多个获取所有连接的帐户
Posted
技术标签:
【中文标题】Metamask 多个获取所有连接的帐户【英文标题】:Metamask multiple getting all connected accounts 【发布时间】:2021-09-22 03:25:09 【问题描述】:我正在尝试获取已连接到我的网站的所有 Metamask 钱包,但是,我只能获取默认钱包,我正在尝试这样的事情:
async function getWallets()
if(!window.ethereum)
console.log('!!!!! Non-Ethereum browser detected.');
let w3 = new Web3(window.ethereum);
await window.ethereum.enable();
w3.eth.getAccounts((err, accounts) =>
console.log('accounts', accounts)
);
启用呼叫后,我将多个钱包连接到该站点,但是当我尝试获取帐户时,我只收到默认帐户。
【问题讨论】:
据我所知,没有办法获取所有帐户,MetaMask 只是返回活动帐户。这取决于您的情况,可能是您需要对其进行硬编码,或者检测 MetaMask 文档中提到的帐户更改:docs.metamask.io/guide/ethereum-provider.html#accountschanged 【参考方案1】:在过去,支持多个帐户。现在,出于隐私原因,钱包只返回默认连接的帐户。
【讨论】:
【参考方案2】:这是基于安全原因的 MetaMask 设计决策,请参阅 doc,尽管原始 EIP-1102 要求 eth_requestAccounts
方法在获得批准后返回一个或多个帐户。
【讨论】:
以上是关于Metamask 多个获取所有连接的帐户的主要内容,如果未能解决你的问题,请参考以下文章