Skip to content

Organisation Proposals handling #101

@5-mark

Description

@5-mark

User Story

  1. 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
  1. 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
  1. Special Cases:
  • If an organisation raises funds through a campaign, the campaign contributors are part of the eligible voters for withdrawal proposals
  1. Origins
  • origins need to be created to reflect the participating and approving majority VotingResult, composed of:

    • root
    • raw_origin -> member||members
  • there are also member groups

    • Prime
    • Council
    • Contributors
    • Members
    • GameDAOCouncil

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

  1. Extrinsics related to the organisation cannot be executed by any individual
  2. origins as described above and derived from proposal type and eligible voters execute an extrinsic
  3. necessary deposits are respected
  4. 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

  1. In a DAO type organisation create a proposal, accept the vote and see extrinsic getting executed.
  2. In a DAO type organisation create a proposal, decline the vote and see extrinsic not getting executed
  3. In a INDIVIDUAL type organisation run the extrinsic as PRIME and see getting executed
  4. In a INDIVIDUAL type organisation run the extrinsic as another org member and see extrinsic not getting executed

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions