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 1/3] 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


From f88eec209d8f65033ce18ee7c0149709badf44e7 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sun, 6 Apr 2025 11:15:30 +0200
Subject: [PATCH 2/3] fix: check_metadata.sh + --update

---
 resources/metadata.scale  | Bin 152736 -> 152783 bytes
 scripts/check_metadata.sh |   4 ++++
 2 files changed, 4 insertions(+)

diff --git a/resources/metadata.scale b/resources/metadata.scale
index 430bae89f08fbcf6bcf656bfc6f26516d767119b..5a93115f898505af97e56fed1f7070a150a3a52b 100644
GIT binary patch
delta 72
zcmV-O0Js03sR_@i34pW#2~7b=mkLb*x({e%X>)X8ZewL%Wp-g~b(ir?0UWo)O#$S6
e0fe`y%K>s10#N~%A>#p2m$1MA2)A<M0WNXw{u|-|

delta 51
zcmV-30L=f-sR^K|34pW#2~7b+mkLb*y0`C50pxuFAh*=Z0df}tK>?Rh;{i~Y;J^U|
Jx1r+!E^!8c6dM2l

diff --git a/scripts/check_metadata.sh b/scripts/check_metadata.sh
index 69bd92b6f..98d73921c 100755
--- a/scripts/check_metadata.sh
+++ b/scripts/check_metadata.sh
@@ -11,5 +11,9 @@ if cmp -s resources/new_metadata.scale resources/metadata.scale; then
     exit 0
 else
     echo "Metadata file needs to be generated. How to do it? $HOME/.cargo/bin/subxt metadata -f bytes > resources/metadata.scale"
+    if [ "$1" = "--update" ]; then
+      mv resources/new_metadata.scale resources/metadata.scale
+      echo "Metadata file updated automatically (--update option detected)"
+    fi
     exit 1
 fi
-- 
GitLab


From cca153824d5df9614104c9bef1b2b64dc5e7155b Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sun, 6 Apr 2025 15:12:17 +0200
Subject: [PATCH 3/3] fix(#298): cucumber tests

---
 end2end-tests/cucumber-genesis/bad_distance.json | 1 +
 end2end-tests/cucumber-genesis/default.json      | 1 +
 end2end-tests/cucumber-genesis/wot.json          | 1 +
 3 files changed, 3 insertions(+)

diff --git a/end2end-tests/cucumber-genesis/bad_distance.json b/end2end-tests/cucumber-genesis/bad_distance.json
index cb040ba2c..7016976b7 100644
--- a/end2end-tests/cucumber-genesis/bad_distance.json
+++ b/end2end-tests/cucumber-genesis/bad_distance.json
@@ -118,6 +118,7 @@
   },
   "parameters": {
     "babe_epoch_duration": 30,
+    "distance_evaluation_period": 7,
     "cert_period": 15,
     "cert_max_by_issuer": 10,
     "cert_min_received_cert_to_issue_cert": 2,
diff --git a/end2end-tests/cucumber-genesis/default.json b/end2end-tests/cucumber-genesis/default.json
index 2912937ff..f616d585b 100644
--- a/end2end-tests/cucumber-genesis/default.json
+++ b/end2end-tests/cucumber-genesis/default.json
@@ -52,6 +52,7 @@
   },
   "parameters": {
     "babe_epoch_duration": 30,
+    "distance_evaluation_period": 7,
     "cert_period": 15,
     "cert_max_by_issuer": 10,
     "cert_min_received_cert_to_issue_cert": 2,
diff --git a/end2end-tests/cucumber-genesis/wot.json b/end2end-tests/cucumber-genesis/wot.json
index 0bc2d5457..a19f5f63f 100644
--- a/end2end-tests/cucumber-genesis/wot.json
+++ b/end2end-tests/cucumber-genesis/wot.json
@@ -88,6 +88,7 @@
   },
   "parameters": {
     "babe_epoch_duration": 30,
+    "distance_evaluation_period": 7,
     "cert_period": 2,
     "cert_max_by_issuer": 10,
     "cert_min_received_cert_to_issue_cert": 2,
-- 
GitLab