Priority
High — must be addressed in current sprint
User story / Problem statement
The role model has grown across four contracts and has not been reviewed as a whole. Three things
are known already:
The symbol manager names two different roles. On the vault it closes epochs. On the share token it
covers mint, burn and eight more privileged functions. They live on different contracts and mean
different things.
The vault constructor takes compliance and attester and uses them only for the distinctness
check. Compliance is enforced on the identity verifier and the compliance dispatcher, and attestation
on the oracle, so neither authority is exercised by the vault.
fund and fulfill_epoch are open to any caller. That is deliberate for fulfilment and worth
stating for funding.
Expected outcome
Every entrypoint's authority is stated, checked, and tested, and the naming does not invite a
mistake.
Acceptance criteria
Technical notes
The pattern worth grepping for: a _caller parameter that a macro authenticates independently, so
the argument is decoration. set_custodian and unpause both take one.
Refs: ARCHITECTURE §4.5, §6 · invariants: I31 · findings: F-049
Priority
High — must be addressed in current sprint
User story / Problem statement
The role model has grown across four contracts and has not been reviewed as a whole. Three things
are known already:
The symbol
managernames two different roles. On the vault it closes epochs. On the share token itcovers mint, burn and eight more privileged functions. They live on different contracts and mean
different things.
The vault constructor takes
complianceandattesterand uses them only for the distinctnesscheck. Compliance is enforced on the identity verifier and the compliance dispatcher, and attestation
on the oracle, so neither authority is exercised by the vault.
fundandfulfill_epochare open to any caller. That is deliberate for fulfilment and worthstating for funding.
Expected outcome
Every entrypoint's authority is stated, checked, and tested, and the naming does not invite a
mistake.
Acceptance criteria
the test that proves a wrong caller is refused.
managerroles are either renamed or documented as distinct, and the deployment scriptcannot grant one where the other was meant.
complianceandattesterare dropped from the vault constructor, or kept with the reasonrecorded.
Technical notes
The pattern worth grepping for: a
_callerparameter that a macro authenticates independently, sothe argument is decoration.
set_custodianandunpauseboth take one.Refs: ARCHITECTURE §4.5, §6 · invariants: I31 · findings: F-049