Можно ли отменить транзакцию после ее трансляции, но до ее майнинга?
Это может быть полезно при отправке ошибочной транзакции, содержащей недопустимые данные.
Его нельзя отменить, но можно «загазовать». Вы можете получить одноразовый номер (можно найти в ожидающей передаче на etherscan) и отправить другую транзакцию с более высокой ценой на газ с тем же одноразовым номером . Если вы используете другой одноразовый номер, то они оба могут быть добыты, но если вы используете один и тот же одноразовый номер, может быть добыт только один. Если майнеры видят и то, и другое, они должны быть достаточно умны, чтобы выбрать транзакцию с более высокой ценой на газ.
Хотя невозможно явно отменить транзакцию, вы можете аннулировать транзакцию до ее майнинга. Это работает путем трансляции той же транзакции с использованием того же одноразового номера , но с более высокой комиссией за газ. Майнеры заинтересованы в обработке транзакций с более высокими комиссиями. Если они обрабатывают более новую транзакцию, то старая транзакция становится недействительной и поэтому отклоняется.
Также возможно установить слишком низкую плату за газ в исходной транзакции, и они отклонят транзакцию через некоторое время, но это маловероятно.
Связанный
Отложенная транзакция может быть отменена с помощью кошелька, который ее поддерживает.
Например, вот инструкция от кошелька MetaMask со схемами.
Нажмите кнопку Отмена. Другие ответы объясняют больше о том, что происходит за кулисами.
Команда Blocknative написала отличный пост с подробным описанием отмененных транзакций, который отвечает на ваш вопрос: https://blog.blocknative.com/blog/canceled-transactions .
Вот что они говорят об отмененной передаче:
Что такое отмененные транзакции?
В Ethereum транзакция Cancel — это попытка перезаписать ожидающую в данный момент транзакцию новой транзакцией. Важно отметить, что Отмененные транзакции — это соглашение, а не стандарт. Как правило, транзакция отмены будет иметь:
- Идентичный одноразовый номер,
- С того же адреса кошелька,
- Отправлено на внешний счет (не смарт-контракт), с
- Как минимум на 10% выше плата за газ,
- но нулевое значение, и
- Подписывается и успешно отправляется до подтверждения исходной транзакции.
Суть идеи заключается в том, что, поскольку майнеры заинтересованы в том, чтобы отдавать приоритет транзакциям с большим количеством газа, транзакция отмены должна быть подтверждена до исходной транзакции, даже если она попала в мемпул позже. Другими словами, транзакции отмены похожи на вероятностные пересчёты.
Так что да, вы можете отправить в сеть Отмену TX, чтобы попытаться аннулировать ожидающую TX. Но ничего не гарантировано. После того, как вы отправите Отмену, вы должны надеяться, что она будет добыта до вашей первоначальной транзакции.
Тьяден Хесс
Аниснякан
Ричард Хоррокс