diff --git a/pallets/duniter-wot/src/lib.rs b/pallets/duniter-wot/src/lib.rs index 8a9b2822a9470cc461e60be975a71d766f5c18cc..4fff3f0f0d5157a18b4c487dae43bb2bc9a71c41 100644 --- a/pallets/duniter-wot/src/lib.rs +++ b/pallets/duniter-wot/src/lib.rs @@ -337,7 +337,7 @@ where } sp_membership::Event::<IdtyIndex>::MembershipTerminated(_) => {} sp_membership::Event::<IdtyIndex>::MembershipRenewed(_) => {} - sp_membership::Event::<IdtyIndex>::MembershipRequested(_) => {} + sp_membership::Event::<IdtyIndex>::PendingMembershipAdded(_) => {} sp_membership::Event::<IdtyIndex>::PendingMembershipExpired(idty_index) => { Self::dispatch_idty_call(pallet_identity::Call::force_remove_identity { idty_index: *idty_index, diff --git a/pallets/duniter-wot/src/tests.rs b/pallets/duniter-wot/src/tests.rs index 14b50845dbc2e1313f78fef7bed690000718fbad..b26cbd841113b1325788df7d06056d33ce5c58df 100644 --- a/pallets/duniter-wot/src/tests.rs +++ b/pallets/duniter-wot/src/tests.rs @@ -84,7 +84,12 @@ fn test_join_smiths() { 4 ),)); System::assert_has_event(RuntimeEvent::SmithMembership( - pallet_membership::Event::MembershipRequested { member: 4 }, + pallet_membership::Event::PendingMembershipAdded { + member: 4, + expire_on: 2 + + <Test as pallet_membership::Config<Instance2>>::PendingMembershipPeriod::get( + ), + }, )); // Then, Alice should be able to send a smith cert to Dave @@ -99,7 +104,11 @@ fn test_join_smiths() { run_to_block(4); assert_ok!(SmithMembership::claim_membership(RuntimeOrigin::signed(4),)); System::assert_has_event(RuntimeEvent::SmithMembership( - pallet_membership::Event::MembershipAcquired { member: 4 }, + pallet_membership::Event::MembershipAcquired { + member: 4, + expire_on: 4 + + <Test as pallet_membership::Config<Instance2>>::MembershipPeriod::get(), + }, )); }); } @@ -230,7 +239,11 @@ fn test_new_idty_validation() { run_to_block(5); assert_ok!(Identity::validate_identity(RuntimeOrigin::signed(42), 6)); System::assert_has_event(RuntimeEvent::Membership( - pallet_membership::Event::MembershipAcquired { member: 6 }, + pallet_membership::Event::MembershipAcquired { + member: 6, + expire_on: 5 + + <Test as pallet_membership::Config<Instance1>>::MembershipPeriod::get(), + }, )); System::assert_has_event(RuntimeEvent::Identity( pallet_identity::Event::IdtyValidated { idty_index: 6 }, @@ -269,7 +282,12 @@ fn test_confirm_idty_ok() { IdtyName::from("Ferdie"), )); System::assert_has_event(RuntimeEvent::Membership( - pallet_membership::Event::MembershipRequested { member: 6 }, + pallet_membership::Event::PendingMembershipAdded { + member: 6, + expire_on: 3 + + <Test as pallet_membership::Config<Instance1>>::PendingMembershipPeriod::get( + ), + }, )); System::assert_has_event(RuntimeEvent::Identity( pallet_identity::Event::IdtyConfirmed { diff --git a/pallets/membership/src/benchmarking.rs b/pallets/membership/src/benchmarking.rs index ccc88cf3cdd60f55ea55898c02aeec8688831638..424861dd757df8c5e29ada5f413d88876d71149a 100644 --- a/pallets/membership/src/benchmarking.rs +++ b/pallets/membership/src/benchmarking.rs @@ -22,7 +22,7 @@ use frame_benchmarking::benchmarks_instance_pallet; use frame_support::dispatch::UnfilteredDispatchable; use frame_system::pallet_prelude::BlockNumberFor; use frame_system::RawOrigin; -use sp_runtime::traits::Convert; +use sp_runtime::traits::{Convert, One}; #[cfg(test)] use maplit::btreemap; @@ -53,7 +53,7 @@ benchmarks_instance_pallet! { } verify { if T::CheckMembershipCallAllowed::check_idty_allowed_to_request_membership(&idty).is_ok() { - assert_has_event::<T, I>(Event::<T, I>::MembershipRequested{member: idty}.into()); + assert_has_event::<T, I>(Event::<T, I>::PendingMembershipAdded{member: idty, expire_on: BlockNumberFor::<T>::one() + T::PendingMembershipPeriod::get()}.into()); } } claim_membership { @@ -65,7 +65,7 @@ benchmarks_instance_pallet! { T::BenchmarkSetupHandler::force_status_ok(&idty, &caller); }: _<T::RuntimeOrigin>(caller_origin) verify { - assert_has_event::<T, I>(Event::<T, I>::MembershipAcquired{member: idty}.into()); + assert_has_event::<T, I>(Event::<T, I>::MembershipAcquired{member: idty, expire_on: BlockNumberFor::<T>::one() + T::MembershipPeriod::get()}.into()); } renew_membership { let idty: T::IdtyId = 3.into(); @@ -74,7 +74,7 @@ benchmarks_instance_pallet! { T::BenchmarkSetupHandler::force_status_ok(&idty, &caller); }: _<T::RuntimeOrigin>(caller_origin) verify { - assert_has_event::<T, I>(Event::<T, I>::MembershipRenewed{member: idty}.into()); + assert_has_event::<T, I>(Event::<T, I>::MembershipAcquired{member: idty, expire_on: BlockNumberFor::<T>::one() + T::MembershipPeriod::get()}.into()); } revoke_membership { let idty: T::IdtyId = 3.into(); diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs index bdb9f07b3dfb3745ee06b13ecf33f0801464b03a..60c346a2f0fcdeebcf24696106637cae2ce3100d 100644 --- a/pallets/membership/src/lib.rs +++ b/pallets/membership/src/lib.rs @@ -162,16 +162,20 @@ pub mod pallet { #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event<T: Config<I>, I: 'static = ()> { /// A membership was acquired. - MembershipAcquired { member: T::IdtyId }, + MembershipAcquired { + member: T::IdtyId, + expire_on: BlockNumberFor<T>, + }, /// A membership was terminated. MembershipTerminated { member: T::IdtyId, reason: MembershipTerminationReason, }, - /// A membership was renewed. - MembershipRenewed { member: T::IdtyId }, - /// A membership was requested. - MembershipRequested { member: T::IdtyId }, + /// A pending membership was added. + PendingMembershipAdded { + member: T::IdtyId, + expire_on: BlockNumberFor<T>, + }, /// A pending membership request has expired. PendingMembershipExpired { member: T::IdtyId }, } @@ -255,7 +259,6 @@ pub mod pallet { // apply phase Self::unschedule_membership_expiry(idty_id, membership_data.expire_on); Self::insert_membership_and_schedule_expiry(idty_id); - Self::deposit_event(Event::MembershipRenewed { member: idty_id }); T::OnEvent::on_event(&sp_membership::Event::MembershipRenewed(idty_id)); Ok(().into()) @@ -322,6 +325,10 @@ pub mod pallet { Membership::<T, I>::insert(idty_id, MembershipData { expire_on }); MembershipsExpireOn::<T, I>::append(expire_on, idty_id); + Self::deposit_event(Event::MembershipAcquired { + member: idty_id, + expire_on, + }); } /// perform the membership request @@ -340,8 +347,11 @@ pub mod pallet { // apply membership request PendingMembership::<T, I>::insert(idty_id, ()); PendingMembershipsExpireOn::<T, I>::append(expire_on, idty_id); - Self::deposit_event(Event::MembershipRequested { member: idty_id }); - T::OnEvent::on_event(&sp_membership::Event::MembershipRequested(idty_id)); + Self::deposit_event(Event::PendingMembershipAdded { + member: idty_id, + expire_on, + }); + T::OnEvent::on_event(&sp_membership::Event::PendingMembershipAdded(idty_id)); Ok(().into()) } @@ -359,7 +369,6 @@ pub mod pallet { fn do_claim_membership(idty_id: T::IdtyId) { if PendingMembership::<T, I>::take(idty_id).is_some() { Self::insert_membership_and_schedule_expiry(idty_id); - Self::deposit_event(Event::MembershipAcquired { member: idty_id }); T::OnEvent::on_event(&sp_membership::Event::MembershipAcquired(idty_id)); } // else { unreachable if check_allowed_to_claim called before } diff --git a/pallets/membership/src/tests.rs b/pallets/membership/src/tests.rs index fe969df974eecf10be8d678a00ccfa4218bf2411..46692362e4e6cd1b7b37b8e9dce425600b723a69 100644 --- a/pallets/membership/src/tests.rs +++ b/pallets/membership/src/tests.rs @@ -108,8 +108,9 @@ fn test_membership_renewal() { assert_ok!(DefaultMembership::renew_membership(RuntimeOrigin::signed( 0 ),)); - System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRenewed { + System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipAcquired { member: 0, + expire_on: 2 + <Test as crate::Config>::MembershipPeriod::get(), })); // membership should not expire at block 3 to 6 because it has been renewed run_to_block(3); @@ -161,8 +162,9 @@ fn test_membership_revocation() { assert_ok!(DefaultMembership::request_membership( RuntimeOrigin::signed(0), )); - System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRequested { + System::assert_has_event(RtEvent::DefaultMembership(Event::PendingMembershipAdded { member: 0, + expire_on: 5 + <Test as crate::Config>::PendingMembershipPeriod::get(), })); }); } @@ -176,8 +178,9 @@ fn test_pending_membership_expiration() { assert_ok!(DefaultMembership::request_membership( RuntimeOrigin::signed(0), )); - System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRequested { + System::assert_has_event(RtEvent::DefaultMembership(Event::PendingMembershipAdded { member: 0, + expire_on: 1 + <Test as crate::Config>::PendingMembershipPeriod::get(), })); // Then, idty 0 shold still in pending memberships until PendingMembershipPeriod ended @@ -206,8 +209,9 @@ fn test_membership_workflow() { assert_ok!(DefaultMembership::request_membership( RuntimeOrigin::signed(0), )); - System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRequested { + System::assert_has_event(RtEvent::DefaultMembership(Event::PendingMembershipAdded { member: 0, + expire_on: 1 + <Test as crate::Config>::PendingMembershipPeriod::get(), })); // - Then, idty 0 claim membership @@ -217,6 +221,7 @@ fn test_membership_workflow() { ),)); System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipAcquired { member: 0, + expire_on: 2 + <Test as crate::Config>::MembershipPeriod::get(), })); // - Then, idty 0 claim renewal, should success diff --git a/primitives/membership/src/lib.rs b/primitives/membership/src/lib.rs index 042c4835e8ea5e9c80a402af9e090e0cc93f6d21..4fb1629f63128d311ae7a1ca5293f9ad620f97ff 100644 --- a/primitives/membership/src/lib.rs +++ b/primitives/membership/src/lib.rs @@ -35,7 +35,7 @@ pub enum Event<IdtyId> { /// A membership has renewed MembershipRenewed(IdtyId), /// An identity requested membership - MembershipRequested(IdtyId), + PendingMembershipAdded(IdtyId), /// A pending membership request has expired PendingMembershipExpired(IdtyId), } diff --git a/runtime/common/src/handlers.rs b/runtime/common/src/handlers.rs index b91e079537c82410cbba9a5c0c1a418fee4bbe5b..89263be4454ca0e70edb7a3471fd148181067fe1 100644 --- a/runtime/common/src/handlers.rs +++ b/runtime/common/src/handlers.rs @@ -103,7 +103,7 @@ impl< } // in other case, ther is nothing to do sp_membership::Event::MembershipRenewed(_) - | sp_membership::Event::MembershipRequested(_) + | sp_membership::Event::PendingMembershipAdded(_) | sp_membership::Event::PendingMembershipExpired(_) => (), }); Inner::on_event(membership_event) diff --git a/runtime/gdev/tests/integration_tests.rs b/runtime/gdev/tests/integration_tests.rs index c4c53d658d94da3709717caeafb744af09bf13a6..ca2fc3bc59deff6fd67085db81889ebc5c15108c 100644 --- a/runtime/gdev/tests/integration_tests.rs +++ b/runtime/gdev/tests/integration_tests.rs @@ -370,7 +370,12 @@ fn test_validate_identity_when_claim() { )); System::assert_has_event(RuntimeEvent::Membership( - pallet_membership::Event::MembershipAcquired { member: 5 }, + pallet_membership::Event::MembershipAcquired { + member: 5, + expire_on: 76 + + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get( + ), + }, )); // ferdie can not validate eve identity because already validated @@ -458,7 +463,12 @@ fn test_membership_renewal() { frame_system::RawOrigin::Signed(AccountKeyring::Alice.to_account_id()).into(), )); System::assert_has_event(RuntimeEvent::Membership( - pallet_membership::Event::MembershipRenewed { member: 1 }, + pallet_membership::Event::MembershipAcquired { + member: 1, + expire_on: 76 + + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get( + ), + }, )); // renew at block 77 @@ -467,7 +477,12 @@ fn test_membership_renewal() { frame_system::RawOrigin::Signed(AccountKeyring::Alice.to_account_id()).into(), )); System::assert_has_event(RuntimeEvent::Membership( - pallet_membership::Event::MembershipRenewed { member: 1 }, + pallet_membership::Event::MembershipAcquired { + member: 1, + expire_on: 77 + + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get( + ), + }, )); // should expire at block 177 = 77+100 @@ -611,7 +626,11 @@ fn test_ud_claimed_membership_on_and_off() { frame_system::RawOrigin::Signed(AccountKeyring::Alice.to_account_id()).into() )); System::assert_has_event(RuntimeEvent::Membership( - pallet_membership::Event::MembershipAcquired { member: 1 }, + pallet_membership::Event::MembershipAcquired { + member: 1, + expire_on: 14 + + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get(), + }, )); // UD number 3