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;
7use sidechain_domain::ScEpochNumber;
8
9#[derive(CloneNoBound, Encode, Decode, TypeInfo, MaxEncodedLen)]
10#[scale_info(skip_type_params(MaxValidators))]
11pub struct LegacyCommitteeInfo<
12	ScEpochNumber: Clone,
13	AuthorityId: Clone,
14	AuthorityKeys: Clone,
15	MaxValidators,
16> {
17	pub epoch: ScEpochNumber,
18	pub committee: BoundedVec<(AuthorityId, AuthorityKeys), MaxValidators>,
19}
20
21impl<AuthorityId, AuthorityKeys, MaxValidators> Default
22	for LegacyCommitteeInfo<ScEpochNumber, AuthorityId, AuthorityKeys, MaxValidators>
23where
24	AuthorityId: Clone,
25	AuthorityKeys: Clone,
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		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		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>;