difftreelog
feat add reset_token_properties benchmark
in: master
4 files changed
pallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/benchmarking.rs
+++ b/pallets/nonfungible/src/benchmarking.rs
@@ -200,6 +200,28 @@
let item = create_max_item(&collection, &owner, owner.clone())?;
}: {<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), SetPropertyMode::ExistingToken, &Unlimited)?}
+ reset_token_properties {
+ let b in 0..MAX_PROPERTIES_PER_ITEM;
+ bench_init!{
+ owner: sub; collection: collection(owner);
+ owner: cross_from_sub;
+ };
+ let perms = (0..b).map(|k| PropertyKeyPermission {
+ key: property_key(k as usize),
+ permission: PropertyPermission {
+ mutable: false,
+ collection_admin: true,
+ token_owner: true,
+ },
+ }).collect::<Vec<_>>();
+ <Pallet<T>>::set_token_property_permissions(&collection, &owner, perms)?;
+ let props = (0..b).map(|k| Property {
+ key: property_key(k as usize),
+ value: property_value(),
+ }).collect::<Vec<_>>();
+ let item = create_max_item(&collection, &owner, owner.clone())?;
+ }: {<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), SetPropertyMode::NewToken { mint_target_is_sender: true }, &Unlimited)?}
+
delete_token_properties {
let b in 0..MAX_PROPERTIES_PER_ITEM;
bench_init!{
pallets/nonfungible/src/common.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -42,7 +42,9 @@
+ t.iter()
.filter_map(|t| {
if t.properties.len() > 0 {
- Some(Self::set_token_properties(t.properties.len() as u32))
+ Some(<SelfWeightOf<T>>::reset_token_properties(
+ t.properties.len() as u32,
+ ))
} else {
None
}
@@ -58,9 +60,9 @@
+ data
.iter()
.filter_map(|t| match t {
- up_data_structs::CreateItemData::NFT(n) if n.properties.len() > 0 => {
- Some(Self::set_token_properties(n.properties.len() as u32))
- }
+ up_data_structs::CreateItemData::NFT(n) if n.properties.len() > 0 => Some(
+ <SelfWeightOf<T>>::reset_token_properties(n.properties.len() as u32),
+ ),
_ => None,
})
.fold(Weight::zero(), |a, b| a.saturating_add(b))
pallets/refungible/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/refungible/src/benchmarking.rs
+++ b/pallets/refungible/src/benchmarking.rs
@@ -257,6 +257,28 @@
let item = create_max_item(&collection, &owner, [(owner.clone(), 200)])?;
}: {<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), SetPropertyMode::ExistingToken, &Unlimited)?}
+ reset_token_properties {
+ let b in 0..MAX_PROPERTIES_PER_ITEM;
+ bench_init!{
+ owner: sub; collection: collection(owner);
+ owner: cross_from_sub;
+ };
+ let perms = (0..b).map(|k| PropertyKeyPermission {
+ key: property_key(k as usize),
+ permission: PropertyPermission {
+ mutable: false,
+ collection_admin: true,
+ token_owner: true,
+ },
+ }).collect::<Vec<_>>();
+ <Pallet<T>>::set_token_property_permissions(&collection, &owner, perms)?;
+ let props = (0..b).map(|k| Property {
+ key: property_key(k as usize),
+ value: property_value(),
+ }).collect::<Vec<_>>();
+ let item = create_max_item(&collection, &owner, [(owner.clone(), 200)])?;
+ }: {<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), SetPropertyMode::NewToken { mint_target_is_sender: true }, &Unlimited)?}
+
delete_token_properties {
let b in 0..MAX_PROPERTIES_PER_ITEM;
bench_init!{
pallets/refungible/src/common.rsdiffbeforeafterboth474748fn properties_weight<T: Config>(properties: &CollectionPropertiesVec) -> Weight {48fn properties_weight<T: Config>(properties: &CollectionPropertiesVec) -> Weight {49 if properties.len() > 0 {49 if properties.len() > 0 {50 <CommonWeights<T>>::set_token_properties(properties.len() as u32)50 <SelfWeightOf<T>>::reset_token_properties(properties.len() as u32)51 } else {51 } else {52 Weight::zero()52 Weight::zero()53 }53 }