difftreelog
style fix formatting
in: master
1 file changed
pallets/unique/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;21use frame_system::RawOrigin;22use frame_support::traits::{tokens::currency::Currency, Get};23use frame_benchmarking::{benchmarks, account};24use sp_runtime::DispatchError;25use pallet_common::{26 Config as CommonConfig,27 benchmarking::{create_data, create_u16_data},28};2930const SEED: u32 = 1;3132fn create_collection_helper<T: Config>(33 owner: T::AccountId,34 mode: CollectionMode,35) -> Result<CollectionId, DispatchError> {36 <T as CommonConfig>::Currency::deposit_creating(&owner, T::CollectionCreationPrice::get());37 let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();38 let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();39 let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();40 <Pallet<T>>::create_collection(41 RawOrigin::Signed(owner).into(),42 col_name,43 col_desc,44 token_prefix,45 mode,46 )?;47 Ok(<pallet_common::CreatedCollectionCount<T>>::get())48}49pub fn create_nft_collection<T: Config>(50 owner: T::AccountId,51) -> Result<CollectionId, DispatchError> {52 create_collection_helper::<T>(owner, CollectionMode::NFT)53}5455benchmarks! {56 create_collection {57 let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();58 let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();59 let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();60 let mode: CollectionMode = CollectionMode::NFT;61 let caller: T::AccountId = account("caller", 0, SEED);62 <T as CommonConfig>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());63 }: _(RawOrigin::Signed(caller.clone()), col_name.clone(), col_desc.clone(), token_prefix.clone(), mode)64 verify {65 assert_eq!(<pallet_common::CollectionById<T>>::get(CollectionId(1)).unwrap().owner, caller);66 }6768 destroy_collection {69 let caller: T::AccountId = account("caller", 0, SEED);70 let collection = create_nft_collection::<T>(caller.clone())?;71 }: _(RawOrigin::Signed(caller.clone()), collection)7273 add_to_allow_list {74 let caller: T::AccountId = account("caller", 0, SEED);75 let allowlist_account: T::AccountId = account("admin", 0, SEED);76 let collection = create_nft_collection::<T>(caller.clone())?;77 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(allowlist_account))7879 remove_from_allow_list {80 let caller: T::AccountId = account("caller", 0, SEED);81 let allowlist_account: T::AccountId = account("admin", 0, SEED);82 let collection = create_nft_collection::<T>(caller.clone())?;83 <Pallet<T>>::add_to_allow_list(RawOrigin::Signed(caller.clone()).into(), collection, T::CrossAccountId::from_sub(allowlist_account.clone()))?;84 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(allowlist_account))8586 change_collection_owner {87 let caller: T::AccountId = account("caller", 0, SEED);88 let collection = create_nft_collection::<T>(caller.clone())?;89 let new_owner: T::AccountId = account("admin", 0, SEED);90 }: _(RawOrigin::Signed(caller.clone()), collection, new_owner)9192 add_collection_admin {93 let caller: T::AccountId = account("caller", 0, SEED);94 let collection = create_nft_collection::<T>(caller.clone())?;95 let new_admin: T::AccountId = account("admin", 0, SEED);96 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(new_admin))9798 remove_collection_admin {99 let caller: T::AccountId = account("caller", 0, SEED);100 let collection = create_nft_collection::<T>(caller.clone())?;101 let new_admin: T::AccountId = account("admin", 0, SEED);102 <Pallet<T>>::add_collection_admin(RawOrigin::Signed(caller.clone()).into(), collection, T::CrossAccountId::from_sub(new_admin.clone()))?;103 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(new_admin))104105 set_collection_sponsor {106 let caller: T::AccountId = account("caller", 0, SEED);107 let collection = create_nft_collection::<T>(caller.clone())?;108 }: _(RawOrigin::Signed(caller.clone()), collection, caller.clone())109110 confirm_sponsorship {111 let caller: T::AccountId = account("caller", 0, SEED);112 let collection = create_nft_collection::<T>(caller.clone())?;113 <Pallet<T>>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), collection, caller.clone())?;114 }: _(RawOrigin::Signed(caller.clone()), collection)115116 remove_collection_sponsor {117 let caller: T::AccountId = account("caller", 0, SEED);118 let collection = create_nft_collection::<T>(caller.clone())?;119 <Pallet<T>>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), collection, caller.clone())?;120 <Pallet<T>>::confirm_sponsorship(RawOrigin::Signed(caller.clone()).into(), collection)?;121 }: _(RawOrigin::Signed(caller.clone()), collection)122123 set_transfers_enabled_flag {124 let caller: T::AccountId = account("caller", 0, SEED);125 let collection = create_nft_collection::<T>(caller.clone())?;126 }: _(RawOrigin::Signed(caller.clone()), collection, false)127128129 set_collection_limits {130 let caller: T::AccountId = account("caller", 0, SEED);131 let collection = create_nft_collection::<T>(caller.clone())?;132133 let cl = CollectionLimits {134 account_token_ownership_limit: Some(0),135 sponsored_data_size: Some(0),136 token_limit: Some(1),137 sponsor_transfer_timeout: Some(0),138 sponsor_approve_timeout: None,139 owner_can_destroy: Some(true),140 owner_can_transfer: Some(true),141 sponsored_data_rate_limit: None,142 transfers_enabled: Some(true),143 };144 }: set_collection_limits(RawOrigin::Signed(caller.clone()), collection, cl)145146 force_repair_collection {147 let caller: T::AccountId = account("caller", 0, SEED);148 let collection = create_nft_collection::<T>(caller.clone())?;149 }: _(RawOrigin::Root, collection)150}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;21use frame_system::RawOrigin;22use frame_support::traits::{tokens::currency::Currency, Get};23use frame_benchmarking::{benchmarks, account};24use sp_runtime::DispatchError;25use pallet_common::{26 Config as CommonConfig,27 benchmarking::{create_data, create_u16_data},28};2930const SEED: u32 = 1;3132fn create_collection_helper<T: Config>(33 owner: T::AccountId,34 mode: CollectionMode,35) -> Result<CollectionId, DispatchError> {36 <T as CommonConfig>::Currency::deposit_creating(&owner, T::CollectionCreationPrice::get());37 let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();38 let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();39 let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();40 <Pallet<T>>::create_collection(41 RawOrigin::Signed(owner).into(),42 col_name,43 col_desc,44 token_prefix,45 mode,46 )?;47 Ok(<pallet_common::CreatedCollectionCount<T>>::get())48}49pub fn create_nft_collection<T: Config>(50 owner: T::AccountId,51) -> Result<CollectionId, DispatchError> {52 create_collection_helper::<T>(owner, CollectionMode::NFT)53}5455benchmarks! {56 create_collection {57 let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();58 let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();59 let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();60 let mode: CollectionMode = CollectionMode::NFT;61 let caller: T::AccountId = account("caller", 0, SEED);62 <T as CommonConfig>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());63 }: _(RawOrigin::Signed(caller.clone()), col_name.clone(), col_desc.clone(), token_prefix.clone(), mode)64 verify {65 assert_eq!(<pallet_common::CollectionById<T>>::get(CollectionId(1)).unwrap().owner, caller);66 }6768 destroy_collection {69 let caller: T::AccountId = account("caller", 0, SEED);70 let collection = create_nft_collection::<T>(caller.clone())?;71 }: _(RawOrigin::Signed(caller.clone()), collection)7273 add_to_allow_list {74 let caller: T::AccountId = account("caller", 0, SEED);75 let allowlist_account: T::AccountId = account("admin", 0, SEED);76 let collection = create_nft_collection::<T>(caller.clone())?;77 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(allowlist_account))7879 remove_from_allow_list {80 let caller: T::AccountId = account("caller", 0, SEED);81 let allowlist_account: T::AccountId = account("admin", 0, SEED);82 let collection = create_nft_collection::<T>(caller.clone())?;83 <Pallet<T>>::add_to_allow_list(RawOrigin::Signed(caller.clone()).into(), collection, T::CrossAccountId::from_sub(allowlist_account.clone()))?;84 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(allowlist_account))8586 change_collection_owner {87 let caller: T::AccountId = account("caller", 0, SEED);88 let collection = create_nft_collection::<T>(caller.clone())?;89 let new_owner: T::AccountId = account("admin", 0, SEED);90 }: _(RawOrigin::Signed(caller.clone()), collection, new_owner)9192 add_collection_admin {93 let caller: T::AccountId = account("caller", 0, SEED);94 let collection = create_nft_collection::<T>(caller.clone())?;95 let new_admin: T::AccountId = account("admin", 0, SEED);96 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(new_admin))9798 remove_collection_admin {99 let caller: T::AccountId = account("caller", 0, SEED);100 let collection = create_nft_collection::<T>(caller.clone())?;101 let new_admin: T::AccountId = account("admin", 0, SEED);102 <Pallet<T>>::add_collection_admin(RawOrigin::Signed(caller.clone()).into(), collection, T::CrossAccountId::from_sub(new_admin.clone()))?;103 }: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(new_admin))104105 set_collection_sponsor {106 let caller: T::AccountId = account("caller", 0, SEED);107 let collection = create_nft_collection::<T>(caller.clone())?;108 }: _(RawOrigin::Signed(caller.clone()), collection, caller.clone())109110 confirm_sponsorship {111 let caller: T::AccountId = account("caller", 0, SEED);112 let collection = create_nft_collection::<T>(caller.clone())?;113 <Pallet<T>>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), collection, caller.clone())?;114 }: _(RawOrigin::Signed(caller.clone()), collection)115116 remove_collection_sponsor {117 let caller: T::AccountId = account("caller", 0, SEED);118 let collection = create_nft_collection::<T>(caller.clone())?;119 <Pallet<T>>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), collection, caller.clone())?;120 <Pallet<T>>::confirm_sponsorship(RawOrigin::Signed(caller.clone()).into(), collection)?;121 }: _(RawOrigin::Signed(caller.clone()), collection)122123 set_transfers_enabled_flag {124 let caller: T::AccountId = account("caller", 0, SEED);125 let collection = create_nft_collection::<T>(caller.clone())?;126 }: _(RawOrigin::Signed(caller.clone()), collection, false)127128129 set_collection_limits {130 let caller: T::AccountId = account("caller", 0, SEED);131 let collection = create_nft_collection::<T>(caller.clone())?;132133 let cl = CollectionLimits {134 account_token_ownership_limit: Some(0),135 sponsored_data_size: Some(0),136 token_limit: Some(1),137 sponsor_transfer_timeout: Some(0),138 sponsor_approve_timeout: None,139 owner_can_destroy: Some(true),140 owner_can_transfer: Some(true),141 sponsored_data_rate_limit: None,142 transfers_enabled: Some(true),143 };144 }: set_collection_limits(RawOrigin::Signed(caller.clone()), collection, cl)145146 force_repair_collection {147 let caller: T::AccountId = account("caller", 0, SEED);148 let collection = create_nft_collection::<T>(caller.clone())?;149 }: _(RawOrigin::Root, collection)150}