Репо кажется частным: У любого из вариантов есть свои плюсы и минусы, поэтому вы можете создать гибридную реализацию для смягчения последствий. Вот некоторые из многопрограммных приложений, которые вы можете использовать:
Marinade Finance: использует единую основную программу + вспомогательные программы для определенных доменов. Вы можете проверить, как они обрабатывают права администратора и операционные полномочия (основная программа имеет мультиподпись совета в качестве администратора, но КПК для операций вывода ставок). Также реферальная программа представляет собой обертку, которая встраивается в основную программу.
Marginfi: использует групповую изоляцию с общей программой.
Ellipsis Labs: использует основную программу + вспомогательные программы, которые CPI вставляются в ядро. Phoenix-v1 — это основная книга заказов, в которую менеджер места и маркет-мейкер программируют CPI.
Распространенные ловушки:
Слепое доверие к идентификатору программы-вызвателя. Тот факт, что CPI получен от программы X, не означает, что программа X проверила пользователя. Всегда перепроверяйте соответствующих подписантов. Забываем, что КПК не сохраняют статус подписывающего лица в инструкциях. КПК, который выполнил вход в инструкцию 1, не является автоматически подписывающим лицом в инструкции 2, если вы снова не используете CPI с помощью ignore_signed. Централизованное право обновления. Если все программы имеют право на обновление, ваша модульностьиллюзорный. Рассмотрим мультиподпись.