Когда пользователь отклоняет транзакцию Web 3, типичный пользовательский интерфейс dapp обрабатывает отклонение как тип ошибки, сообщая пользователю, что что-то пошло не так. Создавая Атомный базар, мы искали способ лучше справляться с отказами. Некоторые исследования привели к жизнеспособному, но хакерскому решению: сообщениям об ошибках сопоставления строк.

Позже Дэн Финлей одобрил подход сопоставления строк:

Этот фрагмент работает в Chrome:

web3.eth.sendTransaction({...}, function(error, result) {
  if (error.message.includes("User denied transaction signature")) {
    // handle the "error" as a rejection
  }
})

Но ваши мобильные пользователи не получат никакой выгоды от этой проверки. Вот таблица с другими сообщениями об ошибках:

Поскольку эта диаграмма, скорее всего, будет плохо стареть, мы создали небольшой инструмент, который вы можете использовать для проверки последних сообщений об ошибках: http://txreject.atomicbazaar.io/. Нажмите кнопку, чтобы создать транзакцию. Если вы отклоните его, вы увидите сообщение об ошибке.

Мир Ethereum быстро меняется. Как сообщество, мы работаем в режиме «отгрузка сейчас - стандартизация - позже». Но чем раньше мы сможем принять полезные стандарты, тем скорее Web 3 сможет соответствовать и превзойти UX Web 2. Комментарий ниже, чтобы привлечь внимание к командам, работающим над установлением стандартов.