From f88190a5201954bd0f5e7802050e5db2b2370159 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dino=20Pa=C4=8Dandi?=
 <3002868+Dinonard@users.noreply.github.com>
Date: Tue, 2 Apr 2024 21:08:02 +0200
Subject: [PATCH] SortedMembers::add for pallet-membership benchmarks (#3729)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Adds implementation for `SortedMembers::add` for _pallet-membership_
benchmarks.

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: command-bot <>
---
 substrate/frame/membership/src/lib.rs | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/substrate/frame/membership/src/lib.rs b/substrate/frame/membership/src/lib.rs
index 426fc985a52..aa6be6497ee 100644
--- a/substrate/frame/membership/src/lib.rs
+++ b/substrate/frame/membership/src/lib.rs
@@ -369,6 +369,18 @@ impl<T: Config<I>, I: 'static> SortedMembers<T::AccountId> for Pallet<T, I> {
 	fn count() -> usize {
 		Members::<T, I>::decode_len().unwrap_or(0)
 	}
+
+	#[cfg(feature = "runtime-benchmarks")]
+	fn add(new_member: &T::AccountId) {
+		use frame_support::{assert_ok, traits::EnsureOrigin};
+		let new_member_lookup = T::Lookup::unlookup(new_member.clone());
+
+		if let Ok(origin) = T::AddOrigin::try_successful_origin() {
+			assert_ok!(Pallet::<T, I>::add_member(origin, new_member_lookup,));
+		} else {
+			log::error!(target: LOG_TARGET, "Failed to add `{new_member:?}` in `SortedMembers::add`.")
+		}
+	}
 }
 
 #[cfg(feature = "runtime-benchmarks")]
-- 
GitLab