Skip to main contentA-REX Foundation

Диаграммы · 05

Роли и границы доверия

Кто что может делать с эталонным токеном, где проходит граница доверия с хуками и рекомендуемое хранение каждого ключа. Полномочия никогда не вытекают из балансов.

Участники и их возможности

flowchart LR
    subgraph GOV["Мультиподпись управления + таймлок"]
        ADMIN[DEFAULT_ADMIN_ROLE]
        UPG[UPGRADER_ROLE]
        HADM[HOOK_ADMIN_ROLE]
    end
    subgraph ENF["Мультиподпись принудительного исполнения (комплаенс + юристы)"]
        ENFR[ENFORCER_ROLE]
    end
    subgraph OPS["Операционные сервисы, минимальные привилегии"]
        ISS[ISSUER_ROLE]
        STA[STATUS_ROLE]
        TRA[TRANSFORMER_ROLE]
        PAU[PAUSER_ROLE]
    end
    T[(ARexToken)]
    UPG -->|upgradeTo| T
    HADM -->|registerHook / removeHook| T
    ENFR -->|setFrozenTokens / forcedTransfer| T
    ISS -->|createBatch| T
    STA -->|setBatchStatus / setBatchMetadata| T
    TRA -->|transform: переработка| T
    PAU -->|pause / unpause| T
    HOLD["Держатель / одобренный оператор"] -->|transfer · burn · переформирование| T
    T -->|check · onExecuted · canSend · canReceive| HOOKS["Хуки"]
    HOOKS -.->|не могут входить повторно и перемещать балансы| T

Граница доверия хуков

Хук можетХук не может
отклонить операцию с кодомизменять какой-либо баланс
наблюдать за выполненной операциейповторно входить в токен (блокировка)
отвечать на canSend / canReceiveменять свои кэшированные флаги без повторной регистрации
читать партию через IARexBatch(msg.sender)быть зарегистрированным как EOA или без поддержки ERC-165

Меры снижения риска для вредоносного или неисправного хука: HOOK_ADMIN_ROLE удаляет его (порядок сохраняется); PAUSER_ROLE останавливает всё, кроме принудительных переводов; таймлок на изменения хуков делает их видимыми до вступления в силу.