Периодически возникают ситуации, когда нагрузка на сеть Ethereum резко возрастает, и отправляя транзакцию с установленной ценой газа (Gas), на которой недавно еще всё летало, неожиданно транзакция зависает, и в эксплорере мы видим статус Pending, который может не меняться на протяжении многих часов и даже суток. Ситуация усугубляется тем, что отправка повторных транзакций не решает проблемы, и все они становятся в очередь за первой. Как итог имеем нервный срыв, расстройство пищеварения (и бесконечную икоту Виталика Бутерина
), т.к. как всегда и у всех всё нужно срочно и еще вчера.
Каких-то штатных инструментов проталкивания или отмены транзакции не существует, однако существует достаточно несложный прием, позволяющий отменить зависшую транзакцию, после чего вы можете её отправить с повышенной ценой газа.
Прием этот состоит в том, что в сеть отправляется новая транзакция - со своего на свой же адрес отправляется 0 (ноль) эфира, но с высокой ценой газа, обеспечивающей включение в блок при текущей нагрузке на сеть. При этом необходимым условием является указать в этой транзакции такой же "nonce", который был и у зависшей транзакции.
Последовательность действий такая.
1. На
https://etherscan.io находите зависшую транзакцию и смотрите значение nonse (см. на картинке ниже)
https://c.radikal.ru/c15/1809/23/358e64630f93.jpg2. Заходите на
https://www.myetherwallet.com, жмете вкладку онлайн, заполняете поля адресов (адрес должен быть тот, откуда исходила зависшая транзакция), значение отправляемого эфира 0, значение nonse по предыдущему пункту, безопасную цену газа (смотреть на
https://ethgasstation.info).
https://c.radikal.ru/c21/1809/2e/882d745911a7.jpg3. Далее авторизуетесь в MEW и отправляете транзакцию.
Если всё сделано правильно, то транзакция проходит в течении 5 минут, а зависшая транзакция отменяется. Далее спокойно отправляете необходимое количество эфира на нужный адрес, установив уже адекватную стоимость газа.
Способ абсолютно рабочий и выручал меня не раз.
Первоисточник способа взят отсюда
https://www.reddit.com/r/EtherDelta/comments/72tctz/guide_how_to_cancel_a_pending_transactio/