pallet_session_validator_management/migrations/
v0.rs

1//! Legacy storage types used by version 0 of the pallet.
2#![allow(missing_docs)]
3use frame_support::pallet_prelude::{OptionQuery, ValueQuery, Zero};
4use frame_support::{BoundedVec, CloneNoBound, storage_alias};
5use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
6use scale_info::TypeInfo;
7
8#[derive(CloneNoBound, Encode, Decode, TypeInfo, MaxEncodedLen)]
9#[scale_info(skip_type_params(MaxValidators))]
10pub struct LegacyCommitteeInfo<
11	ScEpochNumber: Clone,
12	AuthorityId: Clone,
13	AuthorityKeys: Clone,
14	MaxValidators,
15> {
16	pub epoch: ScEpochNumber,
17	pub committee: BoundedVec<(AuthorityId, AuthorityKeys), MaxValidators>,
18}
19
20impl<ScEpochNumber, AuthorityId, AuthorityKeys, MaxValidators> Default
21	for LegacyCommitteeInfo<ScEpochNumber, AuthorityId, AuthorityKeys, MaxValidators>
22where
23	AuthorityId: Clone,
24	AuthorityKeys: Clone,
25	ScEpochNumber: Clone + Zero,
26{
27	fn default() -> Self {
28		Self { epoch: ScEpochNumber::zero(), committee: BoundedVec::new() }
29	}
30}
31
32#[storage_alias]
33pub type CurrentCommittee<T: crate::pallet::Config> = StorageValue<
34	crate::Pallet<T>,
35	LegacyCommitteeInfo<
36		<T as crate::pallet::Config>::ScEpochNumber,
37		<T as crate::pallet::Config>::AuthorityId,
38		<T as crate::pallet::Config>::AuthorityKeys,
39		<T as crate::pallet::Config>::MaxValidators,
40	>,
41	ValueQuery,
42>;
43
44#[storage_alias]
45pub type NextCommittee<T: crate::pallet::Config> = StorageValue<
46	crate::Pallet<T>,
47	LegacyCommitteeInfo<
48		<T as crate::pallet::Config>::ScEpochNumber,
49		<T as crate::pallet::Config>::AuthorityId,
50		<T as crate::pallet::Config>::AuthorityKeys,
51		<T as crate::pallet::Config>::MaxValidators,
52	>,
53	OptionQuery,
54>;