diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs index be77cd5588933b69d72b4d171fbd1a6974b6773c..e2263ed418d1f6a200182e6092a9c3c71d3d274b 100644 --- a/node/src/chain_spec/gdev.rs +++ b/node/src/chain_spec/gdev.rs @@ -137,9 +137,9 @@ fn devnet_genesis( ud_reeval_period: 20, ud_reeval_period_in_blocks: 200, wot_first_cert_issuable_on: 20, - wot_min_cert_for_ud_right: 2, wot_min_cert_for_cert_right: 2, wot_min_cert_for_create_idty_right: 2, + wot_min_cert_for_membership: 2, }, }, authority_discovery: Default::default(), diff --git a/pallets/authority-members/src/lib.rs b/pallets/authority-members/src/lib.rs index 16ea999fa09880536b168c757f6f207bf2e8e3cc..f9795a9c3cbad949c90d193b9c5fde5a0663a09c 100644 --- a/pallets/authority-members/src/lib.rs +++ b/pallets/authority-members/src/lib.rs @@ -330,7 +330,7 @@ pub mod pallet { // remove all member data Self::remove_in(member_id); Self::remove_online(member_id); - Members::<T>::remove(member_id); + Members::<T>::remove(member_id); Self::deposit_event(Event::MemberRemoved(member_id)); let _ = T::OnRemovedMember::on_removed_member(member_id); diff --git a/pallets/duniter-test-parameters/src/lib.rs b/pallets/duniter-test-parameters/src/lib.rs index af7bd1acc17dbcd1c42e05d10f19e5524dbf8f5e..fb3585be3625a0755c1e769ee0740bc6c9545f59 100644 --- a/pallets/duniter-test-parameters/src/lib.rs +++ b/pallets/duniter-test-parameters/src/lib.rs @@ -51,9 +51,9 @@ pub mod types { pub ud_reeval_period: PeriodCount, pub ud_reeval_period_in_blocks: BlockNumber, pub wot_first_cert_issuable_on: BlockNumber, - pub wot_min_cert_for_ud_right: CertCount, pub wot_min_cert_for_cert_right: CertCount, pub wot_min_cert_for_create_idty_right: CertCount, + pub wot_min_cert_for_membership: CertCount, } } diff --git a/pallets/duniter-wot/src/lib.rs b/pallets/duniter-wot/src/lib.rs index ede541d1f7b567071763e93a26ddec42d24512b9..3790c6798e16ed7251f8b2551e47eee6d23ec2b6 100644 --- a/pallets/duniter-wot/src/lib.rs +++ b/pallets/duniter-wot/src/lib.rs @@ -64,8 +64,8 @@ pub mod pallet { + pallet_membership::Config<I, IdtyId = IdtyIndex, MetaData = ()> { type FirstIssuableOn: Get<Self::BlockNumber>; - type ManageIdentitiesChanges: Get<bool>; - type MinCertForUdRight: Get<u32>; + type IsSubWot: Get<bool>; + type MinCertForMembership: Get<u32>; type MinCertForCreateIdtyRight: Get<u32>; } @@ -80,7 +80,7 @@ pub mod pallet { ); } pub(super) fn dispath_idty_call(idty_call: pallet_identity::Call<T>) -> bool { - if T::ManageIdentitiesChanges::get() { + if !T::IsSubWot::get() { if let Err(e) = idty_call.dispatch_bypass_filter(RawOrigin::Root.into()) { sp_std::if_std! { println!("{:?}", e) @@ -120,8 +120,16 @@ impl<T: Config<I>, I: 'static> pallet_identity::traits::EnsureIdtyCallAllowed<T> impl<T: Config<I>, I: 'static> sp_membership::traits::IsIdtyAllowedToClaimMembership<IdtyIndex> for Pallet<T, I> { - fn is_idty_allowed_to_claim_membership(_: &IdtyIndex) -> bool { - false + fn is_idty_allowed_to_claim_membership(idty_index: &IdtyIndex) -> bool { + if T::IsSubWot::get() { + if let Some(idty_value) = pallet_identity::Pallet::<T>::identity(idty_index) { + idty_value.status == IdtyStatus::Validated + } else { + false + } + } else { + false + } } } @@ -142,7 +150,11 @@ impl<T: Config<I>, I: 'static> sp_membership::traits::IsIdtyAllowedToRequestMemb { fn is_idty_allowed_to_request_membership(idty_index: &IdtyIndex) -> bool { if let Some(idty_value) = pallet_identity::Pallet::<T>::identity(idty_index) { - idty_value.status == IdtyStatus::Disabled + if T::IsSubWot::get() { + idty_value.status == IdtyStatus::Validated + } else { + idty_value.status == IdtyStatus::Disabled + } } else { false } @@ -190,8 +202,8 @@ impl<T: Config<I>, I: 'static> sp_membership::traits::OnEvent<IdtyIndex, ()> for { let received_count = idty_cert_meta.received_count; - // TODO insert `receiver` in distance queue if received_count >= MinCertForUdRight - if received_count >= T::MinCertForUdRight::get() as u32 { + // TODO insert `receiver` in distance queue if received_count >= MinCertForMembership + if received_count >= T::MinCertForMembership::get() as u32 { // TODO insert `receiver` in distance queue if Self::dispath_idty_call(pallet_identity::Call::validate_identity { idty_index: *idty_index, @@ -247,7 +259,7 @@ impl<T: Config<I>, I: 'static> pallet_certification::traits::OnNewcert<IdtyIndex Self::do_apply_first_issuable_on(receiver); } } else if pallet_membership::Pallet::<T, I>::pending_membership(receiver).is_some() - && receiver_received_count >= T::MinCertForUdRight::get() + && receiver_received_count >= T::MinCertForMembership::get() { // TODO insert `receiver` in distance queue Self::dispath_idty_call(pallet_identity::Call::validate_identity { @@ -272,7 +284,7 @@ impl<T: Config<I>, I: 'static> pallet_certification::traits::OnRemovedCert<IdtyI receiver_received_count: u32, _expiration: bool, ) -> Weight { - if receiver_received_count < T::MinCertForUdRight::get() { + if receiver_received_count < T::MinCertForMembership::get() { // Revoke receiver membership and disable his identity if let Err(e) = pallet_membership::Pallet::<T, I>::revoke_membership( RawOrigin::Root.into(), diff --git a/pallets/duniter-wot/src/mock.rs b/pallets/duniter-wot/src/mock.rs index 309c3bad63ca308abf91fbfba13b626dd17b73e5..ed754dd40631afed03d9a7cdc2e9a06d766729ba 100644 --- a/pallets/duniter-wot/src/mock.rs +++ b/pallets/duniter-wot/src/mock.rs @@ -80,14 +80,14 @@ impl system::Config for Test { // DuniterWot parameter_types! { - pub const MinCertForUdRight: u32 = 2; + pub const MinCertForMembership: u32 = 2; pub const MinCertForCreateIdtyRigh: u32 = 4; pub const FirstIssuableOn: u64 = 2; } impl pallet_duniter_wot::Config<Instance1> for Test { - type ManageIdentitiesChanges = frame_support::traits::ConstBool<true>; - type MinCertForUdRight = MinCertForUdRight; + type IsSubWot = frame_support::traits::ConstBool<false>; + type MinCertForMembership = MinCertForMembership; type MinCertForCreateIdtyRight = MinCertForCreateIdtyRigh; type FirstIssuableOn = FirstIssuableOn; } diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs index 6df203d7366e83016a027da7a37d7271c07d1c8e..a106ad1415d10cc16d9b1f6c0fe195fbe2961577 100644 --- a/runtime/common/src/pallets_config.rs +++ b/runtime/common/src/pallets_config.rs @@ -268,8 +268,8 @@ macro_rules! pallets_config { use frame_support::instances::Instance1; impl pallet_duniter_wot::Config<Instance1> for Runtime { type FirstIssuableOn = WotFirstCertIssuableOn; - type ManageIdentitiesChanges = frame_support::traits::ConstBool<true>; - type MinCertForUdRight = WotMinCertForUdRight; + type IsSubWot = frame_support::traits::ConstBool<true>; + type MinCertForMembership = WotMinCertForMembership; type MinCertForCreateIdtyRight = WotMinCertForCreateIdtyRight; } diff --git a/runtime/g1/src/parameters.rs b/runtime/g1/src/parameters.rs index 3bf2b125af0a4a51edb6adae6b535dadfdd6ae7c..96e782125168f9fb23b7023a0f8d07b3b001aa18 100644 --- a/runtime/g1/src/parameters.rs +++ b/runtime/g1/src/parameters.rs @@ -98,7 +98,7 @@ parameter_types! { parameter_types! { pub WotFirstCertIssuableOn: BlockNumber = 30* DAYS; - pub WotMinCertForUdRight: u8 = 5; + pub WotMinCertForMembership: u8 = 5; pub MinReceivedCertToBeAbleToIssueCert: u8 = 5; pub WotMinCertForCreateIdtyRight: u8 = 5; } diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs index 0e7a068d444e464322751fe09220d877402075a0..15729d0c7801a132d17cf36c88b593b53d01daa5 100644 --- a/runtime/gdev/src/lib.rs +++ b/runtime/gdev/src/lib.rs @@ -167,7 +167,7 @@ common_runtime::pallets_config! { pub type UdReevalPeriod = pallet_duniter_test_parameters::UdReevalPeriod<Runtime>; pub type UdReevalPeriodInBlocks = pallet_duniter_test_parameters::UdReevalPeriodInBlocks<Runtime>; pub type WotFirstCertIssuableOn = pallet_duniter_test_parameters::WotFirstCertIssuableOn<Runtime>; - pub type WotMinCertForUdRight = pallet_duniter_test_parameters::WotMinCertForUdRight<Runtime>; + pub type WotMinCertForMembership = pallet_duniter_test_parameters::WotMinCertForMembership<Runtime>; pub type WotMinCertForCreateIdtyRight = pallet_duniter_test_parameters::WotMinCertForCreateIdtyRight<Runtime>; impl pallet_duniter_test_parameters::Config for Runtime { diff --git a/runtime/gtest/src/parameters.rs b/runtime/gtest/src/parameters.rs index 2674ee5652126d4ffd431fed7f9e14904146b442..c7f7ce47644f143ad6bb6bc19983f8de6a1cb589 100644 --- a/runtime/gtest/src/parameters.rs +++ b/runtime/gtest/src/parameters.rs @@ -97,7 +97,7 @@ parameter_types! { parameter_types! { pub WotFirstCertIssuableOn: BlockNumber = DAYS; - pub WotMinCertForUdRight: u8 = 5; + pub WotMinCertForMembership: u8 = 5; pub MinReceivedCertToBeAbleToIssueCert: u8 = 5; pub WotMinCertForCreateIdtyRight: u8 = 5; }