mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 22:51:13 +00:00
Used CountedStorageMap in pallet-staking (#10233)
* Removed counters and used CountedStorageMap instead. * Little refactoring * Update frame/staking/src/migrations.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Removed redundant code to update counter for validator & nominator. * Removed redundant code to update counter for validator & nominator. * Removed unreachable code to inject the hashed prefix for nominator & validator. * Removed redundant check for nominator & validator count. * Generated `fn prefix_hash` for `CountedStorageMap`. * Applied changes from `cargo fmt` * Possible correct implementation of migration code * Implemented fn module_prefix, storage_prefix and prefix_hash. * Removed counted_map.rs * Renamed `fn storage_prefix` to `storage_counter_prefix`. * Update frame/support/src/storage/types/counted_map.rs * Update frame/bags-list/remote-tests/src/snapshot.rs * Update frame/support/src/storage/types/counted_map.rs * Fixed errors. Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
This commit is contained in:
@@ -70,10 +70,22 @@ pub mod v8 {
|
||||
|
||||
pub mod v7 {
|
||||
use super::*;
|
||||
use frame_support::generate_storage_alias;
|
||||
|
||||
generate_storage_alias!(Staking, CounterForValidators => Value<u32>);
|
||||
generate_storage_alias!(Staking, CounterForNominators => Value<u32>);
|
||||
|
||||
pub fn pre_migrate<T: Config>() -> Result<(), &'static str> {
|
||||
assert!(CounterForValidators::<T>::get().is_zero(), "CounterForValidators already set.");
|
||||
assert!(CounterForNominators::<T>::get().is_zero(), "CounterForNominators already set.");
|
||||
assert!(
|
||||
CounterForValidators::get().unwrap().is_zero(),
|
||||
"CounterForValidators already set."
|
||||
);
|
||||
assert!(
|
||||
CounterForNominators::get().unwrap().is_zero(),
|
||||
"CounterForNominators already set."
|
||||
);
|
||||
assert!(Validators::<T>::count().is_zero(), "Validators already set.");
|
||||
assert!(Nominators::<T>::count().is_zero(), "Nominators already set.");
|
||||
assert!(StorageVersion::<T>::get() == Releases::V6_0_0);
|
||||
Ok(())
|
||||
}
|
||||
@@ -83,8 +95,8 @@ pub mod v7 {
|
||||
let validator_count = Validators::<T>::iter().count() as u32;
|
||||
let nominator_count = Nominators::<T>::iter().count() as u32;
|
||||
|
||||
CounterForValidators::<T>::put(validator_count);
|
||||
CounterForNominators::<T>::put(nominator_count);
|
||||
CounterForValidators::put(validator_count);
|
||||
CounterForNominators::put(nominator_count);
|
||||
|
||||
StorageVersion::<T>::put(Releases::V7_0_0);
|
||||
log!(info, "Completed staking migration to Releases::V7_0_0");
|
||||
|
||||
Reference in New Issue
Block a user