【问题标题】:Returned error: The method web3_clientVersion does not exist/is not available返回错误:方法 web3_clientVersion 不存在/不可用
【发布时间】:2020-09-30 03:29:24
【问题描述】:

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

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

$ oz 部署

无需编译,所有合约都是最新的。

?选择要实例化的合约:Ball

?选择网络:稳定

✓ 添加合同:Ball

返回错误:方法 web3_clientVersion 不存在/不可用

【问题讨论】:

    标签: ethereum solidity web3 web3js openzeppelin


    【解决方案1】:

    替换

    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 提供程序之间很可能存在版本冲突。进行该更改可以解决问题。

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 2022-07-08
      • 2019-08-04
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2011-09-10
      相关资源
      最近更新 更多