Priority
Medium — should be addressed soon
User story / Problem statement
Currently, the share token keeps OpenZeppelin's default renounce_admin, so its admin can remove itself. The vault and the oracle both refuse this with AdminRequired. On the token, pause, unpause and role management need the admin. A token paused when its admin renounces stays paused for good, and no new vault can ever be granted the manager role.
Expected outcome
The share token refuses renounce_admin the same way the vault and the oracle do. The admin can still hand over through transfer_admin_role and accept_admin_transfer.
Acceptance criteria
Technical notes
The token has no error enum today, so the refusal needs one (for example ShareTokenError::AdminRequired), unless an existing error fits. The vault (contracts/async-vault/src/lib.rs) and the oracle (contracts/nav-oracle/src/lib.rs) show the override.
Additional context
Raised in review of #155.
Priority
Medium — should be addressed soon
User story / Problem statement
Currently, the share token keeps OpenZeppelin's default
renounce_admin, so its admin can remove itself. The vault and the oracle both refuse this withAdminRequired. On the token,pause,unpauseand role management need the admin. A token paused when its admin renounces stays paused for good, and no new vault can ever be granted themanagerrole.Expected outcome
The share token refuses
renounce_adminthe same way the vault and the oracle do. The admin can still hand over throughtransfer_admin_roleandaccept_admin_transfer.Acceptance criteria
renounce_adminon the share token always fails.renounce_adminrow indocs/AUTHORIZATION_MATRIX.md(§5.2) names the refusal and its test.Technical notes
The token has no error enum today, so the refusal needs one (for example
ShareTokenError::AdminRequired), unless an existing error fits. The vault (contracts/async-vault/src/lib.rs) and the oracle (contracts/nav-oracle/src/lib.rs) show the override.Additional context
Raised in review of #155.