git.delta.rocks / unique-network / refs/commits / bf405ef96b15

difftreelog

source

pallets/fungible/src/benchmarking.rs2.6 KiBsourcehistory
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, MAX_ITEMS_PER_BATCH};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	create_multiple_items_ex {30		let b in 0..MAX_ITEMS_PER_BATCH;31		bench_init!{32			owner: sub; collection: collection(owner);33			sender: cross_from_sub(owner);34		};35		let data = (0..b).map(|i| {36			bench_init!(to: cross_sub(i););37			(to, 200)38		}).collect::<BTreeMap<_, _>>().try_into().unwrap();39	}: {<Pallet<T>>::create_multiple_items(&collection, &sender, data)}4041	burn_item {42		bench_init!{43			owner: sub; collection: collection(owner);44			owner: cross_from_sub; burner: cross_sub;45		};46		<Pallet<T>>::create_item(&collection, &owner, (burner.clone(), 200))?;47	}: {<Pallet<T>>::burn(&collection, &burner, 100)?}4849	transfer {50		bench_init!{51			owner: sub; collection: collection(owner);52			owner: cross_from_sub; sender: cross_sub; to: cross_sub;53		};54		<Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;55	}: {<Pallet<T>>::transfer(&collection, &sender, &to, 200)?}5657	approve {58		bench_init!{59			owner: sub; collection: collection(owner);60			owner: cross_from_sub; sender: cross_sub; spender: cross_sub;61		};62		<Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;63	}: {<Pallet<T>>::set_allowance(&collection, &sender, &spender, 100)?}6465	transfer_from {66		bench_init!{67			owner: sub; collection: collection(owner);68			owner: cross_from_sub; sender: cross_sub; spender: cross_sub; receiver: cross_sub;69		};70		<Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;71		<Pallet<T>>::set_allowance(&collection, &sender, &spender, 200)?;72	}: {<Pallet<T>>::transfer_from(&collection, &spender, &sender, &receiver, 100)?}7374	burn_from {75		bench_init!{76			owner: sub; collection: collection(owner);77			owner: cross_from_sub; sender: cross_sub; burner: cross_sub;78		};79		<Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;80		<Pallet<T>>::set_allowance(&collection, &sender, &burner, 200)?;81	}: {<Pallet<T>>::burn_from(&collection, &burner, &sender, 100)?}82}