pub trait Config: Config {
    type RuntimeEvent: From<Event> + IsType<<Self as Config>::RuntimeEvent>;
    type ValidatorId: Member + Parameter + MaybeSerializeDeserialize + MaxEncodedLen + TryFrom<Self::AccountId>;
    type ValidatorIdOf: Convert<Self::AccountId, Option<Self::ValidatorId>>;
    type ShouldEndSession: ShouldEndSession<BlockNumberFor<Self>>;
    type NextSessionRotation: EstimateNextSessionRotation<BlockNumberFor<Self>>;
    type SessionManager: SessionManager<Self::ValidatorId>;
    type SessionHandler: SessionHandler<Self::ValidatorId>;
    type Keys: OpaqueKeys + Member + Parameter + MaybeSerializeDeserialize;
    type WeightInfo: WeightInfo;
Expand description

Configuration trait of this pallet.

The main purpose of this trait is to act as an interface between this pallet and the runtime in which it is embedded in. A type, function, or constant in this trait is essentially left to be configured by the runtime that includes this pallet.

Consequently, a runtime that wants to include this pallet must implement this trait.

Required Associated Types§


type RuntimeEvent: From<Event> + IsType<<Self as Config>::RuntimeEvent>

The overarching event type.


type ValidatorId: Member + Parameter + MaybeSerializeDeserialize + MaxEncodedLen + TryFrom<Self::AccountId>

A stable ID for a validator.


type ValidatorIdOf: Convert<Self::AccountId, Option<Self::ValidatorId>>

A conversion from account ID to validator ID.

Its cost must be at most one storage read.


type ShouldEndSession: ShouldEndSession<BlockNumberFor<Self>>

Indicator for when to end the session.


type NextSessionRotation: EstimateNextSessionRotation<BlockNumberFor<Self>>

Something that can predict the next session rotation. This should typically come from the same logical unit that provides ShouldEndSession, yet, it gives a best effort estimate. It is helpful to implement EstimateNextNewSession.


type SessionManager: SessionManager<Self::ValidatorId>

Handler for managing new session.


type SessionHandler: SessionHandler<Self::ValidatorId>

Handler when a session has changed.


type Keys: OpaqueKeys + Member + Parameter + MaybeSerializeDeserialize

The keys.


type WeightInfo: WeightInfo

Weight information for extrinsics in this pallet.