Crate pallet_core_fellowship
source ·Expand description
Additional logic for the Core Fellowship. This determines salary, registers activity/passivity and handles promotion and demotion periods.
This only handles members of non-zero rank.
Process Flow
- Begin with a call to
induct
, where some privileged origin (perhaps a pre-existing member ofrank > 1
) is able to make a candidate from an account and introduce it to be tracked in this pallet in order to allow evidence to be submitted and promotion voted on. - The candidate then calls
submit_evidence
to apply for their promotion to rank 1. - A
PromoteOrigin
of at least rank 1 callspromote
on the candidate to elevate it to rank 1. - Some time later but before rank 1’s
demotion_period
elapses, candidate callssubmit_evidence
with evidence of their efforts to apply for approval to stay at rank 1. - An
ApproveOrigin
of at least rank 1 callsapprove
on the candidate to avoid imminent demotion and keep it at rank 1. - These last two steps continue until the candidate is ready to apply for a promotion, at which point the previous two steps are repeated with a higher rank.
- If the member fails to get an approval within the
demotion_period
then anyone may callbump
to demote the candidate by one rank. - If a candidate fails to be promoted to a member within the
offboard_timeout
period, then anyone may callbump
to remove the account’s candidacy. - Pre-existing members may call
import
to have their rank recognised and be inducted into this pallet (to gain a salary and allow for eventual promotion). - If, externally to this pallet, a member or candidate has their rank removed completely, then
offboard
may be called to remove them entirely from this pallet.
Note there is a difference between having a rank of 0 (whereby the account is a candidate) and having no rank at all (whereby we consider it unranked). An account can be demoted from rank 0 to become unranked. This process is called being offboarded and there is an extrinsic to do this explicitly when external factors to this pallet have caused the tracked account to become unranked. At rank 0, there is not a “demotion” period after which the account may be bumped to become offboarded but rather an “offboard timeout”.
Candidates may be introduced (i.e. an account to go from unranked to rank of 0) by an origin of a different privilege to that for promotion. This allows the possibility for even a single existing member to introduce a new candidate without payment.
Only tracked/ranked accounts may submit evidence for their proof and promotion. Candidates cannot be approved - they must proceed only to promotion prior to the offboard timeout elapsing.
Re-exports
pub use weights::WeightInfo;
pub use pallet::*;
Modules
- The
pallet
module in each FRAME pallet hosts the most important items needed to construct this pallet. - Autogenerated weights for pallet_core_fellowship
Structs
- Guard to ensure that the given origin is inducted into this pallet with a given minimum rank. The account ID of the member is the
Success
value. - The status of a single member.
- The status of the pallet instance.
Enums
- The desired outcome for which evidence is presented.
Type Definitions
- A piece of evidence to underpin a Wish.