git.delta.rocks / unique-network / refs/commits / 05427f7b990f

difftreelog

fix rfts are unsupported in XCM

Daniel Shiposha2023-10-23parent: #a8213d4.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
@@ -18,12 +18,12 @@
 
 use frame_benchmarking::v2::*;
 use frame_system::RawOrigin;
-use pallet_common::benchmarking::create_u16_data;
+use pallet_common::benchmarking::{create_data, create_u16_data};
 use sp_std::vec;
 use staging_xcm::prelude::*;
-use up_data_structs::{CollectionMode, MAX_COLLECTION_NAME_LENGTH};
+use up_data_structs::{MAX_COLLECTION_NAME_LENGTH, MAX_TOKEN_PREFIX_LENGTH};
 
-use super::{Call, Config, Pallet};
+use super::{Call, Config, ForeignCollectionMode, Pallet};
 
 #[benchmarks]
 mod benchmarks {
@@ -35,10 +35,11 @@
 		let location =
 			MultiLocation::from(X3(Parachain(1000), PalletInstance(42), GeneralIndex(1)));
 		let name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();
-		let mode = CollectionMode::NFT;
+		let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();
+		let mode = ForeignCollectionMode::NFT;
 
 		#[extrinsic_call]
-		_(RawOrigin::Root, location, name, mode);
+		_(RawOrigin::Root, location, name, token_prefix, mode);
 
 		Ok(())
 	}
modifiedpallets/foreign-assets/src/lib.rsdiffbeforeafterboth
39 Assets,39 Assets,
40};40};
41use up_data_structs::{41use up_data_structs::{
42 budget::ZeroBudget, CollectionId, CollectionMode, CollectionName, CreateCollectionData,42 budget::ZeroBudget, CollectionId, CollectionMode, CollectionName, CollectionTokenPrefix,
43 CreateFungibleData, CreateItemData, CreateNftData, Property, PropertyKey, TokenId,43 CreateCollectionData, CreateFungibleData, CreateItemData, CreateNftData, Property, PropertyKey,
44 TokenId,
44};45};
8788
88 #[pallet::error]89 #[pallet::error]
89 pub enum Error<T> {90 pub enum Error<T> {
90 /// The foreign asset is already registered91 /// The foreign asset is already registered.
91 ForeignAssetAlreadyRegistered,92 ForeignAssetAlreadyRegistered,
92 }93 }
9394
136 origin: OriginFor<T>,137 origin: OriginFor<T>,
137 reserve_location: MultiLocation,138 reserve_location: MultiLocation,
138 name: CollectionName,139 name: CollectionName,
140 token_prefix: CollectionTokenPrefix,
139 mode: CollectionMode,141 mode: ForeignCollectionMode,
140 ) -> DispatchResult {142 ) -> DispatchResult {
141 T::ForceRegisterOrigin::ensure_origin(origin.clone())?;143 T::ForceRegisterOrigin::ensure_origin(origin.clone())?;
142144
160 is_special_collection,162 is_special_collection,
161 CreateCollectionData {163 CreateCollectionData {
162 name,164 name,
165 token_prefix,
163 description,166 description,
164 mode,167 mode: mode.into(),
165168
166 properties: vec![Property {169 properties: vec![Property {
167 key: Self::reserve_location_property_key(),170 key: Self::reserve_location_property_key(),
560 weights::{WeightToFee, WeightToFeePolynomial},563 weights::{WeightToFee, WeightToFeePolynomial},
561};564};
565
566#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
567pub enum ForeignCollectionMode {
568 NFT,
569 Fungible(u8),
570}
571
572impl Into<CollectionMode> for ForeignCollectionMode {
573 fn into(self) -> CollectionMode {
574 match self {
575 Self::NFT => CollectionMode::NFT,
576 Self::Fungible(decimals) => CollectionMode::Fungible(decimals),
577 }
578 }
579}
562580
563pub struct FreeForAll;581pub struct FreeForAll;
564582