Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add storage bounds for pallet staking #6445

Draft
wants to merge 51 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
6c808b6
add MaxInvulnerables
re-gius Nov 11, 2024
1b18bb1
add `MaxActiveValidators`
re-gius Nov 13, 2024
0ac60af
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 13, 2024
4edb8e1
fix + start working on migrations
re-gius Nov 13, 2024
65c7de6
nit (typo)
re-gius Nov 13, 2024
35069c9
fix migrations for `BoundedVec`
re-gius Nov 14, 2024
d4b15af
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 14, 2024
eb93a70
Migrate `ErasRewardPoints`
re-gius Nov 14, 2024
58cf45d
small fixes - `BoundedBTreeMap`
re-gius Nov 15, 2024
292c5d0
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 15, 2024
74f2055
fix
re-gius Nov 15, 2024
63f2c5e
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 18, 2024
b249a67
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 22, 2024
362f505
Adapt to new recent `DisabledValidators` change
re-gius Nov 22, 2024
4f21d53
Change `MaxActiveValidators` to `MaxWinners`
re-gius Nov 25, 2024
e258baf
undo change from another PR
re-gius Nov 25, 2024
4b7d896
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 25, 2024
01e2233
small fix for `MaxWinners`
re-gius Nov 25, 2024
243bec8
small fixes
re-gius Nov 25, 2024
a599afc
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 25, 2024
9a25fbc
Remove deprecated `ErasStakers` and `ErasStakersClipped`
re-gius Nov 25, 2024
98daabc
Fixes from #5986
re-gius Nov 25, 2024
aec5087
nit
re-gius Nov 25, 2024
36204da
remove unused import
re-gius Nov 25, 2024
18e9bee
fix `Invulnerables` migration
re-gius Nov 25, 2024
cbfd4a5
Undo migrations change
re-gius Nov 26, 2024
b5cbfec
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 26, 2024
9ca25a1
debug
re-gius Nov 26, 2024
10e7295
Increase `MaxInvulnerables` to 20 + fix migrations msg
re-gius Nov 26, 2024
b3186b1
fix - `MaxInvulnerables` = 20
re-gius Nov 26, 2024
336137a
Fix tests
re-gius Nov 26, 2024
c1911e1
Fix impl
re-gius Nov 26, 2024
2ac794e
Fix `Invulnerables` limit in benchmarking
re-gius Nov 26, 2024
583e46d
Bound `ExposurePage.others` with `MaxExposurePageSize`
re-gius Nov 26, 2024
6347a8c
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 26, 2024
9e82b85
fix `TypeInfo` error
re-gius Nov 27, 2024
1db7f39
fix benchmarking limit
re-gius Nov 27, 2024
f996a97
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 27, 2024
e030506
bound `BondedEras` Vec
re-gius Nov 27, 2024
3ab45d9
Add migration for `BondedEras`
re-gius Nov 27, 2024
a980daa
fix tests attempt
re-gius Nov 27, 2024
827e898
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 28, 2024
c4d5142
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 29, 2024
df8e567
bound `ClaimedRewards`
re-gius Nov 29, 2024
c066632
Use `WeakBoundedVec` for `EraStakersPaged` paged exposures
re-gius Nov 29, 2024
686b6b3
Turn more `BoundedVec` into `WeakBoundedVec`
re-gius Nov 29, 2024
9cf2263
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Nov 29, 2024
21ad9ea
Merge branch 'master' into re-gius/staking/add-storage-bounds
re-gius Dec 2, 2024
ca881ac
add import
re-gius Dec 2, 2024
e986264
Migrate `MaxValidatorsCount` from storage to dynamic param + fixes
re-gius Dec 2, 2024
ea59383
Use `MaxValidatorsCount` to bound `ErasRewardPoints` `BoundedVec`
re-gius Dec 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion polkadot/runtime/common/src/try_runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ where

let all_stakers = Ledger::<T>::iter().map(|(ctrl, l)| (ctrl, l.stash)).collect::<BTreeSet<_>>();
let mut all_exposed = BTreeSet::new();
ErasStakers::<T>::iter().for_each(|(_, val, expo)| {
ErasStakersPaged::<T>::iter().for_each(|((_era, val, _page), expo)| {
all_exposed.insert(val);
all_exposed.extend(expo.others.iter().map(|ie| ie.who.clone()))
});
Expand Down
5 changes: 5 additions & 0 deletions polkadot/runtime/test-runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,7 @@ parameter_types! {
pub storage SessionsPerEra: SessionIndex = 6;
// 28 eras for unbonding (7 days).
pub storage BondingDuration: sp_staking::EraIndex = 28;
pub storage MaxBondedEras: u32 = (BondingDuration::get() as u32) + 1;
// 27 eras in which slashes can be cancelled (a bit less than 7 days).
pub storage SlashDeferDuration: sp_staking::EraIndex = 27;
pub const RewardCurve: &'static PiecewiseLinear<'static> = &REWARD_CURVE;
Expand Down Expand Up @@ -376,6 +377,7 @@ impl pallet_staking::Config for Runtime {
type Reward = ();
type SessionsPerEra = SessionsPerEra;
type BondingDuration = BondingDuration;
type MaxBondedEras = MaxBondedEras;
type SlashDeferDuration = SlashDeferDuration;
type AdminOrigin = frame_system::EnsureNever<()>;
type SessionInterface = Self;
Expand All @@ -396,6 +398,9 @@ impl pallet_staking::Config for Runtime {
type EventListeners = ();
type WeightInfo = ();
type DisablingStrategy = pallet_staking::UpToLimitWithReEnablingDisablingStrategy;
type MaxInvulnerables = ConstU32<20>;
type MaxRewardPagesPerValidator = ConstU32<20>;
type MaxValidatorsCount = ConstU32<300>;
}

parameter_types! {
Expand Down
12 changes: 9 additions & 3 deletions polkadot/runtime/westend/src/genesis_config_presets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ use sp_consensus_grandpa::AuthorityId as GrandpaId;
use sp_core::{crypto::get_public_from_string_or_panic, sr25519};
use sp_genesis_builder::PresetId;
use sp_keyring::Sr25519Keyring;
use sp_runtime::Perbill;
use sp_runtime::{BoundedVec, Perbill};
use westend_runtime_constants::currency::UNITS as WND;

/// Helper function to generate stash, controller and session key from seed
Expand Down Expand Up @@ -201,7 +201,10 @@ fn westend_testnet_genesis(
.iter()
.map(|x| (x.0.clone(), x.0.clone(), STASH, StakerStatus::<AccountId>::Validator))
.collect::<Vec<_>>(),
invulnerables: initial_authorities.iter().map(|x| x.0.clone()).collect::<Vec<_>>(),
invulnerables: BoundedVec::try_from(
initial_authorities.iter().map(|x| x.0.clone()).collect::<Vec<_>>()
)
.unwrap(),
force_era: Forcing::NotForcing,
slash_reward_fraction: Perbill::from_percent(10),
},
Expand Down Expand Up @@ -372,7 +375,10 @@ fn westend_staging_testnet_config_genesis() -> serde_json::Value {
.iter()
.map(|x| (x.0.clone(), x.0.clone(), STASH, StakerStatus::<AccountId>::Validator))
.collect::<Vec<_>>(),
invulnerables: initial_authorities.iter().map(|x| x.0.clone()).collect::<Vec<_>>(),
invulnerables: BoundedVec::try_from(
initial_authorities.iter().map(|x| x.0.clone()).collect::<Vec<_>>()
)
.unwrap(),
force_era: Forcing::ForceNone,
slash_reward_fraction: Perbill::from_percent(10),
},
Expand Down
15 changes: 15 additions & 0 deletions polkadot/runtime/westend/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,14 @@ pub mod dynamic_params {
#[codec(index = 4)]
pub static UseAuctionSlots: bool = false;
}

#[dynamic_pallet_params]
#[codec(index = 1)]
pub mod staking {
/// Maximum number of validators allowed.
#[codec(index = 0)]
pub static MaxValidatorsCount: u32 = 300;
}
}

#[cfg(feature = "runtime-benchmarks")]
Expand Down Expand Up @@ -319,6 +327,7 @@ impl EnsureOriginWithArg<RuntimeOrigin, RuntimeParametersKey> for DynamicParamet

match key {
Inflation(_) => frame_system::ensure_root(origin.clone()),
Staking(_) => frame_system::ensure_root(origin.clone()),
}
.map_err(|_| origin)
}
Expand Down Expand Up @@ -716,6 +725,7 @@ parameter_types! {
pub const SessionsPerEra: SessionIndex = prod_or_fast!(6, 1);
// 2 eras for unbonding (12 hours).
pub const BondingDuration: sp_staking::EraIndex = 2;
pub const MaxBondedEras: u32 = (BondingDuration::get() as u32) + 1;
// 1 era in which slashes can be cancelled (6 hours).
pub const SlashDeferDuration: sp_staking::EraIndex = 1;
pub const MaxExposurePageSize: u32 = 64;
Expand All @@ -738,6 +748,7 @@ impl pallet_staking::Config for Runtime {
type Reward = ();
type SessionsPerEra = SessionsPerEra;
type BondingDuration = BondingDuration;
type MaxBondedEras = MaxBondedEras;
type SlashDeferDuration = SlashDeferDuration;
type AdminOrigin = EitherOf<EnsureRoot<AccountId>, StakingAdmin>;
type SessionInterface = Self;
Expand All @@ -756,6 +767,9 @@ impl pallet_staking::Config for Runtime {
type EventListeners = (NominationPools, DelegatedStaking);
type WeightInfo = weights::pallet_staking::WeightInfo<Runtime>;
type DisablingStrategy = pallet_staking::UpToLimitWithReEnablingDisablingStrategy;
type MaxInvulnerables = frame_support::traits::ConstU32<20>;
type MaxRewardPagesPerValidator = frame_support::traits::ConstU32<20>;
type MaxValidatorsCount = dynamic_params::staking::MaxValidatorsCount;
}

impl pallet_fast_unstake::Config for Runtime {
Expand Down Expand Up @@ -1839,6 +1853,7 @@ pub mod migrations {
parachains_shared::migration::MigrateToV1<Runtime>,
parachains_scheduler::migration::MigrateV2ToV3<Runtime>,
pallet_staking::migrations::v16::MigrateV15ToV16<Runtime>,
pallet_staking::migrations::v17::MigrateV16ToV17<Runtime>,
// permanent
pallet_xcm::migration::MigrateToLatestXcmVersion<Runtime>,
);
Expand Down
2 changes: 0 additions & 2 deletions polkadot/runtime/westend/src/weights/pallet_fast_unstake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,6 @@ impl<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T>
/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Staking CurrentEra (r:1 w:0)
/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
/// Storage: Staking ErasStakers (r:257 w:0)
/// Proof Skipped: Staking ErasStakers (max_values: None, max_size: None, mode: Measured)
/// The range of component `v` is `[1, 256]`.
/// The range of component `b` is `[1, 64]`.
fn on_idle_check(v: u32, b: u32, ) -> Weight {
Expand Down
2 changes: 0 additions & 2 deletions polkadot/runtime/westend/src/weights/pallet_staking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,6 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
/// Storage: `Staking::Ledger` (r:65 w:65)
/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
/// Storage: `Staking::ErasStakersClipped` (r:1 w:0)
/// Proof: `Staking::ErasStakersClipped` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Staking::ErasStakersOverview` (r:1 w:0)
/// Proof: `Staking::ErasStakersOverview` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
/// Storage: `Staking::ClaimedRewards` (r:1 w:1)
Expand Down
5 changes: 5 additions & 0 deletions substrate/bin/node/runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,7 @@ pallet_staking_reward_curve::build! {
parameter_types! {
pub const SessionsPerEra: sp_staking::SessionIndex = 6;
pub const BondingDuration: sp_staking::EraIndex = 24 * 28;
pub const MaxBondedEras: u32 = (BondingDuration::get() as u32) + 1;
pub const SlashDeferDuration: sp_staking::EraIndex = 24 * 7; // 1/4 the bonding duration.
pub const RewardCurve: &'static PiecewiseLinear<'static> = &REWARD_CURVE;
pub const MaxNominators: u32 = 64;
Expand Down Expand Up @@ -722,6 +723,7 @@ impl pallet_staking::Config for Runtime {
type Reward = (); // rewards are minted from the void
type SessionsPerEra = SessionsPerEra;
type BondingDuration = BondingDuration;
type MaxBondedEras = MaxBondedEras;
type SlashDeferDuration = SlashDeferDuration;
/// A super-majority of the council can cancel the slash.
type AdminOrigin = EitherOfDiverse<
Expand All @@ -745,6 +747,9 @@ impl pallet_staking::Config for Runtime {
type WeightInfo = pallet_staking::weights::SubstrateWeight<Runtime>;
type BenchmarkingConfig = StakingBenchmarkingConfig;
type DisablingStrategy = pallet_staking::UpToLimitWithReEnablingDisablingStrategy;
type MaxInvulnerables = ConstU32<20>;
type MaxRewardPagesPerValidator = ConstU32<20>;
type MaxValidatorsCount = ConstU32<300>;
}

impl pallet_fast_unstake::Config for Runtime {
Expand Down
4 changes: 2 additions & 2 deletions substrate/frame/babe/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ use sp_runtime::{
impl_opaque_keys,
testing::{Digest, DigestItem, Header, TestXt},
traits::{Header as _, OpaqueKeys},
BuildStorage, Perbill,
BoundedVec, BuildStorage, Perbill,
};
use sp_staking::{EraIndex, SessionIndex};

Expand Down Expand Up @@ -342,7 +342,7 @@ pub fn new_test_ext_raw_authorities(authorities: Vec<AuthorityId>) -> sp_io::Tes
validator_count: 8,
force_era: pallet_staking::Forcing::ForceNew,
minimum_validator_count: 0,
invulnerables: vec![],
invulnerables: BoundedVec::new(),
..Default::default()
};

Expand Down
4 changes: 2 additions & 2 deletions substrate/frame/beefy/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ use sp_runtime::{
impl_opaque_keys,
testing::TestXt,
traits::{Header as HeaderT, OpaqueKeys},
BuildStorage, Perbill,
BoundedVec, BuildStorage, Perbill,
};
use sp_staking::{EraIndex, SessionIndex};
use sp_state_machine::BasicExternalities;
Expand Down Expand Up @@ -303,7 +303,7 @@ impl ExtBuilder {
validator_count: 2,
force_era: pallet_staking::Forcing::ForceNew,
minimum_validator_count: 0,
invulnerables: vec![],
invulnerables: BoundedVec::new(),
..Default::default()
};

Expand Down
4 changes: 2 additions & 2 deletions substrate/frame/delegated-staking/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ use frame_support::{
PalletId,
};

use sp_runtime::{traits::IdentityLookup, BuildStorage, Perbill};
use sp_runtime::{traits::IdentityLookup, BoundedVec, BuildStorage, Perbill};

use frame_election_provider_support::{
bounds::{ElectionBounds, ElectionBoundsBuilder},
Expand Down Expand Up @@ -217,7 +217,7 @@ impl ExtBuilder {
// ideal validator count
validator_count: 2,
minimum_validator_count: 1,
invulnerables: vec![],
invulnerables: BoundedVec::new(),
slash_reward_fraction: Perbill::from_percent(10),
min_nominator_bond: ExistentialDeposit::get(),
min_validator_bond: ExistentialDeposit::get(),
Expand Down
4 changes: 0 additions & 4 deletions substrate/frame/fast-unstake/src/weights.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions substrate/frame/grandpa/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ use sp_runtime::{
impl_opaque_keys,
testing::{TestXt, UintAuthorityId},
traits::OpaqueKeys,
BuildStorage, DigestItem, Perbill,
BoundedVec, BuildStorage, DigestItem, Perbill,
};
use sp_staking::{EraIndex, SessionIndex};

Expand Down Expand Up @@ -258,7 +258,7 @@ pub fn new_test_ext_raw_authorities(authorities: AuthorityList) -> sp_io::TestEx
validator_count: 8,
force_era: pallet_staking::Forcing::ForceNew,
minimum_validator_count: 0,
invulnerables: vec![],
invulnerables: BoundedVec::new(),
..Default::default()
};

Expand Down
4 changes: 2 additions & 2 deletions substrate/frame/root-offences/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ impl Default for ExtBuilder {
Self {
validator_count: 2,
minimum_validator_count: 0,
invulnerables: vec![],
invulnerables: BoundedVec::new(),
balance_factor: 1,
}
}
Expand Down Expand Up @@ -235,7 +235,7 @@ impl ExtBuilder {
stakers: stakers.clone(),
validator_count: self.validator_count,
minimum_validator_count: self.minimum_validator_count,
invulnerables: self.invulnerables,
invulnerables: BoundedVec::force_from(self.invulnerables),
slash_reward_fraction: Perbill::from_percent(10),
..Default::default()
}
Expand Down
30 changes: 18 additions & 12 deletions substrate/frame/staking/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,11 @@ use crate::{asset, ConfigOp, Pallet as Staking};
use testing_utils::*;

use codec::Decode;
use frame_election_provider_support::{bounds::DataProviderBounds, SortedListProvider};
use frame_election_provider_support::{
bounds::DataProviderBounds, ElectionProviderBase, SortedListProvider,
};
use frame_support::{
assert_ok,
pallet_prelude::*,
storage::bounded_vec::BoundedVec,
traits::{Get, Imbalance, UnfilteredDispatchable},
Expand Down Expand Up @@ -122,10 +125,14 @@ pub fn create_validator_with_nominators<T: Config>(
assert_ne!(Validators::<T>::count(), 0);
assert_eq!(Nominators::<T>::count(), original_nominator_count + nominators.len() as u32);

let mut reward_map = BoundedBTreeMap::new();
for (validator, reward) in points_individual {
assert_ok!(reward_map.try_insert(validator, reward));
}
// Give Era Points
let reward = EraRewardPoints::<T::AccountId> {
let reward = EraRewardPoints::<T::AccountId, T::MaxValidatorsCount> {
total: points_total,
individual: points_individual.into_iter().collect(),
individual: reward_map,
};

let current_era = CurrentEra::<T>::get().unwrap();
Expand Down Expand Up @@ -598,8 +605,8 @@ mod benchmarks {
}

#[benchmark]
// Worst case scenario, the list of invulnerables is very long.
fn set_invulnerables(v: Linear<0, { MaxValidators::<T>::get() }>) {
// Worst case scenario according to the invulnerables limit.
fn set_invulnerables(v: Linear<0, { T::MaxInvulnerables::get() }>) {
let mut invulnerables = Vec::new();
for i in 0..v {
invulnerables.push(account("invulnerable", i, SEED));
Expand Down Expand Up @@ -865,10 +872,14 @@ mod benchmarks {
payout_calls_arg.push((validator.clone(), current_era));
}

let mut reward_map = BoundedBTreeMap::new();
for (validator, reward) in points_individual {
assert_ok!(reward_map.try_insert(validator, reward));
}
// Give Era Points
let reward = EraRewardPoints::<T::AccountId> {
let reward = EraRewardPoints::<T::AccountId, T::MaxValidatorsCount> {
total: points_total,
individual: points_individual.into_iter().collect(),
individual: reward_map,
};

ErasRewardPoints::<T>::insert(current_era, reward);
Expand Down Expand Up @@ -1004,7 +1015,6 @@ mod benchmarks {
ConfigOp::Set(BalanceOf::<T>::max_value()),
ConfigOp::Set(BalanceOf::<T>::max_value()),
ConfigOp::Set(u32::MAX),
ConfigOp::Set(u32::MAX),
ConfigOp::Set(Percent::max_value()),
ConfigOp::Set(Perbill::max_value()),
ConfigOp::Set(Percent::max_value()),
Expand All @@ -1013,7 +1023,6 @@ mod benchmarks {
assert_eq!(MinNominatorBond::<T>::get(), BalanceOf::<T>::max_value());
assert_eq!(MinValidatorBond::<T>::get(), BalanceOf::<T>::max_value());
assert_eq!(MaxNominatorsCount::<T>::get(), Some(u32::MAX));
assert_eq!(MaxValidatorsCount::<T>::get(), Some(u32::MAX));
assert_eq!(ChillThreshold::<T>::get(), Some(Percent::from_percent(100)));
assert_eq!(MinCommission::<T>::get(), Perbill::from_percent(100));
assert_eq!(MaxStakedRewards::<T>::get(), Some(Percent::from_percent(100)));
Expand All @@ -1030,13 +1039,11 @@ mod benchmarks {
ConfigOp::Remove,
ConfigOp::Remove,
ConfigOp::Remove,
ConfigOp::Remove,
);

assert!(!MinNominatorBond::<T>::exists());
assert!(!MinValidatorBond::<T>::exists());
assert!(!MaxNominatorsCount::<T>::exists());
assert!(!MaxValidatorsCount::<T>::exists());
assert!(!ChillThreshold::<T>::exists());
assert!(!MinCommission::<T>::exists());
assert!(!MaxStakedRewards::<T>::exists());
Expand All @@ -1060,7 +1067,6 @@ mod benchmarks {
ConfigOp::Set(BalanceOf::<T>::max_value()),
ConfigOp::Set(BalanceOf::<T>::max_value()),
ConfigOp::Set(0),
ConfigOp::Set(0),
ConfigOp::Set(Percent::from_percent(0)),
ConfigOp::Set(Zero::zero()),
ConfigOp::Noop,
Expand Down
Loading
Loading