From c4c9a67a4a64795e8b71606119ab02a3a64cd8cb Mon Sep 17 00:00:00 2001
From: bgallois <benjamin@gallois.cc>
Date: Fri, 16 Feb 2024 13:05:22 +0100
Subject: [PATCH] add weight for on_removed_wot_member

---
 pallets/smith-members/src/benchmarking.rs     | 22 ++++++++
 pallets/smith-members/src/lib.rs              |  6 ++-
 pallets/smith-members/src/weights.rs          | 10 ++++
 .../src/weights/pallet_smith_members.rs       | 51 ++++++++++++++++---
 4 files changed, 81 insertions(+), 8 deletions(-)

diff --git a/pallets/smith-members/src/benchmarking.rs b/pallets/smith-members/src/benchmarking.rs
index b3730a866..3539c9ed8 100644
--- a/pallets/smith-members/src/benchmarking.rs
+++ b/pallets/smith-members/src/benchmarking.rs
@@ -96,6 +96,28 @@ mod benchmarks {
         Ok(())
     }
 
+    #[benchmark]
+    fn on_removed_wot_member() {
+        let idty: T::IdtyIndex = 1.into();
+        assert!(Smiths::<T>::get(idty).is_some());
+
+        #[block]
+        {
+            Pallet::<T>::on_removed_wot_member(idty);
+        }
+    }
+
+    #[benchmark]
+    fn on_removed_wot_member_empty() {
+        let idty: T::IdtyIndex = 100.into();
+        assert!(Smiths::<T>::get(idty).is_none());
+
+        #[block]
+        {
+            Pallet::<T>::on_removed_wot_member(idty);
+        }
+    }
+
     impl_benchmark_test_suite!(
         Pallet,
         crate::mock::new_test_ext(crate::GenesisConfig {
diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs
index f9e126a18..28deb237f 100644
--- a/pallets/smith-members/src/lib.rs
+++ b/pallets/smith-members/src/lib.rs
@@ -35,6 +35,7 @@ use frame_support::dispatch::DispatchResultWithPostInfo;
 use frame_support::ensure;
 use frame_support::pallet_prelude::Get;
 use frame_support::pallet_prelude::RuntimeDebug;
+use frame_support::pallet_prelude::Weight;
 use frame_system::ensure_signed;
 use frame_system::pallet_prelude::OriginFor;
 use scale_info::TypeInfo;
@@ -491,10 +492,13 @@ impl<T: Config> Pallet<T> {
         }
     }
 
-    pub fn on_removed_wot_member(idty_index: T::IdtyIndex) {
+    pub fn on_removed_wot_member(idty_index: T::IdtyIndex) -> Weight {
+        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
     }
 
     fn _do_exclude_smith(receiver: T::IdtyIndex, reason: SmithRemovalReason) {
diff --git a/pallets/smith-members/src/weights.rs b/pallets/smith-members/src/weights.rs
index 76a6d6af7..869d598f7 100644
--- a/pallets/smith-members/src/weights.rs
+++ b/pallets/smith-members/src/weights.rs
@@ -23,6 +23,8 @@ pub trait WeightInfo {
     fn invite_smith() -> Weight;
     fn accept_invitation() -> Weight;
     fn certify_smith() -> Weight;
+    fn on_removed_wot_member() -> Weight;
+    fn on_removed_wot_member_empty() -> Weight;
 }
 
 impl WeightInfo for () {
@@ -37,4 +39,12 @@ impl WeightInfo for () {
     fn certify_smith() -> Weight {
         Weight::zero()
     }
+
+    fn on_removed_wot_member() -> Weight {
+        Weight::zero()
+    }
+
+    fn on_removed_wot_member_empty() -> Weight {
+        Weight::zero()
+    }
 }
diff --git a/runtime/common/src/weights/pallet_smith_members.rs b/runtime/common/src/weights/pallet_smith_members.rs
index f50a4a45e..1f9b79ab6 100644
--- a/runtime/common/src/weights/pallet_smith_members.rs
+++ b/runtime/common/src/weights/pallet_smith_members.rs
@@ -29,7 +29,7 @@
 // --chain=dev
 // --steps=50
 // --repeat=20
-// --pallet=*
+// --pallet=pallet-smith-members
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
@@ -63,8 +63,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `765`
 		//  Estimated: `6705`
-		// Minimum execution time: 24_686_000 picoseconds.
-		Weight::from_parts(25_681_000, 0)
+		// Minimum execution time: 25_042_000 picoseconds.
+		Weight::from_parts(25_821_000, 0)
 			.saturating_add(Weight::from_parts(0, 6705))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -77,8 +77,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `496`
 		//  Estimated: `3961`
-		// Minimum execution time: 12_957_000 picoseconds.
-		Weight::from_parts(13_677_000, 0)
+		// Minimum execution time: 12_694_000 picoseconds.
+		Weight::from_parts(13_495_000, 0)
 			.saturating_add(Weight::from_parts(0, 3961))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -97,10 +97,47 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `626`
 		//  Estimated: `6566`
-		// Minimum execution time: 23_890_000 picoseconds.
-		Weight::from_parts(24_849_000, 0)
+		// Minimum execution time: 23_095_000 picoseconds.
+		Weight::from_parts(24_363_000, 0)
 			.saturating_add(Weight::from_parts(0, 6566))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
+	/// 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: `Session::KeyOwner` (r:0 w:4)
+	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn on_removed_wot_member() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `911`
+		//  Estimated: `9326`
+		// Minimum execution time: 49_566_000 picoseconds.
+		Weight::from_parts(52_187_000, 0)
+			.saturating_add(Weight::from_parts(0, 9326))
+			.saturating_add(T::DbWeight::get().reads(9))
+			.saturating_add(T::DbWeight::get().writes(13))
+	}
+	/// Storage: `SmithMembers::Smiths` (r:1 w:0)
+	/// Proof: `SmithMembers::Smiths` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn on_removed_wot_member_empty() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `187`
+		//  Estimated: `3652`
+		// Minimum execution time: 2_864_000 picoseconds.
+		Weight::from_parts(3_005_000, 0)
+			.saturating_add(Weight::from_parts(0, 3652))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
 }
-- 
GitLab