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.rsdiffbeforeafterboth42 + t.iter()42 + t.iter()43 .filter_map(|t| {43 .filter_map(|t| {44 if t.properties.len() > 0 {44 if t.properties.len() > 0 {45 Some(Self::set_token_properties(t.properties.len() as u32))45 Some(<SelfWeightOf<T>>::reset_token_properties(46 t.properties.len() as u32,47 ))46 } else {48 } else {58 + data60 + data59 .iter()61 .iter()60 .filter_map(|t| match t {62 .filter_map(|t| match t {61 up_data_structs::CreateItemData::NFT(n) if n.properties.len() > 0 => {63 up_data_structs::CreateItemData::NFT(n) if n.properties.len() > 0 => Some(62 Some(Self::set_token_properties(n.properties.len() as u32))64 <SelfWeightOf<T>>::reset_token_properties(n.properties.len() as u32),63 }65 ),64 _ => None,66 _ => None,65 })67 })66 .fold(Weight::zero(), |a, b| a.saturating_add(b))68 .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.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()
}