From 514c2fe07f3d45db93629c7a13d1f4e13bc05c55 Mon Sep 17 00:00:00 2001
From: Benjamin Gallois <business@gallois.cc>
Date: Thu, 21 Mar 2024 11:25:16 +0100
Subject: [PATCH] Fix #219 and #220 (nodes/rust/duniter-v2s!257)

* regenerate metadata after rebase

* refactor distance result

* fix https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/219

* fix https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/220
---
 pallets/distance/src/benchmarking.rs    |  24 ++++++-
 pallets/distance/src/lib.rs             |  80 +++++++++++++-----------
 pallets/smith-members/src/lib.rs        |  12 ++--
 resources/metadata.scale                | Bin 113201 -> 113245 bytes
 runtime/common/src/providers.rs         |   5 +-
 runtime/gdev/tests/integration_tests.rs |   5 +-
 6 files changed, 79 insertions(+), 47 deletions(-)

diff --git a/pallets/distance/src/benchmarking.rs b/pallets/distance/src/benchmarking.rs
index 7b8d7c850..cf11d85e3 100644
--- a/pallets/distance/src/benchmarking.rs
+++ b/pallets/distance/src/benchmarking.rs
@@ -163,7 +163,13 @@ mod benchmarks {
         #[extrinsic_call]
         _(RawOrigin::Root, idty);
 
-        assert_has_event::<T>(Event::<T>::EvaluatedValid { idty_index: idty }.into());
+        assert_has_event::<T>(
+            Event::<T>::EvaluatedValid {
+                idty_index: idty,
+                distance: Perbill::one(),
+            }
+            .into(),
+        );
     }
 
     #[benchmark]
@@ -211,7 +217,13 @@ mod benchmarks {
             Pallet::<T>::do_evaluation(0);
         }
 
-        assert_has_event::<T>(Event::<T>::EvaluatedValid { idty_index: idty }.into());
+        assert_has_event::<T>(
+            Event::<T>::EvaluatedValid {
+                idty_index: idty,
+                distance: Perbill::one(),
+            }
+            .into(),
+        );
         Ok(())
     }
 
@@ -249,7 +261,13 @@ mod benchmarks {
             Pallet::<T>::do_evaluation(0);
         }
 
-        assert_has_event::<T>(Event::<T>::EvaluatedInvalid { idty_index: idty }.into());
+        assert_has_event::<T>(
+            Event::<T>::EvaluatedInvalid {
+                idty_index: idty,
+                distance: Perbill::zero(),
+            }
+            .into(),
+        );
         Ok(())
     }
 
diff --git a/pallets/distance/src/lib.rs b/pallets/distance/src/lib.rs
index f42651850..76d580b2d 100644
--- a/pallets/distance/src/lib.rs
+++ b/pallets/distance/src/lib.rs
@@ -172,9 +172,15 @@ pub mod pallet {
             who: T::AccountId,
         },
         /// Distance rule was found valid.
-        EvaluatedValid { idty_index: T::IdtyIndex },
+        EvaluatedValid {
+            idty_index: T::IdtyIndex,
+            distance: Perbill,
+        },
         /// Distance rule was found invalid.
-        EvaluatedInvalid { idty_index: T::IdtyIndex },
+        EvaluatedInvalid {
+            idty_index: T::IdtyIndex,
+            distance: Perbill,
+        },
     }
 
     // ERRORS //
@@ -313,7 +319,7 @@ pub mod pallet {
         ) -> DispatchResult {
             ensure_root(origin)?;
 
-            Self::do_valid_distance_status(identity);
+            Self::do_valid_distance_status(identity, Perbill::one());
             Ok(())
         }
     }
@@ -509,11 +515,17 @@ pub mod pallet {
         }
 
         /// Set the distance status using IdtyIndex and AccountId
-        pub fn do_valid_distance_status(idty: <T as pallet_identity::Config>::IdtyIndex) {
+        pub fn do_valid_distance_status(
+            idty: <T as pallet_identity::Config>::IdtyIndex,
+            distance: Perbill,
+        ) {
             // callback
             T::OnValidDistanceStatus::on_valid_distance_status(idty);
             // deposit event
-            Self::deposit_event(Event::EvaluatedValid { idty_index: idty });
+            Self::deposit_event(Event::EvaluatedValid {
+                idty_index: idty,
+                distance,
+            });
         }
 
         pub fn do_evaluation(index: u32) -> Weight {
@@ -530,57 +542,44 @@ pub mod pallet {
             > = Pallet::<T>::take_current_pool(index);
 
             for (idty, median_acc) in current_pool.evaluations.into_iter() {
-                // distance result
-                let mut distance_result: Option<bool> = None;
-
-                // get result of the computation
+                let mut distance_result: Option<Perbill> = None;
+                // Retrieve the result of the computation from the median accumulator
                 if let Some(median_result) = median_acc.get_median() {
-                    let median = match median_result {
+                    let distance = match median_result {
                         MedianResult::One(m) => m,
                         MedianResult::Two(m1, m2) => m1 + (m2 - m1) / 2, // Avoid overflow (since max is 1)
                     };
-                    // update distance result
-                    distance_result = Some(median >= T::MinAccessibleReferees::get());
+                    // Update distance result
+                    distance_result = Some(distance);
                 }
 
-                // take requester and perform unreserve or slash
-
+                // If there's a pending evaluation request with the provided identity
                 if let Some(requester) = PendingEvaluationRequest::<T>::take(idty) {
-                    match distance_result {
-                        None => {
-                            // no result, unreserve
-                            T::Currency::unreserve(
-                                &requester,
-                                <T as Config>::EvaluationPrice::get(),
-                            );
-                            weight = weight.saturating_add(
-                                <T as pallet::Config>::WeightInfo::do_evaluation_failure()
-                                    .saturating_sub(
-                                        <T as pallet::Config>::WeightInfo::do_evaluation_overhead(),
-                                    ),
-                            );
-                        }
-                        Some(true) => {
-                            // positive result, unreserve and apply
+                    // If distance_result is available
+                    if let Some(distance) = distance_result {
+                        if distance >= T::MinAccessibleReferees::get() {
+                            // Positive result, unreserve and apply
                             T::Currency::unreserve(
                                 &requester,
                                 <T as Config>::EvaluationPrice::get(),
                             );
-                            Self::do_valid_distance_status(idty);
+                            Self::do_valid_distance_status(idty, distance);
                             weight = weight.saturating_add(
                                 <T as pallet::Config>::WeightInfo::do_evaluation_success()
                                     .saturating_sub(
                                         <T as pallet::Config>::WeightInfo::do_evaluation_overhead(),
                                     ),
                             );
-                        }
-                        Some(false) => {
-                            // negative result, slash and deposit event
+                        } else {
+                            // Negative result, slash and deposit event
                             let _ = T::Currency::slash_reserved(
                                 &requester,
                                 <T as Config>::EvaluationPrice::get(),
                             );
-                            Self::deposit_event(Event::EvaluatedInvalid { idty_index: idty });
+                            Self::deposit_event(Event::EvaluatedInvalid {
+                                idty_index: idty,
+                                distance,
+                            });
                             weight = weight.saturating_add(
                                 <T as pallet::Config>::WeightInfo::do_evaluation_failure()
                                     .saturating_sub(
@@ -588,9 +587,18 @@ pub mod pallet {
                                     ),
                             );
                         }
+                    } else {
+                        // No result, unreserve
+                        T::Currency::unreserve(&requester, <T as Config>::EvaluationPrice::get());
+                        weight = weight.saturating_add(
+                            <T as pallet::Config>::WeightInfo::do_evaluation_failure()
+                                .saturating_sub(
+                                    <T as pallet::Config>::WeightInfo::do_evaluation_overhead(),
+                                ),
+                        );
                     }
                 }
-                // if evaluation happened without request, it's ok to do nothing
+                // If evaluation happened without request, it's ok to do nothing
             }
             weight
         }
diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs
index b62b99ccc..9b33a6b56 100644
--- a/pallets/smith-members/src/lib.rs
+++ b/pallets/smith-members/src/lib.rs
@@ -133,20 +133,20 @@ pub mod pallet {
     pub enum Event<T: Config> {
         /// An identity is being inivited to become a smith.
         InvitationSent {
-            receiver: T::IdtyIndex,
             issuer: T::IdtyIndex,
+            receiver: T::IdtyIndex,
         },
         /// The invitation has been accepted.
         InvitationAccepted { idty_index: T::IdtyIndex },
         /// Certification received
         SmithCertAdded {
-            receiver: T::IdtyIndex,
             issuer: T::IdtyIndex,
+            receiver: T::IdtyIndex,
         },
         /// Certification lost
         SmithCertRemoved {
-            receiver: T::IdtyIndex,
             issuer: T::IdtyIndex,
+            receiver: T::IdtyIndex,
         },
         /// A smith gathered enough certifications to become an authority (can call `go_online()`).
         SmithMembershipAdded { idty_index: T::IdtyIndex },
@@ -362,7 +362,7 @@ impl<T: Config> Pallet<T> {
         existing.received_certs = vec![];
         Smiths::<T>::insert(receiver, existing);
         ExpiresOn::<T>::append(new_expires_on, receiver);
-        Self::deposit_event(Event::<T>::InvitationSent { receiver, issuer });
+        Self::deposit_event(Event::<T>::InvitationSent { issuer, receiver });
     }
 
     fn check_accept_invitation(receiver: T::IdtyIndex) -> DispatchResultWithPostInfo {
@@ -444,7 +444,7 @@ impl<T: Config> Pallet<T> {
                 // - adds a certification in receiver received list
                 smith_meta.received_certs.push(issuer);
                 smith_meta.received_certs.sort();
-                Self::deposit_event(Event::<T>::SmithCertAdded { receiver, issuer });
+                Self::deposit_event(Event::<T>::SmithCertAdded { issuer, receiver });
 
                 // - receiving a certification either lead us to Pending or Smith status
                 let previous_status = smith_meta.status;
@@ -521,8 +521,8 @@ impl<T: Config> Pallet<T> {
                     if let Ok(index) = smith_meta.issued_certs.binary_search(&receiver) {
                         smith_meta.issued_certs.remove(index);
                         Self::deposit_event(Event::<T>::SmithCertRemoved {
-                            receiver,
                             issuer: lost_cert_issuer,
+                            receiver,
                         });
                     }
                 }
diff --git a/resources/metadata.scale b/resources/metadata.scale
index 09d2d0c332f4be6fb1e2059bd328b2aadc812988..c98d5a3d9e7f0de953152c86bcc286c8a0e08255 100644
GIT binary patch
delta 3777
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
H^Ar9H#Fgfd

delta 3698
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
UIqZm0_a8-TPxtGXy~9oTKcEEWy#N3J

diff --git a/runtime/common/src/providers.rs b/runtime/common/src/providers.rs
index c947ce588..829be1a07 100644
--- a/runtime/common/src/providers.rs
+++ b/runtime/common/src/providers.rs
@@ -97,7 +97,10 @@ macro_rules! impl_benchmark_setup_handler {
             <T as pallet_certification::Config>::IdtyIndex: From<u32>,
         {
             fn force_valid_distance_status(idty_id: &IdtyIndex) -> () {
-                let _ = pallet_distance::Pallet::<T>::do_valid_distance_status(*idty_id);
+                let _ = pallet_distance::Pallet::<T>::do_valid_distance_status(
+                    *idty_id,
+                    sp_runtime::Perbill::one(),
+                );
             }
 
             fn add_cert(issuer: &IdtyIndex, receiver: &IdtyIndex) {
diff --git a/runtime/gdev/tests/integration_tests.rs b/runtime/gdev/tests/integration_tests.rs
index b91e0ee90..b4ed381a4 100644
--- a/runtime/gdev/tests/integration_tests.rs
+++ b/runtime/gdev/tests/integration_tests.rs
@@ -373,7 +373,10 @@ fn test_validate_identity_when_claim() {
             // Pass 3rd evaluation period
             run_to_block(3 * eval_period);
             System::assert_has_event(RuntimeEvent::Distance(
-                pallet_distance::Event::EvaluatedValid { idty_index: 5 },
+                pallet_distance::Event::EvaluatedValid {
+                    idty_index: 5,
+                    distance: Perbill::one(),
+                },
             ));
 
             // eve can not claim her membership manually because it is done automatically
-- 
GitLab