git.delta.rocks / unique-network / refs/commits / 59156c4c0e62

difftreelog

feat(foreign-asset) enable PoV benchmarking

Yaroslav Bolyukin2023-03-24parent: #583a28b.patch.diff
in: master

2 files changed

modifiedpallets/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()
 		};
modifiedpallets/foreign-assets/src/lib.rsdiffbeforeafterboth
190 type WeightInfo: WeightInfo;190 type WeightInfo: WeightInfo;
191 }191 }
192
193 pub type AssetName = BoundedVec<u8, ConstU32<32>>;
194 pub type AssetSymbol = BoundedVec<u8, ConstU32<7>>;
192195
193 #[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 }