diff --git a/pallets/identity/src/benchmarking.rs b/pallets/identity/src/benchmarking.rs index 429043ff4aa735c63b8a91b21935f295817175b9..fea88edfd280be3f36bcee60b0f84a66fc8069e2 100644 --- a/pallets/identity/src/benchmarking.rs +++ b/pallets/identity/src/benchmarking.rs @@ -123,6 +123,8 @@ benchmarks! { T::AccountId: From<AccountId32>, T::IdtyIndex: From<u32>, } + + // create identity create_identity { let caller: T::AccountId = Identities::<T>::get(T::IdtyIndex::one()).unwrap().owner_key; // Alice let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into(); @@ -134,6 +136,7 @@ benchmarks! { assert_has_event::<T>(Event::<T>::IdtyCreated { idty_index: idty_index.unwrap(), owner_key: owner_key }.into()); } + // confirm identity confirm_identity { let caller: T::AccountId = Identities::<T>::get(T::IdtyIndex::one()).unwrap().owner_key; let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into(); @@ -146,6 +149,7 @@ benchmarks! { assert_has_event::<T>(Event::<T>::IdtyConfirmed { idty_index: idty_index.unwrap(), owner_key: owner_key, name: IdtyName("new_identity".into()) }.into()); } + // change owner key change_owner_key { let old_key: T::AccountId = account("new_identity", 2, SEED); let account: Account<T> = create_one_identity(old_key.clone())?; @@ -183,6 +187,7 @@ benchmarks! { assert!(IdentityIndexOf::<T>::get(&caller).unwrap() == account.index, "Owner key not changed"); } + // revoke identity revoke_identity { let old_key: T::AccountId = account("new_identity", 2, SEED); let account: Account<T> = create_one_identity(old_key.clone())?; @@ -234,6 +239,7 @@ benchmarks! { } } + // fix sufficients identity fix_sufficients { let new_identity: T::AccountId = account("Bob", 2, SEED); let account: Account<T> = create_one_identity(new_identity)?; @@ -243,6 +249,7 @@ benchmarks! { assert!(sufficient < frame_system::Pallet::<T>::sufficients(&account.key), "Sufficient not incremented"); } + // link account link_account { let alice_origin = RawOrigin::Signed(Identities::<T>::get(T::IdtyIndex::one()).unwrap().owner_key); let bob_public = sr25519_generate(0.into(), None); @@ -253,9 +260,32 @@ benchmarks! { ).encode(); let signature = sr25519_sign(0.into(), &bob_public, &payload).unwrap().into(); }: _<T::RuntimeOrigin>(alice_origin.into(), bob, signature) + // Base weight of an empty initialize on_initialize { }: {Pallet::<T>::on_initialize(BlockNumberFor::<T>::zero());} + + // --- do revoke identity + do_revoke_identity_noop { + let idty_index: T::IdtyIndex = 0u32.into(); + assert!(Identities::<T>::get(idty_index).is_none()); + }: {Pallet::<T>::do_revoke_identity(idty_index, RevocationReason::Root);} + do_revoke_identity { + let idty_index: T::IdtyIndex = 1u32.into(); + let new_identity: T::AccountId = account("Bob", 2, SEED); + assert!(Identities::<T>::get(idty_index).is_some()); + Identities::<T>::mutate( idty_index, |id| { + if let Some(id) = id { + id.old_owner_key = Some((new_identity, BlockNumberFor::<T>::zero())); + } + }); + assert!(Identities::<T>::get(idty_index).unwrap().old_owner_key.is_some()); + }: {Pallet::<T>::do_revoke_identity(idty_index, RevocationReason::Root);} + verify { + assert_has_event::<T>(Event::<T>::IdtyRevoked { idty_index, reason: RevocationReason::Root }.into()); + } + + // --- do remove identity do_remove_identity_noop { let idty_index: T::IdtyIndex = 0u32.into(); assert!(Identities::<T>::get(idty_index).is_none()); @@ -274,15 +304,19 @@ benchmarks! { verify { assert_has_event::<T>(Event::<T>::IdtyRemoved { idty_index, reason: RemovalReason::Revoked }.into()); } + + // --- prune identities prune_identities_noop { assert!(IdentityChangeSchedule::<T>::try_get(T::BlockNumber::zero()).is_err()); }: {Pallet::<T>::prune_identities(T::BlockNumber::zero());} + prune_identities_none { let idty_index: T::IdtyIndex = 100u32.into(); IdentityChangeSchedule::<T>::append(T::BlockNumber::zero(), idty_index); assert!(IdentityChangeSchedule::<T>::try_get(T::BlockNumber::zero()).is_ok()); assert!(<Identities<T>>::try_get(idty_index).is_err()); }: {Pallet::<T>::prune_identities(T::BlockNumber::zero());} + prune_identities_err { let idty_index: T::IdtyIndex = 100u32.into(); create_dummy_identity::<T>(100u32)?;