Когда пользователь отклоняет транзакцию 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. Комментарий ниже, чтобы привлечь внимание к командам, работающим над установлением стандартов.