From 5caf1e0e52523f46482a3fc87d39a012918990d8 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sat, 5 Apr 2025 12:45:39 +0200
Subject: [PATCH] fix(#298): integration tests for GDev were made with distance
 evaluation window of 7 blocks

---
 node/src/chain_spec/g1.rs                  | 1 +
 node/src/chain_spec/gdev.rs                | 2 ++
 node/src/chain_spec/gen_genesis_data.rs    | 1 +
 node/src/chain_spec/gtest.rs               | 1 +
 pallets/duniter-test-parameters/src/lib.rs | 1 +
 resources/gdev.yaml                        | 2 ++
 runtime/common/src/pallets_config.rs       | 3 +--
 runtime/g1/src/parameters.rs               | 1 +
 runtime/gdev/src/lib.rs                    | 2 ++
 runtime/gdev/tests/common/mod.rs           | 1 +
 runtime/gtest/src/parameters.rs            | 1 +
 11 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/node/src/chain_spec/g1.rs b/node/src/chain_spec/g1.rs
index 78f879a8c..f85e92bd1 100644
--- a/node/src/chain_spec/g1.rs
+++ b/node/src/chain_spec/g1.rs
@@ -81,6 +81,7 @@ fn get_parameters(_parameters_from_file: &Option<GenesisParameters>) -> CommonPa
         cert_min_received_cert_to_be_able_to_issue_cert:
             parameters::MinReceivedCertToBeAbleToIssueCert::get(),
         cert_validity_period: parameters::ValidityPeriod::get(),
+        distance_evaluation_period: gtest_runtime::parameters::DistanceEvaluationPeriod::get(),
         distance_min_accessible_referees: parameters::MinAccessibleReferees::get(),
         distance_max_depth: parameters::MaxRefereeDistance::get(),
         smith_sub_wot_min_cert_for_membership: parameters::SmithWotMinCertForMembership::get(),
diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs
index d6ff6806f..e6dbd0013 100644
--- a/node/src/chain_spec/gdev.rs
+++ b/node/src/chain_spec/gdev.rs
@@ -86,6 +86,7 @@ fn get_parameters(parameters_from_file: &Option<GenesisParameters>) -> CommonPar
         cert_min_received_cert_to_be_able_to_issue_cert: parameters_from_file
             .cert_min_received_cert_to_issue_cert,
         cert_validity_period: parameters_from_file.cert_validity_period,
+        distance_evaluation_period: parameters_from_file.distance_evaluation_period,
         distance_min_accessible_referees: parameters::MinAccessibleReferees::get(),
         distance_max_depth: parameters::MaxRefereeDistance::get(),
         smith_sub_wot_min_cert_for_membership: parameters_from_file
@@ -332,6 +333,7 @@ fn get_local_chain_parameters() -> Option<GenesisParameters> {
         cert_max_by_issuer: 10,
         cert_min_received_cert_to_issue_cert: 2,
         cert_validity_period,
+        distance_evaluation_period: 7,
         idty_confirm_period: 40,
         idty_creation_period: 50,
         membership_period,
diff --git a/node/src/chain_spec/gen_genesis_data.rs b/node/src/chain_spec/gen_genesis_data.rs
index 59717f6cd..c084dd2a8 100644
--- a/node/src/chain_spec/gen_genesis_data.rs
+++ b/node/src/chain_spec/gen_genesis_data.rs
@@ -1933,6 +1933,7 @@ pub struct CommonParameters {
     pub cert_max_by_issuer: u32,
     pub cert_min_received_cert_to_be_able_to_issue_cert: u32,
     pub cert_validity_period: u32,
+    pub distance_evaluation_period: u32,
     pub distance_min_accessible_referees: Perbill,
     pub distance_max_depth: u32,
     pub smith_sub_wot_min_cert_for_membership: u32,
diff --git a/node/src/chain_spec/gtest.rs b/node/src/chain_spec/gtest.rs
index b80ad714f..c5be5db46 100644
--- a/node/src/chain_spec/gtest.rs
+++ b/node/src/chain_spec/gtest.rs
@@ -134,6 +134,7 @@ fn get_parameters(_: &Option<GenesisParameters>) -> CommonParameters {
         cert_min_received_cert_to_be_able_to_issue_cert:
             parameters::MinReceivedCertToBeAbleToIssueCert::get(),
         cert_validity_period: parameters::ValidityPeriod::get(),
+        distance_evaluation_period: parameters::DistanceEvaluationPeriod::get(),
         distance_min_accessible_referees: parameters::MinAccessibleReferees::get(),
         distance_max_depth: parameters::MaxRefereeDistance::get(),
         smith_sub_wot_min_cert_for_membership: parameters::SmithWotMinCertForMembership::get(),
diff --git a/pallets/duniter-test-parameters/src/lib.rs b/pallets/duniter-test-parameters/src/lib.rs
index b2bbc8bcc..b2b97ba34 100644
--- a/pallets/duniter-test-parameters/src/lib.rs
+++ b/pallets/duniter-test-parameters/src/lib.rs
@@ -51,6 +51,7 @@ pub mod types {
         pub cert_max_by_issuer: CertCount,
         pub cert_min_received_cert_to_issue_cert: CertCount,
         pub cert_validity_period: BlockNumber,
+        pub distance_evaluation_period: BlockNumber,
         pub idty_confirm_period: BlockNumber,
         pub idty_creation_period: BlockNumber,
         pub membership_period: BlockNumber,
diff --git a/resources/gdev.yaml b/resources/gdev.yaml
index d232831de..74a14ee73 100644
--- a/resources/gdev.yaml
+++ b/resources/gdev.yaml
@@ -17,6 +17,8 @@ parameters:
   ud_reeval_period: 86400000
 
   # ----- MAIN WOT -----
+  # Evaluation window size, 100 blocks = 600s = 10 min.
+  distance_evaluation_period: 100
   # Duration to wait between two emitted certifications 14400 blocks = 24h = 1 day.
   cert_period: 14400
   # Maximum quantity of currently valid certifications emitted by a same issuer. 100 certs.
diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs
index d7b785dea..e16c563e4 100644
--- a/runtime/common/src/pallets_config.rs
+++ b/runtime/common/src/pallets_config.rs
@@ -490,8 +490,7 @@ macro_rules! pallets_config {
         impl pallet_distance::Config for Runtime {
             type CheckRequestDistanceEvaluation = Wot;
             type Currency = Balances;
-            // 100 blocks
-            type EvaluationPeriod = frame_support::traits::ConstU32<100>;
+            type EvaluationPeriod = DistanceEvaluationPeriod;
             type EvaluationPrice = frame_support::traits::ConstU64<1000>;
             type MaxRefereeDistance = MaxRefereeDistance;
             type MinAccessibleReferees = MinAccessibleReferees;
diff --git a/runtime/g1/src/parameters.rs b/runtime/g1/src/parameters.rs
index d787eb5bf..7e0ee49b1 100644
--- a/runtime/g1/src/parameters.rs
+++ b/runtime/g1/src/parameters.rs
@@ -51,6 +51,7 @@ parameter_types! {
 parameter_types! {
     pub const MinAccessibleReferees: Perbill = Perbill::from_percent(80);
     pub const MaxRefereeDistance: u32 = 5;
+    pub const DistanceEvaluationPeriod: u32 = 100;
 }
 
 // Babe
diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs
index 258c2c007..c6a8bb3ae 100644
--- a/runtime/gdev/src/lib.rs
+++ b/runtime/gdev/src/lib.rs
@@ -204,6 +204,8 @@ impl frame_support::traits::InstanceFilter<RuntimeCall> for ProxyType {
 
 // Dynamic parameters
 pub type EpochDuration = pallet_duniter_test_parameters::BabeEpochDuration<Runtime>;
+pub type DistanceEvaluationPeriod =
+    pallet_duniter_test_parameters::DistanceEvaluationPeriod<Runtime>;
 pub type CertPeriod = pallet_duniter_test_parameters::CertPeriod<Runtime>;
 pub type MaxByIssuer = pallet_duniter_test_parameters::CertMaxByIssuer<Runtime>;
 pub type MinReceivedCertToBeAbleToIssueCert =
diff --git a/runtime/gdev/tests/common/mod.rs b/runtime/gdev/tests/common/mod.rs
index b8d13eaef..db1ed84c6 100644
--- a/runtime/gdev/tests/common/mod.rs
+++ b/runtime/gdev/tests/common/mod.rs
@@ -100,6 +100,7 @@ impl ExtBuilder {
                 cert_max_by_issuer: 10,
                 cert_min_received_cert_to_issue_cert: 2,
                 cert_validity_period: 10_000,
+                distance_evaluation_period: 7,
                 idty_confirm_period: 40,
                 idty_creation_period: 50,
                 membership_period: 100,
diff --git a/runtime/gtest/src/parameters.rs b/runtime/gtest/src/parameters.rs
index 307f59b19..b2f5c78d8 100644
--- a/runtime/gtest/src/parameters.rs
+++ b/runtime/gtest/src/parameters.rs
@@ -51,6 +51,7 @@ parameter_types! {
 parameter_types! {
     pub const MinAccessibleReferees: Perbill = Perbill::from_percent(80);
     pub const MaxRefereeDistance: u32 = 5;
+    pub const DistanceEvaluationPeriod: u32 = 100;
 }
 
 // Babe
-- 
GitLab