Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Core Fellowship logic #13480

@gavofyork

Description

@gavofyork

Implement a pallet supporting the logic specific to the Core Fellowship. At present we have Salary pallet which handles payments, and RankedCollective pallet which handles basic membership and tracking rank. These are nicely generic. However there are elements of The Fellowship which are less generic and which should be implemented separately and which exert control over these two pallets.

Core Fellowship pallet (pallet-core-fellowship) should:

  • introduce an API to synchronise salary cycles with core-fellowship active/passive cycles. Basically just a hook-trait trait Cycle { type Index: AtLeast16BitUnsigned; fn cycle(index: Index); }.
  • members may pre-register that they expect to be active in the next era. Members may also register that they are passive in the current era.
  • implement GetSalary to return the current maximum salary for a member based on their rank and whether they are active this month.
  • provide a permissionless service transaction to demote a member 13/26 weeks (dependent on rank) following their last proof.
  • make a transaction which takes a peer-group-origin and which can reset the proof date. If within some grace period prior to the end, then it is rounded up.
  • provide a transaction which takes a peer-group-origin and which can to be used to promote a member, this should work only after the appropriate time period has passed since their last promotion.
  • ensure candidates can register permissionlessly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions