Какой nonce использовать для предсказания нативного CREATE EraVM

Аккаунт ZKsync может отправить много транзакций и развернуть лишь несколько контрактов. Нативное создание опирается на отдельный deployment nonce.

Разведите два счётчика

Для развёртывающего аккаунта на зафиксированном состоянии запросите deployment nonce через соответствующий системный контракт или SDK. Определите, кто фактически выполняет CREATE: пользователь, вызвавший фабрику, часто не является этой стороной.

account transaction nonce = 18
account deployment nonce  = 3
ordinary native CREATE uses the deployment sequence

В примере подстановка 18 из eth_getTransactionCount выберет неверную последовательность. Используйте нативное вычисление адреса CREATE со значением deployment nonce три и сверьте результат с трассировкой тестового создания.

Перепроверьте состояние перед использованием адреса

Другой промежуточный деплой того же создателя может изменить ожидаемый счётчик. Вычисление адреса его не резервирует. Для развёртываний через EVM-интерпретатор применяйте соответствующие правила этого режима. docs.zksync.io ZKsync documentation