MetaMask最近改变了他们注入API的方式,不再公开window.web3
对象。
MetaMask不再注入web3。详细信息请参见:https://docs.metamask.io/guide/provider-migration.html#replacing-window-web3
Uncaught TypeError: web3.eth is undefined
如何从新的MetaMaskethereum
API获得帐户列表?
您可以使用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,并且在实现中相当通用。