git.delta.rocks / unique-network / refs/commits / 583a28bcbcc8

difftreelog

source

pallets/foreign-assets/src/benchmarking.rs2.8 KiBsourcehistory
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#![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}