gno
gno copied to clipboard
gnoland: team support
Allow a registered user to transform into a team by publishing a contract that registers the members in a registry. This will involve creating a new r/sys/teams
realm to manage the many-to-many relationship between teams and members.
New Realm: r/sys/teams
- Purpose: Keep track of the many-to-many relationship between teams and members.
-
Authentication: Verify if the caller is
r/<handle>/home
to take<handle>
as the team name. - PR #2184 implements this logic.
Next Steps
-
VMKeeper Logic:
- Only allow adding a package under a specific handle (
p/<handle>/*
orr/<handle>/*
) if the tx author is the user with that<handle>
(1-1) or a member of the team (many-to-many). - Related with #375, #1107, ... (list is longer)
- Only allow adding a package under a specific handle (
-
Demonstration of the flow to create a team
- Create a new private key.
- Register a user account on
r/gnoland/users
. - Upload
r/<handle>/home
importingr/sys/teams
and configuring it statically or dynamically. - Register members via the contract.
-
Other considerations
- Team to User Conversion: Block for now the option to convert back a team into a user for now.
-
Bonus: List team members and member’s teams in
u/<handle>
(see #2189). - Onchain keypair burning: Implement a way to "burn" a public key on-chain, making it unusable after team creation to ensure only team members can act on behalf of the team.