diff --git a/crates/pallet-balanced-currency-swap-bridges-initializer/src/upgrade_init.rs b/crates/pallet-balanced-currency-swap-bridges-initializer/src/upgrade_init.rs index 0b036c2e4..365159627 100644 --- a/crates/pallet-balanced-currency-swap-bridges-initializer/src/upgrade_init.rs +++ b/crates/pallet-balanced-currency-swap-bridges-initializer/src/upgrade_init.rs @@ -31,6 +31,23 @@ pub fn on_runtime_upgrade() -> Weight { weight.saturating_accrue(T::DbWeight::get().writes(2)); } + // Properly manage default on chain storage version as the pallet was added after genesis + // with initial storage version != 0. + // + // + let current_storage_version = >::current_storage_version(); + let onchain_storage_version = >::on_chain_storage_version(); + + weight.saturating_accrue(T::DbWeight::get().reads(1)); + + if onchain_storage_version == 0 && current_storage_version != 0 { + // Set new storage version. + current_storage_version.put::>(); + + // Write the onchain storage version. + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + } + weight } @@ -58,5 +75,10 @@ pub fn post_upgrade(_state: Vec) -> Result<(), &'static str> { assert_eq!(storage_root_before, storage_root(StateVersion::V1)); + assert_eq!( + >::on_chain_storage_version(), + >::current_storage_version() + ); + Ok(()) } diff --git a/crates/pallet-dummy-precompiles-code/src/lib.rs b/crates/pallet-dummy-precompiles-code/src/lib.rs index b43bd86eb..797cc56a8 100644 --- a/crates/pallet-dummy-precompiles-code/src/lib.rs +++ b/crates/pallet-dummy-precompiles-code/src/lib.rs @@ -97,6 +97,23 @@ pub mod pallet { weight.saturating_accrue(T::DbWeight::get().writes(2)); } + // Properly manage default on chain storage version as the pallet was added after genesis + // with initial storage version != 0. + // + // + let current_storage_version = >::current_storage_version(); + let onchain_storage_version = >::on_chain_storage_version(); + + weight.saturating_accrue(T::DbWeight::get().reads(1)); + + if onchain_storage_version == 0 && current_storage_version != 0 { + // Set new storage version. + current_storage_version.put::>(); + + // Write the onchain storage version. + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + } + weight } @@ -123,6 +140,11 @@ pub mod pallet { return Err("precompiles not created properly: {:not_created_precompiles}"); } + assert_eq!( + >::on_chain_storage_version(), + >::current_storage_version() + ); + Ok(()) } }