From 6304a459435cb47b81920100119b1eb6ac0737c4 Mon Sep 17 00:00:00 2001 From: bgallois <benjamin@gallois.cc> Date: Fri, 16 Feb 2024 17:01:13 +0100 Subject: [PATCH] fix weight for tuple handler --- pallets/certification/src/benchmarking.rs | 23 ++- pallets/certification/src/lib.rs | 45 ++++-- pallets/certification/src/weights.rs | 8 + pallets/duniter-wot/src/lib.rs | 47 +++--- pallets/identity/src/benchmarking.rs | 80 ++++++++++ pallets/identity/src/lib.rs | 50 +++--- pallets/identity/src/traits.rs | 9 +- pallets/identity/src/weights.rs | 35 +++++ pallets/membership/src/lib.rs | 14 +- pallets/quota/src/lib.rs | 10 +- pallets/smith-members/src/lib.rs | 2 +- primitives/membership/src/lib.rs | 8 +- primitives/membership/src/traits.rs | 2 +- runtime/common/src/handlers.rs | 17 ++- .../src/weights/pallet_certification.rs | 44 ++++-- runtime/common/src/weights/pallet_identity.rs | 144 +++++++++++++----- .../common/src/weights/pallet_membership.rs | 18 +-- runtime/common/src/weights/pallet_quota.rs | 34 ++--- 18 files changed, 438 insertions(+), 152 deletions(-) diff --git a/pallets/certification/src/benchmarking.rs b/pallets/certification/src/benchmarking.rs index 7fa0534d5..1109f97a3 100644 --- a/pallets/certification/src/benchmarking.rs +++ b/pallets/certification/src/benchmarking.rs @@ -38,7 +38,7 @@ mod benchmarks { fn add_certs<T: Config>(i: u32, receiver: T::IdtyIndex) -> Result<(), &'static str> { Pallet::<T>::remove_all_certs_received_by(RawOrigin::Root.into(), receiver)?; for j in 1..i { - Pallet::<T>::do_add_cert_checked(j.into(), receiver, false)?; + let _ = Pallet::<T>::do_add_cert_checked(j.into(), receiver, false); } assert!( CertsByReceiver::<T>::get(receiver).len() as u32 == i - 1, @@ -47,6 +47,22 @@ mod benchmarks { Ok(()) } + #[benchmark] + fn do_add_cert_checked() -> Result<(), BenchmarkError> { + let issuer: T::IdtyIndex = 1.into(); + let receiver: T::IdtyIndex = 2.into(); + Pallet::<T>::del_cert(RawOrigin::Root.into(), issuer, receiver)?; + frame_system::pallet::Pallet::<T>::set_block_number(T::CertPeriod::get()); + + #[block] + { + Pallet::<T>::do_add_cert_checked(issuer, receiver, true); + } + + assert_has_event::<T>(Event::<T>::CertAdded { issuer, receiver }.into()); + Ok(()) + } + #[benchmark] fn add_cert() -> Result<(), BenchmarkError> { let issuer: T::IdtyIndex = 1.into(); @@ -134,11 +150,11 @@ mod benchmarks { } #[benchmark] - fn do_remove_cert() -> Result<(), BenchmarkError> { + fn do_remove_cert() { let issuer: T::IdtyIndex = 1.into(); let receiver: T::IdtyIndex = 0.into(); Pallet::<T>::do_remove_cert(issuer, receiver, None); - Pallet::<T>::do_add_cert_checked(issuer, receiver, false)?; + let _ = Pallet::<T>::do_add_cert_checked(issuer, receiver, false); let block_number = T::ValidityPeriod::get(); frame_system::pallet::Pallet::<T>::set_block_number(block_number); @@ -155,7 +171,6 @@ mod benchmarks { } .into(), ); - Ok(()) } impl_benchmark_test_suite!( diff --git a/pallets/certification/src/lib.rs b/pallets/certification/src/lib.rs index 88cdf0c29..2b59b0277 100644 --- a/pallets/certification/src/lib.rs +++ b/pallets/certification/src/lib.rs @@ -331,9 +331,7 @@ pub mod pallet { idty_index: T::IdtyIndex, ) -> DispatchResultWithPostInfo { ensure_root(origin)?; - for (issuer, _) in CertsByReceiver::<T>::get(idty_index) { - Self::do_remove_cert(issuer, idty_index, None); - } + let _ = Self::do_remove_all_certs_received_by(idty_index); Ok(().into()) } } @@ -341,6 +339,14 @@ pub mod pallet { // INTERNAL FUNCTIONS // impl<T: Config> Pallet<T> { + pub fn do_remove_all_certs_received_by(idty_index: T::IdtyIndex) -> Weight { + let mut weight = T::DbWeight::get().reads_writes(1, 0); + for (issuer, _) in CertsByReceiver::<T>::get(idty_index) { + weight = weight.saturating_add(Self::do_remove_cert(issuer, idty_index, None)); + } + weight + } + /// get issuer index from origin pub fn origin_to_index(origin: OriginFor<T>) -> Result<T::IdtyIndex, DispatchError> { let who = ensure_signed(origin)?; @@ -349,21 +355,30 @@ pub mod pallet { /// add a certification without checks // this is used on identity creation to add the first certification + // The weight is approximated on the worst path. pub fn do_add_cert_checked( issuer: T::IdtyIndex, receiver: T::IdtyIndex, verify_rules: bool, - ) -> DispatchResultWithPostInfo { + ) -> Weight { let block_number = frame_system::pallet::Pallet::<T>::block_number(); if verify_rules { // only verify internal rules if asked - Self::check_add_cert_internal(issuer, receiver, block_number)?; - }; - - Self::try_add_cert(block_number, issuer, receiver)?; + if let Err(e) = Self::check_add_cert_internal(issuer, receiver, block_number) { + sp_std::if_std! { + println!("fail to force add cert: {:?}", e) + } + return T::WeightInfo::do_add_cert_checked(); + } + } - Ok(().into()) + if let Err(e) = Self::try_add_cert(block_number, issuer, receiver) { + sp_std::if_std! { + println!("fail to force add cert: {:?}", e) + } + } + T::WeightInfo::do_add_cert_checked() } /// perform cert addition if not existing, else CertAlreadyExists @@ -454,15 +469,18 @@ pub mod pallet { // (run at on_initialize step) fn prune_certifications(block_number: BlockNumberFor<T>) -> Weight { // See on initialize for the overhead weight accounting - let mut total_weight = Weight::zero(); + let mut weight = Weight::zero(); if let Some(certs) = CertsRemovableOn::<T>::take(block_number) { for (issuer, receiver) in certs { - total_weight += Self::do_remove_cert(issuer, receiver, Some(block_number)); + weight = weight.saturating_add(Self::do_remove_cert( + issuer, + receiver, + Some(block_number), + )); } } - - total_weight + weight } /// perform the certification removal @@ -512,7 +530,6 @@ pub mod pallet { receiver, expiration: block_number_opt.is_some(), }); - // Should always return Weight::zero T::OnRemovedCert::on_removed_cert( issuer, issuer_issued_count, diff --git a/pallets/certification/src/weights.rs b/pallets/certification/src/weights.rs index e58c33831..736d3c366 100644 --- a/pallets/certification/src/weights.rs +++ b/pallets/certification/src/weights.rs @@ -27,6 +27,7 @@ pub trait WeightInfo { fn on_initialize() -> Weight; fn do_remove_cert_noop() -> Weight; fn do_remove_cert() -> Weight; + fn do_add_cert_checked() -> Weight; } // Insecure weights implementation, use it for tests only! @@ -102,4 +103,11 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().reads(7 as u64)) .saturating_add(RocksDbWeight::get().writes(4 as u64)) } + + fn do_add_cert_checked() -> Weight { + // Minimum execution time: 259_247 nanoseconds. + Weight::from_parts(269_348_000 as u64, 0) + .saturating_add(RocksDbWeight::get().reads(7 as u64)) + .saturating_add(RocksDbWeight::get().writes(4 as u64)) + } } diff --git a/pallets/duniter-wot/src/lib.rs b/pallets/duniter-wot/src/lib.rs index 9985c6822..6d0f288e5 100644 --- a/pallets/duniter-wot/src/lib.rs +++ b/pallets/duniter-wot/src/lib.rs @@ -200,59 +200,53 @@ impl<T: Config> sp_membership::traits::OnEvent<IdtyIndex> for Pallet<T> where T: pallet_membership::Config, { - fn on_event(membership_event: &sp_membership::Event<IdtyIndex>) { + fn on_event(membership_event: &sp_membership::Event<IdtyIndex>) -> Weight { match membership_event { sp_membership::Event::<IdtyIndex>::MembershipAdded(idty_index) => { // when main membership is acquired, tell identity // (only used on first membership acquiry) - pallet_identity::Pallet::<T>::membership_added(*idty_index); + pallet_identity::Pallet::<T>::membership_added(*idty_index) } sp_membership::Event::<IdtyIndex>::MembershipRemoved(idty_index) => { // when main membership is lost, tell identity - pallet_identity::Pallet::<T>::membership_removed(*idty_index); + pallet_identity::Pallet::<T>::membership_removed(*idty_index) } - sp_membership::Event::<IdtyIndex>::MembershipRenewed(_) => {} + sp_membership::Event::<IdtyIndex>::MembershipRenewed(_) => Weight::zero(), } } } // implement identity event handler impl<T: Config> pallet_identity::traits::OnIdtyChange<T> for Pallet<T> { - fn on_idty_change(idty_index: IdtyIndex, idty_event: &IdtyEvent<T>) { + fn on_idty_change(idty_index: IdtyIndex, idty_event: &IdtyEvent<T>) -> Weight { + let mut weight = Weight::zero(); match idty_event { // identity just has been created, a cert must be added IdtyEvent::Created { creator, .. } => { - if let Err(e) = <pallet_certification::Pallet<T>>::do_add_cert_checked( - *creator, idty_index, true, - ) { - sp_std::if_std! { - println!("fail to force add cert: {:?}", e) - } - } + weight = + weight.saturating_add(<pallet_certification::Pallet<T>>::do_add_cert_checked( + *creator, idty_index, true, + )); } // we could split this event in removed / revoked: // if identity is revoked keep it // if identity is removed also remove certs IdtyEvent::Removed { status } => { // try remove membership in any case - <pallet_membership::Pallet<T>>::do_remove_membership( - idty_index, - MembershipRemovalReason::Revoked, - ); + weight = + weight.saturating_add(<pallet_membership::Pallet<T>>::do_remove_membership( + idty_index, + MembershipRemovalReason::Revoked, + )); // only remove certs if identity is unvalidated match status { IdtyStatus::Unconfirmed | IdtyStatus::Unvalidated => { - if let Err(e) = - <pallet_certification::Pallet<T>>::remove_all_certs_received_by( - frame_system::Origin::<T>::Root.into(), + weight = weight.saturating_add( + <pallet_certification::Pallet<T>>::do_remove_all_certs_received_by( idty_index, - ) - { - sp_std::if_std! { - println!("fail to remove certs received by some idty: {:?}", e) - } - } + ), + ); } IdtyStatus::Revoked => {} IdtyStatus::Member | IdtyStatus::NotMember => { @@ -263,6 +257,7 @@ impl<T: Config> pallet_identity::traits::OnIdtyChange<T> for Pallet<T> { } } } + weight } } @@ -297,7 +292,7 @@ impl<T: Config> pallet_certification::traits::OnRemovedCert<IdtyIndex> for Palle <pallet_membership::Pallet<T>>::do_remove_membership( receiver, MembershipRemovalReason::NotEnoughCerts, - ) + ); } } } diff --git a/pallets/identity/src/benchmarking.rs b/pallets/identity/src/benchmarking.rs index e013a2ac4..fc311a0e9 100644 --- a/pallets/identity/src/benchmarking.rs +++ b/pallets/identity/src/benchmarking.rs @@ -429,6 +429,86 @@ mod benchmarks { ); } + #[benchmark] + fn do_remove_identity_handler() { + let idty_index: T::IdtyIndex = 1u32.into(); + let new_identity: T::AccountId = account("Bob", 2, 1); + assert!(Identities::<T>::get(idty_index).is_some()); + frame_system::Pallet::<T>::inc_sufficients(&new_identity); + Identities::<T>::mutate(idty_index, |id| { + if let Some(id) = id { + id.old_owner_key = Some((new_identity, BlockNumberFor::<T>::zero())); + } + }); + assert!(Identities::<T>::get(idty_index) + .unwrap() + .old_owner_key + .is_some()); + + #[block] + { + T::OnIdtyChange::on_idty_change( + idty_index, + &IdtyEvent::Removed { + status: IdtyStatus::Member, + }, + ); + } + } + + #[benchmark] + fn membership_added() -> Result<(), BenchmarkError> { + let caller: T::AccountId = Identities::<T>::get(T::IdtyIndex::from(1u32)) + .unwrap() + .owner_key; + let caller_origin: <T as frame_system::Config>::RuntimeOrigin = + RawOrigin::Signed(caller.clone()).into(); + let owner_key: T::AccountId = account("new_identity", 2, 1); + let owner_key_origin: <T as frame_system::Config>::RuntimeOrigin = + RawOrigin::Signed(owner_key.clone()).into(); + Pallet::<T>::create_identity(caller_origin.clone(), owner_key.clone())?; + let name = IdtyName("new_identity".into()); + Pallet::<T>::confirm_identity(owner_key_origin.clone(), name.clone())?; + let idty_index = IdentityIndexOf::<T>::get(&owner_key).unwrap(); + assert_ne!( + Identities::<T>::get(idty_index).unwrap().status, + IdtyStatus::Member + ); + + #[block] + { + Pallet::<T>::membership_added(idty_index); + } + + assert_has_event::<T>(Event::<T>::IdtyValidated { idty_index }.into()); + assert_eq!( + Identities::<T>::get(idty_index).unwrap().status, + IdtyStatus::Member + ); + Ok(()) + } + + #[benchmark] + fn membership_removed() -> Result<(), BenchmarkError> { + let key: T::AccountId = account("new_identity", 2, 1); + let account: Account<T> = create_one_identity(key)?; + assert_eq!( + Identities::<T>::get(account.index).unwrap().status, + IdtyStatus::Member + ); + + #[block] + { + Pallet::<T>::membership_removed(account.index); + } + + assert_eq!( + Identities::<T>::get(account.index).unwrap().status, + IdtyStatus::NotMember + ); + Ok(()) + } + #[benchmark] fn prune_identities_noop() { assert!(IdentityChangeSchedule::<T>::try_get(BlockNumberFor::<T>::zero()).is_err()); diff --git a/pallets/identity/src/lib.rs b/pallets/identity/src/lib.rs index eac91bda1..aa6a6c5a8 100644 --- a/pallets/identity/src/lib.rs +++ b/pallets/identity/src/lib.rs @@ -638,7 +638,7 @@ pub mod pallet { // when an identity becomes member, update its status // unschedule identity action, this falls back to membership scheduling // no identity schedule while membership is active - pub fn membership_added(idty_index: T::IdtyIndex) { + pub fn membership_added(idty_index: T::IdtyIndex) -> Weight { if let Some(mut idty_value) = Identities::<T>::get(idty_index) { Self::unschedule_identity_change(idty_index, idty_value.next_scheduled); idty_value.next_scheduled = BlockNumberFor::<T>::zero(); @@ -649,6 +649,7 @@ pub mod pallet { idty_value.status = IdtyStatus::Member; <Identities<T>>::insert(idty_index, idty_value); } + T::WeightInfo::membership_added() // else should not happen } @@ -656,7 +657,7 @@ pub mod pallet { // only does something if identity is actually member // a membership can be removed when the identity is revoked // in this case, this does nothing - pub fn membership_removed(idty_index: T::IdtyIndex) { + pub fn membership_removed(idty_index: T::IdtyIndex) -> Weight { if let Some(idty_value) = Identities::<T>::get(idty_index) { if idty_value.status == IdtyStatus::Member { Self::update_identity_status( @@ -667,6 +668,7 @@ pub mod pallet { ); } } + T::WeightInfo::membership_removed() // else should not happen } @@ -685,13 +687,16 @@ pub mod pallet { frame_system::Pallet::<T>::dec_sufficients(&old_owner_key); } Self::deposit_event(Event::IdtyRemoved { idty_index, reason }); - T::OnIdtyChange::on_idty_change( + let weight = T::OnIdtyChange::on_idty_change( idty_index, &IdtyEvent::Removed { status: idty_value.status, }, ); - return T::WeightInfo::do_remove_identity(); + return weight.saturating_add( + T::WeightInfo::do_remove_identity() + .saturating_sub(T::WeightInfo::do_remove_identity_handler()), + ); } T::WeightInfo::do_remove_identity_noop() } @@ -738,35 +743,46 @@ pub mod pallet { if idty_val.next_scheduled == block_number { match idty_val.status { IdtyStatus::Unconfirmed => { - total_weight += - Self::do_remove_identity(idty_index, RemovalReason::Unconfirmed) + total_weight = + total_weight.saturating_add(Self::do_remove_identity( + idty_index, + RemovalReason::Unconfirmed, + )); } IdtyStatus::Unvalidated => { - total_weight += - Self::do_remove_identity(idty_index, RemovalReason::Unvalidated) + total_weight = + total_weight.saturating_add(Self::do_remove_identity( + idty_index, + RemovalReason::Unvalidated, + )); } IdtyStatus::Revoked => { - total_weight += - Self::do_remove_identity(idty_index, RemovalReason::Revoked) + total_weight = total_weight.saturating_add( + Self::do_remove_identity(idty_index, RemovalReason::Revoked), + ); } IdtyStatus::NotMember => { - total_weight += - Self::do_revoke_identity(idty_index, RevocationReason::Expired) + total_weight = total_weight.saturating_add( + Self::do_revoke_identity(idty_index, RevocationReason::Expired), + ); } IdtyStatus::Member => { // do not touch identities of member accounts // this should not happen } } } else { - total_weight += T::WeightInfo::prune_identities_err() - .saturating_sub(T::WeightInfo::prune_identities_none()) + total_weight = total_weight.saturating_add( + T::WeightInfo::prune_identities_err() + .saturating_sub(T::WeightInfo::prune_identities_none()), + ); } } else { - total_weight += T::WeightInfo::prune_identities_none() - .saturating_sub(T::WeightInfo::prune_identities_noop()) + total_weight = total_weight.saturating_add( + T::WeightInfo::prune_identities_none() + .saturating_sub(T::WeightInfo::prune_identities_noop()), + ); } } - total_weight.saturating_add(T::WeightInfo::prune_identities_noop()) } diff --git a/pallets/identity/src/traits.rs b/pallets/identity/src/traits.rs index 6a1b457c1..ced84de96 100644 --- a/pallets/identity/src/traits.rs +++ b/pallets/identity/src/traits.rs @@ -16,6 +16,7 @@ use crate::*; use frame_support::pallet_prelude::*; +use frame_support::weights::Weight; use impl_trait_for_tuples::impl_for_tuples; pub trait CheckIdtyCallAllowed<T: Config> { @@ -35,14 +36,16 @@ pub trait IdtyNameValidator { } pub trait OnIdtyChange<T: Config> { - fn on_idty_change(idty_index: T::IdtyIndex, idty_event: &IdtyEvent<T>); + fn on_idty_change(idty_index: T::IdtyIndex, idty_event: &IdtyEvent<T>) -> Weight; } #[impl_for_tuples(5)] #[allow(clippy::let_and_return)] impl<T: Config> OnIdtyChange<T> for Tuple { - fn on_idty_change(idty_index: T::IdtyIndex, idty_event: &IdtyEvent<T>) { - for_tuples!( #( Tuple::on_idty_change(idty_index, idty_event); )* ); + fn on_idty_change(idty_index: T::IdtyIndex, idty_event: &IdtyEvent<T>) -> Weight { + let mut weight = Weight::zero(); + for_tuples!( #( weight = weight.saturating_add(Tuple::on_idty_change(idty_index, idty_event)); )* ); + weight } } diff --git a/pallets/identity/src/weights.rs b/pallets/identity/src/weights.rs index 879cbe3f4..aa07cb254 100644 --- a/pallets/identity/src/weights.rs +++ b/pallets/identity/src/weights.rs @@ -30,10 +30,13 @@ pub trait WeightInfo { fn do_revoke_identity_noop() -> Weight; fn do_revoke_identity() -> Weight; fn do_remove_identity_noop() -> Weight; + fn do_remove_identity_handler() -> Weight; fn do_remove_identity() -> Weight; fn prune_identities_noop() -> Weight; fn prune_identities_none() -> Weight; fn prune_identities_err() -> Weight; + fn membership_added() -> Weight; + fn membership_removed() -> Weight; } // Insecure weights implementation, use it for tests only! @@ -155,6 +158,16 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().reads(1)) } + fn do_remove_identity_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `269` + // Estimated: `3734` + // Minimum execution time: 104_296_000 picoseconds. + Weight::from_parts(115_316_000, 0) + .saturating_add(Weight::from_parts(0, 3734)) + .saturating_add(RocksDbWeight::get().reads(1)) + } + fn do_remove_identity() -> Weight { // Proof Size summary in bytes: // Measured: `1432` @@ -197,4 +210,26 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().reads(8)) .saturating_add(RocksDbWeight::get().writes(8)) } + + fn membership_added() -> Weight { + // Proof Size summary in bytes: + // Measured: `1177` + // Estimated: `4642` + // Minimum execution time: 1_427_848_000 picoseconds. + Weight::from_parts(2_637_229_000, 0) + .saturating_add(Weight::from_parts(0, 4642)) + .saturating_add(RocksDbWeight::get().reads(8)) + .saturating_add(RocksDbWeight::get().writes(8)) + } + + fn membership_removed() -> Weight { + // Proof Size summary in bytes: + // Measured: `1177` + // Estimated: `4642` + // Minimum execution time: 1_427_848_000 picoseconds. + Weight::from_parts(2_637_229_000, 0) + .saturating_add(Weight::from_parts(0, 4642)) + .saturating_add(RocksDbWeight::get().reads(8)) + .saturating_add(RocksDbWeight::get().writes(8)) + } } diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs index d1fb52e35..4217893cc 100644 --- a/pallets/membership/src/lib.rs +++ b/pallets/membership/src/lib.rs @@ -290,15 +290,25 @@ pub mod pallet { } /// perform membership removal - pub fn do_remove_membership(idty_id: T::IdtyId, reason: MembershipRemovalReason) { + pub fn do_remove_membership(idty_id: T::IdtyId, reason: MembershipRemovalReason) -> Weight { + let mut weight = Weight::zero(); + let mut add_db_reads_writes = |reads, writes| { + weight = weight.saturating_add(T::DbWeight::get().reads_writes(reads, writes)); + }; + if let Some(membership_data) = Membership::<T>::take(idty_id) { + add_db_reads_writes(1, 1); Self::unschedule_membership_expiry(idty_id, membership_data.expire_on); + add_db_reads_writes(1, 2); Self::deposit_event(Event::MembershipRemoved { member: idty_id, reason, }); - T::OnEvent::on_event(&sp_membership::Event::MembershipRemoved(idty_id)); + weight = weight.saturating_add(T::OnEvent::on_event( + &sp_membership::Event::MembershipRemoved(idty_id), + )); } + weight } /// perform the membership expiry scheduled at given block diff --git a/pallets/quota/src/lib.rs b/pallets/quota/src/lib.rs index 8a063dcb1..83a28c67d 100644 --- a/pallets/quota/src/lib.rs +++ b/pallets/quota/src/lib.rs @@ -340,7 +340,12 @@ fn is_eligible_for_refund<T: pallet_identity::Config>(_identity: IdtyId<T>) -> b // implement identity event handler impl<T: Config> pallet_identity::traits::OnIdtyChange<T> for Pallet<T> { - fn on_idty_change(idty_id: IdtyId<T>, idty_event: &IdtyEvent<T>) { + fn on_idty_change(idty_id: IdtyId<T>, idty_event: &IdtyEvent<T>) -> Weight { + let mut weight = Weight::zero(); + let mut add_db_reads_writes = |reads, writes| { + weight = weight.saturating_add(T::DbWeight::get().reads_writes(reads, writes)); + }; + match idty_event { // initialize quota on identity creation IdtyEvent::Created { .. } => { @@ -351,10 +356,13 @@ impl<T: Config> pallet_identity::traits::OnIdtyChange<T> for Pallet<T> { amount: BalanceOf::<T>::zero(), }, ); + add_db_reads_writes(0, 1); } IdtyEvent::Removed { .. } => { IdtyQuota::<T>::remove(idty_id); + add_db_reads_writes(1, 1); } } + weight } } diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs index 28deb237f..b62b99ccc 100644 --- a/pallets/smith-members/src/lib.rs +++ b/pallets/smith-members/src/lib.rs @@ -496,7 +496,7 @@ impl<T: Config> Pallet<T> { let mut weight = T::WeightInfo::on_removed_wot_member_empty(); if Smiths::<T>::get(idty_index).is_some() { Self::_do_exclude_smith(idty_index, SmithRemovalReason::LostMembership); - weight += T::WeightInfo::on_removed_wot_member(); + weight = weight.saturating_add(T::WeightInfo::on_removed_wot_member()); } weight } diff --git a/primitives/membership/src/lib.rs b/primitives/membership/src/lib.rs index 64f7f821f..d2ef9952a 100644 --- a/primitives/membership/src/lib.rs +++ b/primitives/membership/src/lib.rs @@ -23,6 +23,7 @@ pub mod traits; use codec::{Decode, Encode}; use frame_support::pallet_prelude::RuntimeDebug; +use frame_support::pallet_prelude::Weight; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -60,8 +61,11 @@ use impl_trait_for_tuples::impl_for_tuples; // use frame_system::pallet_prelude::*; #[impl_for_tuples(5)] +#[allow(clippy::let_and_return)] impl<IdtyId> traits::OnEvent<IdtyId> for Tuple { - fn on_event(event: &Event<IdtyId>) { - for_tuples!( #( Tuple::on_event(event); )* ); + fn on_event(event: &Event<IdtyId>) -> Weight { + let mut weight = Weight::zero(); + for_tuples!( #( weight = weight.saturating_add(Tuple::on_event(event)); )* ); + weight } } diff --git a/primitives/membership/src/traits.rs b/primitives/membership/src/traits.rs index a877fa9fb..633acfdad 100644 --- a/primitives/membership/src/traits.rs +++ b/primitives/membership/src/traits.rs @@ -32,7 +32,7 @@ impl<IdtyId> CheckMembershipOpAllowed<IdtyId> for () { } pub trait OnEvent<IdtyId> { - fn on_event(event: &crate::Event<IdtyId>); + fn on_event(event: &crate::Event<IdtyId>) -> Weight; } // impl<IdtyId> OnEvent<IdtyId> for () { diff --git a/runtime/common/src/handlers.rs b/runtime/common/src/handlers.rs index 35d8b8712..e02d2870a 100644 --- a/runtime/common/src/handlers.rs +++ b/runtime/common/src/handlers.rs @@ -43,19 +43,27 @@ impl< + pallet_universal_dividend::Config, > sp_membership::traits::OnEvent<IdtyIndex> for OnMembershipEventHandler<Inner, Runtime> { - fn on_event(membership_event: &sp_membership::Event<IdtyIndex>) { + fn on_event(membership_event: &sp_membership::Event<IdtyIndex>) -> Weight { + let mut weight = Weight::zero(); + let mut add_db_reads_writes = |reads, writes| { + weight += crate::constants::DbWeight::get().reads_writes(reads, writes); + }; + (match membership_event { // when membership is removed, call on_removed_member handler which auto claims UD sp_membership::Event::MembershipRemoved(idty_index) => { if let Some(idty_value) = pallet_identity::Identities::<Runtime>::get(idty_index) { + add_db_reads_writes(1, 0); if let Some(first_ud_index) = idty_value.data.first_eligible_ud.into() { - pallet_universal_dividend::Pallet::<Runtime>::on_removed_member( + add_db_reads_writes(1, 0); + weight += pallet_universal_dividend::Pallet::<Runtime>::on_removed_member( first_ud_index, &idty_value.owner_key, ); } } - pallet_smith_members::Pallet::<Runtime>::on_removed_wot_member(*idty_index); + weight += + pallet_smith_members::Pallet::<Runtime>::on_removed_wot_member(*idty_index); } // when main membership is acquired, it starts getting right to UD sp_membership::Event::MembershipAdded(idty_index) => { @@ -68,11 +76,12 @@ impl< }; } }); + add_db_reads_writes(1, 1); } // in other case, ther is nothing to do sp_membership::Event::MembershipRenewed(_) => (), }); - Inner::on_event(membership_event) + weight.saturating_add(Inner::on_event(membership_event)) } } diff --git a/runtime/common/src/weights/pallet_certification.rs b/runtime/common/src/weights/pallet_certification.rs index dffd67cdb..041c2a01f 100644 --- a/runtime/common/src/weights/pallet_certification.rs +++ b/runtime/common/src/weights/pallet_certification.rs @@ -16,8 +16,8 @@ //! Autogenerated weights for `pallet_certification` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-02-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 @@ -29,7 +29,7 @@ // --chain=dev // --steps=50 // --repeat=20 -// --pallet=* +// --pallet=pallet-certification // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 @@ -47,6 +47,24 @@ use core::marker::PhantomData; /// Weight functions for `pallet_certification`. pub struct WeightInfo<T>(PhantomData<T>); impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> { + /// Storage: `Certification::StorageIdtyCertMeta` (r:2 w:2) + /// Proof: `Certification::StorageIdtyCertMeta` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Parameters::ParametersStorage` (r:1 w:0) + /// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Certification::CertsRemovableOn` (r:1 w:1) + /// Proof: `Certification::CertsRemovableOn` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Certification::CertsByReceiver` (r:1 w:1) + /// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn do_add_cert_checked() -> Weight { + // Proof Size summary in bytes: + // Measured: `465` + // Estimated: `6405` + // Minimum execution time: 18_540_000 picoseconds. + Weight::from_parts(19_162_000, 0) + .saturating_add(Weight::from_parts(0, 6405)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } /// Storage: `Identity::IdentityIndexOf` (r:1 w:0) /// Proof: `Identity::IdentityIndexOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `Certification::StorageIdtyCertMeta` (r:2 w:2) @@ -63,8 +81,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> // Proof Size summary in bytes: // Measured: `956` // Estimated: `6896` - // Minimum execution time: 30_204_000 picoseconds. - Weight::from_parts(31_317_000, 0) + // Minimum execution time: 29_895_000 picoseconds. + Weight::from_parts(30_571_000, 0) .saturating_add(Weight::from_parts(0, 6896)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -101,8 +119,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> // Proof Size summary in bytes: // Measured: `444` // Estimated: `6384` - // Minimum execution time: 15_623_000 picoseconds. - Weight::from_parts(16_484_000, 0) + // Minimum execution time: 16_843_000 picoseconds. + Weight::from_parts(17_387_000, 0) .saturating_add(Weight::from_parts(0, 6384)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +155,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> // Proof Size summary in bytes: // Measured: `139` // Estimated: `3604` - // Minimum execution time: 2_480_000 picoseconds. - Weight::from_parts(2_752_000, 0) + // Minimum execution time: 2_669_000 picoseconds. + Weight::from_parts(2_838_000, 0) .saturating_add(Weight::from_parts(0, 3604)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -148,8 +166,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> // Proof Size summary in bytes: // Measured: `237` // Estimated: `3702` - // Minimum execution time: 3_452_000 picoseconds. - Weight::from_parts(3_742_000, 0) + // Minimum execution time: 3_558_000 picoseconds. + Weight::from_parts(3_872_000, 0) .saturating_add(Weight::from_parts(0, 3702)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -166,8 +184,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> // Proof Size summary in bytes: // Measured: `660` // Estimated: `6600` - // Minimum execution time: 19_068_000 picoseconds. - Weight::from_parts(19_557_000, 0) + // Minimum execution time: 20_414_000 picoseconds. + Weight::from_parts(21_397_000, 0) .saturating_add(Weight::from_parts(0, 6600)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/common/src/weights/pallet_identity.rs b/runtime/common/src/weights/pallet_identity.rs index 0c345bffd..83dbd55fb 100644 --- a/runtime/common/src/weights/pallet_identity.rs +++ b/runtime/common/src/weights/pallet_identity.rs @@ -16,8 +16,8 @@ //! Autogenerated weights for `pallet_identity` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-02-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 @@ -29,7 +29,7 @@ // --chain=dev // --steps=50 // --repeat=20 -// --pallet=* +// --pallet=pallet-identity // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 @@ -73,8 +73,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `1022` // Estimated: `6962` - // Minimum execution time: 58_840_000 picoseconds. - Weight::from_parts(60_990_000, 0) + // Minimum execution time: 60_564_000 picoseconds. + Weight::from_parts(63_308_000, 0) .saturating_add(Weight::from_parts(0, 6962)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(12)) @@ -91,8 +91,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `698` // Estimated: `6638` - // Minimum execution time: 26_487_000 picoseconds. - Weight::from_parts(27_976_000, 0) + // Minimum execution time: 26_793_000 picoseconds. + Weight::from_parts(27_936_000, 0) .saturating_add(Weight::from_parts(0, 6638)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -107,11 +107,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`) fn change_owner_key() -> Weight { // Proof Size summary in bytes: - // Measured: `723` - // Estimated: `6663` - // Minimum execution time: 75_613_000 picoseconds. - Weight::from_parts(78_595_000, 0) - .saturating_add(Weight::from_parts(0, 6663)) + // Measured: `727` + // Estimated: `6667` + // Minimum execution time: 75_909_000 picoseconds. + Weight::from_parts(78_625_000, 0) + .saturating_add(Weight::from_parts(0, 6667)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -129,8 +129,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `664` // Estimated: `6604` - // Minimum execution time: 64_212_000 picoseconds. - Weight::from_parts(65_561_000, 0) + // Minimum execution time: 64_106_000 picoseconds. + Weight::from_parts(65_803_000, 0) .saturating_add(Weight::from_parts(0, 6604)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -142,11 +142,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_575_000 picoseconds. - Weight::from_parts(3_800_000, 0) + // Minimum execution time: 3_638_000 picoseconds. + Weight::from_parts(3_905_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_731 - .saturating_add(Weight::from_parts(1_232_005, 0).saturating_mul(i.into())) + // Standard Error: 2_068 + .saturating_add(Weight::from_parts(1_242_357, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } @@ -156,8 +156,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `104` // Estimated: `3558` - // Minimum execution time: 6_056_000 picoseconds. - Weight::from_parts(6_534_000, 0) + // Minimum execution time: 5_947_000 picoseconds. + Weight::from_parts(6_461_000, 0) .saturating_add(Weight::from_parts(0, 3558)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -172,8 +172,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 52_131_000 picoseconds. - Weight::from_parts(53_597_000, 0) + // Minimum execution time: 50_624_000 picoseconds. + Weight::from_parts(51_865_000, 0) .saturating_add(Weight::from_parts(0, 3868)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +182,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 133_000 picoseconds. - Weight::from_parts(160_000, 0) + // Minimum execution time: 141_000 picoseconds. + Weight::from_parts(171_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Identity::Identities` (r:1 w:0) @@ -192,8 +192,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `302` // Estimated: `3767` - // Minimum execution time: 3_647_000 picoseconds. - Weight::from_parts(3_826_000, 0) + // Minimum execution time: 3_472_000 picoseconds. + Weight::from_parts(3_637_000, 0) .saturating_add(Weight::from_parts(0, 3767)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -231,8 +231,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `1555` // Estimated: `9970` - // Minimum execution time: 85_114_000 picoseconds. - Weight::from_parts(87_552_000, 0) + // Minimum execution time: 81_665_000 picoseconds. + Weight::from_parts(83_645_000, 0) .saturating_add(Weight::from_parts(0, 9970)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(20)) @@ -243,8 +243,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `302` // Estimated: `3767` - // Minimum execution time: 3_615_000 picoseconds. - Weight::from_parts(3_858_000, 0) + // Minimum execution time: 3_547_000 picoseconds. + Weight::from_parts(4_975_000, 0) .saturating_add(Weight::from_parts(0, 3767)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -282,20 +282,88 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `1546` // Estimated: `9961` - // Minimum execution time: 84_736_000 picoseconds. - Weight::from_parts(87_557_000, 0) + // Minimum execution time: 82_057_000 picoseconds. + Weight::from_parts(84_512_000, 0) .saturating_add(Weight::from_parts(0, 9961)) .saturating_add(T::DbWeight::get().reads(15)) .saturating_add(T::DbWeight::get().writes(21)) } + /// Storage: `Membership::Membership` (r:1 w:1) + /// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Membership::CounterForMembership` (r:1 w:1) + /// Proof: `Membership::CounterForMembership` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Membership::MembershipsExpireOn` (r:1 w:1) + /// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Identity::Identities` (r:1 w:1) + /// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0) + /// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) + /// Storage: `SmithMembers::Smiths` (r:3 w:3) + /// Proof: `SmithMembers::Smiths` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AuthorityMembers::Members` (r:1 w:1) + /// Proof: `AuthorityMembers::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AuthorityMembers::OnlineAuthorities` (r:1 w:1) + /// Proof: `AuthorityMembers::OnlineAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AuthorityMembers::OutgoingAuthorities` (r:1 w:1) + /// Proof: `AuthorityMembers::OutgoingAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AuthorityMembers::IncomingAuthorities` (r:1 w:1) + /// Proof: `AuthorityMembers::IncomingAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2) + /// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Quota::IdtyQuota` (r:0 w:1) + /// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// Storage: `Session::KeyOwner` (r:0 w:4) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn do_remove_identity_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `1555` + // Estimated: `9970` + // Minimum execution time: 79_199_000 picoseconds. + Weight::from_parts(81_944_000, 0) + .saturating_add(Weight::from_parts(0, 9970)) + .saturating_add(T::DbWeight::get().reads(16)) + .saturating_add(T::DbWeight::get().writes(20)) + } + /// Storage: `Identity::Identities` (r:1 w:1) + /// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Identity::IdentityChangeSchedule` (r:1 w:1) + /// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn membership_added() -> Weight { + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `3872` + // Minimum execution time: 13_864_000 picoseconds. + Weight::from_parts(14_389_000, 0) + .saturating_add(Weight::from_parts(0, 3872)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Identity::Identities` (r:1 w:1) + /// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2) + /// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn membership_removed() -> Weight { + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `6347` + // Minimum execution time: 13_506_000 picoseconds. + Weight::from_parts(14_328_000, 0) + .saturating_add(Weight::from_parts(0, 6347)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } /// Storage: `Identity::IdentityChangeSchedule` (r:1 w:0) /// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`) fn prune_identities_noop() -> Weight { // Proof Size summary in bytes: // Measured: `157` // Estimated: `3622` - // Minimum execution time: 2_703_000 picoseconds. - Weight::from_parts(2_940_000, 0) + // Minimum execution time: 2_524_000 picoseconds. + Weight::from_parts(2_749_000, 0) .saturating_add(Weight::from_parts(0, 3622)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -307,8 +375,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `327` // Estimated: `3792` - // Minimum execution time: 6_174_000 picoseconds. - Weight::from_parts(6_412_000, 0) + // Minimum execution time: 5_950_000 picoseconds. + Weight::from_parts(6_153_000, 0) .saturating_add(Weight::from_parts(0, 3792)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -333,8 +401,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `851` // Estimated: `4316` - // Minimum execution time: 32_152_000 picoseconds. - Weight::from_parts(33_452_000, 0) + // Minimum execution time: 29_158_000 picoseconds. + Weight::from_parts(30_471_000, 0) .saturating_add(Weight::from_parts(0, 4316)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/common/src/weights/pallet_membership.rs b/runtime/common/src/weights/pallet_membership.rs index 25af52d5d..b9484eb15 100644 --- a/runtime/common/src/weights/pallet_membership.rs +++ b/runtime/common/src/weights/pallet_membership.rs @@ -16,8 +16,8 @@ //! Autogenerated weights for `pallet_membership` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-02-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 @@ -29,7 +29,7 @@ // --chain=dev // --steps=50 // --repeat=20 -// --pallet=* +// --pallet=pallet-membership // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 @@ -51,8 +51,8 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 132_000 picoseconds. - Weight::from_parts(164_000, 0) + // Minimum execution time: 126_000 picoseconds. + Weight::from_parts(156_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Membership::MembershipsExpireOn` (r:2 w:2) @@ -88,11 +88,11 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `138 + i * (804 ±0)` // Estimated: `9744 + i * (2687 ±0)` - // Minimum execution time: 4_240_000 picoseconds. - Weight::from_parts(10_575_563, 0) + // Minimum execution time: 4_057_000 picoseconds. + Weight::from_parts(10_233_129, 0) .saturating_add(Weight::from_parts(0, 9744)) - // Standard Error: 426_375 - .saturating_add(Weight::from_parts(64_303_590, 0).saturating_mul(i.into())) + // Standard Error: 414_723 + .saturating_add(Weight::from_parts(61_067_665, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((10_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/common/src/weights/pallet_quota.rs b/runtime/common/src/weights/pallet_quota.rs index 49d61431f..68297e793 100644 --- a/runtime/common/src/weights/pallet_quota.rs +++ b/runtime/common/src/weights/pallet_quota.rs @@ -16,8 +16,8 @@ //! Autogenerated weights for `pallet_quota` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-02-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 @@ -29,7 +29,7 @@ // --chain=dev // --steps=50 // --repeat=20 -// --pallet=* +// --pallet=pallet-quota // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 @@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `11288` // Estimated: `12751` - // Minimum execution time: 7_369_000 picoseconds. - Weight::from_parts(7_578_000, 0) + // Minimum execution time: 7_540_000 picoseconds. + Weight::from_parts(7_831_000, 0) .saturating_add(Weight::from_parts(0, 12751)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `139` // Estimated: `3489` - // Minimum execution time: 4_456_000 picoseconds. - Weight::from_parts(4_698_000, 0) + // Minimum execution time: 4_478_000 picoseconds. + Weight::from_parts(4_833_000, 0) .saturating_add(Weight::from_parts(0, 3489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -79,8 +79,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `202` // Estimated: `6126` - // Minimum execution time: 21_527_000 picoseconds. - Weight::from_parts(22_247_000, 0) + // Minimum execution time: 22_559_000 picoseconds. + Weight::from_parts(23_138_000, 0) .saturating_add(Weight::from_parts(0, 6126)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -93,8 +93,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `202` // Estimated: `6126` - // Minimum execution time: 21_246_000 picoseconds. - Weight::from_parts(21_948_000, 0) + // Minimum execution time: 23_276_000 picoseconds. + Weight::from_parts(24_055_000, 0) .saturating_add(Weight::from_parts(0, 6126)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +105,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `43` // Estimated: `12751` - // Minimum execution time: 1_784_000 picoseconds. - Weight::from_parts(1_869_000, 0) + // Minimum execution time: 1_807_000 picoseconds. + Weight::from_parts(1_955_000, 0) .saturating_add(Weight::from_parts(0, 12751)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -122,11 +122,11 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> { // Proof Size summary in bytes: // Measured: `227 + i * (44 ±0)` // Estimated: `12751` - // Minimum execution time: 24_268_000 picoseconds. - Weight::from_parts(37_335_245, 0) + // Minimum execution time: 27_258_000 picoseconds. + Weight::from_parts(41_619_960, 0) .saturating_add(Weight::from_parts(0, 12751)) - // Standard Error: 1_626 - .saturating_add(Weight::from_parts(1_197_308, 0).saturating_mul(i.into())) + // Standard Error: 1_921 + .saturating_add(Weight::from_parts(1_259_242, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } -- GitLab