[FRAME] Introduce force_adjust_total_issuance (#3001)

Add `Balances::force_adjust_total_issuance` as preparation for fixing
https://github.com/polkadot-fellows/runtimes/issues/147.
Important changes in `substrate/frame/balances/src/lib.rs`.

TODO:
- [x] Update weights

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: command-bot <>
Co-authored-by: Bastian Köcher <git@kchr.de>
This commit is contained in:
Oliver Tale-Yazdi
2024-01-30 23:39:47 +01:00
committed by GitHub
parent 4220503d28
commit 5a6f6d33d3
24 changed files with 930 additions and 581 deletions
+62 -47
View File
@@ -15,16 +15,16 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//! Autogenerated weights for pallet_balances
//! Autogenerated weights for `pallet_balances`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2023-07-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2024-01-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-o7yfgx5n-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
// Executed Command:
// target/production/substrate
// target/production/substrate-node
// benchmark
// pallet
// --steps=50
@@ -32,12 +32,12 @@
// --extrinsic=*
// --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_balances
// --chain=dev
// --header=./HEADER-APACHE2
// --output=./frame/balances/src/weights.rs
// --template=./.maintain/frame-weight-template.hbs
// --header=./substrate/HEADER-APACHE2
// --output=./substrate/frame/balances/src/weights.rs
// --template=./substrate/.maintain/frame-weight-template.hbs
#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
@@ -47,7 +47,7 @@
use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
use core::marker::PhantomData;
/// Weight functions needed for pallet_balances.
/// Weight functions needed for `pallet_balances`.
pub trait WeightInfo {
fn transfer_allow_death() -> Weight;
fn transfer_keep_alive() -> Weight;
@@ -57,9 +57,10 @@ pub trait WeightInfo {
fn transfer_all() -> Weight;
fn force_unreserve() -> Weight;
fn upgrade_accounts(u: u32, ) -> Weight;
fn force_adjust_total_issuance() -> Weight;
}
/// Weights for pallet_balances using the Substrate node and recommended hardware.
/// Weights for `pallet_balances` using the Substrate node and recommended hardware.
pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// Storage: `System::Account` (r:1 w:1)
@@ -68,8 +69,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `3593`
// Minimum execution time: 58_474_000 picoseconds.
Weight::from_parts(59_117_000, 3593)
// Minimum execution time: 46_329_000 picoseconds.
Weight::from_parts(47_297_000, 3593)
.saturating_add(T::DbWeight::get().reads(1_u64))
.saturating_add(T::DbWeight::get().writes(1_u64))
}
@@ -79,8 +80,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `3593`
// Minimum execution time: 44_629_000 picoseconds.
Weight::from_parts(45_798_000, 3593)
// Minimum execution time: 36_187_000 picoseconds.
Weight::from_parts(36_900_000, 3593)
.saturating_add(T::DbWeight::get().reads(1_u64))
.saturating_add(T::DbWeight::get().writes(1_u64))
}
@@ -90,8 +91,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `174`
// Estimated: `3593`
// Minimum execution time: 16_483_000 picoseconds.
Weight::from_parts(16_939_000, 3593)
// Minimum execution time: 13_498_000 picoseconds.
Weight::from_parts(14_143_000, 3593)
.saturating_add(T::DbWeight::get().reads(1_u64))
.saturating_add(T::DbWeight::get().writes(1_u64))
}
@@ -101,8 +102,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `174`
// Estimated: `3593`
// Minimum execution time: 24_638_000 picoseconds.
Weight::from_parts(25_487_000, 3593)
// Minimum execution time: 18_756_000 picoseconds.
Weight::from_parts(19_553_000, 3593)
.saturating_add(T::DbWeight::get().reads(1_u64))
.saturating_add(T::DbWeight::get().writes(1_u64))
}
@@ -112,8 +113,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `103`
// Estimated: `6196`
// Minimum execution time: 60_041_000 picoseconds.
Weight::from_parts(63_365_000, 6196)
// Minimum execution time: 47_826_000 picoseconds.
Weight::from_parts(48_834_000, 6196)
.saturating_add(T::DbWeight::get().reads(2_u64))
.saturating_add(T::DbWeight::get().writes(2_u64))
}
@@ -123,8 +124,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `3593`
// Minimum execution time: 54_445_000 picoseconds.
Weight::from_parts(55_623_000, 3593)
// Minimum execution time: 44_621_000 picoseconds.
Weight::from_parts(45_151_000, 3593)
.saturating_add(T::DbWeight::get().reads(1_u64))
.saturating_add(T::DbWeight::get().writes(1_u64))
}
@@ -134,8 +135,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `174`
// Estimated: `3593`
// Minimum execution time: 19_309_000 picoseconds.
Weight::from_parts(19_953_000, 3593)
// Minimum execution time: 16_194_000 picoseconds.
Weight::from_parts(16_945_000, 3593)
.saturating_add(T::DbWeight::get().reads(1_u64))
.saturating_add(T::DbWeight::get().writes(1_u64))
}
@@ -146,14 +147,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof Size summary in bytes:
// Measured: `0 + u * (135 ±0)`
// Estimated: `990 + u * (2603 ±0)`
// Minimum execution time: 19_362_000 picoseconds.
Weight::from_parts(19_612_000, 990)
// Standard Error: 13_108
.saturating_add(Weight::from_parts(16_444_591, 0).saturating_mul(u.into()))
// Minimum execution time: 15_782_000 picoseconds.
Weight::from_parts(16_118_000, 990)
// Standard Error: 10_499
.saturating_add(Weight::from_parts(13_327_660, 0).saturating_mul(u.into()))
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into())))
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into())))
.saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into()))
}
fn force_adjust_total_issuance() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 6_157_000 picoseconds.
Weight::from_parts(6_507_000, 0)
}
}
// For backwards compatibility and tests.
@@ -164,8 +172,8 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `3593`
// Minimum execution time: 58_474_000 picoseconds.
Weight::from_parts(59_117_000, 3593)
// Minimum execution time: 46_329_000 picoseconds.
Weight::from_parts(47_297_000, 3593)
.saturating_add(RocksDbWeight::get().reads(1_u64))
.saturating_add(RocksDbWeight::get().writes(1_u64))
}
@@ -175,8 +183,8 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `3593`
// Minimum execution time: 44_629_000 picoseconds.
Weight::from_parts(45_798_000, 3593)
// Minimum execution time: 36_187_000 picoseconds.
Weight::from_parts(36_900_000, 3593)
.saturating_add(RocksDbWeight::get().reads(1_u64))
.saturating_add(RocksDbWeight::get().writes(1_u64))
}
@@ -186,8 +194,8 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `174`
// Estimated: `3593`
// Minimum execution time: 16_483_000 picoseconds.
Weight::from_parts(16_939_000, 3593)
// Minimum execution time: 13_498_000 picoseconds.
Weight::from_parts(14_143_000, 3593)
.saturating_add(RocksDbWeight::get().reads(1_u64))
.saturating_add(RocksDbWeight::get().writes(1_u64))
}
@@ -197,8 +205,8 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `174`
// Estimated: `3593`
// Minimum execution time: 24_638_000 picoseconds.
Weight::from_parts(25_487_000, 3593)
// Minimum execution time: 18_756_000 picoseconds.
Weight::from_parts(19_553_000, 3593)
.saturating_add(RocksDbWeight::get().reads(1_u64))
.saturating_add(RocksDbWeight::get().writes(1_u64))
}
@@ -208,8 +216,8 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `103`
// Estimated: `6196`
// Minimum execution time: 60_041_000 picoseconds.
Weight::from_parts(63_365_000, 6196)
// Minimum execution time: 47_826_000 picoseconds.
Weight::from_parts(48_834_000, 6196)
.saturating_add(RocksDbWeight::get().reads(2_u64))
.saturating_add(RocksDbWeight::get().writes(2_u64))
}
@@ -219,8 +227,8 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `3593`
// Minimum execution time: 54_445_000 picoseconds.
Weight::from_parts(55_623_000, 3593)
// Minimum execution time: 44_621_000 picoseconds.
Weight::from_parts(45_151_000, 3593)
.saturating_add(RocksDbWeight::get().reads(1_u64))
.saturating_add(RocksDbWeight::get().writes(1_u64))
}
@@ -230,8 +238,8 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `174`
// Estimated: `3593`
// Minimum execution time: 19_309_000 picoseconds.
Weight::from_parts(19_953_000, 3593)
// Minimum execution time: 16_194_000 picoseconds.
Weight::from_parts(16_945_000, 3593)
.saturating_add(RocksDbWeight::get().reads(1_u64))
.saturating_add(RocksDbWeight::get().writes(1_u64))
}
@@ -242,12 +250,19 @@ impl WeightInfo for () {
// Proof Size summary in bytes:
// Measured: `0 + u * (135 ±0)`
// Estimated: `990 + u * (2603 ±0)`
// Minimum execution time: 19_362_000 picoseconds.
Weight::from_parts(19_612_000, 990)
// Standard Error: 13_108
.saturating_add(Weight::from_parts(16_444_591, 0).saturating_mul(u.into()))
// Minimum execution time: 15_782_000 picoseconds.
Weight::from_parts(16_118_000, 990)
// Standard Error: 10_499
.saturating_add(Weight::from_parts(13_327_660, 0).saturating_mul(u.into()))
.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(u.into())))
.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(u.into())))
.saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into()))
}
fn force_adjust_total_issuance() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 6_157_000 picoseconds.
Weight::from_parts(6_507_000, 0)
}
}