Struct pallet_session::Module [−][src]
Implementations
impl<T: Config + 'static> Module<T>
[src]
pub fn validators() -> Vec<T::ValidatorId>
[src]
The current set of validators.
pub fn current_index() -> SessionIndex
[src]
Current index of the session.
pub fn queued_keys() -> Vec<(T::ValidatorId, T::Keys)>
[src]
The queued keys for the next session. When the next session begins, these keys will be used to determine the validator’s session keys.
pub fn disabled_validators() -> Vec<u32>
[src]
Indices of disabled validators.
The set is cleared when on_session_ending
returns a new set of identities.
impl<T: Config> Module<T>
[src]
Can also be called using Call
.
pub fn set_keys(
origin: T::Origin,
keys: T::Keys,
proof: Vec<u8>
) -> DispatchResult
[src]
origin: T::Origin,
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. - DbReads:
origin account
,T::ValidatorIdOf
,NextKeys
- DbWrites:
origin account
,NextKeys
- DbReads per key id:
KeyOwner
- DbWrites per key id:
KeyOwner
NOTE: Calling this function will bypass origin filters.
pub fn purge_keys(origin: T::Origin) -> DispatchResult
[src]
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.
- Complexity:
O(1)
in number of key types. Actual cost depends on the number of length ofT::Keys::key_ids()
which is fixed. - DbReads:
T::ValidatorIdOf
,NextKeys
,origin account
- DbWrites:
NextKeys
,origin account
- DbWrites per key id:
KeyOwnder
NOTE: Calling this function will bypass origin filters.
impl<T: Config> Module<T>
[src]
pub fn rotate_session()
[src]
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.
pub fn disable_index(i: usize) -> bool
[src]
Disable the validator of index i
.
Returns true
if this causes a DisabledValidatorsThreshold
of validators
to be already disabled.
pub fn disable(c: &T::ValidatorId) -> Result<bool, ()>
[src]
Disable the validator identified by c
. (If using with the staking module,
this would be their stash account.)
Returns Ok(true)
if more than DisabledValidatorsThreshold
validators in current
session is already disabled.
If used with the staking module it allows to force a new era in such case.
pub fn upgrade_keys<Old, F>(upgrade: F) where
Old: OpaqueKeys + Member + Decode,
F: Fn(T::ValidatorId, Old) -> T::Keys,
[src]
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 module 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
impl<T: Config> Callable<T> for Module<T>
[src]
impl<T: Clone + Config> Clone for Module<T>
[src]
impl<T: Copy + Config> Copy for Module<T>
[src]
impl<T: Config> Debug for Module<T> where
T: Debug,
[src]
T: Debug,
impl<T: Eq + Config> Eq for Module<T>
[src]
impl<T: Config> EstimateNextNewSession<<T as Config>::BlockNumber> for Module<T>
[src]
fn estimate_next_new_session(now: T::BlockNumber) -> Option<T::BlockNumber>
[src]
This session module always calls new_session and next_session at the same time, hence we do a simple proxy and pass the function to next rotation.
fn weight(now: T::BlockNumber) -> Weight
[src]
impl<T: Config> GetPalletVersion for Module<T>
[src]
fn current_version() -> PalletVersion
[src]
fn storage_version() -> Option<PalletVersion>
[src]
impl<T: Config> IntegrityTest for Module<T>
[src]
pub fn integrity_test()
[src]
impl<T: Config> ModuleErrorMetadata for Module<T>
[src]
impl<T: Config + Config> OffchainWorker<<T as Config>::BlockNumber> for Module<T>
[src]
pub fn offchain_worker(_n: BlockNumber)
[src]
impl<T: Config + Config> OnFinalize<<T as Config>::BlockNumber> for Module<T>
[src]
pub fn on_finalize(_n: BlockNumber)
[src]
impl<T: Config> OnGenesis for Module<T>
[src]
fn on_genesis()
[src]
impl<T: Config + Config> OnInitialize<<T as Config>::BlockNumber> for Module<T>
[src]
fn on_initialize(n: T::BlockNumber) -> Weight
[src]
impl<T: Config> OnRuntimeUpgrade for Module<T>
[src]
fn on_runtime_upgrade() -> Weight
[src]
impl<T: PartialEq + Config> PartialEq<Module<T>> for Module<T>
[src]
impl<T: Config> StructuralEq for Module<T>
[src]
impl<T: Config> StructuralPartialEq for Module<T>
[src]
impl<T: Config> ValidatorRegistration<<T as Config>::ValidatorId> for Module<T>
[src]
fn is_registered(id: &T::ValidatorId) -> bool
[src]
impl<T: Config> ValidatorSet<<T as Config>::AccountId> for Module<T>
[src]
type ValidatorId = T::ValidatorId
Type for representing validator id in a session.
type ValidatorIdOf = T::ValidatorIdOf
A type for converting AccountId
to ValidatorId
.
fn session_index() -> SessionIndex
[src]
fn validators() -> Vec<Self::ValidatorId>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for Module<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for Module<T> where
T: Send,
T: Send,
impl<T> Sync for Module<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Module<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for Module<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<T> DynClone for T where
T: Clone,
[src]
T: Clone,
pub fn __clone_box(&self, Private) -> *mut ()
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
pub fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IsType<T> for T
[src]
pub fn from_ref(t: &T) -> &T
[src]
pub fn into_ref(&self) -> &T
[src]
pub fn from_mut(t: &mut T) -> &mut T
[src]
pub fn into_mut(&mut self) -> &mut T
[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
[src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
pub fn from_mut(outer: &mut Outer) -> &mut T
[src]
Get a mutable reference to the inner from the outer.
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Member for T where
T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone,
[src]
T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
[src]
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
[src]
Self: UniqueSaturatedFrom<T>,
pub fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
[src]
Self: UniqueSaturatedInto<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
[src]
T: UncheckedFrom<S>,
pub fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
[src]
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,