difftreelog
feat(configuration) benchmarks
in: master
15 files changed
Cargo.lockdiffbeforeafterboth5846version = "0.1.2"5846version = "0.1.2"5847dependencies = [5847dependencies = [5848 "fp-evm",5848 "fp-evm",5849 "frame-benchmarking",5849 "frame-support",5850 "frame-support",5850 "frame-system",5851 "frame-system",5851 "parity-scale-codec 3.2.1",5852 "parity-scale-codec 3.2.1",Makefilediffbeforeafterboth89bench-evm-migration:89bench-evm-migration:90 make _bench PALLET=evm-migration90 make _bench PALLET=evm-migration9192.PHONY: bench-configuration93bench-configuration:94 make _bench PALLET=configuration919592.PHONY: bench-common96.PHONY: bench-common93bench-common:97bench-common:143 147 144.PHONY: bench148.PHONY: bench145# Disabled: bench-scheduler, bench-rmrk-core, bench-rmrk-equip149# Disabled: bench-scheduler, bench-rmrk-core, bench-rmrk-equip146bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-foreign-assets bench-collator-selection bench-identity150bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-configuration bench-foreign-assets bench-collator-selection bench-identity147151pallets/collator-selection/src/benchmarking.rsdiffbeforeafterboth52};52};53use sp_std::prelude::*;53use sp_std::prelude::*;5455/*pub type BalanceOf<T> =56<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;*/575458const SEED: u32 = 0;55const SEED: u32 = 0;5956116 validators.into_iter().map(|(who, _)| who).collect()113 validators.into_iter().map(|(who, _)| who).collect()117}114}115116fn register_invulnerables<T: Config + configuration::Config>(count: u32) {117 let candidates = (0..count)118 .map(|c| account("candidate", c, SEED))119 .collect::<Vec<_>>();120121 for who in candidates {122 <CollatorSelection<T>>::add_invulnerable(T::UpdateOrigin::successful_origin(), who).unwrap();123 }124}118125119fn register_candidates<T: Config + configuration::Config>(count: u32) {126fn register_candidates<T: Config + configuration::Config>(count: u32) {120 let candidates = (0..count)127 let candidates = (0..count)121 .map(|c| account("candidate", c, SEED))128 .map(|c| account("candidate", c, SEED))122 .collect::<Vec<_>>();129 .collect::<Vec<_>>();123 assert!(130 /*assert!(124 <LicenseBond<T>>::get() > 0u32.into(),131 <LicenseBond<T>>::get() > 0u32.into(),125 "Bond cannot be zero!"132 "Bond cannot be zero!"126 );133 );*/127134128 for who in candidates {135 for who in candidates {129 T::Currency::make_free_balance_be(&who, <LicenseBond<T>>::get() * 2u32.into());136 T::Currency::make_free_balance_be(&who, <LicenseBond<T>>::get() * 2u32.into());132 }139 }133}140}141142fn get_licenses<T: Config + configuration::Config>(count: u32) {143 let candidates = (0..count)144 .map(|c| account("candidate", c, SEED))145 .collect::<Vec<_>>();146 /*assert!(147 <LicenseBond<T>>::get() > 0u32.into(),148 "Bond cannot be zero!"149 );*/150151 for who in candidates {152 T::Currency::make_free_balance_be(&who, <LicenseBond<T>>::get() * 2u32.into());153 <CollatorSelection<T>>::get_license(RawOrigin::Signed(who.clone()).into()).unwrap();154 }155}134156135benchmarks! {157benchmarks! {136 where_clause { where T: pallet_authorship::Config + session::Config + configuration::Config }158 where_clause { where T: pallet_authorship::Config + session::Config + configuration::Config }137159138 add_invulnerable {160 add_invulnerable {139 let b in 1 .. T::MaxCollators::get();161 let b in 1 .. T::MaxCollators::get() - 3;162 register_validators::<T>(b);163 register_invulnerables::<T>(b);164165 // log::info!("{} {}", <Invulnerables<T>>::get().len(), b);166140 let new_invulnerable = register_validators::<T>(b)[0].clone();167 let new_invulnerable: T::AccountId = whitelisted_caller();168 let bond: BalanceOf<T> = T::Currency::minimum_balance() * 2u32.into();169 T::Currency::make_free_balance_be(&new_invulnerable, bond.clone());170171 <session::Pallet<T>>::set_keys(172 RawOrigin::Signed(new_invulnerable.clone()).into(),173 keys::<T>(b + 1),174 Vec::new()175 ).unwrap();176141 let origin = T::UpdateOrigin::successful_origin();177 let root_origin = T::UpdateOrigin::successful_origin();142 }: {178 }: {143 assert_ok!(179 assert_ok!(144 <CollatorSelection<T>>::add_invulnerable(origin, new_invulnerable.clone())180 <CollatorSelection<T>>::add_invulnerable(root_origin, new_invulnerable.clone())145 );181 );146 }182 }147 verify {183 verify {150186151 remove_invulnerable {187 remove_invulnerable {152 let b in 1 .. T::MaxCollators::get();188 let b in 1 .. T::MaxCollators::get();153 let new_invulnerable = register_validators::<T>(b)[0].clone();189 register_validators::<T>(b);190 register_invulnerables::<T>(b);191154 let origin = T::UpdateOrigin::successful_origin();192 let root_origin = T::UpdateOrigin::successful_origin();155 assert_ok!(156 <CollatorSelection<T>>::add_invulnerable(origin.clone(), new_invulnerable.clone())193 let leaving = <Invulnerables<T>>::get().last().unwrap().clone();157 );194 whitelist!(leaving);158 }: {195 }: {159 assert_ok!(196 assert_ok!(160 <CollatorSelection<T>>::remove_invulnerable(origin, new_invulnerable.clone())197 <CollatorSelection<T>>::remove_invulnerable(root_origin, leaving.clone())161 );198 );162 }199 }163 verify {200 verify {164 assert_last_event::<T>(Event::InvulnerableRemoved{invulnerable: new_invulnerable}.into());201 assert_last_event::<T>(Event::InvulnerableRemoved{invulnerable: leaving}.into());165 }202 }166167 /*set_desired_collators {168 let max: u32 = 999;169 let origin = T::UpdateOrigin::successful_origin();170 }: {171 assert_ok!(172 <CollatorSelection<T>>::set_desired_collators(origin, max.clone())173 );174 }175 verify {176 assert_last_event::<T>(Event::NewDesiredCollators{desired_collators: max}.into());177 }178179 set_license_bond {180 let bond_amount: BalanceOf<T> = T::Currency::minimum_balance() * 10u32.into();181 let origin = T::UpdateOrigin::successful_origin();182 }: {183 assert_ok!(184 <CollatorSelection<T>>::set_license_bond(origin, bond_amount.clone())185 );186 }187 verify {188 assert_last_event::<T>(Event::NewLicenseBond{bond_amount}.into());189 }*/190203191 get_license {204 get_license {192 let c in 1 .. T::MaxCollators::get();205 let c in 1 .. T::MaxCollators::get();193206194 <LicenseBond<T>>::put(T::Currency::minimum_balance());207 <LicenseBond<T>>::put(T::Currency::minimum_balance());195 <DesiredCollators<T>>::put(c + 1);196208197 register_validators::<T>(c);209 register_validators::<T>(c);198 register_candidates::<T>(c);210 get_licenses::<T>(c);199211200 let caller: T::AccountId = whitelisted_caller();212 let caller: T::AccountId = whitelisted_caller();201 let bond: BalanceOf<T> = T::Currency::minimum_balance() * 2u32.into();213 let bond: BalanceOf<T> = T::Currency::minimum_balance() * 2u32.into();215 // worst case is when we have all the max-candidate slots filled except one, and we fill that227 // worst case is when we have all the max-candidate slots filled except one, and we fill that216 // one.228 // one.217 onboard {229 onboard {218 let c in 1 .. T::MaxCollators::get();230 let c in 1 .. 5;219231220 <LicenseBond<T>>::put(T::Currency::minimum_balance());232 <LicenseBond<T>>::put(T::Currency::minimum_balance());221 <DesiredCollators<T>>::put(c + 1);233 <DesiredCollators<T>>::put(c + 2);222234223 register_validators::<T>(c);235 register_validators::<T>(c);224 register_candidates::<T>(c);236 register_candidates::<T>(c);247 offboard {259 offboard {248 let c in 1 .. T::MaxCollators::get();260 let c in 1 .. T::MaxCollators::get();249 <LicenseBond<T>>::put(T::Currency::minimum_balance());261 <LicenseBond<T>>::put(T::Currency::minimum_balance());250 <DesiredCollators<T>>::put(c);262 <DesiredCollators<T>>::put(c + 2);251263252 register_validators::<T>(c);264 register_validators::<T>(c);253 register_candidates::<T>(c);265 register_candidates::<T>(c);pallets/collator-selection/src/lib.rsdiffbeforeafterboth285 impl<T: Config> Pallet<T> {285 impl<T: Config> Pallet<T> {286 /// Add a collator to the list of invulnerable (fixed) collators.286 /// Add a collator to the list of invulnerable (fixed) collators.287 #[pallet::call_index(0)]287 #[pallet::call_index(0)]288 #[pallet::weight(T::WeightInfo::add_invulnerable(T::MaxCollators::get()))]288 #[pallet::weight(<T as Config>::WeightInfo::add_invulnerable(T::MaxCollators::get()))]289 pub fn add_invulnerable(289 pub fn add_invulnerable(290 origin: OriginFor<T>,290 origin: OriginFor<T>,291 new: T::AccountId,291 new: T::AccountId,315315316 /// Remove a collator from the list of invulnerable (fixed) collators.316 /// Remove a collator from the list of invulnerable (fixed) collators.317 #[pallet::call_index(1)]317 #[pallet::call_index(1)]318 #[pallet::weight(T::WeightInfo::remove_invulnerable(T::MaxCollators::get()))]318 #[pallet::weight(<T as Config>::WeightInfo::remove_invulnerable(T::MaxCollators::get()))]319 pub fn remove_invulnerable(319 pub fn remove_invulnerable(320 origin: OriginFor<T>,320 origin: OriginFor<T>,321 who: T::AccountId,321 who: T::AccountId,344 ///344 ///345 /// This call is not available to `Invulnerable` collators.345 /// This call is not available to `Invulnerable` collators.346 #[pallet::call_index(2)]346 #[pallet::call_index(2)]347 #[pallet::weight(T::WeightInfo::get_license(T::MaxCollators::get()))]347 #[pallet::weight(<T as Config>::WeightInfo::get_license(T::MaxCollators::get()))]348 pub fn get_license(origin: OriginFor<T>) -> DispatchResultWithPostInfo {348 pub fn get_license(origin: OriginFor<T>) -> DispatchResultWithPostInfo {349 // register_as_candidate349 // register_as_candidate350 let who = ensure_signed(origin)?;350 let who = ensure_signed(origin)?;377 ///377 ///378 /// This call is not available to `Invulnerable` collators.378 /// This call is not available to `Invulnerable` collators.379 #[pallet::call_index(3)]379 #[pallet::call_index(3)]380 #[pallet::weight(T::WeightInfo::onboard(T::MaxCollators::get()))]380 #[pallet::weight(<T as Config>::WeightInfo::onboard(T::MaxCollators::get()))]381 pub fn onboard(origin: OriginFor<T>) -> DispatchResultWithPostInfo {381 pub fn onboard(origin: OriginFor<T>) -> DispatchResultWithPostInfo {382 // register_as_candidate382 // register_as_candidate383 let who = ensure_signed(origin)?;383 let who = ensure_signed(origin)?;417 })?;417 })?;418418419 Self::deposit_event(Event::CandidateAdded { account_id: who });419 Self::deposit_event(Event::CandidateAdded { account_id: who });420 Ok(Some(T::WeightInfo::onboard(current_count as u32)).into())420 Ok(Some(<T as Config>::WeightInfo::onboard(current_count as u32)).into())421 }421 }422422423 /// Deregister `origin` as a collator candidate. Note that the collator can only leave on423 /// Deregister `origin` as a collator candidate. Note that the collator can only leave on424 /// session change. The license to `onboard` later at any other time will remain.424 /// session change. The license to `onboard` later at any other time will remain.425 #[pallet::call_index(4)]425 #[pallet::call_index(4)]426 #[pallet::weight(T::WeightInfo::offboard(T::MaxCollators::get()))]426 #[pallet::weight(<T as Config>::WeightInfo::offboard(T::MaxCollators::get()))]427 pub fn offboard(origin: OriginFor<T>) -> DispatchResultWithPostInfo {427 pub fn offboard(origin: OriginFor<T>) -> DispatchResultWithPostInfo {428 // leave_intent428 // leave_intent429 let who = ensure_signed(origin)?;429 let who = ensure_signed(origin)?;430 let current_count = Self::try_remove_candidate(&who)?;430 let current_count = Self::try_remove_candidate(&who)?;431431432 Ok(Some(T::WeightInfo::offboard(current_count as u32)).into())432 Ok(Some(<T as Config>::WeightInfo::offboard(current_count as u32)).into())433 }433 }434434435 /// Forfeit `origin`'s own license. The `LicenseBond` will be unreserved immediately.435 /// Forfeit `origin`'s own license. The `LicenseBond` will be unreserved immediately.436 ///436 ///437 /// This call is not available to `Invulnerable` collators.437 /// This call is not available to `Invulnerable` collators.438 #[pallet::call_index(5)]438 #[pallet::call_index(5)]439 #[pallet::weight(T::WeightInfo::release_license(T::MaxCollators::get()))]439 #[pallet::weight(<T as Config>::WeightInfo::release_license(T::MaxCollators::get()))]440 pub fn release_license(origin: OriginFor<T>) -> DispatchResultWithPostInfo {440 pub fn release_license(origin: OriginFor<T>) -> DispatchResultWithPostInfo {441 // leave_intent441 // leave_intent442 let who = ensure_signed(origin)?;442 let who = ensure_signed(origin)?;443443444 let current_count = Self::try_remove_candidate_and_release_license(&who, false, true)?;444 let current_count = Self::try_remove_candidate_and_release_license(&who, false, true)?;445445446 Ok(Some(T::WeightInfo::release_license(current_count as u32)).into())446 Ok(Some(<T as Config>::WeightInfo::release_license(447 current_count as u32,448 ))449 .into())452 ///455 ///453 /// This call is, of course, not applicable to `Invulnerable` collators.456 /// This call is, of course, not applicable to `Invulnerable` collators.454 #[pallet::call_index(6)]457 #[pallet::call_index(6)]455 #[pallet::weight(T::WeightInfo::force_release_license(T::MaxCollators::get()))]458 #[pallet::weight(<T as Config>::WeightInfo::force_release_license(T::MaxCollators::get()))]456 pub fn force_release_license(459 pub fn force_release_license(457 origin: OriginFor<T>,460 origin: OriginFor<T>,458 who: T::AccountId,461 who: T::AccountId,462465463 let current_count = Self::try_remove_candidate_and_release_license(&who, false, true)?;466 let current_count = Self::try_remove_candidate_and_release_license(&who, false, true)?;464467465 Ok(Some(T::WeightInfo::force_release_license(current_count as u32)).into())468 Ok(Some(<T as Config>::WeightInfo::force_release_license(469 current_count as u32,470 ))471 .into())599 <LastAuthoredBlock<T>>::insert(author, frame_system::Pallet::<T>::block_number());605 <LastAuthoredBlock<T>>::insert(author, frame_system::Pallet::<T>::block_number());600606601 frame_system::Pallet::<T>::register_extra_weight_unchecked(607 frame_system::Pallet::<T>::register_extra_weight_unchecked(602 T::WeightInfo::note_author(),608 <T as Config>::WeightInfo::note_author(),603 DispatchClass::Mandatory,609 DispatchClass::Mandatory,604 );610 );605 }611 }625 let result = Self::assemble_collators(active_candidates);631 let result = Self::assemble_collators(active_candidates);626632627 frame_system::Pallet::<T>::register_extra_weight_unchecked(633 frame_system::Pallet::<T>::register_extra_weight_unchecked(628 T::WeightInfo::new_session(candidates_len_before as u32, removed as u32),634 <T as Config>::WeightInfo::new_session(635 candidates_len_before as u32,636 removed as u32,637 ),pallets/collator-selection/src/mock.rsdiffbeforeafterboth225 type MaxXcmAllowedLocations = MaxXcmAllowedLocations;225 type MaxXcmAllowedLocations = MaxXcmAllowedLocations;226 type AppPromotionDailyRate = AppPromotionDailyRate;226 type AppPromotionDailyRate = AppPromotionDailyRate;227 type DayRelayBlocks = DayRelayBlocks;227 type DayRelayBlocks = DayRelayBlocks;228 type WeightInfo = ();228}229}229230230ord_parameter_types! {231ord_parameter_types! {pallets/configuration/Cargo.tomldiffbeforeafterboth12] }12] }13frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }13frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }222323[features]24[features]24default = ["std"]25default = ["std"]26runtime-benchmarks = ["frame-benchmarking"]25std = [27std = [26 "parity-scale-codec/std",28 "parity-scale-codec/std",27 "frame-support/std",29 "frame-support/std",28 "frame-system/std",30 "frame-system/std",31 "frame-benchmarking/std",29 "sp-runtime/std",32 "sp-runtime/std",30 "sp-std/std",33 "sp-std/std",31 "sp-core/std",34 "sp-core/std",pallets/configuration/src/benchmarking.rsdiffbeforeafterbothno changes
pallets/configuration/src/lib.rsdiffbeforeafterboth34pub use pallet::*;34pub use pallet::*;35use sp_core::U256;35use sp_core::U256;3637#[cfg(feature = "runtime-benchmarks")]38mod benchmarking;39pub mod weights;364037#[pallet]41#[pallet]38mod pallet {42mod pallet {45 use frame_system::{pallet_prelude::OriginFor, ensure_root, Config as SystemConfig};49 use frame_system::{pallet_prelude::OriginFor, ensure_root, Config as SystemConfig};46 use xcm::v1::MultiLocation;50 use xcm::v1::MultiLocation;475152 pub use crate::weights::WeightInfo;48 pub type BalanceOf<T> =53 pub type BalanceOf<T> =49 <<T as Config>::Currency as Currency<<T as SystemConfig>::AccountId>>::Balance;54 <<T as Config>::Currency as Currency<<T as SystemConfig>::AccountId>>::Balance;505575 #[pallet::constant]80 #[pallet::constant]76 type DefaultCollatorSelectionKickThreshold: Get<Self::BlockNumber>;81 type DefaultCollatorSelectionKickThreshold: Get<Self::BlockNumber>;8283 /// The weight information of this pallet.84 type WeightInfo: WeightInfo;77 }85 }788679 #[pallet::event]87 #[pallet::event]140 #[pallet::call]148 #[pallet::call]141 impl<T: Config> Pallet<T> {149 impl<T: Config> Pallet<T> {142 #[pallet::call_index(0)]150 #[pallet::call_index(0)]143 #[pallet::weight(T::DbWeight::get().writes(1))]151 #[pallet::weight(T::WeightInfo::set_weight_to_fee_coefficient_override())]144 pub fn set_weight_to_fee_coefficient_override(152 pub fn set_weight_to_fee_coefficient_override(145 origin: OriginFor<T>,153 origin: OriginFor<T>,146 coeff: Option<u64>,154 coeff: Option<u64>,155 }163 }156164157 #[pallet::call_index(1)]165 #[pallet::call_index(1)]158 #[pallet::weight(T::DbWeight::get().writes(1))]166 #[pallet::weight(T::WeightInfo::set_min_gas_price_override())]159 pub fn set_min_gas_price_override(167 pub fn set_min_gas_price_override(160 origin: OriginFor<T>,168 origin: OriginFor<T>,161 coeff: Option<u64>,169 coeff: Option<u64>,170 }178 }171179172 #[pallet::call_index(2)]180 #[pallet::call_index(2)]173 #[pallet::weight(T::DbWeight::get().writes(1))]181 #[pallet::weight(T::WeightInfo::set_xcm_allowed_locations())]174 pub fn set_xcm_allowed_locations(182 pub fn set_xcm_allowed_locations(175 origin: OriginFor<T>,183 origin: OriginFor<T>,176 locations: Option<BoundedVec<MultiLocation, T::MaxXcmAllowedLocations>>,184 locations: Option<BoundedVec<MultiLocation, T::MaxXcmAllowedLocations>>,181 }189 }182190183 #[pallet::call_index(3)]191 #[pallet::call_index(3)]184 #[pallet::weight(T::DbWeight::get().writes(1))]192 #[pallet::weight(T::WeightInfo::set_app_promotion_configuration_override())]185 pub fn set_app_promotion_configuration_override(193 pub fn set_app_promotion_configuration_override(186 origin: OriginFor<T>,194 origin: OriginFor<T>,187 mut configuration: AppPromotionConfiguration<T::BlockNumber>,195 mut configuration: AppPromotionConfiguration<T::BlockNumber>,202 }210 }203211204 #[pallet::call_index(4)]212 #[pallet::call_index(4)]205 #[pallet::weight(T::DbWeight::get().writes(1))]213 #[pallet::weight(T::WeightInfo::set_collator_selection_desired_collators())]206 pub fn set_collator_selection_desired_collators(214 pub fn set_collator_selection_desired_collators(207 origin: OriginFor<T>,215 origin: OriginFor<T>,208 max: Option<u32>,216 max: Option<u32>,224 }232 }225233226 #[pallet::call_index(5)]234 #[pallet::call_index(5)]227 #[pallet::weight(T::DbWeight::get().writes(1))]235 #[pallet::weight(T::WeightInfo::set_collator_selection_license_bond())]228 pub fn set_collator_selection_license_bond(236 pub fn set_collator_selection_license_bond(229 origin: OriginFor<T>,237 origin: OriginFor<T>,230 amount: Option<BalanceOf<T>>,238 amount: Option<BalanceOf<T>>,240 }248 }241249242 #[pallet::call_index(6)]250 #[pallet::call_index(6)]243 #[pallet::weight(T::DbWeight::get().writes(1))]251 #[pallet::weight(T::WeightInfo::set_collator_selection_kick_threshold())]244 pub fn set_collator_selection_kick_threshold(252 pub fn set_collator_selection_kick_threshold(245 origin: OriginFor<T>,253 origin: OriginFor<T>,246 threshold: Option<T::BlockNumber>,254 threshold: Option<T::BlockNumber>,pallets/configuration/src/weights.rsdiffbeforeafterbothno changes
runtime/common/config/pallets/mod.rsdiffbeforeafterboth121 type MaxXcmAllowedLocations = ConstU32<16>;121 type MaxXcmAllowedLocations = ConstU32<16>;122 type AppPromotionDailyRate = AppPromotionDailyRate;122 type AppPromotionDailyRate = AppPromotionDailyRate;123 type DayRelayBlocks = DayRelayBlocks;123 type DayRelayBlocks = DayRelayBlocks;124 type WeightInfo = pallet_configuration::weights::SubstrateWeight<Self>;124}125}125126126impl pallet_maintenance::Config for Runtime {127impl pallet_maintenance::Config for Runtime {runtime/common/construct_runtime/mod.rsdiffbeforeafterboth32 ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,32 ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,33 ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,33 ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,3435 Aura: pallet_aura::{Pallet, Config<T>} = 22,36 AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23,373438 #[runtimes(opal)]35 #[runtimes(opal)]39 Authorship: pallet_authorship::{Pallet, Call, Storage} = 24,36 Authorship: pallet_authorship::{Pallet, Call, Storage} = 22,403741 #[runtimes(opal)]38 #[runtimes(opal)]42 CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event<T>, Config<T>} = 25,39 CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event<T>, Config<T>} = 23,434044 #[runtimes(opal)]41 #[runtimes(opal)]45 Session: pallet_session::{Pallet, Call, Storage, Event, Config<T>} = 26,42 Session: pallet_session::{Pallet, Call, Storage, Event, Config<T>} = 24,4344 Aura: pallet_aura::{Pallet, Config<T>} = 25,45 AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 26,464647 Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,47 Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,48 RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,48 RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,runtime/common/runtime_apis.rsdiffbeforeafterboth686 list_benchmark!(list, extra, pallet_unique, Unique);686 list_benchmark!(list, extra, pallet_unique, Unique);687 list_benchmark!(list, extra, pallet_structure, Structure);687 list_benchmark!(list, extra, pallet_structure, Structure);688 list_benchmark!(list, extra, pallet_inflation, Inflation);688 list_benchmark!(list, extra, pallet_inflation, Inflation);689 list_benchmark!(list, extra, pallet_configuration, Configuration);689690690 #[cfg(feature = "app-promotion")]691 #[cfg(feature = "app-promotion")]691 list_benchmark!(list, extra, pallet_app_promotion, AppPromotion);692 list_benchmark!(list, extra, pallet_app_promotion, AppPromotion);755 add_benchmark!(params, batches, pallet_unique, Unique);756 add_benchmark!(params, batches, pallet_unique, Unique);756 add_benchmark!(params, batches, pallet_structure, Structure);757 add_benchmark!(params, batches, pallet_structure, Structure);757 add_benchmark!(params, batches, pallet_inflation, Inflation);758 add_benchmark!(params, batches, pallet_inflation, Inflation);759 add_benchmark!(params, batches, pallet_configuration, Configuration);758760759 #[cfg(feature = "app-promotion")]761 #[cfg(feature = "app-promotion")]760 add_benchmark!(params, batches, pallet_app_promotion, AppPromotion);762 add_benchmark!(params, batches, pallet_app_promotion, AppPromotion);runtime/opal/Cargo.tomldiffbeforeafterboth28 'pallet-evm-coder-substrate/runtime-benchmarks',28 'pallet-evm-coder-substrate/runtime-benchmarks',29 'pallet-balances/runtime-benchmarks',29 'pallet-balances/runtime-benchmarks',30 'pallet-timestamp/runtime-benchmarks',30 'pallet-timestamp/runtime-benchmarks',31 'pallet-configuration/runtime-benchmarks',31 'pallet-common/runtime-benchmarks',32 'pallet-common/runtime-benchmarks',32 'pallet-structure/runtime-benchmarks',33 'pallet-structure/runtime-benchmarks',33 'pallet-fungible/runtime-benchmarks',34 'pallet-fungible/runtime-benchmarks',runtime/quartz/Cargo.tomldiffbeforeafterboth28 'pallet-evm-coder-substrate/runtime-benchmarks',28 'pallet-evm-coder-substrate/runtime-benchmarks',29 'pallet-balances/runtime-benchmarks',29 'pallet-balances/runtime-benchmarks',30 'pallet-timestamp/runtime-benchmarks',30 'pallet-timestamp/runtime-benchmarks',31 'pallet-configuration/runtime-benchmarks',31 'pallet-common/runtime-benchmarks',32 'pallet-common/runtime-benchmarks',32 'pallet-structure/runtime-benchmarks',33 'pallet-structure/runtime-benchmarks',33 'pallet-fungible/runtime-benchmarks',34 'pallet-fungible/runtime-benchmarks',runtime/unique/Cargo.tomldiffbeforeafterboth28 'pallet-evm-coder-substrate/runtime-benchmarks',28 'pallet-evm-coder-substrate/runtime-benchmarks',29 'pallet-balances/runtime-benchmarks',29 'pallet-balances/runtime-benchmarks',30 'pallet-timestamp/runtime-benchmarks',30 'pallet-timestamp/runtime-benchmarks',31 'pallet-configuration/runtime-benchmarks',31 'pallet-common/runtime-benchmarks',32 'pallet-common/runtime-benchmarks',32 'pallet-structure/runtime-benchmarks',33 'pallet-structure/runtime-benchmarks',33 'pallet-fungible/runtime-benchmarks',34 'pallet-fungible/runtime-benchmarks',