我正在使用react开发一个dapp,当我尝试使用HTTPS或HTTP的RPC实例化web3时出现错误。
错误如下:
未捕获的类型错误:https.Agent 不是构造函数
经过一些研究,我已经能够验证该错误来自 web3-providers-http 模块。
预期行为 当我配置 Metamask 提供程序 (window.ethereum) 时,一切正常。因为我可以进行写入和读取事务,在区块链上没有问题。我希望它能够正常工作,没有错误,并且可以进行交易。
重现步骤
var Web3 = require('web3');
var provider = 'https://mainnet.infura.io/v3/<PROJECT-ID>';
var web3Provider = new Web3.providers.HttpProvider(provider);
var web3 = new Web3(web3Provider);
web3.eth.getBlockNumber().then((result) => {
console.log("Latest Ethereum Block is ",result);
});
Run Code Online (Sandbox Code Playgroud)
Web3.js 版本 1.7.4
维特版本3.0.0
环境 操作系统:macOs 11.5.2 浏览器:Chrome、Firefox Node.js 版本:v12.22.0 NPM 版本:7.7.6