Как найти недостающую factory dependency при нативном развёртывании EraVM
Фабрика может знать хеш дочернего контракта, хотя в сети ещё нет прообраза его байткода. Отправка только артефакта фабрики оставит будущий дочерний контракт недоступным для создания.
Составьте перечень используемых хешей
Скомпилируйте фабрику и конкретные дочерние классы для EraVM. Сравните хеши с кодом, уже известным целевой сети. Передайте байткод неопубликованных зависимостей в factoryDeps транзакции инструментом нативного развёртывания.
Factory F can deploy child code C
published preimages before transaction: F only
required new factory dependency: C bytecode
В примере F уже опубликована, а C отсутствует. Повторная отправка одной F не опубликует C. Если ограничения публикации требуют разделения, зависимость можно опубликовать отдельной транзакцией до фактического создания.
Отделите публикацию от создания экземпляра
Известный хеш подтверждает доступность прообраза кода. Он не подтверждает создание экземпляра или успех конструктора. Отдельно отследите вызов ContractDeployer и результат создания. docs.zksync.io ZKsync documentation