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
24use 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};
28
29fn 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}
2834
29benchmarks! {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 };
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 }