diff --git a/runtime/common/src/migrations.rs b/runtime/common/src/migrations.rs index b9bb8b125b..6b5d20f65d 100644 --- a/runtime/common/src/migrations.rs +++ b/runtime/common/src/migrations.rs @@ -57,6 +57,35 @@ where } } +/// Moonbeam has 134 keys to be migrated +/// Moonriver has 117 keys to be migrated +/// Moonbase has 172 keys to be migrated +pub const PALLET_IDENTITY_MIGRATION_KEY_LIMIT: u64 = 500; + +pub struct PalletIdentityMigrateV0ToV1(PhantomData); +impl Migration for PalletIdentityMigrateV0ToV1 +where + Runtime: pallet_identity::Config, +{ + fn friendly_name(&self) -> &str { + "MM_PalletIdentityMigrateV0ToV1" + } + + #[cfg(feature = "try-runtime")] + fn pre_upgrade(&self) -> Result, sp_runtime::DispatchError> { + pallet_identity::migration::versioned::V0ToV1::::pre_upgrade() + } + + fn migrate(&self, _available_weight: Weight) -> Weight { + pallet_identity::migration::versioned::V0ToV1::::on_runtime_upgrade() + } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(&self, state: Vec) -> Result<(), sp_runtime::DispatchError> { + pallet_identity::migration::versioned::V0ToV1::::post_upgrade(state) + } +} + parameter_types! { pub const DemocracyPalletName: &'static str = "Democracy"; } @@ -222,6 +251,7 @@ where Runtime: pallet_xcm::Config, Runtime::AccountId: Default, BlockNumberFor: Into, + Runtime: pallet_identity::Config, { fn get_migrations() -> Vec> { // let migration_author_mapping_twox_to_blake = AuthorMappingTwoXToBlake:: { @@ -300,6 +330,11 @@ where let remove_pallet_democracy = RemovePalletDemocracy::(Default::default()); let remove_collectives_addresses = RemoveCollectivesAddresses::(Default::default()); + // This migration can be removed in RT3000 + let migrate_pallet_identity = PalletIdentityMigrateV0ToV1::< + Runtime, + { PALLET_IDENTITY_MIGRATION_KEY_LIMIT }, + >(Default::default()); vec![ // completed in runtime 800 @@ -362,6 +397,7 @@ where // completed in runtime 2900 Box::new(remove_pallet_democracy), Box::new(remove_collectives_addresses), + Box::new(migrate_pallet_identity), // permanent migrations Box::new(MigrateToLatestXcmVersion::(Default::default())), ]