With SEP-14 the community voted to implement role-based access control in Safe{Wallet} based on the Zodiac Roles Modifier.
How this PR fixes it
This PR allows role members to use Safe{Wallet} to execute transaction from the Safe using their role. For this purpose, a new section has been added to the transaction sign/execute form, which only shows up if the connected wallet is a member of any role enabled on the Safe.
How to test it
Deploy a Roles Modifier through the Zodiac Safe app
Set up some permissions for a testing role, e.g. using permissions-starter-kit, apply and assign the role to an EOA using the mod's assignRoles function
Alternatively, send me your EOA address so I can assign a role in my Sepolia test setup to it.
Screenshots
A new card appears in the transaction sign/execute form only if the Safe has a Roles mod enabled and the connected wallet account is a role member.
Connected with role member wallet, permission checks pass:
Connected with role member wallet, permission checks fail:
(Status can be any value from the Roles mods' Status enum)
Checklist
[x] I've tested the branch on mobile 📱
[ ] I've documented how it affects the analytics (if at all) 📊
[x] I've written a unit/e2e test for it (if applicable) 🧑💻
📢 PR is superseded by #3768
What it solves
With SEP-14 the community voted to implement role-based access control in Safe{Wallet} based on the Zodiac Roles Modifier.
How this PR fixes it
This PR allows role members to use Safe{Wallet} to execute transaction from the Safe using their role. For this purpose, a new section has been added to the transaction sign/execute form, which only shows up if the connected wallet is a member of any role enabled on the Safe.
How to test it
assignRoles
functionAlternatively, send me your EOA address so I can assign a role in my Sepolia test setup to it.
Screenshots
A new card appears in the transaction sign/execute form only if the Safe has a Roles mod enabled and the connected wallet account is a role member.
Connected with role member wallet, permission checks pass:
Connected with role member wallet, permission checks fail:
(Status can be any value from the Roles mods' Status enum)
Checklist