Metamask 停止注入 web3.js

Posted

技术标签:

【中文标题】Metamask 停止注入 web3.js【英文标题】:Metamask stopping to inject web3.js 【发布时间】:2020-03-29 01:14:14 【问题描述】:

我们知道,metamask 从 2020 年 1 月 13 日起将不再注入 web3.js。我们应该采取哪些方法来停止对 web3 的依赖?

此外,我们如何使用目前正在注入 web3.js 的现有 Metamask 对其进行测试。

【问题讨论】:

您好,欢迎来到 Stack Overflow。请避免在 cmets 中添加详细信息,希望对您的原始帖子进行编辑。 【参考方案1】:

window.ethereum 仍将包含 Web3 提供程序。您可以使用它设置您选择的 web3 便利库,例如 web3.js 或 ethers.js。例如:

const Web3 = require('web3');
// web3 lib instance
const web3 = new Web3(window.ethereum);
// get all accounts
const accounts = await web3.eth.getAccounts();

【讨论】:

【参考方案2】:
import Web3 from "web3";

let web3;
const ethEnabled = async () => 
    if (window.ethereum)       
      web3 = new Web3(window.ethereum);
      await window.ethereum.enable();
    
    
  
ethEnabled();
export default web3;

【讨论】:

以上是关于Metamask 停止注入 web3.js的主要内容,如果未能解决你的问题,请参考以下文章

Metamask / Web3:在 metamask 停止将 web3 注入浏览器后对用户进行身份验证

web3.js

web3.js

METAMASK - 注入 - 用户如何使用 metamask API 支付自定义价值的 ETH?

以太坊系列 - Web3.js

MetaMask 不注入 window.ethereum: Uncaught (in promise) TypeError: Cannot read property 'request' of und