Web3js отправляет транзакцию без сбоев, когда Metamask отключен - PullRequest
0 голосов
/ 15 декабря 2018

В основном у меня есть dapp, который получает объект web3 из window.web3 (внедренный из метамаски).

Когда я отключаю расширение из Chrome (не удаляя, а просто отключая), вызовы web3 пропускаются, обратный вызов не создается.

Воспроизвести

  1. Установите метамаску в вашем браузере
  2. Отключите ее
  3. В dapp отправьте транзакцию

Мой код:

const getData = myContract.myMethod.getData(parameters);
web3.eth.sendTransaction({ from: from, to: CONTRACT_ADDRESS, data: getData }, function (error, result) {
       console.log("Callback !")
});

Я полагаю, что sendTransaction должна завершиться с ошибкой или выдать ошибку

  • ОС: Windows
  • Браузер: протестировано на Chrome и Mozilla Firefox
  • Версия MetaMask: Последняя версия 5.2.2

Есть идеи?

Проблема только в том, когда отключен, когда плагин установлен или удален из Chrome, я получаю правильные ответы (всплывающее окно показывает и выдается ошибка соответственно)

Я реализовал, что еслиПользователь обновляет страницу, которую получает экземпляр web3, и если он отключен, то объект web3 имеет значение null.Проблема в том, что браузер не обнаруживает отключение до перезагрузки

. Я вижу, что при отключении веб-страницы отображаются эти предупреждения, но ... есть ли способ обнаружить эти события, чтобы установить объект window.web3 вноль или что-то?

enter image description here

...