git.delta.rocks / unique-network / refs/commits / 9c8e0787fab1

difftreelog

feat add reset_token_properties benchmark

Daniel Shiposha2023-09-25parent: #e3c9079.patch.diff
in: master

4 files changed

modifiedpallets/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!{
modifiedpallets/nonfungible/src/common.rsdiffbeforeafterboth
42 + 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 + data
59 .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))
modifiedpallets/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!{
modifiedpallets/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()
 	}