Struct pallet_session::pallet::Pallet
source · pub struct Pallet<T>(_);
Expand description
The Pallet
struct, the main type that implements traits and standalone
functions within the pallet.
Implementations§
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn set_keys(
origin: OriginFor<T>,
keys: T::Keys,
proof: Vec<u8>
) -> DispatchResult
pub fn set_keys( origin: OriginFor<T>, keys: T::Keys, proof: Vec<u8> ) -> DispatchResult
Sets the session key(s) of the function caller to keys
.
Allows an account to set its session key prior to becoming a validator.
This doesn’t take effect until the next session.
The dispatch origin of this function must be signed.
Complexity
O(1)
. Actual cost depends on the number of length ofT::Keys::key_ids()
which is fixed.
sourcepub fn purge_keys(origin: OriginFor<T>) -> DispatchResult
pub fn purge_keys(origin: OriginFor<T>) -> DispatchResult
Removes any session key(s) of the function caller.
This doesn’t take effect until the next session.
The dispatch origin of this function must be Signed and the account must be either be convertible to a validator ID using the chain’s typical addressing system (this usually means being a controller account) or directly convertible into a validator ID (which usually means being a stash account).
Complexity
O(1)
in number of key types. Actual cost depends on the number of length ofT::Keys::key_ids()
which is fixed.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn validators() -> Vec<T::ValidatorId>
pub fn validators() -> Vec<T::ValidatorId>
An auto-generated getter for Validators
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn current_index() -> SessionIndex
pub fn current_index() -> SessionIndex
An auto-generated getter for CurrentIndex
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn queued_keys() -> Vec<(T::ValidatorId, T::Keys)>
pub fn queued_keys() -> Vec<(T::ValidatorId, T::Keys)>
An auto-generated getter for QueuedKeys
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn disabled_validators() -> Vec<u32>
pub fn disabled_validators() -> Vec<u32>
An auto-generated getter for DisabledValidators
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn rotate_session()
pub fn rotate_session()
Move on to next session. Register new validator set and session keys. Changes to the validator set have a session of delay to take effect. This allows for equivocation punishment after a fork.
sourcepub fn disable_index(i: u32) -> bool
pub fn disable_index(i: u32) -> bool
Disable the validator of index i
, returns false
if the validator was already disabled.
sourcepub fn disable(c: &T::ValidatorId) -> bool
pub fn disable(c: &T::ValidatorId) -> bool
Disable the validator identified by c
. (If using with the staking pallet,
this would be their stash account.)
Returns false
either if the validator could not be found or it was already
disabled.
sourcepub fn upgrade_keys<Old, F>(upgrade: F)where
Old: OpaqueKeys + Member + Decode,
F: Fn(T::ValidatorId, Old) -> T::Keys,
pub fn upgrade_keys<Old, F>(upgrade: F)where Old: OpaqueKeys + Member + Decode, F: Fn(T::ValidatorId, Old) -> T::Keys,
Upgrade the key type from some old type to a new type. Supports adding and removing key types.
This function should be used with extreme care and only during an
on_runtime_upgrade
block. Misuse of this function can put your blockchain
into an unrecoverable state.
Care should be taken that the raw versions of the
added keys are unique for every ValidatorId, KeyTypeId
combination.
This is an invariant that the session pallet typically maintains internally.
As the actual values of the keys are typically not known at runtime upgrade,
it’s recommended to initialize the keys to a (unique) dummy value with the expectation
that all validators should invoke set_keys
before those keys are actually
required.
Trait Implementations§
source§impl<T: Config> DisabledValidators for Pallet<T>
impl<T: Config> DisabledValidators for Pallet<T>
source§fn is_disabled(index: u32) -> bool
fn is_disabled(index: u32) -> bool
source§impl<T: Config> EstimateNextNewSession<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> EstimateNextNewSession<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn estimate_next_new_session(
now: BlockNumberFor<T>
) -> (Option<BlockNumberFor<T>>, Weight)
fn estimate_next_new_session( now: BlockNumberFor<T> ) -> (Option<BlockNumberFor<T>>, Weight)
This session pallet always calls new_session and next_session at the same time, hence we do a simple proxy and pass the function to next rotation.
source§fn average_session_length() -> BlockNumberFor<T>
fn average_session_length() -> BlockNumberFor<T>
source§impl<T: Config> GetStorageVersion for Pallet<T>
impl<T: Config> GetStorageVersion for Pallet<T>
source§fn current_storage_version() -> Self::CurrentStorageVersion
fn current_storage_version() -> Self::CurrentStorageVersion
source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
source§impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_initialize(n: BlockNumberFor<T>) -> Weight
fn on_initialize(n: BlockNumberFor<T>) -> Weight
Called when a block is initialized. Will rotate session if it is the last block of the current session.
source§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
source§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
). Read moresource§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
source§fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
source§fn pre_upgrade() -> Result<Vec<u8, Global>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8, Global>, DispatchError>
source§fn post_upgrade(_state: Vec<u8, Global>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8, Global>) -> Result<(), DispatchError>
source§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
source§fn integrity_test()
fn integrity_test()
source§impl<T: Config> IntegrityTest for Pallet<T>
impl<T: Config> IntegrityTest for Pallet<T>
source§impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn offchain_worker(n: BlockNumberFor<T>)
fn offchain_worker(n: BlockNumberFor<T>)
source§impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_finalize(n: BlockNumberFor<T>)
fn on_finalize(n: BlockNumberFor<T>)
Hooks::on_finalize
.source§impl<T: Config> OnGenesis for Pallet<T>
impl<T: Config> OnGenesis for Pallet<T>
source§fn on_genesis()
fn on_genesis()
source§impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight
fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight
Hooks::on_idle
.source§impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_initialize(n: BlockNumberFor<T>) -> Weight
fn on_initialize(n: BlockNumberFor<T>) -> Weight
Hooks::on_initialize
.source§impl<T: Config> OnRuntimeUpgrade for Pallet<T>
impl<T: Config> OnRuntimeUpgrade for Pallet<T>
source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
source§fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError>
fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError>
Hooks::pre_upgrade
.source§fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError>
fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError>
Hooks::post_upgrade
.source§fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
pre_upgrade
->
on_runtime_upgrade
-> post_upgrade
hooks for a migration. Read moresource§impl<T: Config> PalletInfoAccess for Pallet<T>
impl<T: Config> PalletInfoAccess for Pallet<T>
source§fn module_name() -> &'static str
fn module_name() -> &'static str
source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
source§impl<T: Config> PalletsInfoAccess for Pallet<T>
impl<T: Config> PalletsInfoAccess for Pallet<T>
source§impl<T> PartialEq<Pallet<T>> for Pallet<T>
impl<T> PartialEq<Pallet<T>> for Pallet<T>
source§impl<T: Config> StorageInfoTrait for Pallet<T>
impl<T: Config> StorageInfoTrait for Pallet<T>
fn storage_info() -> Vec<StorageInfo>
source§impl<T: Config> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn try_state(
n: BlockNumberFor<T>,
_s: TryStateSelect
) -> Result<(), TryRuntimeError>
fn try_state( n: BlockNumberFor<T>, _s: TryStateSelect ) -> Result<(), TryRuntimeError>
source§impl<T: Config> ValidatorRegistration<<T as Config>::ValidatorId> for Pallet<T>
impl<T: Config> ValidatorRegistration<<T as Config>::ValidatorId> for Pallet<T>
source§fn is_registered(id: &T::ValidatorId) -> bool
fn is_registered(id: &T::ValidatorId) -> bool
source§impl<T: Config> ValidatorSet<<T as Config>::AccountId> for Pallet<T>
impl<T: Config> ValidatorSet<<T as Config>::AccountId> for Pallet<T>
§type ValidatorId = <T as Config>::ValidatorId
type ValidatorId = <T as Config>::ValidatorId
§type ValidatorIdOf = <T as Config>::ValidatorIdOf
type ValidatorIdOf = <T as Config>::ValidatorIdOf
AccountId
to ValidatorId
.source§fn session_index() -> SessionIndex
fn session_index() -> SessionIndex
source§fn validators() -> Vec<Self::ValidatorId>
fn validators() -> Vec<Self::ValidatorId>
source§impl<T: Config> WhitelistedStorageKeys for Pallet<T>
impl<T: Config> WhitelistedStorageKeys for Pallet<T>
source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
Vec<TrackedStorageKey>
indicating the storage keys that
should be whitelisted during benchmarking. This means that those keys
will be excluded from the benchmarking performance calculation.impl<T> Eq for Pallet<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Pallet<T>where T: RefUnwindSafe,
impl<T> Send for Pallet<T>where T: Send,
impl<T> Sync for Pallet<T>where T: Sync,
impl<T> Unpin for Pallet<T>where T: Unpin,
impl<T> UnwindSafe for Pallet<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.