You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current iteration simply inherits AccessControl, which has grantRole and revokeRole, and adds batched versions (grantRoles(roles[], user), grantRolesToMany(roles[], users[], same for revoking).
With #980, we can now also add and revoke roles globally. I argue that having so many functions is a) error-prone both during development and when using the contract, and b) not really necessary, since we can always have batching at the caller level. For example, the current admin account is a Gnosis Safe multisig, which natively supports this.
We'll already introduce changes to AccessControl in #985: I propose we also do away with grantRole(role, account) and grantRoleToMany(roles[], accounts[]), and just keep grantRoles(roles[], where[], account) and grantRolesGlobally(roles[], account) (same for revoke).
The text was updated successfully, but these errors were encountered:
The current iteration simply inherits AccessControl, which has
grantRole
andrevokeRole
, and adds batched versions (grantRoles(roles[], user)
,grantRolesToMany(roles[], users[]
, same for revoking).With #980, we can now also add and revoke roles globally. I argue that having so many functions is a) error-prone both during development and when using the contract, and b) not really necessary, since we can always have batching at the caller level. For example, the current admin account is a Gnosis Safe multisig, which natively supports this.
We'll already introduce changes to AccessControl in #985: I propose we also do away with
grantRole(role, account)
andgrantRoleToMany(roles[], accounts[])
, and just keepgrantRoles(roles[], where[], account)
andgrantRolesGlobally(roles[], account)
(same for revoke).The text was updated successfully, but these errors were encountered: