1use super::*;2use crate::{Pallet, Config, FungibleHandle};34use sp_std::prelude::*;5use pallet_common::benchmarking::create_collection_raw;6use frame_benchmarking::{benchmarks, account};7use up_data_structs::{CollectionMode};8use pallet_common::bench_init;910const SEED: u32 = 1;1112fn create_collection<T: Config>(owner: T::AccountId) -> Result<FungibleHandle<T>, DispatchError> {13 create_collection_raw(14 owner,15 CollectionMode::Fungible(0),16 <Pallet<T>>::init_collection,17 FungibleHandle::cast,18 )19}2021benchmarks! {22 create_item {23 bench_init!{24 owner: sub; collection: collection(owner);25 sender: cross_from_sub(owner); to: cross_sub;26 };27 }: {<Pallet<T>>::create_item(&collection, &sender, (to, 200))?}2829 burn_item {30 bench_init!{31 owner: sub; collection: collection(owner);32 owner: cross_from_sub; burner: cross_sub;33 };34 <Pallet<T>>::create_item(&collection, &owner, (burner.clone(), 200))?;35 }: {<Pallet<T>>::burn(&collection, &burner, 100)?}3637 transfer {38 bench_init!{39 owner: sub; collection: collection(owner);40 owner: cross_from_sub; sender: cross_sub; to: cross_sub;41 };42 <Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;43 }: {<Pallet<T>>::transfer(&collection, &sender, &to, 200)?}4445 approve {46 bench_init!{47 owner: sub; collection: collection(owner);48 owner: cross_from_sub; sender: cross_sub; spender: cross_sub;49 };50 <Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;51 }: {<Pallet<T>>::set_allowance(&collection, &sender, &spender, 100)?}5253 transfer_from {54 bench_init!{55 owner: sub; collection: collection(owner);56 owner: cross_from_sub; sender: cross_sub; spender: cross_sub; receiver: cross_sub;57 };58 <Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;59 <Pallet<T>>::set_allowance(&collection, &sender, &spender, 200)?;60 }: {<Pallet<T>>::transfer_from(&collection, &spender, &sender, &receiver, 100)?}6162 burn_from {63 bench_init!{64 owner: sub; collection: collection(owner);65 owner: cross_from_sub; sender: cross_sub; burner: cross_sub;66 };67 <Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;68 <Pallet<T>>::set_allowance(&collection, &sender, &burner, 200)?;69 }: {<Pallet<T>>::burn_from(&collection, &burner, &sender, 100)?}70}