add fast-unstsake pallet to all runtimes (#6050)

* add fast-unstsake pallet to all runtimes

* ".git/.scripts/fmt.sh" 1

* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_fast_unstake

* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_fast_unstake

* fix up all the weight stuff

* update substrate

* update mistake in kusama

* add stub file

* Update runtime/polkadot/src/lib.rs

Co-authored-by: Nitwit <47109040+BustaNit@users.noreply.github.com>

* Update runtime/westend/src/lib.rs

Co-authored-by: Nitwit <47109040+BustaNit@users.noreply.github.com>

* cargo update -p sp-io

* add signed extension as well

* Revert "add signed extension as well"

This reverts commit deb936fe5a9a13a62d02757045b1dfa40dccb190.

* cargo update -p sp-io

* ".git/.scripts/bench-bot.sh" runtime kusama-dev pallet_fast_unstake

* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_fast_unstake

* update sub

* integrate latest substrate changes

* ".git/.scripts/fmt.sh" 1

* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_fast_unstake

Co-authored-by: command-bot <>
Co-authored-by: Nitwit <47109040+BustaNit@users.noreply.github.com>
This commit is contained in:
Kian Paimani
2022-09-28 10:39:38 +01:00
committed by GitHub
parent efd2bfb085
commit 9196f32bc0
13 changed files with 614 additions and 180 deletions
+17 -2
View File
@@ -517,6 +517,14 @@ impl pallet_staking::Config for Runtime {
type WeightInfo = weights::pallet_staking::WeightInfo<Runtime>;
}
impl pallet_fast_unstake::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type DepositCurrency = Balances;
type Deposit = frame_support::traits::ConstU128<{ UNITS }>;
type ControlOrigin = EnsureRoot<AccountId>;
type WeightInfo = weights::pallet_fast_unstake::WeightInfo<Runtime>;
}
parameter_types! {
pub const MaxAuthorities: u32 = 100_000;
}
@@ -804,12 +812,15 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
RuntimeCall::Slots(..) |
RuntimeCall::Auctions(..) | // Specifically omitting the entire XCM Pallet
RuntimeCall::VoterList(..) |
RuntimeCall::NominationPools(..)
RuntimeCall::NominationPools(..) |
RuntimeCall::FastUnstake(..)
),
ProxyType::Staking => {
matches!(
c,
RuntimeCall::Staking(..) | RuntimeCall::Session(..) | RuntimeCall::Utility(..)
RuntimeCall::Staking(..) |
RuntimeCall::Session(..) | RuntimeCall::Utility(..) |
RuntimeCall::FastUnstake(..)
)
},
ProxyType::SudoBalances => match c {
@@ -1126,6 +1137,9 @@ construct_runtime! {
// Nomination pools for staking.
NominationPools: pallet_nomination_pools::{Pallet, Call, Storage, Event<T>, Config<T>} = 29,
// Fast unstake pallet: extension to staking.
FastUnstake: pallet_fast_unstake = 30,
// Parachains pallets. Start indices at 40 to leave room.
ParachainsOrigin: parachains_origin::{Pallet, Origin} = 41,
Configuration: parachains_configuration::{Pallet, Call, Storage, Config<T>} = 42,
@@ -1233,6 +1247,7 @@ mod benches {
[pallet_balances, Balances]
[pallet_election_provider_multi_phase, ElectionProviderMultiPhase]
[frame_election_provider_support, ElectionProviderBench::<Runtime>]
[pallet_fast_unstake, FastUnstake]
[pallet_identity, Identity]
[pallet_im_online, ImOnline]
[pallet_indices, Indices]
@@ -20,6 +20,7 @@ pub mod frame_system;
pub mod pallet_bags_list;
pub mod pallet_balances;
pub mod pallet_election_provider_multi_phase;
pub mod pallet_fast_unstake;
pub mod pallet_identity;
pub mod pallet_im_online;
pub mod pallet_indices;
@@ -0,0 +1,116 @@
// Copyright 2017-2022 Parity Technologies (UK) Ltd.
// This file is part of Polkadot.
// Polkadot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Polkadot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
//! Autogenerated weights for `pallet_fast_unstake`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2022-09-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024
// Executed Command:
// /home/benchbot/cargo_target_dir/production/polkadot
// benchmark
// pallet
// --steps=50
// --repeat=20
// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
// --heap-pages=4096
// --pallet=pallet_fast_unstake
// --chain=westend-dev
// --header=./file_header.txt
// --output=./runtime/westend/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
#![allow(unused_imports)]
use frame_support::{traits::Get, weights::Weight};
use sp_std::marker::PhantomData;
/// Weight functions for `pallet_fast_unstake`.
pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T> {
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
// Storage: Staking CurrentEra (r:1 w:0)
// Storage: Staking SlashingSpans (r:1 w:0)
// Storage: Staking Bonded (r:1 w:1)
// Storage: Staking Validators (r:1 w:0)
// Storage: Staking Nominators (r:1 w:0)
// Storage: System Account (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
// Storage: Staking Ledger (r:0 w:1)
// Storage: Staking Payee (r:0 w:1)
fn on_idle_unstake() -> Weight {
Weight::from_ref_time(71_751_000 as u64)
.saturating_add(T::DbWeight::get().reads(11 as u64))
.saturating_add(T::DbWeight::get().writes(6 as u64))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
// Storage: FastUnstake Queue (r:2 w:1)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
// Storage: Staking CurrentEra (r:1 w:0)
// Storage: Staking ErasStakers (r:4 w:0)
/// The range of component `x` is `[2, 256]`.
fn on_idle_check(x: u32, ) -> Weight {
Weight::from_ref_time(68_336_000 as u64)
// Standard Error: 9_399
.saturating_add(Weight::from_ref_time(13_544_336 as u64).saturating_mul(x as u64))
.saturating_add(T::DbWeight::get().reads(12 as u64))
.saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(x as u64)))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking Ledger (r:1 w:1)
// Storage: FastUnstake Queue (r:1 w:1)
// Storage: FastUnstake Head (r:1 w:0)
// Storage: Staking Validators (r:1 w:0)
// Storage: Staking Nominators (r:1 w:1)
// Storage: Staking CounterForNominators (r:1 w:1)
// Storage: VoterList ListNodes (r:1 w:1)
// Storage: VoterList ListBags (r:1 w:1)
// Storage: VoterList CounterForListNodes (r:1 w:1)
// Storage: Staking CurrentEra (r:1 w:0)
// Storage: Balances Locks (r:1 w:1)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn register_fast_unstake() -> Weight {
Weight::from_ref_time(93_252_000 as u64)
.saturating_add(T::DbWeight::get().reads(13 as u64))
.saturating_add(T::DbWeight::get().writes(9 as u64))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking Ledger (r:1 w:0)
// Storage: FastUnstake Queue (r:1 w:1)
// Storage: FastUnstake Head (r:1 w:0)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn deregister() -> Weight {
Weight::from_ref_time(40_994_000 as u64)
.saturating_add(T::DbWeight::get().reads(5 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1)
fn control() -> Weight {
Weight::from_ref_time(4_420_000 as u64)
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
}