Как отличить объявление класса от развёртывания контракта Starknet
Успешный DECLARE делает класс доступным в сети Starknet. Адрес вызываемого экземпляра у кошелька от этого не появляется.
Учитывайте класс и экземпляры раздельно
Получите объявленный class hash и подтвердите объявление в нужной цепочке. Когда развёртывающий контракт позднее создаст экземпляр, запишите полученный адрес и аргументы конструктора отдельно от DECLARE.
DECLARE class H → class available on network N
instantiate H twice with distinct salts → instances A and B
В примере A и B могут использовать одинаковый код и иметь разных владельцев, балансы и значения хранилища. Вызывайте геттер по адресу нужного экземпляра, а по class hash выбирайте подходящий интерфейс.
Проверьте доступность класса в каждой сети
Совпадение class hash у локальной сборки не подтверждает объявление в другой сети. До развёртывания проверьте класс на целевой цепочке. Отличайте также class hash от compiled class hash в современных транзакциях объявления. docs.starknet.io Starknet documentation