Если транзакция Ethereum отмечена как заменённая, найдите включённую в блок операцию того же отправителя с тем же nonce и проверьте её результат. Старый хеш может так и не стать подтверждением платежа. Замена способна сохранить перевод, отменить его либо выполнить другое действие, поэтому сама отметка Replaced не доказывает поступление денег получателю.
Старый хеш нужен для истории, новый — для результата
Откройте исходную операцию в обозревателе выбранной сети. Запишите полный адрес отправителя и nonce. Если обозреватель предлагает переход к замене, откройте её и сопоставьте эти два поля. Если перехода нет, изучите исходящие операции отправителя с соответствующим nonce. Близкое время, похожая сумма или одинаковая подпись действия в кошельке сами по себе не устанавливают связь между двумя попытками.
В объяснении Etherscan замена связана с подтверждённой операцией того же отправителя и того же nonce. Отдельная отметка Dropped говорит о другом: ожидающая операция могла исчезнуть из пула наблюдаемых узлов, но затем снова распространиться. По одной такой записи нельзя считать платёж окончательно отменённым и безопасно отправлять второй. Сначала выясните, есть ли уже исполненная конкурирующая попытка.
Что проверить у найденной замены
| Результат замены | Проверка | Вывод о платеже |
|---|---|---|
| Перевод ETH нужному получателю | Адрес, сумма и успешное исполнение | Подтверждением может быть новый хеш |
| Вызов контракта токена | Фактическое движение нужного токена к получателю | Внешнего поля To недостаточно |
| Операция отмены с отправкой себе | Реальное назначение и движение средств | Исходный получатель этой отменой не оплачен |
| Другое действие с тем же nonce | Полный результат новой инструкции | Нужен отдельный разбор |
| Включение в блок с ошибкой исполнения | Статус результата и изменения баланса | Включение не доказывает успешную оплату |
| Новая попытка тоже ожидает | Текущее состояние и конкурирующие записи | Подтверждённой замены пока не установлено |
В документации Ethereum об операциях отдельно описаны отправитель, получатель, nonce, значение и данные вызова. Замена представляет другую подписанную инструкцию, а не правку карточки старого хеша. Поэтому она требует собственной проверки. Включённая операция с ошибкой тоже отличается от попытки, которая вообще не попала в блок: более высокий текущий nonce аккаунта не подтверждает оплату нужного счёта.
Пример с оплатой 0,05 ETH
Учебная ситуация: аккаунт A отправляет получателю B сумму 0,05 ETH. Попытка H1 использует nonce 17 и остаётся в ожидании. Через ускорение в кошельке отправитель подписывает H2 с nonce 17, тем же получателем и той же суммой. Если H2 успешно исполнена и содержит нужный перевод, подтверждением для B будет H2. Исходный H1 объясняет историю попыток, но не является вторым исполненным платежом.
В другом варианте отправитель создаёт H3 с nonce 17 как операцию отмены, и в блок попадает именно она. Такой результат может использовать прежний nonce, не перечислив деньги B. Наконец, повторная отправка с nonce 18 — уже самостоятельная инструкция, а не замена на том же месте очереди. Если оба подходящих перевода исполнятся, получатель может получить две оплаты. Пока исходы не разобраны, новая отправка добавляет неопределённость.
Обозначения H1, H2 и H3 вымышлены и не являются реальными хешами. Сумма тоже учебная, а не рекомендация по тестовому платежу. Для поддержки важно другое: была ли новая попытка подписана с тем же nonce или со следующим. В разборе nonce объясняется эта последовательность. Изменять настройки кошелька для понимания уже существующих записей не требуется: сначала достаточно корректно прочитать поля.
Соберите цепочку доказательств для поддержки
- Сохраните исходный хеш, сеть, отправителя, nonce и номер заявки, если он есть.
- Найдите предполагаемую замену и сравните отправителя и nonce.
- Проверьте включение замены в блок и результат её исполнения.
- Найдите фактическое движение ETH или нужного токена к ожидаемому получателю.
- Сверьте полученный актив и сумму с исходными инструкциями оплаты.
- Передайте новый подтверждённый хеш как результат, а старый — как историю, явно указав их связь.
При переводе токена внешний получатель операции может быть контрактом, а адрес клиента указан в движении токена. Эти поля нельзя подменять друг другом. В инструкции по чтению Etherscan показано их различие. Если замена завершилась ошибкой либо отправила другой актив, так и напишите. Новый хеш не становится доказательством нужной оплаты только потому, что обозреватель связал его с исходной попыткой.
Почему приложение сообщает об ошибке замены
Приложение может показать программную ошибку вместо удобного перехода к новой операции. В документации ethers v5 различаются результаты repriced, cancelled и replaced; приложение получает сведения о замене и её квитанции. Разработчику нужно разобрать эти записи, а не считать любую такую ошибку полным провалом либо успешной оплатой. Пользователю стоит запросить у приложения новый хеш и название сети.
Если вы только пытаетесь заменить ожидающую операцию, пользуйтесь документированной процедурой кошелька. MetaMask отдельно указывает на более ранние ожидающие nonce, способные задерживать следующие попытки. Это вопрос очереди, а не доказательство необходимости заново платить получателю. Не экспериментируйте вручную с номерами, пока не установлено состояние прежних инструкций и результат возможной отмены.
Сопоставьте исполнение с конкретной заявкой
Даже успешный заменяющий перевод может потребовать сверки с заказом у получателя. Подготовьте номер заявки, оба хеша, адрес назначения и подтверждённую сумму. Не предполагайте, что система автоматически свяжет любой новый хеш с первоначальной попыткой или начнёт срок заявки заново. Секреты кошелька для такой сверки не нужны; достаточно сведений о публичной операции и заказа, переданных через официальный канал поддержки.
Перед последующим обменом без регистрации сохраните простое различие: у одной заявки может быть несколько попыток с разными хешами, но сумму отправки устанавливают по реальным исполненным движениям. Если оплатили два разных nonce, сообщите об обоих. Если в блок попала отмена, не описывайте её как оплату получателю. Такая запись помогает продолжить разбор без ещё одного перевода наугад.
Частые вопросы
Что означает transaction dropped or replaced?
Нужно различить исчезнувшую из наблюдаемого пула попытку и подтверждённую замену с тем же nonce. Только по общей формулировке интерфейса нельзя заключить, что получатель оплачен.
Что проверить при transaction dropped or replaced в MetaMask?
Сопоставьте исходный хеш, отправителя и nonce с записью замены в нужной сети. Затем проверьте её исполнение и фактический перевод, прежде чем снова отправлять деньги.
Как понимать dropped and replaced transaction на Etherscan?
Проверьте связанную подтверждённую операцию того же отправителя с тем же nonce. Она может сохранить платёж либо заменить его другим действием, поэтому нужен разбор её результата.