difftreelog
feat(foreign-asset) enable PoV benchmarking
in: master
2 files changed
pallets/foreign-assets/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/foreign-assets/src/benchmarking.rs
+++ b/pallets/foreign-assets/src/benchmarking.rs
@@ -24,15 +24,21 @@
use xcm::VersionedMultiLocation;
use xcm::v3::Junctions::X1;
use frame_support::traits::Currency;
-use sp_std::boxed::Box;
+use sp_std::{vec::Vec, boxed::Box};
+
+fn bounded<T: TryFrom<Vec<u8>>>(slice: &[u8]) -> T {
+ T::try_from(slice.to_vec())
+ .map_err(|_| "slice doesn't fit")
+ .unwrap()
+}
benchmarks! {
register_foreign_asset {
let owner: T::AccountId = account("user", 0, 1);
let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(1000)));
let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{
- name: "name".into(),
- symbol: "symbol".into(),
+ name: bounded(b"name"),
+ symbol: bounded(b"symbol"),
decimals: 18,
minimal_balance: 1u32.into()
};
@@ -47,14 +53,14 @@
let owner: T::AccountId = account("user", 0, 1);
let location: VersionedMultiLocation = VersionedMultiLocation::from(X1(Parachain(2000)));
let metadata: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{
- name: "name".into(),
- symbol: "symbol".into(),
+ name: bounded(b"name"),
+ symbol: bounded(b"symbol"),
decimals: 18,
minimal_balance: 1u32.into()
};
let metadata2: AssetMetadata<<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance> = AssetMetadata{
- name: "name2".into(),
- symbol: "symbol2".into(),
+ name: bounded(b"name2"),
+ symbol: bounded(b"symbol2"),
decimals: 18,
minimal_balance: 1u32.into()
};
pallets/foreign-assets/src/lib.rsdiffbeforeafterboth190 type WeightInfo: WeightInfo;190 type WeightInfo: WeightInfo;191 }191 }192193 pub type AssetName = BoundedVec<u8, ConstU32<32>>;194 pub type AssetSymbol = BoundedVec<u8, ConstU32<7>>;192195193 #[derive(Clone, Eq, PartialEq, RuntimeDebug, Encode, Decode, TypeInfo)]196 #[derive(Clone, Eq, PartialEq, RuntimeDebug, Encode, Decode, TypeInfo, MaxEncodedLen)]194 pub struct AssetMetadata<Balance> {197 pub struct AssetMetadata<Balance> {195 pub name: Vec<u8>,198 pub name: AssetName,196 pub symbol: Vec<u8>,199 pub symbol: AssetSymbol,197 pub decimals: u8,200 pub decimals: u8,198 pub minimal_balance: Balance,201 pub minimal_balance: Balance,199 }202 }