如何从新的 MetaMask 以太坊 API 中获取账户列表?

Posted

技术标签:

【中文标题】如何从新的 MetaMask 以太坊 API 中获取账户列表?【英文标题】:How to get a list of accounts from the new MetaMask ethereum API? 【发布时间】:2021-11-15 16:01:42 【问题描述】:

MetaMask 最近更改了他们注入 API 的方式,不再公开 window.web3 对象。

MetaMask 不再注入 web3。详情见:https://docs.metamask.io/guide/provider-migration.html#replacing-window-web3

Uncaught TypeError: web3.eth is undefined

如何从新的 MetaMask ethereum API 获取账户列表?

【问题讨论】:

【参考方案1】:

您可以使用 MetaMask 或其他钱包注入的window.ethereum 对象。

if (typeof window.ethereum !== 'undefined') 
  // connects to MetaMask
  const accounts = await ethereum.request( method: 'eth_requestAccounts' );
 else 
  // tell the user to install an `ethereum` provider extension

这使用新的 API 在提供者上调用异步以太坊请求。它接受大多数以太坊 API,并且在实现中非常通用。

【讨论】:

以上是关于如何从新的 MetaMask 以太坊 API 中获取账户列表?的主要内容,如果未能解决你的问题,请参考以下文章

检测 MetaMask 注销(以太坊)

如何使用以太坊从reactjs中的metamask帐户注销

以太坊搭建私链(小问题1)——如何通过metamask获取账户的私钥

一文拥有以太坊系链的rpc公用节点和水龙头信息,还有MetaMask的配置方式

Metamask不能访问以太坊账户?隐私模式!

Metamask不能访问以太坊账户?隐私模式!