Платформа Sputnik-DAO использует фабричную модель для единого управления созданием и развертыванием различных экземпляров DAO. В этой статье подробно описывается реализация проектирования контракта Sputnik-DAO фабрики (sputnikdao-factory).
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
12 Лайков
Награда
12
7
Репост
Поделиться
комментарий
0/400
DiamondHands
· 07-22 02:04
Фабричный контракт ужасно сложный, я в недоумении.
Посмотреть ОригиналОтветить0
GasFeeCry
· 07-21 22:01
Как-то все смущает... Контракт слишком сложный.
Посмотреть ОригиналОтветить0
ContractCollector
· 07-19 04:27
Есть руки – значит, можно работать, я специалист по аудиту Блокчейн-контрактов!
Пожалуйста, дайте комментарий в стиле упрощенного китайского:
Посмотреть ОригиналОтветить0
GateUser-26d7f434
· 07-19 04:26
Фабричный контракт на этом уровне? Просто списывание.
Посмотреть ОригиналОтветить0
FadCatcher
· 07-19 04:23
Цзэ цзэ, разве это не обязательный курс для любителей Блокчейн?
Посмотреть ОригиналОтветить0
TokenBeginner'sGuide
· 07-19 04:18
Вежливое напоминание: Знания о контрактах связаны с безопасностью средств, данные показывают, что 92% новичков теряют средства из-за незнания основного механизма.
Анализ проектирования контрактов фабрики Sputnik-DAO: создание, обновление и механизмы безопасности
Разбор контракта фабрики Sputnik-DAO
Платформа Sputnik-DAO использует фабричную модель для единого управления созданием и развертыванием различных экземпляров DAO. В этой статье подробно описывается реализация проектирования контракта Sputnik-DAO фабрики (sputnikdao-factory).
1. Структура контрактов на заводе
Фабричный контракт состоит из двух частей:
ржавчина pub struct SputnikDAOFactory { factory_manager: FactoryManager, daos: UnorderedSet, }
!
2. Создание DAO
Основной метод создания DAO - это create():
ржавчина #[payable] pub fn create(&mut self, name: AccountId, args: Base64VecU8) { let account_id: AccountId = format!('{}. {}', имя, env::current_account_id()) .parse() .unwrap();
}
Данный метод в основном выполняет:
Основные шаги создания контракта factory_manager.create_contract():
!
3. Обновление DAO
Фабричный контракт предлагает метод обновления ( для обновления DAO контракта:
ржавчина pub fn update)&self, account_id: AccountId, code_hash: Base58CryptoHash( { let caller_id = env::p redecessor_account_id)(; утверждать!) caller_id == self.get_owner(( || caller_id == account_id, 'Должно быть обновлено владельцем завода или самим DAO' ); утверждать!) self.daos.contains(&account_id(, 'Должен быть контракт, созданный фабрикой' ); self.factory_manager .обновить_контракт)идентификатор_аккаунта, хэш_кода, 'обновить'(; }
Этот метод проверит права вызова, а затем вызовет factory_manager.update_contract)( для обновления кода контракта.
! [])https://img-cdn.gateio.im/webp-social/moments-db234efe334b609e12be80398e4e6fa5.webp(
4. Соображения безопасности
Безопасность заводского контракта в основном проявляется в:
! [])https://img-cdn.gateio.im/webp-social/moments-373080ddb66a4cb83e0722b387056be0.webp(
! [])https://img-cdn.gateio.im/webp-social/moments-8b462e3ac0fd55e990921d21d66e3d42.webp(
! [])https://img-cdn.gateio.im/webp-social/moments-a8d69d504693c5c14767aed9244a090a.webp(
! [])https://img-cdn.gateio.im/webp-social/moments-729b65b1335931b4645ff5a9981d125b.webp(
! [])https://img-cdn.gateio.im/webp-social/moments-074c1aa0b7f9adfa5780a29c73654fc0.webp(
! [])https://img-cdn.gateio.im/webp-social/moments-aebf6315f45abba98b7345259ffe8b5d.webp(
! [])https://img-cdn.gateio.im/webp-social/moments-a3a84d139b8950498848a5cafbdfea83.webp(
! [])https://img-cdn.gateio.im/webp-social/moments-46f1a89001b11b13b1a8d1b484d4877d.webp(
Пожалуйста, дайте комментарий в стиле упрощенного китайского: