diff --git a/.cargo/config b/.cargo/config index 3a03e9a4f00f3ed7e30167d53c109885fe57c2d6..f5990d7a2483c05d9a105363a6d3abd1d206d8dd 100644 --- a/.cargo/config +++ b/.cargo/config @@ -1,7 +1,7 @@ [alias] cucumber = "test -p duniter-end2end-tests --test cucumber_tests --" sanity-gdev = "test -p duniter-live-tests --test sanity_gdev -- --nocapture" -tu = "test --workspace --exclude duniter-end2end-tests" +tu = "test --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests" tb = "test --features runtime-benchmarks -p" xtask = "run --package xtask --" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fba75a1811bb61f1184f9b4319aad25b63910d5f..626da5ddf108c05dea84a774a961df36c24e1606 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -158,7 +158,7 @@ tests_debug: DUNITER_BINARY_PATH: "../build/duniter" DUNITER_END2END_TESTS_SPAWN_NODE_TIMEOUT: "20" script: - - cargo test --workspace --exclude duniter-end2end-tests + - cargo test --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests - cargo cucumber -i balance* - cargo cucumber -i monetary* - cargo cucumber -i transfer* @@ -182,7 +182,7 @@ tests_release: DUNITER_BINARY_PATH: "../build/duniter" DUNITER_END2END_TESTS_SPAWN_NODE_TIMEOUT: "20" script: - - cargo test --workspace --exclude duniter-end2end-tests + - cargo test --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests - cargo cucumber -i balance* - cargo cucumber -i monetary* - cargo cucumber -i transfer* diff --git a/end2end-tests/cucumber-genesis/default.json b/end2end-tests/cucumber-genesis/default.json index 7a978091070b4cf42720b9a07c2ae6eb99d728e7..32abeaa5616d57801d967dcc85609569aa74a935 100644 --- a/end2end-tests/cucumber-genesis/default.json +++ b/end2end-tests/cucumber-genesis/default.json @@ -23,22 +23,18 @@ "cert_period": 15, "cert_max_by_issuer": 10, "cert_min_received_cert_to_issue_cert": 2, - "cert_renewable_period": 50, "cert_validity_period": 1000, "idty_confirm_period": 40, "idty_creation_period": 50, "membership_period": 1000, - "membership_renewable_period": 50, "pending_membership_period": 500, "ud_creation_period": 10, "ud_reeval_period": 100, "smith_cert_period": 15, "smith_cert_max_by_issuer": 8, "smith_cert_min_received_cert_to_issue_cert": 2, - "smith_cert_renewable_period": 50, "smith_cert_validity_period": 1000, "smith_membership_period": 1000, - "smith_membership_renewable_period": 20, "smith_pending_membership_period": 500, "smiths_wot_first_cert_issuable_on": 20, "smiths_wot_min_cert_for_membership": 2, diff --git a/end2end-tests/cucumber-genesis/wot.json b/end2end-tests/cucumber-genesis/wot.json index 988e6857f07b387758e082040a684a2f255029db..7b4639842049082c2b4393b799c7fc8d85aa96b2 100644 --- a/end2end-tests/cucumber-genesis/wot.json +++ b/end2end-tests/cucumber-genesis/wot.json @@ -28,22 +28,18 @@ "cert_period": 15, "cert_max_by_issuer": 10, "cert_min_received_cert_to_issue_cert": 2, - "cert_renewable_period": 50, "cert_validity_period": 1000, "idty_confirm_period": 40, "idty_creation_period": 50, "membership_period": 1000, - "membership_renewable_period": 50, "pending_membership_period": 500, "ud_creation_period": 10, "ud_reeval_period": 100, "smith_cert_period": 15, "smith_cert_max_by_issuer": 8, "smith_cert_min_received_cert_to_issue_cert": 2, - "smith_cert_renewable_period": 50, "smith_cert_validity_period": 1000, "smith_membership_period": 1000, - "smith_membership_renewable_period": 20, "smith_pending_membership_period": 500, "smiths_wot_first_cert_issuable_on": 20, "smiths_wot_min_cert_for_membership": 2, diff --git a/live-tests/tests/sanity_gdev.rs b/live-tests/tests/sanity_gdev.rs index 4e6e14938ae73d093e70a9ac322f3292c94a3b84..115eeadda9c9ce9d09c7bb18986e370370029852 100644 --- a/live-tests/tests/sanity_gdev.rs +++ b/live-tests/tests/sanity_gdev.rs @@ -41,9 +41,13 @@ type AccountInfo = gdev_runtime::runtime_types::frame_system::AccountInfo< Index, gdev_runtime::runtime_types::pallet_duniter_account::types::AccountData<Balance>, >; +type IdtyData = gdev_runtime::runtime_types::common_runtime::entities::IdtyData; type IdtyIndex = u32; -type IdtyValue = - gdev_runtime::runtime_types::pallet_identity::types::IdtyValue<BlockNumber, AccountId32>; +type IdtyValue = gdev_runtime::runtime_types::pallet_identity::types::IdtyValue< + BlockNumber, + AccountId32, + IdtyData, +>; use gdev_runtime::runtime_types::pallet_identity::types::IdtyStatus; struct Storage { diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs index b31c4f7dadcbed69d590e0f2bad61c35b18106ae..299482d1766d3afab8739bb5266292ed455069c2 100644 --- a/node/src/chain_spec/gdev.rs +++ b/node/src/chain_spec/gdev.rs @@ -100,9 +100,7 @@ pub fn development_chain_spec() -> Result<ChainSpec, String> { genesis_certs_expire_on: 100_000, genesis_smith_certs_expire_on: 100_000, genesis_memberships_expire_on: 100_000, - genesis_memberships_renewable_on: 50, genesis_smith_memberships_expire_on: 100_000, - genesis_smith_memberships_renewable_on: 50, }), ) } else { @@ -189,9 +187,7 @@ pub fn gen_live_conf() -> Result<ChainSpec, String> { genesis_certs_expire_on: 100_000, genesis_smith_certs_expire_on: 100_000, genesis_memberships_expire_on: 100_000, - genesis_memberships_renewable_on: 50, genesis_smith_memberships_expire_on: 100_000, - genesis_smith_memberships_renewable_on: 50, }), ) } @@ -262,10 +258,7 @@ fn gen_genesis_for_local_chain( let cert_validity_period = get_env_u32("DUNITER_CERT_VALIDITY_PERIOD", 1_000); let first_ud = 1_000; let membership_period = get_env_u32("DUNITER_MEMBERSHIP_PERIOD", 1_000); - let membership_renewable_period = get_env_u32("DUNITER_MEMBERSHIP_RENEWABLE_PERIOD", 50); let smith_cert_validity_period = get_env_u32("DUNITER_SMITH_CERT_VALIDITY_PERIOD", 1_000); - let smith_membership_renewable_period = - get_env_u32("DUNITER_SMITH_MEMBERSHIP_RENEWABLE_PERIOD", 20); let smith_membership_period = get_env_u32("DUNITER_SMITH_MEMBERSHIP_PERIOD", 1_000); let ud_creation_period = get_env_u32("DUNITER_UD_CREATION_PERIOD", 10); let ud_reeval_period = get_env_u32("DUNITER_UD_REEEVAL_PERIOD", 200); @@ -309,22 +302,18 @@ fn gen_genesis_for_local_chain( cert_period: 15, cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, - cert_renewable_period: 50, cert_validity_period, idty_confirm_period: 40, idty_creation_period: 50, membership_period, - membership_renewable_period, pending_membership_period: 500, ud_creation_period, ud_reeval_period, smith_cert_period: 15, smith_cert_max_by_issuer: 8, smith_cert_min_received_cert_to_issue_cert: 2, - smith_cert_renewable_period: 50, smith_cert_validity_period: 1_000, smith_membership_period, - smith_membership_renewable_period: 50, smith_pending_membership_period: 500, smiths_wot_first_cert_issuable_on: 20, smiths_wot_min_cert_for_membership: 2, @@ -386,15 +375,7 @@ fn gen_genesis_for_local_chain( }, membership: MembershipConfig { memberships: (1..=initial_identities.len()) - .map(|i| { - ( - i as u32, - MembershipData { - expire_on: 0, - renewable_on: membership_renewable_period, - }, - ) - }) + .map(|i| (i as u32, MembershipData { expire_on: 0 })) .collect(), }, cert: CertConfig { @@ -403,15 +384,7 @@ fn gen_genesis_for_local_chain( }, smiths_membership: SmithsMembershipConfig { memberships: (1..=initial_smiths_len) - .map(|i| { - ( - i as u32, - MembershipData { - expire_on: 0, - renewable_on: smith_membership_renewable_period, - }, - ) - }) + .map(|i| (i as u32, MembershipData { expire_on: 0 })) .collect(), }, smiths_cert: SmithsCertConfig { diff --git a/node/src/chain_spec/gen_genesis_data.rs b/node/src/chain_spec/gen_genesis_data.rs index d9c66c76adda7dd09671cf6febf843d32621f768..24751d6154fb738474bf0194cf83886b90a0631d 100644 --- a/node/src/chain_spec/gen_genesis_data.rs +++ b/node/src/chain_spec/gen_genesis_data.rs @@ -45,9 +45,7 @@ pub struct ParamsAppliedAtGenesis { pub genesis_certs_expire_on: u32, pub genesis_smith_certs_expire_on: u32, pub genesis_memberships_expire_on: u32, - pub genesis_memberships_renewable_on: u32, pub genesis_smith_memberships_expire_on: u32, - pub genesis_smith_memberships_renewable_on: u32, } #[derive(Deserialize, Serialize)] @@ -96,9 +94,7 @@ where genesis_certs_expire_on, genesis_smith_certs_expire_on, genesis_memberships_expire_on, - genesis_memberships_renewable_on, genesis_smith_memberships_expire_on, - genesis_smith_memberships_renewable_on, } = params_applied_at_genesis.unwrap_or_default(); let genesis_timestamp: u64 = @@ -203,7 +199,6 @@ where .map_or(genesis_memberships_expire_on, |expire_on| { to_bn(genesis_timestamp, expire_on) }), - renewable_on: genesis_memberships_renewable_on, }, ); @@ -303,7 +298,6 @@ where *idty_index, MembershipData { expire_on: genesis_smith_memberships_expire_on, - renewable_on: genesis_smith_memberships_renewable_on, }, ); } diff --git a/node/src/chain_spec/gtest.rs b/node/src/chain_spec/gtest.rs index 0b1f682e5861387a9e93c8baaf14345733feb6aa..5d2ea9201bee4ed538eeef9d9c3f77baba00dfc2 100644 --- a/node/src/chain_spec/gtest.rs +++ b/node/src/chain_spec/gtest.rs @@ -223,7 +223,6 @@ fn gen_genesis_for_local_chain( i as u32, MembershipData { expire_on: gtest_runtime::MembershipPeriod::get(), - renewable_on: gtest_runtime::RenewablePeriod::get(), }, ) }) @@ -243,7 +242,6 @@ fn gen_genesis_for_local_chain( i as u32, MembershipData { expire_on: gtest_runtime::SmithMembershipPeriod::get(), - renewable_on: gtest_runtime::SmithRenewablePeriod::get(), }, ) }) diff --git a/pallets/certification/src/lib.rs b/pallets/certification/src/lib.rs index cc577701fe7bda364934bf578ea1d8aa4dd48e1b..5d333e7be2ba64ecc213e091f28df384c832d867 100644 --- a/pallets/certification/src/lib.rs +++ b/pallets/certification/src/lib.rs @@ -83,9 +83,6 @@ pub mod pallet { /// Handler for Removed event type OnRemovedCert: OnRemovedCert<Self::IdtyIndex>; #[pallet::constant] - /// Duration after which a certification is renewable - type CertRenewablePeriod: Get<Self::BlockNumber>; - #[pallet::constant] /// Duration of validity of a certification type ValidityPeriod: Get<Self::BlockNumber>; } @@ -169,15 +166,11 @@ pub mod pallet { } } } - let renewable_on = removable_on.saturating_sub( - T::ValidityPeriod::get().saturating_sub(T::CertRenewablePeriod::get()), - ); <StorageCertsByIssuer<T, I>>::insert( issuer, receiver, CertValue { - renewable_on, removable_on: *removable_on, }, ); @@ -274,8 +267,6 @@ pub mod pallet { NotEnoughCertReceived, /// This identity has already issued a certification too recently NotRespectCertPeriod, - /// This certification has already been issued or renewed recently - NotRespectRenewablePeriod, /// Receiver not found ReceiverNotFound, } @@ -302,7 +293,7 @@ pub mod pallet { let block_number = frame_system::pallet::Pallet::<T>::block_number(); - let create = if verify_rules { + if verify_rules { let issuer_idty_cert_meta = <StorageIdtyCertMeta<T, I>>::get(issuer); if issuer_idty_cert_meta.received_count == 0 { return Err(Error::<T, I>::IdtyMustReceiveCertsBeforeCanIssue.into()); @@ -317,22 +308,9 @@ pub mod pallet { } else if issuer_idty_cert_meta.issued_count >= T::MaxByIssuer::get() { return Err(Error::<T, I>::IssuedTooManyCert.into()); } - - // Verify rule CertRenewablePeriod - if let Ok(CertValue { renewable_on, .. }) = - <StorageCertsByIssuer<T, I>>::try_get(issuer, receiver) - { - if renewable_on > block_number { - return Err(Error::<T, I>::NotRespectRenewablePeriod.into()); - } - false - } else { - true - } - } else { - !StorageCertsByIssuer::<T, I>::contains_key(issuer, receiver) }; + let create = !StorageCertsByIssuer::<T, I>::contains_key(issuer, receiver); Self::do_add_cert(block_number, create, issuer, receiver) } /// Add a new certification or renew an existing one @@ -370,18 +348,7 @@ pub mod pallet { return Err(Error::<T, I>::IssuedTooManyCert.into()); } - // Verify rule CertRenewablePeriod - let create = if let Ok(CertValue { renewable_on, .. }) = - <StorageCertsByIssuer<T, I>>::try_get(issuer, receiver) - { - if renewable_on > block_number { - return Err(Error::<T, I>::NotRespectRenewablePeriod.into()); - } - false - } else { - true - }; - + let create = !StorageCertsByIssuer::<T, I>::contains_key(issuer, receiver); Self::do_add_cert(block_number, create, issuer, receiver) } @@ -439,7 +406,6 @@ pub mod pallet { // Write StorageCertsRemovableOn and StorageCertsByIssuer let cert_value = CertValue { - renewable_on: block_number + T::CertRenewablePeriod::get(), removable_on: block_number + T::ValidityPeriod::get(), }; <StorageCertsRemovableOn<T, I>>::append(cert_value.removable_on, (issuer, receiver)); diff --git a/pallets/certification/src/mock.rs b/pallets/certification/src/mock.rs index b3380463741ae82f712159c7eb2b7baccd2bd125..96a46725781f23b20efad2c7e9499a095fd2c2b7 100644 --- a/pallets/certification/src/mock.rs +++ b/pallets/certification/src/mock.rs @@ -94,7 +94,6 @@ impl frame_support::traits::EnsureOrigin<(Origin, IdtyIndex, IdtyIndex)> for Ens parameter_types! { pub const MaxByIssuer: u32 = 3; pub const MinReceivedCertToBeAbleToIssueCert: u32 = 2; - pub const RenewablePeriod: BlockNumber = 4; pub const CertPeriod: u64 = 2; pub const ValidityPeriod: u64 = 10; } @@ -109,7 +108,6 @@ impl pallet_certification::Config for Test { type MinReceivedCertToBeAbleToIssueCert = MinReceivedCertToBeAbleToIssueCert; type OnNewcert = (); type OnRemovedCert = (); - type CertRenewablePeriod = RenewablePeriod; type ValidityPeriod = ValidityPeriod; } diff --git a/pallets/certification/src/tests.rs b/pallets/certification/src/tests.rs index 64b77fb2a39ca18b6c8e7f17dbd5ef6a89d5b6d8..25998c16b86884f4011a11052a2799a180efe65d 100644 --- a/pallets/certification/src/tests.rs +++ b/pallets/certification/src/tests.rs @@ -115,11 +115,6 @@ fn test_genesis_build() { DefaultCertification::certs_removable_on(3), Some(vec![(2, 1)]), ); - // Cert 2->0 cannot be renewed before #5 - assert_eq!( - DefaultCertification::add_cert(Origin::signed(2), 0), - Err(Error::<Test, _>::NotRespectRenewablePeriod.into()) - ); run_to_block(3); // Cert 2->1 must have expired @@ -162,31 +157,3 @@ fn test_cert_period() { assert_ok!(DefaultCertification::add_cert(Origin::signed(0), 3)); }); } - -#[test] -fn test_renewable_period() { - new_test_ext(DefaultCertificationConfig { - apply_cert_period_at_genesis: true, - certs_by_issuer: btreemap![ - 0 => btreemap![1 => 10], - 2 => btreemap![0 => 10], - 3 => btreemap![0 => 10], - ], - }) - .execute_with(|| { - run_to_block(CertPeriod::get()); - assert_eq!( - DefaultCertification::add_cert(Origin::signed(0), 1), - Err(Error::<Test, _>::NotRespectRenewablePeriod.into()) - ); - run_to_block(RenewablePeriod::get()); - assert_ok!(DefaultCertification::add_cert(Origin::signed(0), 1)); - run_to_block(RenewablePeriod::get() + CertPeriod::get()); - assert_eq!( - DefaultCertification::add_cert(Origin::signed(0), 1), - Err(Error::<Test, _>::NotRespectRenewablePeriod.into()) - ); - run_to_block((2 * RenewablePeriod::get()) + 1); - assert_ok!(DefaultCertification::add_cert(Origin::signed(0), 1)); - }); -} diff --git a/pallets/certification/src/types.rs b/pallets/certification/src/types.rs index d1b858f9f25abc7ff855eb2b42b196dd36c608a2..4d2534c57314e762d4e9e1f45023dc683ffc7321 100644 --- a/pallets/certification/src/types.rs +++ b/pallets/certification/src/types.rs @@ -22,7 +22,6 @@ use scale_info::TypeInfo; #[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug, TypeInfo)] pub struct CertValue<BlockNumber> { - pub renewable_on: BlockNumber, pub removable_on: BlockNumber, } diff --git a/pallets/duniter-test-parameters/src/lib.rs b/pallets/duniter-test-parameters/src/lib.rs index b72c113419c66b2fc3a2bf697e80964f0d15f4d1..d7232aa0335e13f1847d04c98e1467445e3c2f9e 100644 --- a/pallets/duniter-test-parameters/src/lib.rs +++ b/pallets/duniter-test-parameters/src/lib.rs @@ -40,22 +40,18 @@ pub mod types { pub cert_period: BlockNumber, pub cert_max_by_issuer: CertCount, pub cert_min_received_cert_to_issue_cert: CertCount, - pub cert_renewable_period: BlockNumber, pub cert_validity_period: BlockNumber, pub idty_confirm_period: BlockNumber, pub idty_creation_period: BlockNumber, pub membership_period: BlockNumber, - pub membership_renewable_period: BlockNumber, pub pending_membership_period: BlockNumber, pub ud_creation_period: BlockNumber, pub ud_reeval_period: BlockNumber, pub smith_cert_period: BlockNumber, pub smith_cert_max_by_issuer: CertCount, pub smith_cert_min_received_cert_to_issue_cert: CertCount, - pub smith_cert_renewable_period: BlockNumber, pub smith_cert_validity_period: BlockNumber, pub smith_membership_period: BlockNumber, - pub smith_membership_renewable_period: BlockNumber, pub smith_pending_membership_period: BlockNumber, pub smiths_wot_first_cert_issuable_on: BlockNumber, pub smiths_wot_min_cert_for_membership: CertCount, diff --git a/pallets/duniter-wot/src/mock.rs b/pallets/duniter-wot/src/mock.rs index 9a8be581756680aaf58430d297b191383f081edd..082388a87294793dee7bd98ac21e18298e127a9a 100644 --- a/pallets/duniter-wot/src/mock.rs +++ b/pallets/duniter-wot/src/mock.rs @@ -132,7 +132,6 @@ impl pallet_identity::Config for Test { parameter_types! { pub const MembershipPeriod: u64 = 8; pub const PendingMembershipPeriod: u64 = 3; - pub const RenewablePeriod: u64 = 2; pub const RevocationPeriod: u64 = 4; } @@ -146,7 +145,6 @@ impl pallet_membership::Config<Instance1> for Test { type MetaData = crate::MembershipMetaData<u64>; type OnEvent = DuniterWot; type PendingMembershipPeriod = PendingMembershipPeriod; - type RenewablePeriod = RenewablePeriod; type RevocationPeriod = RevocationPeriod; } @@ -154,7 +152,6 @@ impl pallet_membership::Config<Instance1> for Test { parameter_types! { pub const MaxByIssuer: u8 = 8; pub const MinReceivedCertToBeAbleToIssueCert: u32 = 2; - pub const CertRenewablePeriod: u64 = 4; pub const CertPeriod: u64 = 2; pub const ValidityPeriod: u64 = 20; } @@ -169,7 +166,6 @@ impl pallet_certification::Config<Instance1> for Test { type MinReceivedCertToBeAbleToIssueCert = MinReceivedCertToBeAbleToIssueCert; type OnNewcert = DuniterWot; type OnRemovedCert = DuniterWot; - type CertRenewablePeriod = CertRenewablePeriod; type ValidityPeriod = ValidityPeriod; } @@ -191,7 +187,6 @@ impl pallet_duniter_wot::Config<Instance2> for Test { parameter_types! { pub const SmithsMembershipPeriod: u64 = 20; pub const SmithsPendingMembershipPeriod: u64 = 3; - pub const SmithsRenewablePeriod: u64 = 2; pub const SmithsRevocationPeriod: u64 = 4; } @@ -205,7 +200,6 @@ impl pallet_membership::Config<Instance2> for Test { type MetaData = crate::MembershipMetaData<u64>; type OnEvent = SmithsSubWot; type PendingMembershipPeriod = SmithsPendingMembershipPeriod; - type RenewablePeriod = SmithsRenewablePeriod; type RevocationPeriod = SmithsRevocationPeriod; } @@ -213,7 +207,6 @@ impl pallet_membership::Config<Instance2> for Test { parameter_types! { pub const SmithsMaxByIssuer: u8 = 8; pub const SmithsMinReceivedCertToBeAbleToIssueCert: u32 = 2; - pub const SmithsCertRenewablePeriod: u64 = 4; pub const SmithsCertPeriod: u64 = 2; pub const SmithsValidityPeriod: u64 = 10; } @@ -228,7 +221,6 @@ impl pallet_certification::Config<Instance2> for Test { type MinReceivedCertToBeAbleToIssueCert = SmithsMinReceivedCertToBeAbleToIssueCert; type OnNewcert = SmithsSubWot; type OnRemovedCert = SmithsSubWot; - type CertRenewablePeriod = SmithsCertRenewablePeriod; type ValidityPeriod = SmithsValidityPeriod; } @@ -269,7 +261,6 @@ pub fn new_test_ext( i as u32, sp_membership::MembershipData { expire_on: MembershipPeriod::get(), - renewable_on: RenewablePeriod::get(), }, ) }) @@ -292,7 +283,6 @@ pub fn new_test_ext( i as u32, sp_membership::MembershipData { expire_on: SmithsMembershipPeriod::get(), - renewable_on: SmithsRenewablePeriod::get(), }, ) }) diff --git a/pallets/identity/src/mock.rs b/pallets/identity/src/mock.rs index 2e34e74946b95de4f2d86364ed6bae82aa62346a..d6f973e040d38c5d3112d71b7c2e809f102f0d1c 100644 --- a/pallets/identity/src/mock.rs +++ b/pallets/identity/src/mock.rs @@ -80,7 +80,6 @@ parameter_types! { pub const ConfirmPeriod: u64 = 2; pub const IdtyCreationPeriod: u64 = 3; pub const MaxInactivityPeriod: u64 = 5; - pub const RenewablePeriod: u64 = 3; pub const ValidationPeriod: u64 = 2; } diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs index af1e859d20638bdf9a81d81579350ca352d67dc5..1232c04d9e276baf3ae70a94612901aa9740fac5 100644 --- a/pallets/membership/src/lib.rs +++ b/pallets/membership/src/lib.rs @@ -78,9 +78,6 @@ pub mod pallet { /// Maximum period (in number of blocks), where an identity can remain pending subscription. type PendingMembershipPeriod: Get<Self::BlockNumber>; #[pallet::constant] - /// Duration after which a membership is renewable - type RenewablePeriod: Get<Self::BlockNumber>; - #[pallet::constant] /// Minimum duration (in number of blocks between a revocation and a new entry request type RevocationPeriod: Get<Self::BlockNumber>; } @@ -184,8 +181,6 @@ pub mod pallet { MembershipAlreadyAcquired, /// Membership already requested MembershipAlreadyRequested, - /// Membership not yet renewable - MembershipNotYetRenewable, /// Membership not found MembershipNotFound, /// Origin not allowed to use this identity @@ -280,14 +275,10 @@ pub mod pallet { return Err(Error::<T, I>::IdtyNotAllowedToRenewMembership.into()); } - if let Some(membership_data) = Self::get_membership(&idty_id) { - let block_number = frame_system::pallet::Pallet::<T>::block_number(); - if membership_data.renewable_on > block_number { - return Err(Error::<T, I>::MembershipNotYetRenewable.into()); - } - } else { - return Err(Error::<T, I>::MembershipNotFound.into()); - } + ensure!( + Self::get_membership(&idty_id).is_some(), + Error::<T, I>::MembershipNotFound + ); let _ = Self::do_renew_membership(idty_id); @@ -321,15 +312,8 @@ pub mod pallet { fn do_renew_membership_inner(idty_id: T::IdtyId) -> Weight { let block_number = frame_system::pallet::Pallet::<T>::block_number(); let expire_on = block_number + T::MembershipPeriod::get(); - let renewable_on = block_number + T::RenewablePeriod::get(); - - Self::insert_membership( - idty_id, - MembershipData { - expire_on, - renewable_on, - }, - ); + + Self::insert_membership(idty_id, MembershipData { expire_on }); MembershipsExpireOn::<T, I>::append(expire_on, idty_id); 0 } diff --git a/pallets/membership/src/mock.rs b/pallets/membership/src/mock.rs index e21a415375d0f72bdade6a03fcdf66556f04761c..4e1b49dd5772e86dfbc7455b0242229bad2b768d 100644 --- a/pallets/membership/src/mock.rs +++ b/pallets/membership/src/mock.rs @@ -80,7 +80,6 @@ impl system::Config for Test { parameter_types! { pub const MembershipPeriod: BlockNumber = 5; pub const PendingMembershipPeriod: BlockNumber = 3; - pub const RenewablePeriod: BlockNumber = 2; pub const RevocationPeriod: BlockNumber = 4; } @@ -94,7 +93,6 @@ impl pallet_membership::Config for Test { type MetaData = (); type OnEvent = (); type PendingMembershipPeriod = PendingMembershipPeriod; - type RenewablePeriod = RenewablePeriod; type RevocationPeriod = RevocationPeriod; } diff --git a/pallets/membership/src/tests.rs b/pallets/membership/src/tests.rs index 8e96355971ddae717c856294587b7bd061873f30..67fa62fd09eb76e25bb7e67c4c9627c1ba937b37 100644 --- a/pallets/membership/src/tests.rs +++ b/pallets/membership/src/tests.rs @@ -28,7 +28,6 @@ fn default_gen_conf() -> DefaultMembershipConfig { memberships: btreemap![ 0 => MembershipData { expire_on: 3, - renewable_on: 2 } ], } @@ -41,27 +40,12 @@ fn test_genesis_build() { // Verify state assert_eq!( DefaultMembership::membership(0), - Some(MembershipData { - expire_on: 3, - renewable_on: 2 - }) + Some(MembershipData { expire_on: 3 }) ); assert_eq!(DefaultMembership::members_count(), 1); }); } -#[test] -fn test_membership_not_yet_renewable() { - new_test_ext(default_gen_conf()).execute_with(|| { - run_to_block(1); - // Merbership 0 cannot be renewed before #2 - assert_eq!( - DefaultMembership::renew_membership(Origin::signed(0), None), - Err(Error::<Test, _>::MembershipNotYetRenewable.into()) - ); - }); -} - #[test] fn test_membership_already_acquired() { new_test_ext(default_gen_conf()).execute_with(|| { @@ -190,23 +174,16 @@ fn test_membership_workflow() { RuntimeEvent::DefaultMembership(Event::MembershipAcquired(0)) ); - // Then, idty 0 claim renewal, should fail - run_to_block(3); - assert_eq!( - DefaultMembership::renew_membership(Origin::signed(0), None), - Err(Error::<Test, _>::MembershipNotYetRenewable.into()) - ); - - // Then, idty 0 claim renewal after renewable period, should success - run_to_block(2 + RenewablePeriod::get()); + // Then, idty 0 claim renewal, should success + run_to_block(2); assert_ok!(DefaultMembership::renew_membership(Origin::signed(0), None),); // Then, idty 0 shoul still member until membership period ended - run_to_block(2 + RenewablePeriod::get() + MembershipPeriod::get() - 1); + run_to_block(2 + MembershipPeriod::get() - 1); assert!(DefaultMembership::is_member(&0)); // Then, idty 0 shoul expire after membership period - run_to_block(2 + RenewablePeriod::get() + MembershipPeriod::get()); + run_to_block(2 + MembershipPeriod::get()); assert!(!DefaultMembership::is_member(&0),); assert_eq!( System::events()[0].event, diff --git a/primitives/membership/src/lib.rs b/primitives/membership/src/lib.rs index 600ae3661d4d405eade6365eebe796da20c63e7e..97194ce0d0203e143591b462f18a319dae5534b8 100644 --- a/primitives/membership/src/lib.rs +++ b/primitives/membership/src/lib.rs @@ -46,5 +46,4 @@ pub enum Event<IdtyId, MetaData = ()> { #[derive(Encode, Decode, Default, Clone, Copy, PartialEq, Eq, RuntimeDebug, TypeInfo)] pub struct MembershipData<BlockNumber: Decode + Encode + TypeInfo> { pub expire_on: BlockNumber, - pub renewable_on: BlockNumber, } diff --git a/resources/gdev.json b/resources/gdev.json index aba51b9128eed74ae6d82d12c4812aeaf7580842..45aa222ba1dcebe2d886ab840e44860dcb3a761b 100644 --- a/resources/gdev.json +++ b/resources/gdev.json @@ -137,22 +137,18 @@ "cert_period": 14400, "cert_max_by_issuer": 100, "cert_min_received_cert_to_issue_cert": 5, - "cert_renewable_period": 172800, "cert_validity_period": 2102400, "idty_confirm_period": 14400, "idty_creation_period": 14400, "membership_period": 1051200, - "membership_renewable_period": 172800, "pending_membership_period": 172800, "ud_creation_period": 14400, "ud_reeval_period": 100800, "smith_cert_period": 14400, "smith_cert_max_by_issuer": 12, "smith_cert_min_received_cert_to_issue_cert": 3, - "smith_cert_renewable_period": 172800, "smith_cert_validity_period": 2102400, "smith_membership_period": 1051200, - "smith_membership_renewable_period": 172800, "smith_pending_membership_period": 172800, "smiths_wot_first_cert_issuable_on": 14400, "smiths_wot_min_cert_for_membership": 3, diff --git a/resources/metadata.scale b/resources/metadata.scale index 1f01cc4a16551841453d80d1d36da2e23037db3f..968b774a7abe5dd37311695ef4112ee05e6e9946 100644 Binary files a/resources/metadata.scale and b/resources/metadata.scale differ diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs index 510c6e237c382cba2a8482171e32ebcef32e135d..bc5e82e5a2cd58b8de55327a998033f2c325c48f 100644 --- a/runtime/common/src/pallets_config.rs +++ b/runtime/common/src/pallets_config.rs @@ -447,7 +447,6 @@ macro_rules! pallets_config { type MetaData = pallet_duniter_wot::MembershipMetaData<AccountId>; type OnEvent = OnMembershipEventHandler<Wot, Runtime>; type PendingMembershipPeriod = PendingMembershipPeriod; - type RenewablePeriod = RenewablePeriod; type RevocationPeriod = frame_support::traits::ConstU32<0>; } @@ -461,7 +460,6 @@ macro_rules! pallets_config { type MinReceivedCertToBeAbleToIssueCert = MinReceivedCertToBeAbleToIssueCert; type OnNewcert = Wot; type OnRemovedCert = Wot; - type CertRenewablePeriod = CertRenewablePeriod; type ValidityPeriod = ValidityPeriod; } @@ -485,7 +483,6 @@ macro_rules! pallets_config { type MetaData = SmithsMembershipMetaData<opaque::SessionKeysWrapper>; type OnEvent = OnSmithMembershipEventHandler<SmithsSubWot, Runtime>; type PendingMembershipPeriod = SmithPendingMembershipPeriod; - type RenewablePeriod = SmithRenewablePeriod; type RevocationPeriod = frame_support::traits::ConstU32<0>; } @@ -499,7 +496,6 @@ macro_rules! pallets_config { type MinReceivedCertToBeAbleToIssueCert = SmithMinReceivedCertToBeAbleToIssueCert; type OnNewcert = SmithsSubWot; type OnRemovedCert = SmithsSubWot; - type CertRenewablePeriod = SmithCertRenewablePeriod; type ValidityPeriod = SmithValidityPeriod; } diff --git a/runtime/g1/src/parameters.rs b/runtime/g1/src/parameters.rs index 44e8ced87dc87f4e613f7a978ad1966525a9524d..24a32ac67236ff2e621ba94f5353a0581d99adc2 100644 --- a/runtime/g1/src/parameters.rs +++ b/runtime/g1/src/parameters.rs @@ -111,7 +111,6 @@ parameter_types! { parameter_types! { pub const MembershipPeriod: BlockNumber = YEARS; pub const PendingMembershipPeriod: BlockNumber = 2 * MONTHS; - pub const RenewablePeriod: BlockNumber = 2 * MONTHS; } // Certification @@ -119,7 +118,6 @@ parameter_types! { pub const CertPeriod: BlockNumber = 5 * DAYS; pub const MaxByIssuer: u32 = 100; pub const MinReceivedCertToBeAbleToIssueCert: u32 = 5; - pub const CertRenewablePeriod: BlockNumber = 6 * MONTHS; pub const ValidityPeriod: BlockNumber = 2 * YEARS; } @@ -136,7 +134,6 @@ parameter_types! { parameter_types! { pub const SmithMembershipPeriod: BlockNumber = 73 * DAYS; pub const SmithPendingMembershipPeriod: BlockNumber = 12 * DAYS; - pub const SmithRenewablePeriod: BlockNumber = 12 * DAYS; } // Certification @@ -144,7 +141,6 @@ parameter_types! { pub const SmithCertPeriod: BlockNumber = 5 * DAYS; pub const SmithMaxByIssuer: u32 = 12; pub const SmithMinReceivedCertToBeAbleToIssueCert: u32 = 5; - pub const SmithCertRenewablePeriod: BlockNumber = 12 * DAYS; pub const SmithValidityPeriod: BlockNumber = 146 * DAYS; } diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs index 99f886d165d862b0a652f53d2399bb63a71b7816..80744615582a146b6557207d353a641bc9631cca 100644 --- a/runtime/gdev/src/lib.rs +++ b/runtime/gdev/src/lib.rs @@ -227,12 +227,10 @@ common_runtime::pallets_config! { pub type MaxByIssuer = pallet_duniter_test_parameters::CertMaxByIssuer<Runtime>; pub type MinReceivedCertToBeAbleToIssueCert = pallet_duniter_test_parameters::CertMinReceivedCertToIssueCert<Runtime>; - pub type CertRenewablePeriod = pallet_duniter_test_parameters::CertRenewablePeriod<Runtime>; pub type ValidityPeriod = pallet_duniter_test_parameters::CertValidityPeriod<Runtime>; pub type ConfirmPeriod = pallet_duniter_test_parameters::IdtyConfirmPeriod<Runtime>; pub type IdtyCreationPeriod = pallet_duniter_test_parameters::IdtyCreationPeriod<Runtime>; pub type MembershipPeriod = pallet_duniter_test_parameters::MembershipPeriod<Runtime>; - pub type RenewablePeriod = pallet_duniter_test_parameters::MembershipRenewablePeriod<Runtime>; pub type PendingMembershipPeriod = pallet_duniter_test_parameters::PendingMembershipPeriod<Runtime>; #[cfg(not(test))] pub type UdCreationPeriod = pallet_duniter_test_parameters::UdCreationPeriod<Runtime>; @@ -247,14 +245,10 @@ common_runtime::pallets_config! { pub type SmithMaxByIssuer = pallet_duniter_test_parameters::SmithCertMaxByIssuer<Runtime>; pub type SmithMinReceivedCertToBeAbleToIssueCert = pallet_duniter_test_parameters::SmithCertMinReceivedCertToIssueCert<Runtime>; - pub type SmithCertRenewablePeriod = - pallet_duniter_test_parameters::SmithCertRenewablePeriod<Runtime>; pub type SmithValidityPeriod = pallet_duniter_test_parameters::SmithCertValidityPeriod<Runtime>; pub type SmithMembershipPeriod = pallet_duniter_test_parameters::SmithMembershipPeriod<Runtime>; pub type SmithPendingMembershipPeriod = pallet_duniter_test_parameters::SmithPendingMembershipPeriod<Runtime>; - pub type SmithRenewablePeriod = - pallet_duniter_test_parameters::SmithMembershipRenewablePeriod<Runtime>; pub type SmithsWotFirstCertIssuableOn = pallet_duniter_test_parameters::SmithsWotFirstCertIssuableOn<Runtime>; pub type SmithsWotMinCertForMembership = diff --git a/runtime/gdev/tests/common/mod.rs b/runtime/gdev/tests/common/mod.rs index 4bcb9d45a239cab966d1ea3a90c8674c5c3c6207..323fbeca5c90acacb9a4d37a15349cb341ec5a5c 100644 --- a/runtime/gdev/tests/common/mod.rs +++ b/runtime/gdev/tests/common/mod.rs @@ -99,22 +99,18 @@ impl ExtBuilder { cert_period: 15, cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, - cert_renewable_period: 50, cert_validity_period: 10_000, idty_confirm_period: 40, idty_creation_period: 50, membership_period: 1_000, - membership_renewable_period: 5, pending_membership_period: 500, ud_creation_period: 10, ud_reeval_period: 10 * 20, smith_cert_period: 15, smith_cert_max_by_issuer: 8, smith_cert_min_received_cert_to_issue_cert: 2, - smith_cert_renewable_period: 50, smith_cert_validity_period: 1_000, smith_membership_period: 1_000, - smith_membership_renewable_period: 50, smith_pending_membership_period: 500, smiths_wot_first_cert_issuable_on: 20, smiths_wot_min_cert_for_membership: 2, @@ -226,7 +222,6 @@ impl ExtBuilder { i as u32, MembershipData { expire_on: parameters.membership_period, - renewable_on: parameters.membership_renewable_period, }, ) }) @@ -249,7 +244,6 @@ impl ExtBuilder { i as u32, MembershipData { expire_on: parameters.smith_membership_period, - renewable_on: parameters.smith_membership_renewable_period, }, ) }) diff --git a/runtime/gtest/src/parameters.rs b/runtime/gtest/src/parameters.rs index 8193b10c417e764f720a63355b36f8ebbbd96e47..745786181445ad3edc16ac959c810408589efbf9 100644 --- a/runtime/gtest/src/parameters.rs +++ b/runtime/gtest/src/parameters.rs @@ -112,14 +112,12 @@ frame_support::parameter_types! { parameter_types! { pub const MembershipPeriod: BlockNumber = 73 * DAYS; pub const PendingMembershipPeriod: BlockNumber = 12 * DAYS; - pub const RenewablePeriod: BlockNumber = 12 * DAYS; } // Certification parameter_types! { pub const CertPeriod: BlockNumber = DAYS; pub const MaxByIssuer: u32 = 100; - pub const CertRenewablePeriod: BlockNumber = 12 * DAYS; pub const ValidityPeriod: BlockNumber = 146 * DAYS; } @@ -136,7 +134,6 @@ parameter_types! { parameter_types! { pub const SmithMembershipPeriod: BlockNumber = 73 * DAYS; pub const SmithPendingMembershipPeriod: BlockNumber = 12 * DAYS; - pub const SmithRenewablePeriod: BlockNumber = 12 * DAYS; } // Certification @@ -144,7 +141,6 @@ parameter_types! { pub const SmithCertPeriod: BlockNumber = DAYS; pub const SmithMaxByIssuer: u32 = 100; pub const SmithMinReceivedCertToBeAbleToIssueCert: u32 = 5; - pub const SmithCertRenewablePeriod: BlockNumber = 12 * DAYS; pub const SmithValidityPeriod: BlockNumber = 146 * DAYS; }