ethereum - 返回错误 : The method web3_clientVersion do

我一直在尝试在使用 EVM 和 Solidity 的 Harmony 区 block 链中使用 openzeppelin 制作可升级的智能合约...... 它在不使用 openzeppelin 时是可部署的,但是当我这样做时,它会抛出上述错误... 我的一位队友能够毫无错误地部署它...

我不知道这是我系统的问题,还是 Harmony 的 TruffleProvider 的问题...他们似乎正在尝试修复此问题并在此分支上构建 https://github.com/harmony-one/sdk/tree/truffle_provider ,我的队友最终能够部署它,但我仍然遇到同样的错误:

$ oz deploy

Nothing to compile, all contracts are up to date.

? Pick a contract to instantiate: Ball

? Pick a network: stable

✓ Added contract: Ball

Returned error: The method web3_clientVersion does not exist/is not available

最佳答案

替换

var web3 = new Web3(window.web3.currentProvider);

var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));

将 url 调整为以太坊节点地址(在我的例子中是 ganache-cli)。

在我的例子中,错误是在调用 web3.version.getNode() 时抛出的。发现这个方法在 web3 v1.0 上已经被 web3.eth.getNodeInfo() 取代。尝试将代码更新为 web3.eth.getNodeInfo() 但会抛出错误 “web3Obj.eth.getNodeInfo 不是函数”。很可能在 ganashe-cli 和 metamask web3 提供者之间存在版本冲突。进行更改可以解决问题。

关于ethereum - 返回错误 : The method web3_clientVersion does not exist/is not available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62308266/

相关文章:

graphql-java - 读取通过 G​​raphQL Java 中的变量传递的字段参数

python - psutil.AccessDenied : psutil. AccessDenie

matlab - 使用鼠标右键删除选择表中的行 - Matlab 2020a

google-cloud-functions - GCP Console : console. lo

docker - 无法加载动态库 'libcuda.so.1'; dlerror : libcuda

c# - 尽管已添加到我的项目中但无法使用 Bootstrap

python - 查找列表中的值是否大于其下方的项目

python - tqdm.notebook 在 jupyter notebook 中显示带有 "H

c# - Json 列 SQL

c# - 如何评估包含局部变量名称的字符串作为 C# 中的代码