
Nonce — порядковое значение для транзакций аккаунта Ethereum. Оно помогает сети принимать исходящие операции в нужном порядке. Если ожидается номер 7, транзакция с номером 8 не сможет обойти пропуск.
Как выглядит очередь
Пусть последняя включённая исходящая операция имела nonce 6. Кошелёк отправил 7, затем 8. Пока 7 не включена, 8 может оставаться в ожидании. Поступивший перевод от другого аккаунта не увеличивает исходящий nonce вашего адреса.
Если 7 включена в блок, но её выполнение завершилось с revert, номер всё равно расходуется. Статус выполнения вызова и наличие записи в блоке описывают разные вещи.
Что означает замена с тем же номером
Кошелёк может предложить новую транзакцию с тем же nonce. Две операции одного аккаунта с одним номером не будут обе выполнены в одной цепочке. Условия принятия замены зависят от настроек сети, узлов и приложений. Само отображение замены в кошельке не гарантирует, что сеть выберет именно её.
Что проверять при ожидании
Сверьте сеть, адрес отправителя и идентификаторы попыток. Узнайте, есть ли более ранняя операция с тем же или меньшим номером. Не отправляйте платёж повторно, пока статус предыдущего не ясен. Что происходит при неудачном выполнении, разбирает revert в Ethereum. Для различия сетей смотрите chain ID.