Skip to content
Snippets Groups Projects
Commit 5159922c authored by mildred's avatar mildred Committed by Éloïs
Browse files

Remove RevocationPeriod rule (!94)

* Remove no longer needed test_revoke_smiths_them_rejoin in duniter-wot

* Remove dead code (MembershipRevokedRecently)

* Remove empty fn prune_revoked_memberships

* Remove RevokedMembershipPrunedOn never used

* Remove RevokedMembership that is always empty

* Remove RevocationPeriod
parent 554fe8d2
No related branches found
No related tags found
1 merge request!94Remove RevocationPeriod rule
......@@ -139,7 +139,6 @@ impl pallet_identity::Config for Test {
parameter_types! {
pub const MembershipPeriod: u64 = 8;
pub const PendingMembershipPeriod: u64 = 3;
pub const RevocationPeriod: u64 = 4;
}
impl pallet_membership::Config<Instance1> for Test {
......@@ -153,7 +152,6 @@ impl pallet_membership::Config<Instance1> for Test {
type MetaData = ();
type OnEvent = DuniterWot;
type PendingMembershipPeriod = PendingMembershipPeriod;
type RevocationPeriod = RevocationPeriod;
}
// Cert
......@@ -195,7 +193,6 @@ impl pallet_duniter_wot::Config<Instance2> for Test {
parameter_types! {
pub const SmithsMembershipPeriod: u64 = 20;
pub const SmithsPendingMembershipPeriod: u64 = 3;
pub const SmithsRevocationPeriod: u64 = 4;
}
impl pallet_membership::Config<Instance2> for Test {
......@@ -209,7 +206,6 @@ impl pallet_membership::Config<Instance2> for Test {
type MetaData = ();
type OnEvent = SmithsSubWot;
type PendingMembershipPeriod = SmithsPendingMembershipPeriod;
type RevocationPeriod = SmithsRevocationPeriod;
}
// SmithsCert
......
......@@ -143,33 +143,6 @@ fn test_smith_member_cant_revoke_its_idty() {
});
}
#[test]
fn test_revoke_smiths_them_rejoin() {
new_test_ext(5, 4).execute_with(|| {
run_to_block(2);
// Dave shoud be able to revoke his smith membership
assert_ok!(SmithsMembership::revoke_membership(
Origin::signed(4),
Some(4)
));
// Dave should not be able to re-request membership before the RevocationPeriod end
run_to_block(3);
assert_noop!(
SmithsMembership::request_membership(Origin::signed(4), ()),
pallet_membership::Error::<Test, crate::Instance2>::MembershipRevokedRecently
);
// At block #6, Dave shoud be able to request smith membership
run_to_block(6);
assert_ok!(SmithsMembership::request_membership(Origin::signed(4), ()));
// Then, Alice should be able to send a smith cert to Dave
assert_ok!(SmithsCert::add_cert(Origin::signed(1), 1, 4));
});
}
#[test]
fn test_create_idty_ok() {
new_test_ext(5, 2).execute_with(|| {
......
......@@ -81,9 +81,6 @@ pub mod pallet {
#[pallet::constant]
/// Maximum period (in number of blocks), where an identity can remain pending subscription.
type PendingMembershipPeriod: Get<Self::BlockNumber>;
#[pallet::constant]
/// Minimum duration (in number of blocks between a revocation and a new entry request
type RevocationPeriod: Get<Self::BlockNumber>;
}
// GENESIS STUFF //
......@@ -134,16 +131,6 @@ pub mod pallet {
pub type PendingMembershipsExpireOn<T: Config<I>, I: 'static = ()> =
StorageMap<_, Twox64Concat, T::BlockNumber, Vec<T::IdtyId>, ValueQuery>;
#[pallet::storage]
#[pallet::getter(fn revoked_membership)]
pub type RevokedMembership<T: Config<I>, I: 'static = ()> =
StorageMap<_, Twox64Concat, T::IdtyId, (), OptionQuery>;
#[pallet::storage]
#[pallet::getter(fn revoked_memberships_pruned_on)]
pub type RevokedMembershipsPrunedOn<T: Config<I>, I: 'static = ()> =
StorageMap<_, Twox64Concat, T::BlockNumber, Vec<T::IdtyId>, OptionQuery>;
// EVENTS //
#[pallet::event]
......@@ -193,8 +180,6 @@ pub mod pallet {
OriginNotAllowedToUseIdty,
/// Membership request not found
MembershipRequestNotFound,
/// Membership revoked recently
MembershipRevokedRecently,
}
// HOOKS //
......@@ -203,9 +188,7 @@ pub mod pallet {
impl<T: Config<I>, I: 'static> Hooks<BlockNumberFor<T>> for Pallet<T, I> {
fn on_initialize(n: T::BlockNumber) -> Weight {
if n > T::BlockNumber::zero() {
Self::expire_pending_memberships(n)
+ Self::expire_memberships(n)
+ Self::prune_revoked_memberships(n)
Self::expire_pending_memberships(n) + Self::expire_memberships(n)
} else {
0
}
......@@ -307,7 +290,10 @@ pub mod pallet {
let idty_id = Self::ensure_origin_and_get_idty_id(origin, maybe_idty_id)?;
// Apply phase
let _ = Self::do_revoke_membership(idty_id);
if Self::remove_membership(&idty_id) {
Self::deposit_event(Event::MembershipRevoked(idty_id));
T::OnEvent::on_event(&sp_membership::Event::MembershipRevoked(idty_id));
}
Ok(().into())
}
......@@ -340,9 +326,6 @@ pub mod pallet {
if Membership::<T, I>::contains_key(&idty_id) {
return Err(Error::<T, I>::MembershipAlreadyAcquired.into());
}
if RevokedMembership::<T, I>::contains_key(&idty_id) {
return Err(Error::<T, I>::MembershipRevokedRecently.into());
}
let block_number = frame_system::pallet::Pallet::<T>::block_number();
let expire_on = block_number + T::PendingMembershipPeriod::get();
......@@ -354,21 +337,6 @@ pub mod pallet {
Ok(().into())
}
pub(super) fn do_revoke_membership(idty_id: T::IdtyId) -> Weight {
if Self::remove_membership(&idty_id) {
if T::RevocationPeriod::get() > Zero::zero() {
let block_number = frame_system::pallet::Pallet::<T>::block_number();
let pruned_on = block_number + T::RevocationPeriod::get();
RevokedMembership::<T, I>::insert(idty_id, ());
RevokedMembershipsPrunedOn::<T, I>::append(pruned_on, idty_id);
}
Self::deposit_event(Event::MembershipRevoked(idty_id));
T::OnEvent::on_event(&sp_membership::Event::MembershipRevoked(idty_id));
}
0
}
fn ensure_origin_and_get_idty_id(
origin: OriginFor<T>,
maybe_idty_id: Option<T::IdtyId>,
......@@ -412,17 +380,6 @@ pub mod pallet {
total_weight
}
fn prune_revoked_memberships(block_number: T::BlockNumber) -> Weight {
let total_weight: Weight = 0;
if let Some(identities_ids) = RevokedMembershipsPrunedOn::<T, I>::take(block_number) {
for idty_id in identities_ids {
RevokedMembership::<T, I>::remove(idty_id);
}
}
total_weight
}
pub(super) fn is_member_inner(idty_id: &T::IdtyId) -> bool {
Membership::<T, I>::contains_key(idty_id)
......
......@@ -80,7 +80,6 @@ impl system::Config for Test {
parameter_types! {
pub const MembershipPeriod: BlockNumber = 5;
pub const PendingMembershipPeriod: BlockNumber = 3;
pub const RevocationPeriod: BlockNumber = 4;
}
impl pallet_membership::Config for Test {
......@@ -94,7 +93,6 @@ impl pallet_membership::Config for Test {
type MetaData = ();
type OnEvent = ();
type PendingMembershipPeriod = PendingMembershipPeriod;
type RevocationPeriod = RevocationPeriod;
}
// Build genesis storage according to the mock runtime.
......
......@@ -113,14 +113,7 @@ fn test_membership_revocation() {
RuntimeEvent::DefaultMembership(Event::MembershipRevoked(0))
);
// Membership 0 can't request membership before the end of RevokePeriod (1 + 4 = 5)
run_to_block(2);
assert_eq!(
DefaultMembership::request_membership(Origin::signed(0), ()),
Err(Error::<Test, _>::MembershipRevokedRecently.into())
);
// Membership 0 can request membership after the end of RevokePeriod (1 + 4 = 5)
// Membership 0 can re-request membership
run_to_block(5);
assert_ok!(DefaultMembership::request_membership(Origin::signed(0), ()),);
assert_eq!(
......
......@@ -454,7 +454,6 @@ macro_rules! pallets_config {
type MetaData = ();
type OnEvent = OnMembershipEventHandler<Wot, Runtime>;
type PendingMembershipPeriod = PendingMembershipPeriod;
type RevocationPeriod = frame_support::traits::ConstU32<0>;
}
impl pallet_certification::Config<Instance1> for Runtime {
......@@ -491,7 +490,6 @@ macro_rules! pallets_config {
type MetaData = SmithsMembershipMetaData<opaque::SessionKeysWrapper>;
type OnEvent = OnSmithMembershipEventHandler<SmithsSubWot, Runtime>;
type PendingMembershipPeriod = SmithPendingMembershipPeriod;
type RevocationPeriod = frame_support::traits::ConstU32<0>;
}
impl pallet_certification::Config<Instance2> for Runtime {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment