我一直在尝试在使用 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 - 读取通过 GraphQL Java 中的变量传递的字段参数
python - psutil.AccessDenied : psutil. AccessDenie
matlab - 使用鼠标右键删除选择表中的行 - Matlab 2020a
google-cloud-functions - GCP Console : console. lo
docker - 无法加载动态库 'libcuda.so.1'; dlerror : libcuda
c# - 尽管已添加到我的项目中但无法使用 Bootstrap