Сначала определите состояние

  • Сначала найдите hash, sender, сеть, nonce и убедитесь, что receipt действительно отсутствует.
  • Speed up обычно сохраняет действие и повышает fee parameters; cancel пытается заменить его переводом самому себе с тем же nonce.
  • Замена — соревнование в mempool, а не гарантия: исходная версия может попасть в блок первой.

Сначала отделите pending в сети от зависшего интерфейса

Что видно и что это может означать
НаблюдениеВероятное состояниеСледующая проверка
Есть receipt и block numberТранзакция уже включенаПроверить status; replacement больше не отменит результат
Hash найден как pending, receipt nullУ источника есть неподтверждённый кандидатСверить sender, nonce и fee fields
Hash не найден ни у одного источникаBroadcast не состоялся, запись удалена или RPC не видел еёПроверить другой доверенный RPC и transaction count
Кошелёк показывает pending, explorer — confirmedЛокальная история отсталаОбновить данные, а не создавать новый платёж
Что видно и что это может означать
Наблюдение
Есть receipt и block number
Вероятное состояние
Транзакция уже включена
Следующая проверка
Проверить status; replacement больше не отменит результат
Наблюдение
Hash найден как pending, receipt null
Вероятное состояние
У источника есть неподтверждённый кандидат
Следующая проверка
Сверить sender, nonce и fee fields
Наблюдение
Hash не найден ни у одного источника
Вероятное состояние
Broadcast не состоялся, запись удалена или RPC не видел её
Следующая проверка
Проверить другой доверенный RPC и transaction count
Наблюдение
Кошелёк показывает pending, explorer — confirmed
Вероятное состояние
Локальная история отстала
Следующая проверка
Обновить данные, а не создавать новый платёж

Transaction hash — главный идентификатор исходной версии. Найдите его в activity кошелька и откройте в explorer той же сети. Затем запишите sender, nonce, to, value, input data и fee fields: gasPrice у legacy-транзакции либо maxFeePerGas и maxPriorityFeePerGas у type 2. Если hash неизвестен, повторная отправка той же суммы не является диагностикой: она способна создать отдельную транзакцию с новым nonce.

Nonce превращает операции аккаунта в очередь

У externally owned account nonce увеличивается последовательно. Если сеть ещё не исполнила nonce 41, обычная транзакция с nonce 42 не может перепрыгнуть его. Она может распространяться и отображаться, но исполнение ждёт закрытия пробела. Поэтому начинать нужно с самого раннего pending nonce, а не с последней карточки, которая кажется зависшей.

Если RPC показывает разные значения latest и pending transaction count, расхождение само по себе ещё не доказывает ошибку. Узлы могут иметь разные mempool. Сравните несколько доверенных источников и не смешивайте сети: один адрес EVM может выглядеть одинаково в Ethereum, Base или BNB Smart Chain, но nonce и очередь у каждой сети свои.

Speed up и cancel создают конкурента с тем же nonce

Три варианта действия с pending EOA-транзакцией
ДействиеЧто отправляетсяГлавный риск
WaitНичего новогоОперация остаётся в неопределённом pending состоянии
Speed upТа же операция с тем же nonce и более конкурентными fee fieldsКошелёк изменит fee, но включение не гарантировано
CancelОбычно 0 ETH самому себе с тем же nonce и более конкурентными fee fieldsИсходная версия может попасть в блок первой
Три варианта действия с pending EOA-транзакцией
Действие
Wait
Что отправляется
Ничего нового
Главный риск
Операция остаётся в неопределённом pending состоянии
Действие
Speed up
Что отправляется
Та же операция с тем же nonce и более конкурентными fee fields
Главный риск
Кошелёк изменит fee, но включение не гарантировано
Действие
Cancel
Что отправляется
Обычно 0 ETH самому себе с тем же nonce и более конкурентными fee fields
Главный риск
Исходная версия может попасть в блок первой

Название cancel описывает намерение пользователя, а не команду протоколу удалить старую транзакцию. Пока обе версии находятся у узлов, block builder может увидеть одну из них раньше. После включения любой версии nonce считается использованным, и остальные версии с этим nonce уже не могут исполниться в той же канонической истории.

Кнопка кошелька предпочтительнее ручного ввода: приложение знает исходную операцию и строит replacement. Но интерфейсы и правила fee bump меняются. Не копируйте фиксированный процент из старой инструкции как вечный порог. Проверьте оценку кошелька и убедитесь, что max fee способен покрыть будущую base fee и выбранную priority fee; подробная модель полей разобрана отдельно.

Результат проверяют по двум hash, а не по исчезнувшей кнопке

После speed up или cancel

  • сохранить hash исходной и replacement-транзакции;
  • проверить, у обеих ли версий одинаковые sender и nonce;
  • дождаться receipt одной версии и записать её block hash;
  • проверить status, to, value и input data победившей версии;
  • убедиться, что следующая транзакция аккаунта больше не заблокирована nonce gap;
  • если сервис ожидает депозит, передать ему hash фактически включённой версии.

Если операция уже включена со status 0, это не pending и не задача для cancel. Такой receipt означает ошибку исполнения; разбирают revert, gas used и вызванный контракт. Для smart account сначала устанавливают bundler и nonce-space конкретной реализации.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Ethereum.org — Transactions Ethereum Foundation · Проверено 18 августа 2026 г. в 22:28 GMT+5
  2. Ethereum.org — Ethereum accounts Ethereum Foundation · Проверено 18 августа 2026 г. в 22:28 GMT+5
  3. MetaMask — speed up or cancel a pending transaction MetaMask · Проверено 18 августа 2026 г. в 22:28 GMT+5
  4. Ethereum.org — JSON-RPC API Ethereum Foundation · Проверено 18 августа 2026 г. в 22:28 GMT+5
  5. go-ethereum — transaction pool errors go-ethereum · Проверено 18 августа 2026 г. в 22:43 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.