difftreelog
feat(foreign-asset) enable PoV benchmarking
in: master
2 files changed
pallets/foreign-assets/src/benchmarking.rsdiffbeforeafterboth24use xcm::VersionedMultiLocation;24use xcm::VersionedMultiLocation;25use xcm::v3::Junctions::X1;25use xcm::v3::Junctions::X1;26use frame_support::traits::Currency;26use frame_support::traits::Currency;27use sp_std::boxed::Box;27use sp_std::{vec::Vec, boxed::Box};2829fn bounded<T: TryFrom<Vec<u8>>>(slice: &[u8]) -> T {30 T::try_from(slice.to_vec())31 .map_err(|_| "slice doesn't fit")32 .unwrap()33}283429benchmarks! {35benchmarks! {30 register_foreign_asset {36 register_foreign_asset {31 let owner: T::AccountId = account("user", 0, 1);37 let owner: T::AccountId = account("user", 0, 1);32 let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(1000)));38 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{39 let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{34 name: "name".into(),40 name: bounded(b"name"),35 symbol: "symbol".into(),41 symbol: bounded(b"symbol"),36 decimals: 18,42 decimals: 18,37 minimal_balance: 1u32.into()43 minimal_balance: 1u32.into()38 };44 };47 let owner: T::AccountId = account("user", 0, 1);53 let owner: T::AccountId = account("user", 0, 1);48 let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(2000)));54 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{55 let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{50 name: "name".into(),56 name: bounded(b"name"),51 symbol: "symbol".into(),57 symbol: bounded(b"symbol"),52 decimals: 18,58 decimals: 18,53 minimal_balance: 1u32.into()59 minimal_balance: 1u32.into()54 };60 };55 let metadata2: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{61 let metadata2: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{56 name: "name2".into(),62 name: bounded(b"name2"),57 symbol: "symbol2".into(),63 symbol: bounded(b"symbol2"),58 decimals: 18,64 decimals: 18,59 minimal_balance: 1u32.into()65 minimal_balance: 1u32.into()60 };66 };pallets/foreign-assets/src/lib.rsdiffbeforeafterboth--- a/pallets/foreign-assets/src/lib.rs
+++ b/pallets/foreign-assets/src/lib.rs
@@ -190,10 +190,13 @@
type WeightInfo: WeightInfo;
}
- #[derive(Clone, Eq, PartialEq, RuntimeDebug, Encode, Decode, TypeInfo)]
+ pub type AssetName = BoundedVec<u8, ConstU32<32>>;
+ pub type AssetSymbol = BoundedVec<u8, ConstU32<7>>;
+
+ #[derive(Clone, Eq, PartialEq, RuntimeDebug, Encode, Decode, TypeInfo, MaxEncodedLen)]
pub struct AssetMetadata<Balance> {
- pub name: Vec<u8>,
- pub symbol: Vec<u8>,
+ pub name: AssetName,
+ pub symbol: AssetSymbol,
pub decimals: u8,
pub minimal_balance: Balance,
}