-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
Description
User Story
- As organisation council I want to propose the execution of extrinsics which belong to gamedao protocol:
- settings of the organisation
- membership action
- withdrawal and spending of funds in the treasury
- later on more will be added to the list
- Furthermore:
- a PRIME controlled organisation is an organisation with a council size of one
- a COUNCIL controlled organisation is an organisation with an arbitrary council size greater than one
- as the outcome of any proposal is calculated based on quorum and majorities
- Special Cases:
- If an organisation raises funds through a campaign, the campaign contributors are part of the eligible voters for withdrawal proposals
- Origins
-
origins need to be created to reflect the participating and approving majority
VotingResult, composed of:rootraw_origin->member||members
-
there are also member groups
PrimeCouncilContributorsMembersGameDAOCouncil
example:
extrinsic( origin, params )
-> origin is result of voting, e.g. [
5 -> accepted,
7 -> eligible,
Option<Voting.Majority> -> how to determine, e.g. `Voting.TokenWeighted`
]
Acceptance Criteria
- Extrinsics related to the organisation cannot be executed by any individual
- origins as described above and derived from proposal type and eligible voters execute an extrinsic
- necessary deposits are respected
- transaction fee is paid through treasury
Additional Information
List of extrinsics to be access restricted
updateOrg(orgId, primeId, accessModel, memberLimit, feeModel, membershipFee)addMember(orgId, who)(need addMember for open orgs not access restricted, probably need other extrinsic which allows users into the the org )removeMember(orgId, who)(need removeMember for open orgs not access restricted, probably need other extrinsic which suspends/blacklists users from the the org)spendFunds(orgId, currencyId, beneficiary, amount)
How to test
- In a DAO type organisation create a proposal, accept the vote and see extrinsic getting executed.
- In a DAO type organisation create a proposal, decline the vote and see extrinsic not getting executed
- In a INDIVIDUAL type organisation run the extrinsic as PRIME and see getting executed
- In a INDIVIDUAL type organisation run the extrinsic as another org member and see extrinsic not getting executed