pallet_session_validator_management/migrations/
v0.rs1#![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>;