ERC-7579 — это стандарт для модульных смарт-аккаунтов, расширяющий ERC-4337. Он позволяет пользователям кастомизировать свои аккаунты, добавляя, удаляя или изменяя их функциональность через внешние модули, в отличие от статичных аккаунтов, изменяемых только разработчиками. Основная идея ERC-7579 заключается в предоставлении минимальных интерфейсов и правил, обеспечивающих совместимость модулей между разными аккаунтами.
Стандарт определяет четыре основных типа модулей: Validation, Execution, Fallback и Hooks. Модули Validation проверяют операции userOp, модули Execution выполняют определенные действия через смарт-аккаунт, Fallback обрабатывают новые селекторы функций, а Hooks обрабатывают поток транзакций перед выполнением функции execute. Стандарт допускает создание пользовательских типов, но вышеуказанные являются базовыми.
Для установки, контроля и удаления модулей предусмотрены специальные функции, а также функции для выполнения логики, такие как execute и executeFromExecutor. Параметр mode, закодированный в виде bytes32, определяет способ вызова, обработку ошибок и другие параметры выполнения. Такой подход обеспечивает гибкость и расширяемость системы.
Для обеспечения безопасности модулей предлагается использовать стандарт ERC-7484, который позволяет смарт-аккаунтам получать информацию о безопасности модулей из реестра аттестации. Модули могут быть добавлены или удалены из реестра в случае обнаружения уязвимостей. Это позволяет оперативно защитить пользовательские аккаунты. Инструменты ModuleSDK и ModuleKit от компании Rhinestone упрощают разработку и тестирование модулей, позволяя разработчикам тестировать свои модули с разными реализациями MSA, такими как Safe, Kernel, Nexus.
Изображение носит иллюстративный характер
Стандарт определяет четыре основных типа модулей: Validation, Execution, Fallback и Hooks. Модули Validation проверяют операции userOp, модули Execution выполняют определенные действия через смарт-аккаунт, Fallback обрабатывают новые селекторы функций, а Hooks обрабатывают поток транзакций перед выполнением функции execute. Стандарт допускает создание пользовательских типов, но вышеуказанные являются базовыми.
Для установки, контроля и удаления модулей предусмотрены специальные функции, а также функции для выполнения логики, такие как execute и executeFromExecutor. Параметр mode, закодированный в виде bytes32, определяет способ вызова, обработку ошибок и другие параметры выполнения. Такой подход обеспечивает гибкость и расширяемость системы.
Для обеспечения безопасности модулей предлагается использовать стандарт ERC-7484, который позволяет смарт-аккаунтам получать информацию о безопасности модулей из реестра аттестации. Модули могут быть добавлены или удалены из реестра в случае обнаружения уязвимостей. Это позволяет оперативно защитить пользовательские аккаунты. Инструменты ModuleSDK и ModuleKit от компании Rhinestone упрощают разработку и тестирование модулей, позволяя разработчикам тестировать свои модули с разными реализациями MSA, такими как Safe, Kernel, Nexus.