1234567891011121314151617#![allow(missing_docs)]1819use super::{Config, Pallet, Call};20use frame_benchmarking::{benchmarks, account};21use frame_system::RawOrigin;22use crate::AssetMetadata;23use xcm::opaque::latest::Junction::Parachain;24use xcm::VersionedMultiLocation;25use xcm::v3::Junctions::X1;26use frame_support::traits::Currency;27use sp_std::boxed::Box;2829benchmarks! {30 register_foreign_asset {31 let owner: T::AccountId = account("user", 0, 1);32 let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(1000)));33 let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{34 name: "name".into(),35 symbol: "symbol".into(),36 decimals: 18,37 minimal_balance: 1u32.into()38 };39 let mut balance: <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance =40 4_000_000_000u32.into();41 balance = balance * balance;42 <T as Config>::Currency::make_free_balance_be(&owner,43 balance);44 }: _(RawOrigin::Root, owner, Box::new(location), Box::new(metadata))4546 update_foreign_asset {47 let owner: T::AccountId = account("user", 0, 1);48 let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(2000)));49 let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{50 name: "name".into(),51 symbol: "symbol".into(),52 decimals: 18,53 minimal_balance: 1u32.into()54 };55 let metadata2: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{56 name: "name2".into(),57 symbol: "symbol2".into(),58 decimals: 18,59 minimal_balance: 1u32.into()60 };61 let mut balance: <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance =62 4_000_000_000u32.into();63 balance = balance * balance;64 <T as Config>::Currency::make_free_balance_be(&owner, balance);65 Pallet::<T>::register_foreign_asset(RawOrigin::Root.into(), owner, Box::new(location.clone()), Box::new(metadata))?;66 }: _(RawOrigin::Root, 0, Box::new(location), Box::new(metadata2))67}