Возвращенная ошибка: метод web3_clientVersion не существует / недоступен

Я пытался создать обновляемый смарт-контракт с использованием openzeppelin в блокчейне Harmony, который использует EVM и Solidity ... Он развертывается, когда не используется openzeppelin, но когда я это делаю, он выдает вышеуказанную ошибку ... И один из моих товарищей по команде смог развернуть его без ошибок ...

Я не знаю, проблема ли это в моей системе или в TruffleProvider от Harmony ... они, кажется, пытаются исправить это и опираются на эту ветку https://github.com/harmony-one/sdk/tree/truffle_provider, мой товарищ по команде смог наконец развернуть его, но я все еще получение той же ошибки:

$ oz развернуть

Компилировать нечего, все контракты в актуальном состоянии.

? Выберите контракт для создания экземпляра: Ball

? Выберите сеть: стабильная

✓ Добавлен контракт: Ball

Возвращенная ошибка: метод web3_clientVersion не существует / недоступен


person Asmita Dhungana    schedule 10.06.2020    source источник


Ответы (1)


Заменять

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

с участием

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

Настройте URL-адрес на адрес узла Ethereum (в моем случае ganache-cli).

В моем случае ошибка возникала при вызове web3.version.getNode(). Выяснилось, что этот метод заменен на web3.eth.getNodeInfo() на web3 v1.0. Пытался обновить код до web3.eth.getNodeInfo(), но выдает ошибку web3Obj.eth.getNodeInfo не является функцией. Скорее всего, возник конфликт версий между провайдерами ganashe-cli и metamask web3. Внесение этого изменения устранило проблему.

person Joao Leme    schedule 17.07.2020