git.delta.rocks / unique-network / refs/commits / 0a85bcfdec34

difftreelog

fix(foreign-assets) make benchmarks do updates

Yaroslav Bolyukin2022-09-16parent: #0141b6c.patch.diff
in: master

6 files changed

modifiedpallets/app-promotion/Cargo.tomldiffbeforeafterboth
--- a/pallets/app-promotion/Cargo.toml
+++ b/pallets/app-promotion/Cargo.toml
@@ -66,8 +66,6 @@
 pallet-common ={ default-features = false, path = "../common" }
 pallet-unique ={ default-features = false, path = "../unique" }
 pallet-evm-contract-helpers ={ default-features = false, path = "../evm-contract-helpers" }
-
-[dev-dependencies]
 pallet-evm-migration ={ default-features = false, path = "../evm-migration" }
 
 ################################################################################
modifiedpallets/app-promotion/src/benchmarking.rsdiffbeforeafterboth
before · pallets/app-promotion/src/benchmarking.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617#![cfg(feature = "runtime-benchmarks")]1819use super::*;20use crate::Pallet as PromototionPallet;2122use sp_runtime::traits::Bounded;23use sp_std::vec;2425use frame_benchmarking::{benchmarks, account};26use frame_support::traits::OnInitialize;27use frame_system::{Origin, RawOrigin};28use pallet_unique::benchmarking::create_nft_collection;29use pallet_evm_migration::Pallet as EvmMigrationPallet;3031const SEED: u32 = 0;3233fn set_admin<T>() -> Result<T::AccountId, sp_runtime::DispatchError>34where35	T: Config + pallet_unique::Config + pallet_evm_migration::Config,36	T::BlockNumber: From<u32> + Into<u32>,37	<<T as Config>::Currency as Currency<T::AccountId>>::Balance: Sum + From<u128>,38{39	let pallet_admin = account::<T::AccountId>("admin", 0, SEED);4041	<T as Config>::Currency::make_free_balance_be(42		&pallet_admin,43		Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value(),44	);4546	PromototionPallet::<T>::set_admin_address(47		RawOrigin::Root.into(),48		T::CrossAccountId::from_sub(pallet_admin.clone()),49	)?;5051	Ok(pallet_admin)52}5354benchmarks! {55	where_clause{56		where T:  Config + pallet_unique::Config + pallet_evm_migration::Config ,57		T::BlockNumber: From<u32> + Into<u32>,58		<<T as Config>::Currency as Currency<T::AccountId>>::Balance: Sum + From<u128>59	}6061	on_initialize {62		let b in 0..PENDING_LIMIT_PER_BLOCK;63		set_admin::<T>()?;6465		(0..b).try_for_each(|index| {66			let staker = account::<T::AccountId>("staker", index, SEED);67			<T as Config>::Currency::make_free_balance_be(&staker,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());68			PromototionPallet::<T>::stake(RawOrigin::Signed(staker.clone()).into(), Into::<BalanceOf<T>>::into(100u128) * T::Nominal::get())?;69			PromototionPallet::<T>::unstake(RawOrigin::Signed(staker.clone()).into()).map_err(|e| e.error)?;70			Result::<(), sp_runtime::DispatchError>::Ok(())71		})?;72		let block_number = <frame_system::Pallet<T>>::current_block_number() + T::PendingInterval::get();73	}: {PromototionPallet::<T>::on_initialize(block_number)}7475	set_admin_address {76		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);77		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());78	} : _(RawOrigin::Root, T::CrossAccountId::from_sub(pallet_admin))7980	payout_stakers{81		let b in 1..101;8283		let pallet_admin = account::<T::AccountId>("admin", 1, SEED);84		let share = Perbill::from_rational(1u32, 20);85		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;86		<T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());8788		let staker: T::AccountId = account("caller", 0, SEED);89		<T as Config>::Currency::make_free_balance_be(&staker,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());90		let stakers: Vec<T::AccountId> = (0..b).map(|index| account("staker", index, SEED)).collect();91		stakers.iter().for_each(|staker| {92			<T as Config>::Currency::make_free_balance_be(&staker,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());93		});94		(0..10).try_for_each(|_| {95			stakers.iter()96				.map(|staker| {97					PromototionPallet::<T>::stake(RawOrigin::Signed(staker.clone()).into(), Into::<BalanceOf<T>>::into(100u128) * T::Nominal::get())98				}).collect::<Result<Vec<_>, _>>()?;99			<frame_system::Pallet<T>>::finalize();100			Result::<(), sp_runtime::DispatchError>::Ok(())101		})?;102	} : _(RawOrigin::Signed(pallet_admin.clone()), Some(b as u8))103104	stake {105		let caller = account::<T::AccountId>("caller", 0, SEED);106		let share = Perbill::from_rational(1u32, 10);107		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());108	} : _(RawOrigin::Signed(caller.clone()), share * <T as Config>::Currency::total_balance(&caller))109110	unstake {111		let caller = account::<T::AccountId>("caller", 0, SEED);112		let share = Perbill::from_rational(1u32, 20);113		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());114		(0..10).map(|_| {115			// used to change block number116			<frame_system::Pallet<T>>::finalize();117			PromototionPallet::<T>::stake(RawOrigin::Signed(caller.clone()).into(), share * <T as Config>::Currency::total_balance(&caller))118		}).collect::<Result<Vec<_>, _>>()?;119120	} : _(RawOrigin::Signed(caller.clone()))121122	sponsor_collection {123		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);124		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;125		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());126		let caller: T::AccountId = account("caller", 0, SEED);127		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());128		let collection = create_nft_collection::<T>(caller.clone())?;129	} : _(RawOrigin::Signed(pallet_admin.clone()), collection)130131	stop_sponsoring_collection {132		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);133		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;134		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());135		let caller: T::AccountId = account("caller", 0, SEED);136		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());137		let collection = create_nft_collection::<T>(caller.clone())?;138		PromototionPallet::<T>::sponsor_collection(RawOrigin::Signed(pallet_admin.clone()).into(), collection)?;139	} : _(RawOrigin::Signed(pallet_admin.clone()), collection)140141	sponsor_contract {142		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);143		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;144145		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());146		let address = H160::from_low_u64_be(SEED as u64);147		let data: Vec<u8> = (0..20 as u8).collect();148		<EvmMigrationPallet<T>>::begin(RawOrigin::Root.into(), address)?;149		<EvmMigrationPallet<T>>::finish(RawOrigin::Root.into(), address, data)?;150	} : _(RawOrigin::Signed(pallet_admin.clone()), address)151152	stop_sponsoring_contract {153		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);154		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;155156		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());157		let address = H160::from_low_u64_be(SEED as u64);158		let data: Vec<u8> = (0..20 as u8).collect();159		<EvmMigrationPallet<T>>::begin(RawOrigin::Root.into(), address)?;160		<EvmMigrationPallet<T>>::finish(RawOrigin::Root.into(), address, data)?;161		PromototionPallet::<T>::sponsor_contract(RawOrigin::Signed(pallet_admin.clone()).into(), address)?;162	} : _(RawOrigin::Signed(pallet_admin.clone()), address)163}
modifiedpallets/common/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/common/src/benchmarking.rs
+++ b/pallets/common/src/benchmarking.rs
@@ -19,8 +19,8 @@
 use pallet_evm::account::CrossAccountId;
 use frame_benchmarking::{benchmarks, account};
 use up_data_structs::{
-	CollectionMode, CreateCollectionData, CollectionId, Property, PropertyKey, PropertyValue,
-	CollectionPermissions, NestingPermissions, MAX_COLLECTION_NAME_LENGTH,
+	CollectionMode, CollectionFlags, CreateCollectionData, CollectionId, Property, PropertyKey,
+	PropertyValue, CollectionPermissions, NestingPermissions, MAX_COLLECTION_NAME_LENGTH,
 	MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, MAX_PROPERTIES_PER_ITEM,
 };
 use frame_support::{
@@ -116,7 +116,7 @@
 	create_collection_raw(
 		owner,
 		CollectionMode::NFT,
-		|owner, data| <Pallet<T>>::init_collection(owner, data, true),
+		|owner, data| <Pallet<T>>::init_collection(owner, data, CollectionFlags::default()),
 		|h| h,
 	)
 }
modifiedpallets/common/src/lib.rsdiffbeforeafterboth
--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -346,7 +346,7 @@
 	use frame_support::{Blake2_128Concat, pallet_prelude::*, storage::Key, traits::StorageVersion};
 	use frame_system::pallet_prelude::*;
 	use frame_support::traits::Currency;
-	use up_data_structs::{TokenId, mapping::TokenAddressMapping, CollectionFlags};
+	use up_data_structs::{TokenId, mapping::TokenAddressMapping};
 	use scale_info::TypeInfo;
 	use weights::WeightInfo;
 
modifiedpallets/foreign-assets/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/foreign-assets/src/benchmarking.rs
+++ b/pallets/foreign-assets/src/benchmarking.rs
@@ -16,11 +16,10 @@
 
 #![allow(missing_docs)]
 
-use super::{Config, Pallet};
+use super::{Config, Pallet, Call};
 use frame_benchmarking::{benchmarks, account};
 use frame_system::RawOrigin;
 use crate::AssetMetadata;
-use crate::Pallet as ForeignAssets;
 use xcm::opaque::latest::Junction::Parachain;
 use xcm::VersionedMultiLocation;
 use frame_support::{
@@ -30,7 +29,6 @@
 
 benchmarks! {
 	register_foreign_asset {
-		let origin: RawOrigin<T::AccountId> = frame_system::RawOrigin::Root;
 		let owner: T::AccountId = account("user", 0, 1);
 		let location: VersionedMultiLocation = VersionedMultiLocation::from(Parachain(1000).into());
 		let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{
@@ -44,12 +42,9 @@
 		balance = balance * balance;
 		<T as Config>::Currency::make_free_balance_be(&owner,
 			balance);
-	}: {
-		ForeignAssets::<T>::register_foreign_asset(origin.into(), owner, Box::new(location), Box::new(metadata))?
-	}
+	}: _(RawOrigin::Root, owner, Box::new(location), Box::new(metadata))
 
 	update_foreign_asset {
-		let origin: RawOrigin<T::AccountId> = frame_system::RawOrigin::Root;
 		let owner: T::AccountId = account("user", 0, 1);
 		let location: VersionedMultiLocation = VersionedMultiLocation::from(Parachain(2000).into());
 		let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{
@@ -68,9 +63,6 @@
 		   4_000_000_000u32.into();
 		balance = balance * balance;
 		<T as Config>::Currency::make_free_balance_be(&owner, balance);
-		ForeignAssets::<T>::register_foreign_asset(origin.clone().into(), owner, Box::new(location.clone()), Box::new(metadata))?;
-
-	}: {
-		ForeignAssets::<T>::update_foreign_asset(origin.into(), 0, Box::new(location), Box::new(metadata2))?
-	}
+		Pallet::<T>::register_foreign_asset(RawOrigin::Root.into(), owner, Box::new(location.clone()), Box::new(metadata))?;
+	}: _(RawOrigin::Root, 0, Box::new(location), Box::new(metadata2))
 }
modifiedpallets/foreign-assets/src/weights.rsdiffbeforeafterboth
--- a/pallets/foreign-assets/src/weights.rs
+++ b/pallets/foreign-assets/src/weights.rs
@@ -1,43 +1,94 @@
+// Template adopted from https://github.com/paritytech/substrate/blob/master/.maintain/frame-weight-template.hbs
 
+//! Autogenerated weights for pallet_foreign_assets
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-09-16, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
+
+// Executed Command:
+// target/release/unique-collator
+// benchmark
+// pallet
+// --pallet
+// pallet-foreign-assets
+// --wasm-execution
+// compiled
+// --extrinsic
+// *
+// --template
+// .maintain/frame-weight-template.hbs
+// --steps=50
+// --repeat=80
+// --heap-pages=4096
+// --output=./pallets/foreign-assets/src/weights.rs
+
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
 #![allow(unused_imports)]
+#![allow(missing_docs)]
 #![allow(clippy::unnecessary_cast)]
 
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use sp_std::marker::PhantomData;
 
-/// Weight functions needed for module_asset_registry.
+/// Weight functions needed for pallet_foreign_assets.
 pub trait WeightInfo {
 	fn register_foreign_asset() -> Weight;
 	fn update_foreign_asset() -> Weight;
 }
 
-/// Weights for pallet_fungible using the Substrate node and recommended hardware.
+/// Weights for pallet_foreign_assets using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	// Storage: Common CreatedCollectionCount (r:1 w:1)
+	// Storage: Common DestroyedCollectionCount (r:1 w:0)
+	// Storage: System Account (r:2 w:2)
+	// Storage: ForeignAssets NextForeignAssetId (r:1 w:1)
+	// Storage: ForeignAssets LocationToCurrencyIds (r:1 w:1)
+	// Storage: ForeignAssets ForeignAssetLocations (r:1 w:1)
+	// Storage: ForeignAssets AssetMetadatas (r:1 w:1)
+	// Storage: ForeignAssets AssetBinding (r:1 w:1)
+	// Storage: Common CollectionPropertyPermissions (r:0 w:1)
+	// Storage: Common CollectionProperties (r:0 w:1)
+	// Storage: Common CollectionById (r:0 w:1)
 	fn register_foreign_asset() -> Weight {
-		(29_819_000 as Weight)
-			.saturating_add(T::DbWeight::get().reads(2 as Weight))
-			.saturating_add(T::DbWeight::get().writes(3 as Weight))
+		(52_161_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(9 as Weight))
+			.saturating_add(T::DbWeight::get().writes(11 as Weight))
 	}
+	// Storage: ForeignAssets ForeignAssetLocations (r:1 w:1)
+	// Storage: ForeignAssets AssetMetadatas (r:1 w:1)
 	fn update_foreign_asset() -> Weight {
-		(25_119_000 as Weight)
-			.saturating_add(T::DbWeight::get().reads(1 as Weight))
-			.saturating_add(T::DbWeight::get().writes(1 as Weight))
+		(19_111_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(2 as Weight))
+			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
 }
 
 // For backwards compatibility and tests
 impl WeightInfo for () {
+	// Storage: Common CreatedCollectionCount (r:1 w:1)
+	// Storage: Common DestroyedCollectionCount (r:1 w:0)
+	// Storage: System Account (r:2 w:2)
+	// Storage: ForeignAssets NextForeignAssetId (r:1 w:1)
+	// Storage: ForeignAssets LocationToCurrencyIds (r:1 w:1)
+	// Storage: ForeignAssets ForeignAssetLocations (r:1 w:1)
+	// Storage: ForeignAssets AssetMetadatas (r:1 w:1)
+	// Storage: ForeignAssets AssetBinding (r:1 w:1)
+	// Storage: Common CollectionPropertyPermissions (r:0 w:1)
+	// Storage: Common CollectionProperties (r:0 w:1)
+	// Storage: Common CollectionById (r:0 w:1)
 	fn register_foreign_asset() -> Weight {
-		(29_819_000 as Weight)
-			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
-			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
+		(52_161_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(9 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(11 as Weight))
 	}
+	// Storage: ForeignAssets ForeignAssetLocations (r:1 w:1)
+	// Storage: ForeignAssets AssetMetadatas (r:1 w:1)
 	fn update_foreign_asset() -> Weight {
-		(25_119_000 as Weight)
-			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
-			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
+		(19_111_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
-}
\ No newline at end of file
+}