From ad7900f49882b551eaf1e87923f49182b9977620 Mon Sep 17 00:00:00 2001
From: librelois <c@elo.tf>
Date: Sat, 22 Jan 2022 01:54:43 +0100
Subject: [PATCH] fix(membership): for sub-wot,  must claim mb instead of
 validate idty

---
 pallets/duniter-wot/src/lib.rs | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/pallets/duniter-wot/src/lib.rs b/pallets/duniter-wot/src/lib.rs
index 8088bae91..f392035ea 100644
--- a/pallets/duniter-wot/src/lib.rs
+++ b/pallets/duniter-wot/src/lib.rs
@@ -269,10 +269,21 @@ impl<T: Config<I>, I: 'static> pallet_certification::traits::OnNewcert<IdtyIndex
         } else if pallet_membership::Pallet::<T, I>::is_in_pending_memberships(receiver)
             && receiver_received_count >= T::MinCertForMembership::get()
         {
-            // TODO insert `receiver` in distance queue
-            Self::dispath_idty_call(pallet_identity::Call::validate_identity {
-                idty_index: receiver,
-            });
+			if T::IsSubWot::get() {
+				if let Err(e) = pallet_membership::Pallet::<T, I>::claim_membership(
+					RawOrigin::Root.into(),
+					receiver,
+				) {
+					sp_std::if_std! {
+						println!("{:?}", e)
+					}
+				}
+			} else {
+				// TODO insert `receiver` in distance queue
+				Self::dispath_idty_call(pallet_identity::Call::validate_identity {
+					idty_index: receiver,
+				});
+			}
 
             if receiver_received_count == T::MinReceivedCertToBeAbleToIssueCert::get() {
                 Self::do_apply_first_issuable_on(receiver);
-- 
GitLab