Как вывести Cairo-компонент во внешний ABI основного контракта
Компонент содержит переиспользуемые хранилище, события и реализации. Подключение компонента к контракту не делает каждый его метод публичной точкой входа автоматически.
Проверьте встроенную реализацию
В примере показано подключение ownable-реализации в основном контракте. Свяжите хранилище и события по объявлению компонента и проверьте нужные внешние методы в ABI собранного основного класса. Имена зависят от конкретного компонента.
#[abi(embed_v0)]
impl OwnableImpl = OwnableComponent::OwnableImpl<ContractState>;
Если внутренние операции владения компилируются, а клиент не может вызвать геттер, выясните, какая реализация встроена и входит ли интерфейс в фактически объявленный класс. После развёртывания тестируйте адрес основного контракта.
Проверьте открытые методы
Внутренние вспомогательные реализации оставьте внутренними. Встраивание более широкого интерфейса изменит доступные вызовы, включая предусмотренные им административные методы. При обновлении зависимости проверяйте сгенерированный ABI. starknet.io The Cairo Programming Language