difftreelog
fix(foreign-assets) make benchmarks do updates
in: master
6 files changed
pallets/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" }
################################################################################
pallets/app-promotion/src/benchmarking.rsdiffbeforeafterboth1// 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}pallets/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,
)
}
pallets/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;
pallets/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))
}
pallets/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
+}