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.rsdiffbeforeafterboth257 let item = create_max_item(&collection, &owner, [(owner.clone(), 200)])?;257 let item = create_max_item(&collection, &owner, [(owner.clone(), 200)])?;258 }: {<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), SetPropertyMode::ExistingToken, &Unlimited)?}258 }: {<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), SetPropertyMode::ExistingToken, &Unlimited)?}259260 reset_token_properties {261 let b in 0..MAX_PROPERTIES_PER_ITEM;262 bench_init!{263 owner: sub; collection: collection(owner);264 owner: cross_from_sub;265 };266 let perms = (0..b).map(|k| PropertyKeyPermission {267 key: property_key(k as usize),268 permission: PropertyPermission {269 mutable: false,270 collection_admin: true,271 token_owner: true,272 },273 }).collect::<Vec<_>>();274 <Pallet<T>>::set_token_property_permissions(&collection, &owner, perms)?;275 let props = (0..b).map(|k| Property {276 key: property_key(k as usize),277 value: property_value(),278 }).collect::<Vec<_>>();279 let item = create_max_item(&collection, &owner, [(owner.clone(), 200)])?;280 }: {<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), SetPropertyMode::NewToken { mint_target_is_sender: true }, &Unlimited)?}259281260 delete_token_properties {282 delete_token_properties {261 let b in 0..MAX_PROPERTIES_PER_ITEM;283 let b in 0..MAX_PROPERTIES_PER_ITEM;pallets/refungible/src/common.rsdiffbeforeafterboth--- a/pallets/refungible/src/common.rs
+++ b/pallets/refungible/src/common.rs
@@ -47,7 +47,7 @@
fn properties_weight<T: Config>(properties: &CollectionPropertiesVec) -> Weight {
if properties.len() > 0 {
- <CommonWeights<T>>::set_token_properties(properties.len() as u32)
+ <SelfWeightOf<T>>::reset_token_properties(properties.len() as u32)
} else {
Weight::zero()
}