diff --git a/pallets/certification/src/benchmarking.rs b/pallets/certification/src/benchmarking.rs index 553e34846ae9c1a99e68c5ee677ffbd126c50979..add49d64470f60b9dbc3bfdefcd37e4d08c4acc5 100644 --- a/pallets/certification/src/benchmarking.rs +++ b/pallets/certification/src/benchmarking.rs @@ -80,7 +80,7 @@ benchmarks! { assert!(CertsByReceiver::<T>::get(receiver).is_empty() ); } on_initialize { - assert!(StorageCertsRemovableOn::<T>::try_get(T::BlockNumber::zero()).is_err()); + assert!(CertsRemovableOn::<T>::try_get(T::BlockNumber::zero()).is_err()); }: {Pallet::<T>::on_initialize(T::BlockNumber::zero());} do_remove_cert_noop { }: {Pallet::<T>::do_remove_cert(100.into(), 101.into(), Some(T::BlockNumber::zero()));} diff --git a/pallets/certification/src/lib.rs b/pallets/certification/src/lib.rs index aab81a26417bc6e1c7a4e4459537e121c840e140..13209fea45827b47443ec0f59e7fc09ce3091c15 100644 --- a/pallets/certification/src/lib.rs +++ b/pallets/certification/src/lib.rs @@ -191,9 +191,9 @@ pub mod pallet { ); StorageIdtyCertMeta::<T>::insert(issuer, cert_meta); } - // Write storage StorageCertsRemovableOn + // Write storage CertsRemovableOn for (removable_on, certs) in certs_removable_on { - StorageCertsRemovableOn::<T>::insert(removable_on, certs); + CertsRemovableOn::<T>::insert(removable_on, certs); } } } @@ -215,7 +215,7 @@ pub mod pallet { /// Certifications removable on #[pallet::storage] #[pallet::getter(fn certs_removable_on)] - pub type StorageCertsRemovableOn<T: Config> = + pub type CertsRemovableOn<T: Config> = StorageMap<_, Twox64Concat, T::BlockNumber, Vec<(T::IdtyIndex, T::IdtyIndex)>, OptionQuery>; // EVENTS // @@ -284,7 +284,9 @@ pub mod pallet { let block_number = frame_system::pallet::Pallet::<T>::block_number(); Self::check_cert_allowed(who, issuer, receiver, block_number)?; - Self::do_add_cert(block_number, issuer, receiver) + Self::do_add_cert(block_number, issuer, receiver); + + Ok(().into()) } /// remove a certification (only root) @@ -324,13 +326,13 @@ pub mod pallet { receiver: T::IdtyIndex, verify_rules: bool, ) -> DispatchResultWithPostInfo { - // Forbid self cert + // Verify rule (1.) Forbid self cert ensure!(issuer != receiver, Error::<T>::CannotCertifySelf); let block_number = frame_system::pallet::Pallet::<T>::block_number(); if verify_rules { - // Verify rule MinReceivedCertToBeAbleToIssueCert + // Verify rule (3.) MinReceivedCertToBeAbleToIssueCert let issuer_idty_cert_meta = StorageIdtyCertMeta::<T>::get(issuer); ensure!( issuer_idty_cert_meta.received_count @@ -338,30 +340,28 @@ pub mod pallet { Error::<T>::NotEnoughCertReceived ); - // Verify rule MaxByIssuer + // Verify rule (4.) MaxByIssuer ensure!( issuer_idty_cert_meta.issued_count < T::MaxByIssuer::get(), Error::<T>::IssuedTooManyCert ); - // Verify rule CertPeriod + // Verify rule (5.) CertPeriod ensure!( block_number >= issuer_idty_cert_meta.next_issuable_on, Error::<T>::NotRespectCertPeriod ); }; - Self::do_add_cert(block_number, issuer, receiver) + Self::do_add_cert(block_number, issuer, receiver); + + Ok(().into()) } /// perform cert addition or renewal - fn do_add_cert( - block_number: T::BlockNumber, - issuer: T::IdtyIndex, - receiver: T::IdtyIndex, - ) -> DispatchResultWithPostInfo { - // Write StorageCertsRemovableOn + fn do_add_cert(block_number: T::BlockNumber, issuer: T::IdtyIndex, receiver: T::IdtyIndex) { + // Write CertsRemovableOn let removable_on = block_number + T::ValidityPeriod::get(); - <StorageCertsRemovableOn<T>>::append(removable_on, (issuer, receiver)); + <CertsRemovableOn<T>>::append(removable_on, (issuer, receiver)); // Write CertsByReceiver let mut created = false; @@ -414,9 +414,7 @@ pub mod pallet { }); // emit CertRenewed event Self::deposit_event(Event::CertRenewed { issuer, receiver }); - } - - Ok(().into()) + }; } /// remove the certifications due to expire on the given block // (run at on_initialize step) @@ -424,7 +422,7 @@ pub mod pallet { // See on initialize for the overhead weight accounting let mut total_weight = Weight::zero(); - if let Some(certs) = StorageCertsRemovableOn::<T>::take(block_number) { + if let Some(certs) = CertsRemovableOn::<T>::take(block_number) { for (issuer, receiver) in certs { total_weight += Self::do_remove_cert(issuer, receiver, Some(block_number)); } diff --git a/pallets/certification/src/weights.rs b/pallets/certification/src/weights.rs index 4a5bc2f404d0341a3d6607d68b51e4b25bfdb513..1f5918b2a6abdad08e259e4448dd7368db486774 100644 --- a/pallets/certification/src/weights.rs +++ b/pallets/certification/src/weights.rs @@ -33,7 +33,7 @@ impl WeightInfo for () { // Storage: Identity Identities (r:2 w:0) // Storage: Cert StorageIdtyCertMeta (r:2 w:2) // Storage: Parameters ParametersStorage (r:1 w:0) - // Storage: Cert StorageCertsRemovableOn (r:1 w:1) + // Storage: Cert CertsRemovableOn (r:1 w:1) // Storage: Cert CertsByReceiver (r:1 w:1) fn add_cert() -> Weight { // Minimum execution time: 259_247 nanoseconds. diff --git a/pallets/distance/src/lib.rs b/pallets/distance/src/lib.rs index b7ee0e21420bc71d7c316f19d40c7d73f3293fab..a776c8182514ac92f7ed5eca4ceab88e150470a7 100644 --- a/pallets/distance/src/lib.rs +++ b/pallets/distance/src/lib.rs @@ -191,6 +191,8 @@ pub mod pallet { CallerIdentityNotFound, /// Caller not member. CallerNotMember, + // Caller status can only be Unvalidated, Member or NotMember + CallerStatusInvalid, /// Target identity not found. TargetIdentityNotFound, /// Evaluation queue is full. @@ -200,7 +202,7 @@ pub mod pallet { /// Evaluation result has a wrong length. WrongResultLength, /// Targeted distance evaluation request is only possible for an unvalidated identity - DistanceRequestOnlyAllowedForUnvalidated, + TargetMustBeUnvalidated, } #[pallet::hooks] @@ -376,6 +378,15 @@ pub mod pallet { // caller has an identity let idty_index = pallet_identity::IdentityIndexOf::<T>::get(who) .ok_or(Error::<T>::CallerHasNoIdentity)?; + let idty = pallet_identity::Identities::<T>::get(idty_index) + .ok_or(Error::<T>::CallerIdentityNotFound)?; + // caller is (Unvalidated, Member, NotMember) + ensure!( + idty.status == pallet_identity::IdtyStatus::Unvalidated + || idty.status == pallet_identity::IdtyStatus::Member + || idty.status == pallet_identity::IdtyStatus::NotMember, + Error::<T>::CallerStatusInvalid + ); Self::check_request_distance_evaluation_common(idty_index)?; Ok(idty_index) } @@ -401,7 +412,7 @@ pub mod pallet { // target is unvalidated ensure!( target_idty.status == pallet_identity::IdtyStatus::Unvalidated, - Error::<T>::DistanceRequestOnlyAllowedForUnvalidated + Error::<T>::TargetMustBeUnvalidated ); Self::check_request_distance_evaluation_common(target)?; Ok(()) @@ -416,8 +427,9 @@ pub mod pallet { PendingEvaluationRequest::<T>::get(target).is_none(), Error::<T>::AlreadyInEvaluation ); - // external validation - // target has received enough certifications + // external validation (wot) + // - membership renewal antispam + // - target has received enough certifications T::CheckRequestDistanceEvaluation::check_request_distance_evaluation(target) } diff --git a/pallets/distance/src/tests.rs b/pallets/distance/src/tests.rs index b1be3c04a488d49496992b8166235d9229554261..18302be75c61c8ed2718d33d353e7a49b8148253 100644 --- a/pallets/distance/src/tests.rs +++ b/pallets/distance/src/tests.rs @@ -16,9 +16,10 @@ use crate::mock::*; use crate::*; -use frame_support::assert_ok; use frame_support::traits::Currency; +use frame_support::{assert_noop, assert_ok}; +// allow request distance evaluation for oneself #[test] fn test_request_distance_evaluation() { new_test_ext().execute_with(|| { @@ -39,3 +40,69 @@ fn test_request_distance_evaluation() { assert_eq!(Balances::reserved_balance(1), 1000); }); } + +// allow request distance evaluation for an unvalidated identity +#[test] +fn test_request_distance_evaluation_for() { + new_test_ext().execute_with(|| { + run_to_block(1); + // give enough for reserve + Balances::make_free_balance_be(&1, 10_000); + assert_ok!(Identity::create_identity(RuntimeOrigin::signed(1), 5)); + assert_ok!(Identity::confirm_identity( + RuntimeOrigin::signed(5), + "Eeeve".into() + )); + + // call request + assert_ok!(Distance::request_distance_evaluation_for( + RuntimeOrigin::signed(1), + 5 + )); + System::assert_has_event(RuntimeEvent::Distance(Event::EvaluationRequested { + idty_index: 5, + who: 1, + })); + + // currency was reserved + assert_eq!(Balances::reserved_balance(1), 1000); + }); +} + +// non member can not request distance evaluation +#[test] +fn test_request_distance_evaluation_non_member() { + new_test_ext().execute_with(|| { + run_to_block(1); + // give enough for reserve + Balances::make_free_balance_be(&5, 10_000); + + assert_noop!( + Distance::request_distance_evaluation_for(RuntimeOrigin::signed(5), 1), + Error::<Test>::CallerHasNoIdentity + ); + assert_ok!(Identity::create_identity(RuntimeOrigin::signed(1), 5)); + assert_noop!( + Distance::request_distance_evaluation_for(RuntimeOrigin::signed(5), 1), + Error::<Test>::CallerNotMember + ); + }); +} + +// can not request distance eval if already in evaluation +#[test] +fn test_request_distance_evaluation_twice() { + new_test_ext().execute_with(|| { + run_to_block(1); + // give enough for reserve + Balances::make_free_balance_be(&1, 10_000); + + assert_ok!(Distance::request_distance_evaluation( + RuntimeOrigin::signed(1) + )); + assert_noop!( + Distance::request_distance_evaluation(RuntimeOrigin::signed(1)), + Error::<Test>::AlreadyInEvaluation + ); + }); +} diff --git a/pallets/duniter-wot/src/lib.rs b/pallets/duniter-wot/src/lib.rs index 079467a3f8f2d3c3c5c139bfa666d9b46668f428..f7c0090340b5c5e219d9a862f6fa19e80c857a79 100644 --- a/pallets/duniter-wot/src/lib.rs +++ b/pallets/duniter-wot/src/lib.rs @@ -83,40 +83,22 @@ pub mod pallet { #[pallet::error] pub enum Error<T> { - /// Insufficient certifications received to claim membership. - NotEnoughCertsToClaimMembership, - /// Distance is invalid. - DistanceIsInvalid, - /// Distance is not evaluated. - DistanceNotEvaluated, - /// Distance evaluation has been requested but is still pending - DistanceEvaluationPending, - /// Distance evaluation has not been requested - DistanceEvaluationNotRequested, - /// Identity is not allowed to claim membership. - IdtyNotAllowedToClaimMembership, - /// Identity not allowed to renew membership. - IdtyNotAllowedToRenewMembership, + /// Insufficient certifications received + NotEnoughCerts, + /// Target status is incompatible with this operation + // Membership can not be added/renewed with this status + // Certification can not be added to identity with this status + TargetStatusInvalid, /// Identity creation period not respected. IdtyCreationPeriodNotRespected, /// Insufficient received certifications to create identity. NotEnoughReceivedCertsToCreateIdty, /// Maximum number of emitted certifications reached. MaxEmittedCertsReached, - /// Not allowed to change identity address. - NotAllowedToChangeIdtyAddress, - /// Not allowed to remove identity. - NotAllowedToRemoveIdty, /// Issuer cannot emit a certification because it is not member. IssuerNotMember, - /// Cannot issue a certification to an unconfirmed identity - CertToUnconfirmed, - /// Cannot issue a certification to a revoked identity - CertToRevoked, /// Issuer or receiver not found. IdtyNotFound, - /// Not enough certs received to request distance evaluation. - NotEnoughCertsReceivedToRequestDistanceEvaluation, /// Membership can only be renewed after an antispam delay MembershipRenewalPeriodNotRespected, } @@ -162,61 +144,51 @@ impl<T: Config> pallet_certification::traits::CheckCertAllowed<IdtyIndex> for Pa fn check_cert_allowed(issuer: IdtyIndex, receiver: IdtyIndex) -> Result<(), DispatchError> { // issuer checks // ensure issuer is member - if let Some(issuer_data) = pallet_identity::Pallet::<T>::identity(issuer) { - ensure!( - issuer_data.status == IdtyStatus::Member, - Error::<T>::IssuerNotMember - ); - } else { - return Err(Error::<T>::IdtyNotFound.into()); - } + let issuer_data = + pallet_identity::Pallet::<T>::identity(issuer).ok_or(Error::<T>::IdtyNotFound)?; + ensure!( + issuer_data.status == IdtyStatus::Member, + Error::<T>::IssuerNotMember + ); // receiver checks // ensure receiver identity is confirmed and not revoked - if let Some(receiver_data) = pallet_identity::Pallet::<T>::identity(receiver) { - match receiver_data.status { - // able to receive cert - IdtyStatus::Unvalidated | IdtyStatus::Member | IdtyStatus::NotMember => {} - IdtyStatus::Unconfirmed => return Err(Error::<T>::CertToUnconfirmed.into()), - IdtyStatus::Revoked => return Err(Error::<T>::CertToRevoked.into()), - }; - } else { - return Err(Error::<T>::IdtyNotFound.into()); - } + let receiver_data = + pallet_identity::Pallet::<T>::identity(receiver).ok_or(Error::<T>::IdtyNotFound)?; + ensure!( + receiver_data.status == IdtyStatus::Unvalidated + || receiver_data.status == IdtyStatus::Member + || receiver_data.status == IdtyStatus::NotMember, + Error::<T>::TargetStatusInvalid + ); Ok(()) } } // implement membership call checks -impl<T: Config> sp_membership::traits::CheckMembershipCallAllowed<IdtyIndex> for Pallet<T> { - // membership claim is only possible when enough certs are received (both wots) and distance is ok - fn check_idty_allowed_to_claim_membership(idty_index: &IdtyIndex) -> Result<(), DispatchError> { +impl<T: Config> sp_membership::traits::CheckMembershipOpAllowed<IdtyIndex> for Pallet<T> { + fn check_add_membership(idty_index: IdtyIndex) -> Result<(), DispatchError> { // check identity status let idty_value = pallet_identity::Pallet::<T>::identity(idty_index).ok_or(Error::<T>::IdtyNotFound)?; ensure!( idty_value.status == IdtyStatus::Unvalidated || idty_value.status == IdtyStatus::NotMember, - Error::<T>::IdtyNotAllowedToClaimMembership - ); - // check received certifications - // TODO deduplicate - let idty_cert_meta = pallet_certification::Pallet::<T>::idty_cert_meta(idty_index); - ensure!( - idty_cert_meta.received_count >= T::MinCertForMembership::get(), - Error::<T>::NotEnoughCertsToClaimMembership + Error::<T>::TargetStatusInvalid ); + // check cert count + check_cert_count::<T>(idty_index)?; Ok(()) } // membership renewal is only possible when identity is member (otherwise it should claim again) - fn check_idty_allowed_to_renew_membership(idty_index: &IdtyIndex) -> Result<(), DispatchError> { + fn check_renew_membership(idty_index: IdtyIndex) -> Result<(), DispatchError> { // check identity status let idty_value = pallet_identity::Pallet::<T>::identity(idty_index).ok_or(Error::<T>::IdtyNotFound)?; ensure!( idty_value.status == IdtyStatus::Member, - Error::<T>::IdtyNotAllowedToRenewMembership + Error::<T>::TargetStatusInvalid ); // no need to check certification count since loosing certifications make membership expire Ok(()) @@ -403,12 +375,17 @@ impl<T: Config + pallet_distance::Config> pallet_distance::traits::CheckRequestD ); }; // check cert count - // TODO deduplicate - let idty_cert_meta = pallet_certification::Pallet::<T>::idty_cert_meta(idty_index); - ensure!( - idty_cert_meta.received_count >= T::MinCertForMembership::get(), - Error::<T>::NotEnoughCertsReceivedToRequestDistanceEvaluation - ); + check_cert_count::<T>(idty_index)?; Ok(()) } } + +/// check certification count +fn check_cert_count<T: Config>(idty_index: IdtyIndex) -> Result<(), DispatchError> { + let idty_cert_meta = pallet_certification::Pallet::<T>::idty_cert_meta(idty_index); + ensure!( + idty_cert_meta.received_count >= T::MinCertForMembership::get(), + Error::<T>::NotEnoughCerts + ); + Ok(()) +} diff --git a/pallets/duniter-wot/src/mock.rs b/pallets/duniter-wot/src/mock.rs index d2679e1b92185cd66f0f979401b2bcc0d2063b26..3ecb6c2332c42f019958a347a45aef79148f7fba 100644 --- a/pallets/duniter-wot/src/mock.rs +++ b/pallets/duniter-wot/src/mock.rs @@ -142,7 +142,7 @@ parameter_types! { } impl pallet_membership::Config for Test { - type CheckMembershipCallAllowed = DuniterWot; + type CheckMembershipOpAllowed = DuniterWot; type IdtyId = IdtyIndex; type IdtyIdOf = IdentityIndexOf<Self>; type AccountIdOf = (); diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs index 38f1c491c231635abb6bb6c1777b432275cd9882..f699a24c0296b7551906010dbb2e755031aa8620 100644 --- a/pallets/membership/src/lib.rs +++ b/pallets/membership/src/lib.rs @@ -84,7 +84,7 @@ pub mod pallet { #[pallet::config] pub trait Config: frame_system::Config { /// Ask the runtime whether the identity can perform membership operations - type CheckMembershipCallAllowed: CheckMembershipCallAllowed<Self::IdtyId>; + type CheckMembershipOpAllowed: CheckMembershipOpAllowed<Self::IdtyId>; /// Something that identifies an identity type IdtyId: Copy + MaybeSerializeDeserialize + Parameter + Ord; /// Something that gives the IdtyId of an AccountId @@ -225,7 +225,7 @@ pub mod pallet { } /// check that membership can be claimed - pub fn check_allowed_to_claim(idty_id: T::IdtyId) -> Result<(), DispatchError> { + pub fn check_add_membership(idty_id: T::IdtyId) -> Result<(), DispatchError> { // no-op is error ensure!( Membership::<T>::get(idty_id).is_none(), @@ -233,32 +233,32 @@ pub mod pallet { ); // enough certifications and distance rule for example - T::CheckMembershipCallAllowed::check_idty_allowed_to_claim_membership(&idty_id)?; + T::CheckMembershipOpAllowed::check_add_membership(idty_id)?; Ok(()) } /// check that membership can be renewed - pub fn check_allowed_to_renew( + pub fn check_renew_membership( idty_id: T::IdtyId, ) -> Result<MembershipData<T::BlockNumber>, DispatchError> { let membership_data = Membership::<T>::get(idty_id).ok_or(Error::<T>::MembershipNotFound)?; // enough certifications and distance rule for example - T::CheckMembershipCallAllowed::check_idty_allowed_to_renew_membership(&idty_id)?; + T::CheckMembershipOpAllowed::check_renew_membership(idty_id)?; Ok(membership_data) } /// try claim membership pub fn try_add_membership(idty_id: T::IdtyId) -> Result<(), DispatchError> { - Self::check_allowed_to_claim(idty_id)?; + Self::check_add_membership(idty_id)?; Self::do_add_membership(idty_id); Ok(()) } /// try renew membership pub fn try_renew_membership(idty_id: T::IdtyId) -> Result<(), DispatchError> { - let membership_data = Self::check_allowed_to_renew(idty_id)?; + let membership_data = Self::check_renew_membership(idty_id)?; Self::do_renew_membership(idty_id, membership_data); Ok(()) } diff --git a/pallets/membership/src/mock.rs b/pallets/membership/src/mock.rs index a13325a0c29ce3e32fa7d16cfc5af80de48f06e4..f197691276be7446d36a9a5fa910222c5337adb9 100644 --- a/pallets/membership/src/mock.rs +++ b/pallets/membership/src/mock.rs @@ -83,7 +83,7 @@ parameter_types! { } impl pallet_membership::Config for Test { - type CheckMembershipCallAllowed = (); + type CheckMembershipOpAllowed = (); type IdtyId = IdtyId; type IdtyIdOf = ConvertInto; type AccountIdOf = ConvertInto; diff --git a/primitives/membership/src/traits.rs b/primitives/membership/src/traits.rs index abb5961cd3d7d76cdba4f845a79b458ce03e326e..9e54c148b7dd06be47a76c9ca114f0e51ab6cc5b 100644 --- a/primitives/membership/src/traits.rs +++ b/primitives/membership/src/traits.rs @@ -16,16 +16,16 @@ use frame_support::pallet_prelude::*; -pub trait CheckMembershipCallAllowed<IdtyId> { - fn check_idty_allowed_to_claim_membership(idty_id: &IdtyId) -> Result<(), DispatchError>; - fn check_idty_allowed_to_renew_membership(idty_id: &IdtyId) -> Result<(), DispatchError>; +pub trait CheckMembershipOpAllowed<IdtyId> { + fn check_add_membership(idty_id: IdtyId) -> Result<(), DispatchError>; + fn check_renew_membership(idty_id: IdtyId) -> Result<(), DispatchError>; } -impl<IdtyId> CheckMembershipCallAllowed<IdtyId> for () { - fn check_idty_allowed_to_claim_membership(_: &IdtyId) -> Result<(), DispatchError> { +impl<IdtyId> CheckMembershipOpAllowed<IdtyId> for () { + fn check_add_membership(_: IdtyId) -> Result<(), DispatchError> { Ok(()) } - fn check_idty_allowed_to_renew_membership(_: &IdtyId) -> Result<(), DispatchError> { + fn check_renew_membership(_: IdtyId) -> Result<(), DispatchError> { Ok(()) } } diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs index d0ce866c0d4bf0bde2f48c5155b05ecdc9f1bdd6..d70ece043f1a29ed2c9f1802b39eb8a23c0be56c 100644 --- a/runtime/common/src/pallets_config.rs +++ b/runtime/common/src/pallets_config.rs @@ -482,7 +482,7 @@ macro_rules! pallets_config { } impl pallet_membership::Config for Runtime { - type CheckMembershipCallAllowed = Wot; + type CheckMembershipOpAllowed = Wot; type IdtyId = IdtyIndex; type IdtyIdOf = common_runtime::providers::IdentityIndexOf<Self>; type AccountIdOf = common_runtime::providers::IdentityAccountIdProvider<Self>; diff --git a/runtime/common/src/weights/pallet_certification.rs b/runtime/common/src/weights/pallet_certification.rs index 3e98b656d34399f3c2954a667f791db2168eca30..4252be4605eae790017201d5e58f1b79ea3267c5 100644 --- a/runtime/common/src/weights/pallet_certification.rs +++ b/runtime/common/src/weights/pallet_certification.rs @@ -54,8 +54,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> /// Proof Skipped: Cert StorageIdtyCertMeta (max_values: None, max_size: None, mode: Measured) /// Storage: Parameters ParametersStorage (r:1 w:0) /// Proof Skipped: Parameters ParametersStorage (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Cert StorageCertsRemovableOn (r:1 w:1) - /// Proof Skipped: Cert StorageCertsRemovableOn (max_values: None, max_size: None, mode: Measured) + /// Storage: Cert CertsRemovableOn (r:1 w:1) + /// Proof Skipped: Cert CertsRemovableOn (max_values: None, max_size: None, mode: Measured) /// Storage: Cert CertsByReceiver (r:1 w:1) /// Proof Skipped: Cert CertsByReceiver (max_values: None, max_size: None, mode: Measured) fn add_cert() -> Weight { @@ -110,8 +110,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T> .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 2511).saturating_mul(i.into())) } - /// Storage: Cert StorageCertsRemovableOn (r:1 w:0) - /// Proof Skipped: Cert StorageCertsRemovableOn (max_values: None, max_size: None, mode: Measured) + /// Storage: Cert CertsRemovableOn (r:1 w:0) + /// Proof Skipped: Cert CertsRemovableOn (max_values: None, max_size: None, mode: Measured) fn on_initialize() -> Weight { // Proof Size summary in bytes: // Measured: `181` diff --git a/runtime/common/src/weights/pallet_identity.rs b/runtime/common/src/weights/pallet_identity.rs index 159094ef918d118978f8caefcf26e22ed75472f4..16189190a6bbb51687c61eea057452de22587d48 100644 --- a/runtime/common/src/weights/pallet_identity.rs +++ b/runtime/common/src/weights/pallet_identity.rs @@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> { /// Proof Skipped: Identity IdentityChangeSchedule (max_values: None, max_size: None, mode: Measured) /// Storage: Identity CounterForIdentities (r:1 w:1) /// Proof: Identity CounterForIdentities (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Cert StorageCertsRemovableOn (r:1 w:1) - /// Proof Skipped: Cert StorageCertsRemovableOn (max_values: None, max_size: None, mode: Measured) + /// Storage: Cert CertsRemovableOn (r:1 w:1) + /// Proof Skipped: Cert CertsRemovableOn (max_values: None, max_size: None, mode: Measured) /// Storage: Cert CertsByReceiver (r:1 w:1) /// Proof Skipped: Cert CertsByReceiver (max_values: None, max_size: None, mode: Measured) /// Storage: Quota IdtyQuota (r:0 w:1)