--- a/pallets/common/src/benchmarking.rs +++ b/pallets/common/src/benchmarking.rs @@ -120,7 +120,9 @@ create_collection_raw( owner, CollectionMode::NFT, - |owner: T::CrossAccountId, data| >::init_collection(owner.clone(), owner, data), + |owner: T::CrossAccountId, data| { + >::init_collection(owner.clone(), Some(owner), data) + }, |h| h, ) } --- a/pallets/foreign-assets/src/benchmarking.rs +++ b/pallets/foreign-assets/src/benchmarking.rs @@ -16,88 +16,29 @@ #![allow(missing_docs)] -use frame_benchmarking::{account, v2::*}; -use frame_support::traits::Currency; +use frame_benchmarking::v2::*; use frame_system::RawOrigin; -use sp_std::{boxed::Box, vec, vec::Vec}; -use staging_xcm::{opaque::latest::Junction::Parachain, v3::Junctions::X1, VersionedMultiLocation}; +use pallet_common::benchmarking::create_u16_data; +use sp_std::vec; +use staging_xcm::prelude::*; +use up_data_structs::{CollectionMode, MAX_COLLECTION_NAME_LENGTH}; use super::{Call, Config, Pallet}; -use crate::AssetMetadata; -fn bounded>>(slice: &[u8]) -> T { - T::try_from(slice.to_vec()) - .map_err(|_| "slice doesn't fit") - .unwrap() -} - #[benchmarks] mod benchmarks { - use super::*; - - #[benchmark] - fn register_foreign_asset() -> Result<(), BenchmarkError> { - let owner: T::AccountId = account("user", 0, 1); - let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(1000))); - let metadata: AssetMetadata< - <::Currency as Currency<::AccountId>>::Balance, - > = AssetMetadata { - name: bounded(b"name"), - symbol: bounded(b"symbol"), - decimals: 18, - minimal_balance: 1u32.into(), - }; - let mut balance: <::Currency as Currency< - ::AccountId, - >>::Balance = 4_000_000_000u32.into(); - balance = balance * balance; - ::Currency::make_free_balance_be(&owner, balance); - #[extrinsic_call] - _( - RawOrigin::Root, - owner, - Box::new(location), - Box::new(metadata), - ); - - Ok(()) - } + use super::*; #[benchmark] - fn update_foreign_asset() -> Result<(), BenchmarkError> { - let owner: T::AccountId = account("user", 0, 1); - let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(2000))); - let metadata: AssetMetadata< - <::Currency as Currency<::AccountId>>::Balance, - > = AssetMetadata { - name: bounded(b"name"), - symbol: bounded(b"symbol"), - decimals: 18, - minimal_balance: 1u32.into(), - }; - let metadata2: AssetMetadata< - <::Currency as Currency<::AccountId>>::Balance, - > = AssetMetadata { - name: bounded(b"name2"), - symbol: bounded(b"symbol2"), - decimals: 18, - minimal_balance: 1u32.into(), - }; - let mut balance: <::Currency as Currency< - ::AccountId, - >>::Balance = 4_000_000_000u32.into(); - balance = balance * balance; - ::Currency::make_free_balance_be(&owner, balance); - Pallet::::register_foreign_asset( - RawOrigin::Root.into(), - owner, - Box::new(location.clone()), - Box::new(metadata), - )?; + fn force_register_foreign_asset() -> Result<(), BenchmarkError> { + let location = + MultiLocation::from(X3(Parachain(1000), PalletInstance(42), GeneralIndex(1))); + let name = create_u16_data::(); + let mode = CollectionMode::NFT; #[extrinsic_call] - _(RawOrigin::Root, 0, Box::new(location), Box::new(metadata2)); + _(RawOrigin::Root, location, name, mode); Ok(()) } --- a/pallets/fungible/src/benchmarking.rs +++ b/pallets/fungible/src/benchmarking.rs @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . use frame_benchmarking::{account, v2::*}; -use pallet_common::{bench_init, benchmarking::create_collection_raw}; +use pallet_common::{bench_init, benchmarking::create_collection_raw, Pallet as PalletCommon}; use sp_std::prelude::*; use up_data_structs::{budget::Unlimited, CollectionMode, MAX_ITEMS_PER_BATCH}; @@ -30,7 +30,9 @@ create_collection_raw( owner, CollectionMode::Fungible(0), - |owner: T::CrossAccountId, data| >::init_collection(owner.clone(), owner, data), + |owner: T::CrossAccountId, data| { + >::init_collection(owner.clone(), Some(owner), data) + }, FungibleHandle::cast, ) } --- a/pallets/nonfungible/src/benchmarking.rs +++ b/pallets/nonfungible/src/benchmarking.rs @@ -18,6 +18,7 @@ use pallet_common::{ bench_init, benchmarking::{create_collection_raw, property_key, property_value}, + Pallet as PalletCommon, }; use sp_std::prelude::*; use up_data_structs::{ @@ -56,7 +57,9 @@ create_collection_raw( owner, CollectionMode::NFT, - |owner: T::CrossAccountId, data| >::init_collection(owner.clone(), owner, data), + |owner: T::CrossAccountId, data| { + >::init_collection(owner.clone(), Some(owner), data) + }, NonfungibleHandle::cast, ) } --- a/pallets/structure/src/benchmarking.rs +++ b/pallets/structure/src/benchmarking.rs @@ -44,7 +44,7 @@ .unwrap(); T::CollectionDispatch::create( caller_cross.clone(), - caller_cross.clone(), + Some(caller_cross.clone()), CreateCollectionData { mode: CollectionMode::NFT, ..Default::default()