pub trait Config<I: 'static = ()>: Config {
    type Currency: Currency<Self::AccountId> + ReservableCurrency<Self::AccountId>;
    type MaximumMembers: Get<u32>;
    type Score: AtLeast32Bit + Clone + Copy + Default + FullCodec + MaybeSerializeDeserialize + Debug + TypeInfo + MaxEncodedLen;
    type RuntimeEvent: From<Event<Self, I>> + IsType<<Self as Config>::RuntimeEvent>;
    type CandidateDeposit: Get<<<Self as Config<I>>::Currency as Currency<<Self as Config>::AccountId>>::Balance>;
    type Period: Get<Self::BlockNumber>;
    type MembershipInitialized: InitializeMembers<Self::AccountId>;
    type MembershipChanged: ChangeMembers<Self::AccountId>;
    type ScoreOrigin: EnsureOrigin<Self::RuntimeOrigin>;
    type KickOrigin: EnsureOrigin<Self::RuntimeOrigin>;
Expand description

Configuration trait of this pallet.

Implement this type for a runtime in order to customize this pallet.

Required Associated Types

The currency used for deposits.

Maximum members length allowed.

The score attributed to a member or candidate.

The overarching event type.

Every Period blocks the Members are filled with the highest scoring members in the Pool.

The receiver of the signal for when the membership has been initialized. This happens pre-genesis and will usually be the same as MembershipChanged. If you need to do something different on initialization, then you can change this accordingly.

The receiver of the signal for when the members have changed.

Allows a configurable origin type to set a score to a candidate in the pool.

Required origin for removing a member (though can always be Root). Configurable origin which enables removing an entity. If the entity is part of the Members it is immediately replaced by the next highest scoring candidate, if available.