Web3.eth.getAccoutns () не работает после обновления

Я разрабатываю децентрализованное приложение, используя трюфель / ганаш / метамаск / vue. Все шло хорошо, пока я не обновил Google Chrome и расширение Metamask. Теперь я больше не могу получить доступ к учетной записи в метамаске.

Я уже пытаюсь вызвать getAccounts () с помощью async / await, promises и т. Д. Ничего не работает, хотя я вошел в систему в метамаске и могу видеть свой баланс, переводить eth в другую учетную запись .... Это также Любопытно, что web3 обычно вводится в браузере.

Это в main.js

window.addEventListener('load', function () {
  if (typeof web3 !== 'undefined') {
    console.log('Web3 injected browser: OK.')
    Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send;

    window.web3 = new Web3(window.web3.currentProvider)
  } else {
    console.log('Web3 injected browser: Fail. You should consider trying MetaMask.')
    // fallback - use your fallback strategy (local node / hosted node + in-dapp id mgmt / fail)
    Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send;

    window.web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'))
  }

Это в компоненте Vue

        window.web3.eth.getAccounts((err, res) => {  
          if (err){
            console.log("error")
            console.log(err)
          }                 
          console.log(res[0]);
});

Я ожидал, что в журнале консоли будет напечатан адрес моего кошелька вместо «undefined». Массив web3.eth.accounts теперь всегда пуст.

Я что-то делаю не так? Заранее спасибо.


person Carlos Gonçalves    schedule 26.04.2019    source источник


Ответы (1)


Я уже нашел проблему. В новой версии Metamask по умолчанию активирован приватный режим. Пришлось просто выключить и заработало нормально.

person Carlos Gonçalves    schedule 27.04.2019