git.delta.rocks / unique-network / refs/commits / 504df77ef385

difftreelog

refactor nesting permission structure

Yaroslav Bolyukin2022-06-10parent: #bb7c8cc.patch.diff
in: master

20 files changed

modifiedpallets/common/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/common/src/benchmarking.rs
+++ b/pallets/common/src/benchmarking.rs
@@ -20,7 +20,7 @@
 use frame_benchmarking::{benchmarks, account};
 use up_data_structs::{
 	CollectionMode, CreateCollectionData, CollectionId, Property, PropertyKey, PropertyValue,
-	CollectionPermissions, NestingRule, MAX_COLLECTION_NAME_LENGTH,
+	CollectionPermissions, NestingPermissions, MAX_COLLECTION_NAME_LENGTH,
 	MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, MAX_PROPERTIES_PER_ITEM,
 };
 use frame_support::{
@@ -94,7 +94,12 @@
 			description,
 			token_prefix,
 			permissions: Some(CollectionPermissions {
-				nesting: Some(NestingRule::Permissive),
+				nesting: Some(NestingPermissions {
+					token_owner: false,
+					admin: false,
+					restricted: None,
+					permissive: true,
+				}),
 				..Default::default()
 			}),
 			..Default::default()
modifiedpallets/common/src/erc.rsdiffbeforeafterboth
--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -22,7 +22,7 @@
 pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId};
 use pallet_evm_coder_substrate::dispatch_to_evm;
 use sp_std::vec::Vec;
-use up_data_structs::{Property, SponsoringRateLimit, NestingRule, OwnerRestrictedSet, AccessMode};
+use up_data_structs::{Property, SponsoringRateLimit, OwnerRestrictedSet, AccessMode};
 use alloc::format;
 
 use crate::{Pallet, CollectionHandle, Config, CollectionProperties};
@@ -215,12 +215,21 @@
 		let caller = T::CrossAccountId::from_eth(caller);
 		self.check_is_owner_or_admin(&caller)
 			.map_err(dispatch_to_evm::<T>)?;
-		self.collection.permissions.nesting = Some(match enable {
-			false => NestingRule::Disabled,
-			true => NestingRule::Owner,
-		});
-		save(self)?;
-		Ok(())
+
+		let mut permissions = self.collection.permissions.clone();
+		let mut nesting = permissions.nesting().clone();
+		nesting.token_owner = enable;
+		nesting.restricted = None;
+		permissions.nesting = Some(nesting);
+
+		self.collection.permissions = <Pallet<T>>::clamp_permissions(
+			self.collection.mode.clone(),
+			&self.collection.permissions,
+			permissions,
+		)
+		.map_err(dispatch_to_evm::<T>)?;
+
+		save(self)
 	}
 
 	#[solidity(rename_selector = "setCollectionNesting")]
@@ -233,31 +242,41 @@
 		if collections.is_empty() {
 			return Err("No addresses provided".into());
 		}
-		if collections.len() >= OwnerRestrictedSet::bound() {
-			return Err(Error::Revert(format!(
-				"Out of bound: {} >= {}",
-				collections.len(),
-				OwnerRestrictedSet::bound()
-			)));
-		}
 		let caller = T::CrossAccountId::from_eth(caller);
 		self.check_is_owner_or_admin(&caller)
 			.map_err(dispatch_to_evm::<T>)?;
-		self.collection.permissions.nesting = Some(match enable {
-			false => NestingRule::Disabled,
+
+		let mut permissions = self.collection.permissions.clone();
+		match enable {
+			false => {
+				let mut nesting = permissions.nesting().clone();
+				nesting.token_owner = false;
+				nesting.restricted = None;
+				permissions.nesting = Some(nesting);
+			}
 			true => {
 				let mut bv = OwnerRestrictedSet::new();
 				for i in collections {
 					bv.try_insert(crate::eth::map_eth_to_id(&i).ok_or(Error::Revert(
 						"Can't convert address into collection id".into(),
 					))?)
-					.map_err(|e| Error::Revert(format!("{:?}", e)))?;
+					.map_err(|_| "too many collections")?;
 				}
-				NestingRule::OwnerRestricted(bv)
+				let mut nesting = permissions.nesting().clone();
+				nesting.token_owner = true;
+				nesting.restricted = Some(bv);
+				permissions.nesting = Some(nesting);
 			}
-		});
-		save(self)?;
-		Ok(())
+		};
+
+		self.collection.permissions = <Pallet<T>>::clamp_permissions(
+			self.collection.mode.clone(),
+			&self.collection.permissions,
+			permissions,
+		)
+		.map_err(dispatch_to_evm::<T>)?;
+
+		save(self)
 	}
 
 	fn set_collection_access(&mut self, caller: caller, mode: uint8) -> Result<void> {
modifiedpallets/common/src/lib.rsdiffbeforeafterboth
--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -430,10 +430,8 @@
 		/// Not sufficient funds to perform action
 		NotSufficientFounds,
 
-		/// Collection has nesting disabled
-		NestingIsDisabled,
-		/// Only owner may nest tokens under this collection
-		OnlyOwnerAllowedToNest,
+		/// User not passed nesting rule
+		UserIsNotAllowedToNest,
 		/// Only tokens from specific collections may nest tokens under this
 		SourceCollectionIsNotAllowedToNest,
 
@@ -1212,7 +1210,11 @@
 		limit_default_clone!(old_limit, new_limit,
 			access => {},
 			mint_mode => {},
-			nesting => {},
+			nesting => ensure!(
+				// Permissive is only allowed for tests and internal usage of chain for now
+				old_limit.permissive || !new_limit.permissive,
+				<Error<T>>::NoPermission,
+			),
 		);
 		Ok(new_limit)
 	}
modifiedpallets/nonfungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -27,8 +27,8 @@
 };
 use up_data_structs::{
 	AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData,
-	mapping::TokenAddressMapping, NestingRule, budget::Budget, Property, PropertyPermission,
-	PropertyKey, PropertyKeyPermission, Properties, PropertyScope, TrySetProperty, TokenChild,
+	mapping::TokenAddressMapping, budget::Budget, Property, PropertyPermission, PropertyKey,
+	PropertyKeyPermission, Properties, PropertyScope, TrySetProperty, TokenChild,
 };
 use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};
 use pallet_common::{
@@ -996,38 +996,29 @@
 		under: TokenId,
 		nesting_budget: &dyn Budget,
 	) -> DispatchResult {
-		fn ensure_sender_allowed<T: Config>(
-			collection: CollectionId,
-			token: TokenId,
-			for_nest: (CollectionId, TokenId),
-			sender: T::CrossAccountId,
-			budget: &dyn Budget,
-		) -> DispatchResult {
+		let nesting = handle.permissions.nesting();
+		if nesting.permissive {
+			// Pass
+		} else if nesting.token_owner
+			&& <PalletStructure<T>>::check_indirectly_owned(
+				sender.clone(),
+				handle.id,
+				under,
+				Some(from),
+				nesting_budget,
+			)? {
+			// Pass
+		} else if nesting.admin && handle.is_owner_or_admin(&sender) {
+			// Pass
+		} else {
+			fail!(<CommonError<T>>::UserIsNotAllowedToNest);
+		}
+
+		if let Some(whitelist) = &nesting.restricted {
 			ensure!(
-				<PalletStructure<T>>::check_indirectly_owned(
-					sender,
-					collection,
-					token,
-					Some(for_nest),
-					budget
-				)?,
-				<CommonError<T>>::OnlyOwnerAllowedToNest,
+				whitelist.contains(&from.0),
+				<CommonError<T>>::SourceCollectionIsNotAllowedToNest
 			);
-			Ok(())
-		}
-		match handle.permissions.nesting() {
-			NestingRule::Disabled => fail!(<CommonError<T>>::NestingIsDisabled),
-			NestingRule::Owner => {
-				ensure_sender_allowed::<T>(handle.id, under, from, sender, nesting_budget)?
-			}
-			NestingRule::OwnerRestricted(whitelist) => {
-				ensure!(
-					whitelist.contains(&from.0),
-					<CommonError<T>>::SourceCollectionIsNotAllowedToNest
-				);
-				ensure_sender_allowed::<T>(handle.id, under, from, sender, nesting_budget)?
-			}
-			NestingRule::Permissive => {}
 		}
 		Ok(())
 	}
modifiedpallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth
--- a/pallets/proxy-rmrk-core/src/lib.rs
+++ b/pallets/proxy-rmrk-core/src/lib.rs
@@ -200,7 +200,13 @@
 					.try_into()
 					.map_err(|_| <CommonError<T>>::CollectionTokenPrefixLimitExceeded)?,
 				permissions: Some(CollectionPermissions {
-					nesting: Some(NestingRule::Owner),
+					nesting: Some(NestingPermissions {
+						token_owner: true,
+						admin: false,
+						restricted: None,
+
+						permissive: false,
+					}),
 					..Default::default()
 				}),
 				..Default::default()
@@ -600,7 +606,7 @@
 				&budget,
 			)
 			.map_err(|err| {
-				if err == <CommonError<T>>::OnlyOwnerAllowedToNest.into() {
+				if err == <CommonError<T>>::UserIsNotAllowedToNest.into() {
 					<Error<T>>::CannotAcceptNonOwnedNft.into()
 				} else {
 					Self::map_unique_err_to_proxy(err)
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -441,7 +441,7 @@
 pub struct CollectionPermissions {
 	pub access: Option<AccessMode>,
 	pub mint_mode: Option<bool>,
-	pub nesting: Option<NestingRule>,
+	pub nesting: Option<NestingPermissions>,
 }
 
 impl CollectionPermissions {
@@ -451,30 +451,58 @@
 	pub fn mint_mode(&self) -> bool {
 		self.mint_mode.unwrap_or(false)
 	}
-	pub fn nesting(&self) -> &NestingRule {
-		static DEFAULT: NestingRule = NestingRule::Disabled;
+	pub fn nesting(&self) -> &NestingPermissions {
+		static DEFAULT: NestingPermissions = NestingPermissions {
+			token_owner: false,
+			admin: false,
+			restricted: None,
+
+			permissive: false,
+		};
 		self.nesting.as_ref().unwrap_or(&DEFAULT)
 	}
 }
 
-pub type OwnerRestrictedSet = BoundedBTreeSet<CollectionId, ConstU32<16>>;
+type OwnerRestrictedSetInner = BoundedBTreeSet<CollectionId, ConstU32<16>>;
+
+#[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative)]
+#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
+#[derivative(Debug)]
+pub struct OwnerRestrictedSet(
+	#[cfg_attr(feature = "serde1", serde(with = "bounded::set_serde"))]
+	#[derivative(Debug(format_with = "bounded::set_debug"))]
+	pub OwnerRestrictedSetInner,
+);
+impl OwnerRestrictedSet {
+	pub fn new() -> Self {
+		Self(Default::default())
+	}
+}
+impl core::ops::Deref for OwnerRestrictedSet {
+	type Target = OwnerRestrictedSetInner;
+	fn deref(&self) -> &Self::Target {
+		&self.0
+	}
+}
+impl core::ops::DerefMut for OwnerRestrictedSet {
+	fn deref_mut(&mut self) -> &mut Self::Target {
+		&mut self.0
+	}
+}
 
 #[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative)]
 #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
 #[derivative(Debug)]
-pub enum NestingRule {
-	/// No one can nest tokens
-	Disabled,
-	/// Owner can nest any tokens
-	Owner,
-	/// Owner can nest tokens from specified collections
-	OwnerRestricted(
-		#[cfg_attr(feature = "serde1", serde(with = "bounded::set_serde"))]
-		#[derivative(Debug(format_with = "bounded::set_debug"))]
-		OwnerRestrictedSet,
-	),
-	/// Used for tests
-	Permissive,
+pub struct NestingPermissions {
+	/// Owner of token can nest tokens under it
+	pub token_owner: bool,
+	/// Admin of token collection can nest tokens under token
+	pub admin: bool,
+	/// If set - only tokens from specified collections can be nested
+	pub restricted: Option<OwnerRestrictedSet>,
+
+	/// Anyone can nest tokens, mutually exclusive with `token_owner`, `admin`
+	pub permissive: bool,
 }
 
 #[derive(Encode, Decode, Debug, Clone, Copy, PartialEq, TypeInfo, MaxEncodedLen)]
modifiedtests/package.jsondiffbeforeafterboth
--- a/tests/package.json
+++ b/tests/package.json
@@ -5,7 +5,7 @@
   "main": "",
   "devDependencies": {
     "@polkadot/ts": "0.4.22",
-    "@polkadot/typegen": "8.7.2-11",
+    "@polkadot/typegen": "8.7.2-15",
     "@types/chai": "^4.3.1",
     "@types/chai-as-promised": "^7.1.5",
     "@types/mocha": "^9.1.1",
@@ -86,8 +86,8 @@
   "license": "SEE LICENSE IN ../LICENSE",
   "homepage": "",
   "dependencies": {
-    "@polkadot/api": "8.7.2-11",
-    "@polkadot/api-contract": "8.7.2-11",
+    "@polkadot/api": "8.7.2-15",
+    "@polkadot/api-contract": "8.7.2-15",
     "@polkadot/util-crypto": "9.4.1",
     "bignumber.js": "^9.0.2",
     "chai-as-promised": "^7.1.1",
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -125,10 +125,6 @@
        **/
       MustBeTokenOwner: AugmentedError<ApiType>;
       /**
-       * Collection has nesting disabled
-       **/
-      NestingIsDisabled: AugmentedError<ApiType>;
-      /**
        * No permission to perform action
        **/
       NoPermission: AugmentedError<ApiType>;
@@ -137,13 +133,9 @@
        **/
       NoSpaceForProperty: AugmentedError<ApiType>;
       /**
-       * Not sufficient founds to perform action
+       * Not sufficient funds to perform action
        **/
       NotSufficientFounds: AugmentedError<ApiType>;
-      /**
-       * Only owner may nest tokens under this collection
-       **/
-      OnlyOwnerAllowedToNest: AugmentedError<ApiType>;
       /**
        * Tried to enable permissions which are only permitted to be disabled
        **/
@@ -185,6 +177,10 @@
        **/
       UnsupportedOperation: AugmentedError<ApiType>;
       /**
+       * User not passed nesting rule
+       **/
+      UserIsNotAllowedToNest: AugmentedError<ApiType>;
+      /**
        * Generic error
        **/
       [key: string]: AugmentedError<ApiType>;
@@ -502,6 +498,10 @@
     };
     structure: {
       /**
+       * While iterating over children, encountered breadth limit
+       **/
+      BreadthLimit: AugmentedError<ApiType>;
+      /**
        * While searched for owner, encountered depth limit
        **/
       DepthLimit: AugmentedError<ApiType>;
modifiedtests/src/interfaces/augment-api-events.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -13,45 +13,45 @@
       /**
        * A balance was set by root.
        **/
-      BalanceSet: AugmentedEvent<ApiType, [AccountId32, u128, u128]>;
+      BalanceSet: AugmentedEvent<ApiType, [who: AccountId32, free: u128, reserved: u128], { who: AccountId32, free: u128, reserved: u128 }>;
       /**
        * Some amount was deposited (e.g. for transaction fees).
        **/
-      Deposit: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      Deposit: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;
       /**
        * An account was removed whose balance was non-zero but below ExistentialDeposit,
        * resulting in an outright loss.
        **/
-      DustLost: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      DustLost: AugmentedEvent<ApiType, [account: AccountId32, amount: u128], { account: AccountId32, amount: u128 }>;
       /**
        * An account was created with some free balance.
        **/
-      Endowed: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      Endowed: AugmentedEvent<ApiType, [account: AccountId32, freeBalance: u128], { account: AccountId32, freeBalance: u128 }>;
       /**
        * Some balance was reserved (moved from free to reserved).
        **/
-      Reserved: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      Reserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;
       /**
        * Some balance was moved from the reserve of the first account to the second account.
        * Final argument indicates the destination balance type.
        **/
-      ReserveRepatriated: AugmentedEvent<ApiType, [AccountId32, AccountId32, u128, FrameSupportTokensMiscBalanceStatus]>;
+      ReserveRepatriated: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u128, destinationStatus: FrameSupportTokensMiscBalanceStatus], { from: AccountId32, to: AccountId32, amount: u128, destinationStatus: FrameSupportTokensMiscBalanceStatus }>;
       /**
        * Some amount was removed from the account (e.g. for misbehavior).
        **/
-      Slashed: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      Slashed: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;
       /**
        * Transfer succeeded.
        **/
-      Transfer: AugmentedEvent<ApiType, [AccountId32, AccountId32, u128]>;
+      Transfer: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u128], { from: AccountId32, to: AccountId32, amount: u128 }>;
       /**
        * Some balance was unreserved (moved from reserved to free).
        **/
-      Unreserved: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      Unreserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;
       /**
        * Some amount was withdrawn from the account (e.g. for transaction fees).
        **/
-      Withdraw: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      Withdraw: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;
       /**
        * Generic event
        **/
@@ -398,28 +398,28 @@
       [key: string]: AugmentedEvent<ApiType>;
     };
     rmrkCore: {
-      CollectionCreated: AugmentedEvent<ApiType, [AccountId32, u32]>;
-      CollectionDestroyed: AugmentedEvent<ApiType, [AccountId32, u32]>;
-      CollectionLocked: AugmentedEvent<ApiType, [AccountId32, u32]>;
-      IssuerChanged: AugmentedEvent<ApiType, [AccountId32, AccountId32, u32]>;
-      NFTAccepted: AugmentedEvent<ApiType, [AccountId32, RmrkTraitsNftAccountIdOrCollectionNftTuple, u32, u32]>;
-      NFTBurned: AugmentedEvent<ApiType, [AccountId32, u32]>;
-      NftMinted: AugmentedEvent<ApiType, [AccountId32, u32, u32]>;
-      NFTRejected: AugmentedEvent<ApiType, [AccountId32, u32, u32]>;
-      NFTSent: AugmentedEvent<ApiType, [AccountId32, RmrkTraitsNftAccountIdOrCollectionNftTuple, u32, u32, bool]>;
-      PrioritySet: AugmentedEvent<ApiType, [u32, u32]>;
-      PropertySet: AugmentedEvent<ApiType, [u32, Option<u32>, Bytes, Bytes]>;
-      ResourceAccepted: AugmentedEvent<ApiType, [u32, u32]>;
-      ResourceAdded: AugmentedEvent<ApiType, [u32, u32]>;
-      ResourceRemoval: AugmentedEvent<ApiType, [u32, u32]>;
-      ResourceRemovalAccepted: AugmentedEvent<ApiType, [u32, u32]>;
+      CollectionCreated: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;
+      CollectionDestroyed: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;
+      CollectionLocked: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;
+      IssuerChanged: AugmentedEvent<ApiType, [oldIssuer: AccountId32, newIssuer: AccountId32, collectionId: u32], { oldIssuer: AccountId32, newIssuer: AccountId32, collectionId: u32 }>;
+      NFTAccepted: AugmentedEvent<ApiType, [sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32], { sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32 }>;
+      NFTBurned: AugmentedEvent<ApiType, [owner: AccountId32, nftId: u32], { owner: AccountId32, nftId: u32 }>;
+      NftMinted: AugmentedEvent<ApiType, [owner: AccountId32, collectionId: u32, nftId: u32], { owner: AccountId32, collectionId: u32, nftId: u32 }>;
+      NFTRejected: AugmentedEvent<ApiType, [sender: AccountId32, collectionId: u32, nftId: u32], { sender: AccountId32, collectionId: u32, nftId: u32 }>;
+      NFTSent: AugmentedEvent<ApiType, [sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32, approvalRequired: bool], { sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32, approvalRequired: bool }>;
+      PrioritySet: AugmentedEvent<ApiType, [collectionId: u32, nftId: u32], { collectionId: u32, nftId: u32 }>;
+      PropertySet: AugmentedEvent<ApiType, [collectionId: u32, maybeNftId: Option<u32>, key: Bytes, value: Bytes], { collectionId: u32, maybeNftId: Option<u32>, key: Bytes, value: Bytes }>;
+      ResourceAccepted: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;
+      ResourceAdded: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;
+      ResourceRemoval: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;
+      ResourceRemovalAccepted: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;
       /**
        * Generic event
        **/
       [key: string]: AugmentedEvent<ApiType>;
     };
     rmrkEquip: {
-      BaseCreated: AugmentedEvent<ApiType, [AccountId32, u32]>;
+      BaseCreated: AugmentedEvent<ApiType, [issuer: AccountId32, baseId: u32], { issuer: AccountId32, baseId: u32 }>;
       /**
        * Generic event
        **/
@@ -429,19 +429,19 @@
       /**
        * The call for the provided hash was not found so the task has been aborted.
        **/
-      CallLookupFailed: AugmentedEvent<ApiType, [ITuple<[u32, u32]>, Option<U8aFixed>, FrameSupportScheduleLookupError]>;
+      CallLookupFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError }>;
       /**
        * Canceled some task.
        **/
-      Canceled: AugmentedEvent<ApiType, [u32, u32]>;
+      Canceled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;
       /**
        * Dispatched some task.
        **/
-      Dispatched: AugmentedEvent<ApiType, [ITuple<[u32, u32]>, Option<U8aFixed>, Result<Null, SpRuntimeDispatchError>]>;
+      Dispatched: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError> }>;
       /**
        * Scheduled some task.
        **/
-      Scheduled: AugmentedEvent<ApiType, [u32, u32]>;
+      Scheduled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;
       /**
        * Generic event
        **/
@@ -461,15 +461,15 @@
       /**
        * The \[sudoer\] just switched identity; the old key is supplied if one existed.
        **/
-      KeyChanged: AugmentedEvent<ApiType, [Option<AccountId32>]>;
+      KeyChanged: AugmentedEvent<ApiType, [oldSudoer: Option<AccountId32>], { oldSudoer: Option<AccountId32> }>;
       /**
        * A sudo just took place. \[result\]
        **/
-      Sudid: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
+      Sudid: AugmentedEvent<ApiType, [sudoResult: Result<Null, SpRuntimeDispatchError>], { sudoResult: Result<Null, SpRuntimeDispatchError> }>;
       /**
        * A sudo just took place. \[result\]
        **/
-      SudoAsDone: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
+      SudoAsDone: AugmentedEvent<ApiType, [sudoResult: Result<Null, SpRuntimeDispatchError>], { sudoResult: Result<Null, SpRuntimeDispatchError> }>;
       /**
        * Generic event
        **/
@@ -483,23 +483,23 @@
       /**
        * An extrinsic failed.
        **/
-      ExtrinsicFailed: AugmentedEvent<ApiType, [SpRuntimeDispatchError, FrameSupportWeightsDispatchInfo]>;
+      ExtrinsicFailed: AugmentedEvent<ApiType, [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportWeightsDispatchInfo], { dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportWeightsDispatchInfo }>;
       /**
        * An extrinsic completed successfully.
        **/
-      ExtrinsicSuccess: AugmentedEvent<ApiType, [FrameSupportWeightsDispatchInfo]>;
+      ExtrinsicSuccess: AugmentedEvent<ApiType, [dispatchInfo: FrameSupportWeightsDispatchInfo], { dispatchInfo: FrameSupportWeightsDispatchInfo }>;
       /**
        * An account was reaped.
        **/
-      KilledAccount: AugmentedEvent<ApiType, [AccountId32]>;
+      KilledAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;
       /**
        * A new account was created.
        **/
-      NewAccount: AugmentedEvent<ApiType, [AccountId32]>;
+      NewAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;
       /**
        * On on-chain remark happened.
        **/
-      Remarked: AugmentedEvent<ApiType, [AccountId32, H256]>;
+      Remarked: AugmentedEvent<ApiType, [sender: AccountId32, hash_: H256], { sender: AccountId32, hash_: H256 }>;
       /**
        * Generic event
        **/
@@ -509,31 +509,31 @@
       /**
        * Some funds have been allocated.
        **/
-      Awarded: AugmentedEvent<ApiType, [u32, u128, AccountId32]>;
+      Awarded: AugmentedEvent<ApiType, [proposalIndex: u32, award: u128, account: AccountId32], { proposalIndex: u32, award: u128, account: AccountId32 }>;
       /**
        * Some of our funds have been burnt.
        **/
-      Burnt: AugmentedEvent<ApiType, [u128]>;
+      Burnt: AugmentedEvent<ApiType, [burntFunds: u128], { burntFunds: u128 }>;
       /**
        * Some funds have been deposited.
        **/
-      Deposit: AugmentedEvent<ApiType, [u128]>;
+      Deposit: AugmentedEvent<ApiType, [value: u128], { value: u128 }>;
       /**
        * New proposal.
        **/
-      Proposed: AugmentedEvent<ApiType, [u32]>;
+      Proposed: AugmentedEvent<ApiType, [proposalIndex: u32], { proposalIndex: u32 }>;
       /**
        * A proposal was rejected; funds were slashed.
        **/
-      Rejected: AugmentedEvent<ApiType, [u32, u128]>;
+      Rejected: AugmentedEvent<ApiType, [proposalIndex: u32, slashed: u128], { proposalIndex: u32, slashed: u128 }>;
       /**
        * Spending has finished; this is the amount that rolls over until next spend.
        **/
-      Rollover: AugmentedEvent<ApiType, [u128]>;
+      Rollover: AugmentedEvent<ApiType, [rolloverBalance: u128], { rolloverBalance: u128 }>;
       /**
        * We have ended a spend period and will now allocate funds.
        **/
-      Spending: AugmentedEvent<ApiType, [u128]>;
+      Spending: AugmentedEvent<ApiType, [budgetRemaining: u128], { budgetRemaining: u128 }>;
       /**
        * Generic event
        **/
@@ -636,15 +636,15 @@
       /**
        * Claimed vesting.
        **/
-      Claimed: AugmentedEvent<ApiType, [AccountId32, u128]>;
+      Claimed: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;
       /**
        * Added new vesting schedule.
        **/
-      VestingScheduleAdded: AugmentedEvent<ApiType, [AccountId32, AccountId32, OrmlVestingVestingSchedule]>;
+      VestingScheduleAdded: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, vestingSchedule: OrmlVestingVestingSchedule], { from: AccountId32, to: AccountId32, vestingSchedule: OrmlVestingVestingSchedule }>;
       /**
        * Updated vesting schedules.
        **/
-      VestingSchedulesUpdated: AugmentedEvent<ApiType, [AccountId32]>;
+      VestingSchedulesUpdated: AugmentedEvent<ApiType, [who: AccountId32], { who: AccountId32 }>;
       /**
        * Generic event
        **/
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -347,22 +347,105 @@
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
     rmrkCore: {
+      /**
+       * Accepts an NFT sent from another account to self or owned NFT
+       * 
+       * Parameters:
+       * - `origin`: sender of the transaction
+       * - `rmrk_collection_id`: collection id of the nft to be accepted
+       * - `rmrk_nft_id`: nft id of the nft to be accepted
+       * - `new_owner`: either origin's account ID or origin-owned NFT, whichever the NFT was
+       * sent to
+       **/
       acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;
+      /**
+       * accept the addition of a new resource to an existing NFT
+       **/
       acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, rmrkResourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;
+      /**
+       * accept the removal of a resource of an existing NFT
+       **/
       acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, rmrkResourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;
+      /**
+       * Create basic resource
+       **/
       addBasicResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceBasicResource | { src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceBasicResource]>;
+      /**
+       * Create composable resource
+       **/
       addComposableResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: Bytes | string | Uint8Array, resource: RmrkTraitsResourceComposableResource | { parts?: any; base?: any; src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, Bytes, RmrkTraitsResourceComposableResource]>;
+      /**
+       * Create slot resource
+       **/
       addSlotResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceSlotResource | { base?: any; src?: any; metadata?: any; slot?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceSlotResource]>;
+      /**
+       * burn nft
+       **/
       burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+      /**
+       * Change the issuer of a collection
+       * 
+       * Parameters:
+       * - `origin`: sender of the transaction
+       * - `collection_id`: collection id of the nft to change issuer of
+       * - `new_issuer`: Collection's new issuer
+       **/
       changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;
+      /**
+       * Create a collection
+       **/
       createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | object | string | Uint8Array, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;
+      /**
+       * destroy collection
+       **/
       destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+      /**
+       * lock collection
+       **/
       lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+      /**
+       * Mints an NFT in the specified collection
+       * Sets metadata and the royalty attribute
+       * 
+       * Parameters:
+       * - `collection_id`: The class of the asset to be minted.
+       * - `nft_id`: The nft value of the asset to be minted.
+       * - `recipient`: Receiver of the royalty
+       * - `royalty`: Permillage reward from each trade for the Recipient
+       * - `metadata`: Arbitrary data about an nft, e.g. IPFS hash
+       * - `transferable`: Ability to transfer this NFT
+       **/
       mintNft: AugmentedSubmittable<(owner: AccountId32 | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, u32, Option<AccountId32>, Option<Permill>, Bytes, bool]>;
+      /**
+       * Rejects an NFT sent from another account to self or owned NFT
+       * 
+       * Parameters:
+       * - `origin`: sender of the transaction
+       * - `rmrk_collection_id`: collection id of the nft to be accepted
+       * - `rmrk_nft_id`: nft id of the nft to be accepted
+       **/
       rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+      /**
+       * remove resource
+       **/
       removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;
+      /**
+       * Transfers a NFT from an Account or NFT A to another Account or NFT B
+       * 
+       * Parameters:
+       * - `origin`: sender of the transaction
+       * - `rmrk_collection_id`: collection id of the nft to be transferred
+       * - `rmrk_nft_id`: nft id of the nft to be transferred
+       * - `new_owner`: new owner of the nft which can be either an account or a NFT
+       **/
       send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;
+      /**
+       * set a different order of resource priority
+       **/
       setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<u32>]>;
+      /**
+       * set a custom value on an NFT
+       **/
       setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;
       /**
        * Generic tx
@@ -370,7 +453,33 @@
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
     rmrkEquip: {
+      /**
+       * Creates a new Base.
+       * Modeled after [base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md)
+       * 
+       * Parameters:
+       * - origin: Caller, will be assigned as the issuer of the Base
+       * - base_type: media type, e.g. "svg"
+       * - symbol: arbitrary client-chosen symbol
+       * - parts: array of Fixed and Slot parts composing the base, confined in length by
+       * RmrkPartsLimit
+       **/
       createBase: AugmentedSubmittable<(baseType: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, parts: Vec<RmrkTraitsPartPartType> | (RmrkTraitsPartPartType | { FixedPart: any } | { SlotPart: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Bytes, Bytes, Vec<RmrkTraitsPartPartType>]>;
+      /**
+       * Adds a Theme to a Base.
+       * Modeled after [themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md)
+       * Themes are stored in the Themes storage
+       * A Theme named "default" is required prior to adding other Themes.
+       * 
+       * Parameters:
+       * - origin: The caller of the function, must be issuer of the base
+       * - base_id: The Base containing the Theme to be updated
+       * - theme: The Theme to add to the Base.  A Theme has a name and properties, which are an
+       * array of [key, value, inherit].
+       * - key: arbitrary BoundedString, defined by client
+       * - value: arbitrary BoundedString, defined by client
+       * - inherit: optional bool
+       **/
       themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, RmrkTraitsTheme]>;
       /**
        * Generic tx
modifiedtests/src/interfaces/augment-types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
 import type { Data, StorageKey } from '@polkadot/types';
 import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
 import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -1218,7 +1218,8 @@
     UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;
     UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;
     UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;
-    UpDataStructsNestingRule: UpDataStructsNestingRule;
+    UpDataStructsNestingPermissions: UpDataStructsNestingPermissions;
+    UpDataStructsOwnerRestrictedSet: UpDataStructsOwnerRestrictedSet;
     UpDataStructsProperties: UpDataStructsProperties;
     UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;
     UpDataStructsPropertiesMapPropertyPermission: UpDataStructsPropertiesMapPropertyPermission;
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
before · tests/src/interfaces/default/types.ts
1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';5import type { ITuple } from '@polkadot/types-codec/types';6import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';7import type { Event } from '@polkadot/types/interfaces/system';89/** @name CumulusPalletDmpQueueCall */10export interface CumulusPalletDmpQueueCall extends Enum {11  readonly isServiceOverweight: boolean;12  readonly asServiceOverweight: {13    readonly index: u64;14    readonly weightLimit: u64;15  } & Struct;16  readonly type: 'ServiceOverweight';17}1819/** @name CumulusPalletDmpQueueConfigData */20export interface CumulusPalletDmpQueueConfigData extends Struct {21  readonly maxIndividual: u64;22}2324/** @name CumulusPalletDmpQueueError */25export interface CumulusPalletDmpQueueError extends Enum {26  readonly isUnknown: boolean;27  readonly isOverLimit: boolean;28  readonly type: 'Unknown' | 'OverLimit';29}3031/** @name CumulusPalletDmpQueueEvent */32export interface CumulusPalletDmpQueueEvent extends Enum {33  readonly isInvalidFormat: boolean;34  readonly asInvalidFormat: U8aFixed;35  readonly isUnsupportedVersion: boolean;36  readonly asUnsupportedVersion: U8aFixed;37  readonly isExecutedDownward: boolean;38  readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;39  readonly isWeightExhausted: boolean;40  readonly asWeightExhausted: ITuple<[U8aFixed, u64, u64]>;41  readonly isOverweightEnqueued: boolean;42  readonly asOverweightEnqueued: ITuple<[U8aFixed, u64, u64]>;43  readonly isOverweightServiced: boolean;44  readonly asOverweightServiced: ITuple<[u64, u64]>;45  readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';46}4748/** @name CumulusPalletDmpQueuePageIndexData */49export interface CumulusPalletDmpQueuePageIndexData extends Struct {50  readonly beginUsed: u32;51  readonly endUsed: u32;52  readonly overweightCount: u64;53}5455/** @name CumulusPalletParachainSystemCall */56export interface CumulusPalletParachainSystemCall extends Enum {57  readonly isSetValidationData: boolean;58  readonly asSetValidationData: {59    readonly data: CumulusPrimitivesParachainInherentParachainInherentData;60  } & Struct;61  readonly isSudoSendUpwardMessage: boolean;62  readonly asSudoSendUpwardMessage: {63    readonly message: Bytes;64  } & Struct;65  readonly isAuthorizeUpgrade: boolean;66  readonly asAuthorizeUpgrade: {67    readonly codeHash: H256;68  } & Struct;69  readonly isEnactAuthorizedUpgrade: boolean;70  readonly asEnactAuthorizedUpgrade: {71    readonly code: Bytes;72  } & Struct;73  readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';74}7576/** @name CumulusPalletParachainSystemError */77export interface CumulusPalletParachainSystemError extends Enum {78  readonly isOverlappingUpgrades: boolean;79  readonly isProhibitedByPolkadot: boolean;80  readonly isTooBig: boolean;81  readonly isValidationDataNotAvailable: boolean;82  readonly isHostConfigurationNotAvailable: boolean;83  readonly isNotScheduled: boolean;84  readonly isNothingAuthorized: boolean;85  readonly isUnauthorized: boolean;86  readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';87}8889/** @name CumulusPalletParachainSystemEvent */90export interface CumulusPalletParachainSystemEvent extends Enum {91  readonly isValidationFunctionStored: boolean;92  readonly isValidationFunctionApplied: boolean;93  readonly asValidationFunctionApplied: u32;94  readonly isValidationFunctionDiscarded: boolean;95  readonly isUpgradeAuthorized: boolean;96  readonly asUpgradeAuthorized: H256;97  readonly isDownwardMessagesReceived: boolean;98  readonly asDownwardMessagesReceived: u32;99  readonly isDownwardMessagesProcessed: boolean;100  readonly asDownwardMessagesProcessed: ITuple<[u64, H256]>;101  readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';102}103104/** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot */105export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {106  readonly dmqMqcHead: H256;107  readonly relayDispatchQueueSize: ITuple<[u32, u32]>;108  readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;109  readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;110}111112/** @name CumulusPalletXcmCall */113export interface CumulusPalletXcmCall extends Null {}114115/** @name CumulusPalletXcmError */116export interface CumulusPalletXcmError extends Null {}117118/** @name CumulusPalletXcmEvent */119export interface CumulusPalletXcmEvent extends Enum {120  readonly isInvalidFormat: boolean;121  readonly asInvalidFormat: U8aFixed;122  readonly isUnsupportedVersion: boolean;123  readonly asUnsupportedVersion: U8aFixed;124  readonly isExecutedDownward: boolean;125  readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;126  readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';127}128129/** @name CumulusPalletXcmOrigin */130export interface CumulusPalletXcmOrigin extends Enum {131  readonly isRelay: boolean;132  readonly isSiblingParachain: boolean;133  readonly asSiblingParachain: u32;134  readonly type: 'Relay' | 'SiblingParachain';135}136137/** @name CumulusPalletXcmpQueueCall */138export interface CumulusPalletXcmpQueueCall extends Enum {139  readonly isServiceOverweight: boolean;140  readonly asServiceOverweight: {141    readonly index: u64;142    readonly weightLimit: u64;143  } & Struct;144  readonly isSuspendXcmExecution: boolean;145  readonly isResumeXcmExecution: boolean;146  readonly isUpdateSuspendThreshold: boolean;147  readonly asUpdateSuspendThreshold: {148    readonly new_: u32;149  } & Struct;150  readonly isUpdateDropThreshold: boolean;151  readonly asUpdateDropThreshold: {152    readonly new_: u32;153  } & Struct;154  readonly isUpdateResumeThreshold: boolean;155  readonly asUpdateResumeThreshold: {156    readonly new_: u32;157  } & Struct;158  readonly isUpdateThresholdWeight: boolean;159  readonly asUpdateThresholdWeight: {160    readonly new_: u64;161  } & Struct;162  readonly isUpdateWeightRestrictDecay: boolean;163  readonly asUpdateWeightRestrictDecay: {164    readonly new_: u64;165  } & Struct;166  readonly isUpdateXcmpMaxIndividualWeight: boolean;167  readonly asUpdateXcmpMaxIndividualWeight: {168    readonly new_: u64;169  } & Struct;170  readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';171}172173/** @name CumulusPalletXcmpQueueError */174export interface CumulusPalletXcmpQueueError extends Enum {175  readonly isFailedToSend: boolean;176  readonly isBadXcmOrigin: boolean;177  readonly isBadXcm: boolean;178  readonly isBadOverweightIndex: boolean;179  readonly isWeightOverLimit: boolean;180  readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';181}182183/** @name CumulusPalletXcmpQueueEvent */184export interface CumulusPalletXcmpQueueEvent extends Enum {185  readonly isSuccess: boolean;186  readonly asSuccess: Option<H256>;187  readonly isFail: boolean;188  readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;189  readonly isBadVersion: boolean;190  readonly asBadVersion: Option<H256>;191  readonly isBadFormat: boolean;192  readonly asBadFormat: Option<H256>;193  readonly isUpwardMessageSent: boolean;194  readonly asUpwardMessageSent: Option<H256>;195  readonly isXcmpMessageSent: boolean;196  readonly asXcmpMessageSent: Option<H256>;197  readonly isOverweightEnqueued: boolean;198  readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;199  readonly isOverweightServiced: boolean;200  readonly asOverweightServiced: ITuple<[u64, u64]>;201  readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';202}203204/** @name CumulusPalletXcmpQueueInboundChannelDetails */205export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {206  readonly sender: u32;207  readonly state: CumulusPalletXcmpQueueInboundState;208  readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;209}210211/** @name CumulusPalletXcmpQueueInboundState */212export interface CumulusPalletXcmpQueueInboundState extends Enum {213  readonly isOk: boolean;214  readonly isSuspended: boolean;215  readonly type: 'Ok' | 'Suspended';216}217218/** @name CumulusPalletXcmpQueueOutboundChannelDetails */219export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {220  readonly recipient: u32;221  readonly state: CumulusPalletXcmpQueueOutboundState;222  readonly signalsExist: bool;223  readonly firstIndex: u16;224  readonly lastIndex: u16;225}226227/** @name CumulusPalletXcmpQueueOutboundState */228export interface CumulusPalletXcmpQueueOutboundState extends Enum {229  readonly isOk: boolean;230  readonly isSuspended: boolean;231  readonly type: 'Ok' | 'Suspended';232}233234/** @name CumulusPalletXcmpQueueQueueConfigData */235export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {236  readonly suspendThreshold: u32;237  readonly dropThreshold: u32;238  readonly resumeThreshold: u32;239  readonly thresholdWeight: u64;240  readonly weightRestrictDecay: u64;241  readonly xcmpMaxIndividualWeight: u64;242}243244/** @name CumulusPrimitivesParachainInherentParachainInherentData */245export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {246  readonly validationData: PolkadotPrimitivesV2PersistedValidationData;247  readonly relayChainState: SpTrieStorageProof;248  readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;249  readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;250}251252/** @name EthbloomBloom */253export interface EthbloomBloom extends U8aFixed {}254255/** @name EthereumBlock */256export interface EthereumBlock extends Struct {257  readonly header: EthereumHeader;258  readonly transactions: Vec<EthereumTransactionTransactionV2>;259  readonly ommers: Vec<EthereumHeader>;260}261262/** @name EthereumHeader */263export interface EthereumHeader extends Struct {264  readonly parentHash: H256;265  readonly ommersHash: H256;266  readonly beneficiary: H160;267  readonly stateRoot: H256;268  readonly transactionsRoot: H256;269  readonly receiptsRoot: H256;270  readonly logsBloom: EthbloomBloom;271  readonly difficulty: U256;272  readonly number: U256;273  readonly gasLimit: U256;274  readonly gasUsed: U256;275  readonly timestamp: u64;276  readonly extraData: Bytes;277  readonly mixHash: H256;278  readonly nonce: EthereumTypesHashH64;279}280281/** @name EthereumLog */282export interface EthereumLog extends Struct {283  readonly address: H160;284  readonly topics: Vec<H256>;285  readonly data: Bytes;286}287288/** @name EthereumReceiptEip658ReceiptData */289export interface EthereumReceiptEip658ReceiptData extends Struct {290  readonly statusCode: u8;291  readonly usedGas: U256;292  readonly logsBloom: EthbloomBloom;293  readonly logs: Vec<EthereumLog>;294}295296/** @name EthereumReceiptReceiptV3 */297export interface EthereumReceiptReceiptV3 extends Enum {298  readonly isLegacy: boolean;299  readonly asLegacy: EthereumReceiptEip658ReceiptData;300  readonly isEip2930: boolean;301  readonly asEip2930: EthereumReceiptEip658ReceiptData;302  readonly isEip1559: boolean;303  readonly asEip1559: EthereumReceiptEip658ReceiptData;304  readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';305}306307/** @name EthereumTransactionAccessListItem */308export interface EthereumTransactionAccessListItem extends Struct {309  readonly address: H160;310  readonly storageKeys: Vec<H256>;311}312313/** @name EthereumTransactionEip1559Transaction */314export interface EthereumTransactionEip1559Transaction extends Struct {315  readonly chainId: u64;316  readonly nonce: U256;317  readonly maxPriorityFeePerGas: U256;318  readonly maxFeePerGas: U256;319  readonly gasLimit: U256;320  readonly action: EthereumTransactionTransactionAction;321  readonly value: U256;322  readonly input: Bytes;323  readonly accessList: Vec<EthereumTransactionAccessListItem>;324  readonly oddYParity: bool;325  readonly r: H256;326  readonly s: H256;327}328329/** @name EthereumTransactionEip2930Transaction */330export interface EthereumTransactionEip2930Transaction extends Struct {331  readonly chainId: u64;332  readonly nonce: U256;333  readonly gasPrice: U256;334  readonly gasLimit: U256;335  readonly action: EthereumTransactionTransactionAction;336  readonly value: U256;337  readonly input: Bytes;338  readonly accessList: Vec<EthereumTransactionAccessListItem>;339  readonly oddYParity: bool;340  readonly r: H256;341  readonly s: H256;342}343344/** @name EthereumTransactionLegacyTransaction */345export interface EthereumTransactionLegacyTransaction extends Struct {346  readonly nonce: U256;347  readonly gasPrice: U256;348  readonly gasLimit: U256;349  readonly action: EthereumTransactionTransactionAction;350  readonly value: U256;351  readonly input: Bytes;352  readonly signature: EthereumTransactionTransactionSignature;353}354355/** @name EthereumTransactionTransactionAction */356export interface EthereumTransactionTransactionAction extends Enum {357  readonly isCall: boolean;358  readonly asCall: H160;359  readonly isCreate: boolean;360  readonly type: 'Call' | 'Create';361}362363/** @name EthereumTransactionTransactionSignature */364export interface EthereumTransactionTransactionSignature extends Struct {365  readonly v: u64;366  readonly r: H256;367  readonly s: H256;368}369370/** @name EthereumTransactionTransactionV2 */371export interface EthereumTransactionTransactionV2 extends Enum {372  readonly isLegacy: boolean;373  readonly asLegacy: EthereumTransactionLegacyTransaction;374  readonly isEip2930: boolean;375  readonly asEip2930: EthereumTransactionEip2930Transaction;376  readonly isEip1559: boolean;377  readonly asEip1559: EthereumTransactionEip1559Transaction;378  readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';379}380381/** @name EthereumTypesHashH64 */382export interface EthereumTypesHashH64 extends U8aFixed {}383384/** @name EvmCoreErrorExitError */385export interface EvmCoreErrorExitError extends Enum {386  readonly isStackUnderflow: boolean;387  readonly isStackOverflow: boolean;388  readonly isInvalidJump: boolean;389  readonly isInvalidRange: boolean;390  readonly isDesignatedInvalid: boolean;391  readonly isCallTooDeep: boolean;392  readonly isCreateCollision: boolean;393  readonly isCreateContractLimit: boolean;394  readonly isOutOfOffset: boolean;395  readonly isOutOfGas: boolean;396  readonly isOutOfFund: boolean;397  readonly isPcUnderflow: boolean;398  readonly isCreateEmpty: boolean;399  readonly isOther: boolean;400  readonly asOther: Text;401  readonly isInvalidCode: boolean;402  readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';403}404405/** @name EvmCoreErrorExitFatal */406export interface EvmCoreErrorExitFatal extends Enum {407  readonly isNotSupported: boolean;408  readonly isUnhandledInterrupt: boolean;409  readonly isCallErrorAsFatal: boolean;410  readonly asCallErrorAsFatal: EvmCoreErrorExitError;411  readonly isOther: boolean;412  readonly asOther: Text;413  readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';414}415416/** @name EvmCoreErrorExitReason */417export interface EvmCoreErrorExitReason extends Enum {418  readonly isSucceed: boolean;419  readonly asSucceed: EvmCoreErrorExitSucceed;420  readonly isError: boolean;421  readonly asError: EvmCoreErrorExitError;422  readonly isRevert: boolean;423  readonly asRevert: EvmCoreErrorExitRevert;424  readonly isFatal: boolean;425  readonly asFatal: EvmCoreErrorExitFatal;426  readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';427}428429/** @name EvmCoreErrorExitRevert */430export interface EvmCoreErrorExitRevert extends Enum {431  readonly isReverted: boolean;432  readonly type: 'Reverted';433}434435/** @name EvmCoreErrorExitSucceed */436export interface EvmCoreErrorExitSucceed extends Enum {437  readonly isStopped: boolean;438  readonly isReturned: boolean;439  readonly isSuicided: boolean;440  readonly type: 'Stopped' | 'Returned' | 'Suicided';441}442443/** @name FpRpcTransactionStatus */444export interface FpRpcTransactionStatus extends Struct {445  readonly transactionHash: H256;446  readonly transactionIndex: u32;447  readonly from: H160;448  readonly to: Option<H160>;449  readonly contractAddress: Option<H160>;450  readonly logs: Vec<EthereumLog>;451  readonly logsBloom: EthbloomBloom;452}453454/** @name FrameSupportDispatchRawOrigin */455export interface FrameSupportDispatchRawOrigin extends Enum {456  readonly isRoot: boolean;457  readonly isSigned: boolean;458  readonly asSigned: AccountId32;459  readonly isNone: boolean;460  readonly type: 'Root' | 'Signed' | 'None';461}462463/** @name FrameSupportPalletId */464export interface FrameSupportPalletId extends U8aFixed {}465466/** @name FrameSupportScheduleLookupError */467export interface FrameSupportScheduleLookupError extends Enum {468  readonly isUnknown: boolean;469  readonly isBadFormat: boolean;470  readonly type: 'Unknown' | 'BadFormat';471}472473/** @name FrameSupportScheduleMaybeHashed */474export interface FrameSupportScheduleMaybeHashed extends Enum {475  readonly isValue: boolean;476  readonly asValue: Call;477  readonly isHash: boolean;478  readonly asHash: H256;479  readonly type: 'Value' | 'Hash';480}481482/** @name FrameSupportTokensMiscBalanceStatus */483export interface FrameSupportTokensMiscBalanceStatus extends Enum {484  readonly isFree: boolean;485  readonly isReserved: boolean;486  readonly type: 'Free' | 'Reserved';487}488489/** @name FrameSupportWeightsDispatchClass */490export interface FrameSupportWeightsDispatchClass extends Enum {491  readonly isNormal: boolean;492  readonly isOperational: boolean;493  readonly isMandatory: boolean;494  readonly type: 'Normal' | 'Operational' | 'Mandatory';495}496497/** @name FrameSupportWeightsDispatchInfo */498export interface FrameSupportWeightsDispatchInfo extends Struct {499  readonly weight: u64;500  readonly class: FrameSupportWeightsDispatchClass;501  readonly paysFee: FrameSupportWeightsPays;502}503504/** @name FrameSupportWeightsPays */505export interface FrameSupportWeightsPays extends Enum {506  readonly isYes: boolean;507  readonly isNo: boolean;508  readonly type: 'Yes' | 'No';509}510511/** @name FrameSupportWeightsPerDispatchClassU32 */512export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {513  readonly normal: u32;514  readonly operational: u32;515  readonly mandatory: u32;516}517518/** @name FrameSupportWeightsPerDispatchClassU64 */519export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {520  readonly normal: u64;521  readonly operational: u64;522  readonly mandatory: u64;523}524525/** @name FrameSupportWeightsPerDispatchClassWeightsPerClass */526export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {527  readonly normal: FrameSystemLimitsWeightsPerClass;528  readonly operational: FrameSystemLimitsWeightsPerClass;529  readonly mandatory: FrameSystemLimitsWeightsPerClass;530}531532/** @name FrameSupportWeightsRuntimeDbWeight */533export interface FrameSupportWeightsRuntimeDbWeight extends Struct {534  readonly read: u64;535  readonly write: u64;536}537538/** @name FrameSupportWeightsWeightToFeeCoefficient */539export interface FrameSupportWeightsWeightToFeeCoefficient extends Struct {540  readonly coeffInteger: u128;541  readonly coeffFrac: Perbill;542  readonly negative: bool;543  readonly degree: u8;544}545546/** @name FrameSystemAccountInfo */547export interface FrameSystemAccountInfo extends Struct {548  readonly nonce: u32;549  readonly consumers: u32;550  readonly providers: u32;551  readonly sufficients: u32;552  readonly data: PalletBalancesAccountData;553}554555/** @name FrameSystemCall */556export interface FrameSystemCall extends Enum {557  readonly isFillBlock: boolean;558  readonly asFillBlock: {559    readonly ratio: Perbill;560  } & Struct;561  readonly isRemark: boolean;562  readonly asRemark: {563    readonly remark: Bytes;564  } & Struct;565  readonly isSetHeapPages: boolean;566  readonly asSetHeapPages: {567    readonly pages: u64;568  } & Struct;569  readonly isSetCode: boolean;570  readonly asSetCode: {571    readonly code: Bytes;572  } & Struct;573  readonly isSetCodeWithoutChecks: boolean;574  readonly asSetCodeWithoutChecks: {575    readonly code: Bytes;576  } & Struct;577  readonly isSetStorage: boolean;578  readonly asSetStorage: {579    readonly items: Vec<ITuple<[Bytes, Bytes]>>;580  } & Struct;581  readonly isKillStorage: boolean;582  readonly asKillStorage: {583    readonly keys_: Vec<Bytes>;584  } & Struct;585  readonly isKillPrefix: boolean;586  readonly asKillPrefix: {587    readonly prefix: Bytes;588    readonly subkeys: u32;589  } & Struct;590  readonly isRemarkWithEvent: boolean;591  readonly asRemarkWithEvent: {592    readonly remark: Bytes;593  } & Struct;594  readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';595}596597/** @name FrameSystemError */598export interface FrameSystemError extends Enum {599  readonly isInvalidSpecName: boolean;600  readonly isSpecVersionNeedsToIncrease: boolean;601  readonly isFailedToExtractRuntimeVersion: boolean;602  readonly isNonDefaultComposite: boolean;603  readonly isNonZeroRefCount: boolean;604  readonly isCallFiltered: boolean;605  readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';606}607608/** @name FrameSystemEvent */609export interface FrameSystemEvent extends Enum {610  readonly isExtrinsicSuccess: boolean;611  readonly asExtrinsicSuccess: {612    readonly dispatchInfo: FrameSupportWeightsDispatchInfo;613  } & Struct;614  readonly isExtrinsicFailed: boolean;615  readonly asExtrinsicFailed: {616    readonly dispatchError: SpRuntimeDispatchError;617    readonly dispatchInfo: FrameSupportWeightsDispatchInfo;618  } & Struct;619  readonly isCodeUpdated: boolean;620  readonly isNewAccount: boolean;621  readonly asNewAccount: {622    readonly account: AccountId32;623  } & Struct;624  readonly isKilledAccount: boolean;625  readonly asKilledAccount: {626    readonly account: AccountId32;627  } & Struct;628  readonly isRemarked: boolean;629  readonly asRemarked: {630    readonly sender: AccountId32;631    readonly hash_: H256;632  } & Struct;633  readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';634}635636/** @name FrameSystemEventRecord */637export interface FrameSystemEventRecord extends Struct {638  readonly phase: FrameSystemPhase;639  readonly event: Event;640  readonly topics: Vec<H256>;641}642643/** @name FrameSystemExtensionsCheckGenesis */644export interface FrameSystemExtensionsCheckGenesis extends Null {}645646/** @name FrameSystemExtensionsCheckNonce */647export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}648649/** @name FrameSystemExtensionsCheckSpecVersion */650export interface FrameSystemExtensionsCheckSpecVersion extends Null {}651652/** @name FrameSystemExtensionsCheckWeight */653export interface FrameSystemExtensionsCheckWeight extends Null {}654655/** @name FrameSystemLastRuntimeUpgradeInfo */656export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {657  readonly specVersion: Compact<u32>;658  readonly specName: Text;659}660661/** @name FrameSystemLimitsBlockLength */662export interface FrameSystemLimitsBlockLength extends Struct {663  readonly max: FrameSupportWeightsPerDispatchClassU32;664}665666/** @name FrameSystemLimitsBlockWeights */667export interface FrameSystemLimitsBlockWeights extends Struct {668  readonly baseBlock: u64;669  readonly maxBlock: u64;670  readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;671}672673/** @name FrameSystemLimitsWeightsPerClass */674export interface FrameSystemLimitsWeightsPerClass extends Struct {675  readonly baseExtrinsic: u64;676  readonly maxExtrinsic: Option<u64>;677  readonly maxTotal: Option<u64>;678  readonly reserved: Option<u64>;679}680681/** @name FrameSystemPhase */682export interface FrameSystemPhase extends Enum {683  readonly isApplyExtrinsic: boolean;684  readonly asApplyExtrinsic: u32;685  readonly isFinalization: boolean;686  readonly isInitialization: boolean;687  readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';688}689690/** @name OpalRuntimeOriginCaller */691export interface OpalRuntimeOriginCaller extends Enum {692  readonly isVoid: boolean;693  readonly asVoid: SpCoreVoid;694  readonly isSystem: boolean;695  readonly asSystem: FrameSupportDispatchRawOrigin;696  readonly isPolkadotXcm: boolean;697  readonly asPolkadotXcm: PalletXcmOrigin;698  readonly isCumulusXcm: boolean;699  readonly asCumulusXcm: CumulusPalletXcmOrigin;700  readonly isEthereum: boolean;701  readonly asEthereum: PalletEthereumRawOrigin;702  readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';703}704705/** @name OpalRuntimeRuntime */706export interface OpalRuntimeRuntime extends Null {}707708/** @name OrmlVestingModuleCall */709export interface OrmlVestingModuleCall extends Enum {710  readonly isClaim: boolean;711  readonly isVestedTransfer: boolean;712  readonly asVestedTransfer: {713    readonly dest: MultiAddress;714    readonly schedule: OrmlVestingVestingSchedule;715  } & Struct;716  readonly isUpdateVestingSchedules: boolean;717  readonly asUpdateVestingSchedules: {718    readonly who: MultiAddress;719    readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;720  } & Struct;721  readonly isClaimFor: boolean;722  readonly asClaimFor: {723    readonly dest: MultiAddress;724  } & Struct;725  readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';726}727728/** @name OrmlVestingModuleError */729export interface OrmlVestingModuleError extends Enum {730  readonly isZeroVestingPeriod: boolean;731  readonly isZeroVestingPeriodCount: boolean;732  readonly isInsufficientBalanceToLock: boolean;733  readonly isTooManyVestingSchedules: boolean;734  readonly isAmountLow: boolean;735  readonly isMaxVestingSchedulesExceeded: boolean;736  readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';737}738739/** @name OrmlVestingModuleEvent */740export interface OrmlVestingModuleEvent extends Enum {741  readonly isVestingScheduleAdded: boolean;742  readonly asVestingScheduleAdded: {743    readonly from: AccountId32;744    readonly to: AccountId32;745    readonly vestingSchedule: OrmlVestingVestingSchedule;746  } & Struct;747  readonly isClaimed: boolean;748  readonly asClaimed: {749    readonly who: AccountId32;750    readonly amount: u128;751  } & Struct;752  readonly isVestingSchedulesUpdated: boolean;753  readonly asVestingSchedulesUpdated: {754    readonly who: AccountId32;755  } & Struct;756  readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';757}758759/** @name OrmlVestingVestingSchedule */760export interface OrmlVestingVestingSchedule extends Struct {761  readonly start: u32;762  readonly period: u32;763  readonly periodCount: u32;764  readonly perPeriod: Compact<u128>;765}766767/** @name PalletBalancesAccountData */768export interface PalletBalancesAccountData extends Struct {769  readonly free: u128;770  readonly reserved: u128;771  readonly miscFrozen: u128;772  readonly feeFrozen: u128;773}774775/** @name PalletBalancesBalanceLock */776export interface PalletBalancesBalanceLock extends Struct {777  readonly id: U8aFixed;778  readonly amount: u128;779  readonly reasons: PalletBalancesReasons;780}781782/** @name PalletBalancesCall */783export interface PalletBalancesCall extends Enum {784  readonly isTransfer: boolean;785  readonly asTransfer: {786    readonly dest: MultiAddress;787    readonly value: Compact<u128>;788  } & Struct;789  readonly isSetBalance: boolean;790  readonly asSetBalance: {791    readonly who: MultiAddress;792    readonly newFree: Compact<u128>;793    readonly newReserved: Compact<u128>;794  } & Struct;795  readonly isForceTransfer: boolean;796  readonly asForceTransfer: {797    readonly source: MultiAddress;798    readonly dest: MultiAddress;799    readonly value: Compact<u128>;800  } & Struct;801  readonly isTransferKeepAlive: boolean;802  readonly asTransferKeepAlive: {803    readonly dest: MultiAddress;804    readonly value: Compact<u128>;805  } & Struct;806  readonly isTransferAll: boolean;807  readonly asTransferAll: {808    readonly dest: MultiAddress;809    readonly keepAlive: bool;810  } & Struct;811  readonly isForceUnreserve: boolean;812  readonly asForceUnreserve: {813    readonly who: MultiAddress;814    readonly amount: u128;815  } & Struct;816  readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';817}818819/** @name PalletBalancesError */820export interface PalletBalancesError extends Enum {821  readonly isVestingBalance: boolean;822  readonly isLiquidityRestrictions: boolean;823  readonly isInsufficientBalance: boolean;824  readonly isExistentialDeposit: boolean;825  readonly isKeepAlive: boolean;826  readonly isExistingVestingSchedule: boolean;827  readonly isDeadAccount: boolean;828  readonly isTooManyReserves: boolean;829  readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';830}831832/** @name PalletBalancesEvent */833export interface PalletBalancesEvent extends Enum {834  readonly isEndowed: boolean;835  readonly asEndowed: {836    readonly account: AccountId32;837    readonly freeBalance: u128;838  } & Struct;839  readonly isDustLost: boolean;840  readonly asDustLost: {841    readonly account: AccountId32;842    readonly amount: u128;843  } & Struct;844  readonly isTransfer: boolean;845  readonly asTransfer: {846    readonly from: AccountId32;847    readonly to: AccountId32;848    readonly amount: u128;849  } & Struct;850  readonly isBalanceSet: boolean;851  readonly asBalanceSet: {852    readonly who: AccountId32;853    readonly free: u128;854    readonly reserved: u128;855  } & Struct;856  readonly isReserved: boolean;857  readonly asReserved: {858    readonly who: AccountId32;859    readonly amount: u128;860  } & Struct;861  readonly isUnreserved: boolean;862  readonly asUnreserved: {863    readonly who: AccountId32;864    readonly amount: u128;865  } & Struct;866  readonly isReserveRepatriated: boolean;867  readonly asReserveRepatriated: {868    readonly from: AccountId32;869    readonly to: AccountId32;870    readonly amount: u128;871    readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;872  } & Struct;873  readonly isDeposit: boolean;874  readonly asDeposit: {875    readonly who: AccountId32;876    readonly amount: u128;877  } & Struct;878  readonly isWithdraw: boolean;879  readonly asWithdraw: {880    readonly who: AccountId32;881    readonly amount: u128;882  } & Struct;883  readonly isSlashed: boolean;884  readonly asSlashed: {885    readonly who: AccountId32;886    readonly amount: u128;887  } & Struct;888  readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';889}890891/** @name PalletBalancesReasons */892export interface PalletBalancesReasons extends Enum {893  readonly isFee: boolean;894  readonly isMisc: boolean;895  readonly isAll: boolean;896  readonly type: 'Fee' | 'Misc' | 'All';897}898899/** @name PalletBalancesReleases */900export interface PalletBalancesReleases extends Enum {901  readonly isV100: boolean;902  readonly isV200: boolean;903  readonly type: 'V100' | 'V200';904}905906/** @name PalletBalancesReserveData */907export interface PalletBalancesReserveData extends Struct {908  readonly id: U8aFixed;909  readonly amount: u128;910}911912/** @name PalletCommonError */913export interface PalletCommonError extends Enum {914  readonly isCollectionNotFound: boolean;915  readonly isMustBeTokenOwner: boolean;916  readonly isNoPermission: boolean;917  readonly isCantDestroyNotEmptyCollection: boolean;918  readonly isPublicMintingNotAllowed: boolean;919  readonly isAddressNotInAllowlist: boolean;920  readonly isCollectionNameLimitExceeded: boolean;921  readonly isCollectionDescriptionLimitExceeded: boolean;922  readonly isCollectionTokenPrefixLimitExceeded: boolean;923  readonly isTotalCollectionsLimitExceeded: boolean;924  readonly isCollectionAdminCountExceeded: boolean;925  readonly isCollectionLimitBoundsExceeded: boolean;926  readonly isOwnerPermissionsCantBeReverted: boolean;927  readonly isTransferNotAllowed: boolean;928  readonly isAccountTokenLimitExceeded: boolean;929  readonly isCollectionTokenLimitExceeded: boolean;930  readonly isMetadataFlagFrozen: boolean;931  readonly isTokenNotFound: boolean;932  readonly isTokenValueTooLow: boolean;933  readonly isApprovedValueTooLow: boolean;934  readonly isCantApproveMoreThanOwned: boolean;935  readonly isAddressIsZero: boolean;936  readonly isUnsupportedOperation: boolean;937  readonly isNotSufficientFounds: boolean;938  readonly isNestingIsDisabled: boolean;939  readonly isOnlyOwnerAllowedToNest: boolean;940  readonly isSourceCollectionIsNotAllowedToNest: boolean;941  readonly isCollectionFieldSizeExceeded: boolean;942  readonly isNoSpaceForProperty: boolean;943  readonly isPropertyLimitReached: boolean;944  readonly isPropertyKeyIsTooLong: boolean;945  readonly isInvalidCharacterInPropertyKey: boolean;946  readonly isEmptyPropertyKey: boolean;947  readonly isCollectionIsExternal: boolean;948  readonly isCollectionIsInternal: boolean;949  readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';950}951952/** @name PalletCommonEvent */953export interface PalletCommonEvent extends Enum {954  readonly isCollectionCreated: boolean;955  readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;956  readonly isCollectionDestroyed: boolean;957  readonly asCollectionDestroyed: u32;958  readonly isItemCreated: boolean;959  readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;960  readonly isItemDestroyed: boolean;961  readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;962  readonly isTransfer: boolean;963  readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;964  readonly isApproved: boolean;965  readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;966  readonly isCollectionPropertySet: boolean;967  readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;968  readonly isCollectionPropertyDeleted: boolean;969  readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;970  readonly isTokenPropertySet: boolean;971  readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;972  readonly isTokenPropertyDeleted: boolean;973  readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;974  readonly isPropertyPermissionSet: boolean;975  readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;976  readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';977}978979/** @name PalletEthereumCall */980export interface PalletEthereumCall extends Enum {981  readonly isTransact: boolean;982  readonly asTransact: {983    readonly transaction: EthereumTransactionTransactionV2;984  } & Struct;985  readonly type: 'Transact';986}987988/** @name PalletEthereumError */989export interface PalletEthereumError extends Enum {990  readonly isInvalidSignature: boolean;991  readonly isPreLogExists: boolean;992  readonly type: 'InvalidSignature' | 'PreLogExists';993}994995/** @name PalletEthereumEvent */996export interface PalletEthereumEvent extends Enum {997  readonly isExecuted: boolean;998  readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;999  readonly type: 'Executed';1000}10011002/** @name PalletEthereumFakeTransactionFinalizer */1003export interface PalletEthereumFakeTransactionFinalizer extends Null {}10041005/** @name PalletEthereumRawOrigin */1006export interface PalletEthereumRawOrigin extends Enum {1007  readonly isEthereumTransaction: boolean;1008  readonly asEthereumTransaction: H160;1009  readonly type: 'EthereumTransaction';1010}10111012/** @name PalletEvmAccountBasicCrossAccountIdRepr */1013export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1014  readonly isSubstrate: boolean;1015  readonly asSubstrate: AccountId32;1016  readonly isEthereum: boolean;1017  readonly asEthereum: H160;1018  readonly type: 'Substrate' | 'Ethereum';1019}10201021/** @name PalletEvmCall */1022export interface PalletEvmCall extends Enum {1023  readonly isWithdraw: boolean;1024  readonly asWithdraw: {1025    readonly address: H160;1026    readonly value: u128;1027  } & Struct;1028  readonly isCall: boolean;1029  readonly asCall: {1030    readonly source: H160;1031    readonly target: H160;1032    readonly input: Bytes;1033    readonly value: U256;1034    readonly gasLimit: u64;1035    readonly maxFeePerGas: U256;1036    readonly maxPriorityFeePerGas: Option<U256>;1037    readonly nonce: Option<U256>;1038    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1039  } & Struct;1040  readonly isCreate: boolean;1041  readonly asCreate: {1042    readonly source: H160;1043    readonly init: Bytes;1044    readonly value: U256;1045    readonly gasLimit: u64;1046    readonly maxFeePerGas: U256;1047    readonly maxPriorityFeePerGas: Option<U256>;1048    readonly nonce: Option<U256>;1049    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1050  } & Struct;1051  readonly isCreate2: boolean;1052  readonly asCreate2: {1053    readonly source: H160;1054    readonly init: Bytes;1055    readonly salt: H256;1056    readonly value: U256;1057    readonly gasLimit: u64;1058    readonly maxFeePerGas: U256;1059    readonly maxPriorityFeePerGas: Option<U256>;1060    readonly nonce: Option<U256>;1061    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1062  } & Struct;1063  readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1064}10651066/** @name PalletEvmCoderSubstrateError */1067export interface PalletEvmCoderSubstrateError extends Enum {1068  readonly isOutOfGas: boolean;1069  readonly isOutOfFund: boolean;1070  readonly type: 'OutOfGas' | 'OutOfFund';1071}10721073/** @name PalletEvmContractHelpersError */1074export interface PalletEvmContractHelpersError extends Enum {1075  readonly isNoPermission: boolean;1076  readonly type: 'NoPermission';1077}10781079/** @name PalletEvmContractHelpersSponsoringModeT */1080export interface PalletEvmContractHelpersSponsoringModeT extends Enum {1081  readonly isDisabled: boolean;1082  readonly isAllowlisted: boolean;1083  readonly isGenerous: boolean;1084  readonly type: 'Disabled' | 'Allowlisted' | 'Generous';1085}10861087/** @name PalletEvmError */1088export interface PalletEvmError extends Enum {1089  readonly isBalanceLow: boolean;1090  readonly isFeeOverflow: boolean;1091  readonly isPaymentOverflow: boolean;1092  readonly isWithdrawFailed: boolean;1093  readonly isGasPriceTooLow: boolean;1094  readonly isInvalidNonce: boolean;1095  readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';1096}10971098/** @name PalletEvmEvent */1099export interface PalletEvmEvent extends Enum {1100  readonly isLog: boolean;1101  readonly asLog: EthereumLog;1102  readonly isCreated: boolean;1103  readonly asCreated: H160;1104  readonly isCreatedFailed: boolean;1105  readonly asCreatedFailed: H160;1106  readonly isExecuted: boolean;1107  readonly asExecuted: H160;1108  readonly isExecutedFailed: boolean;1109  readonly asExecutedFailed: H160;1110  readonly isBalanceDeposit: boolean;1111  readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1112  readonly isBalanceWithdraw: boolean;1113  readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1114  readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1115}11161117/** @name PalletEvmMigrationCall */1118export interface PalletEvmMigrationCall extends Enum {1119  readonly isBegin: boolean;1120  readonly asBegin: {1121    readonly address: H160;1122  } & Struct;1123  readonly isSetData: boolean;1124  readonly asSetData: {1125    readonly address: H160;1126    readonly data: Vec<ITuple<[H256, H256]>>;1127  } & Struct;1128  readonly isFinish: boolean;1129  readonly asFinish: {1130    readonly address: H160;1131    readonly code: Bytes;1132  } & Struct;1133  readonly type: 'Begin' | 'SetData' | 'Finish';1134}11351136/** @name PalletEvmMigrationError */1137export interface PalletEvmMigrationError extends Enum {1138  readonly isAccountNotEmpty: boolean;1139  readonly isAccountIsNotMigrating: boolean;1140  readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';1141}11421143/** @name PalletFungibleError */1144export interface PalletFungibleError extends Enum {1145  readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;1146  readonly isFungibleItemsHaveNoId: boolean;1147  readonly isFungibleItemsDontHaveData: boolean;1148  readonly isFungibleDisallowsNesting: boolean;1149  readonly isSettingPropertiesNotAllowed: boolean;1150  readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1151}11521153/** @name PalletInflationCall */1154export interface PalletInflationCall extends Enum {1155  readonly isStartInflation: boolean;1156  readonly asStartInflation: {1157    readonly inflationStartRelayBlock: u32;1158  } & Struct;1159  readonly type: 'StartInflation';1160}11611162/** @name PalletNonfungibleError */1163export interface PalletNonfungibleError extends Enum {1164  readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;1165  readonly isNonfungibleItemsHaveNoAmount: boolean;1166  readonly isCantBurnNftWithChildren: boolean;1167  readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';1168}11691170/** @name PalletNonfungibleItemData */1171export interface PalletNonfungibleItemData extends Struct {1172  readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1173}11741175/** @name PalletRefungibleError */1176export interface PalletRefungibleError extends Enum {1177  readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;1178  readonly isWrongRefungiblePieces: boolean;1179  readonly isRefungibleDisallowsNesting: boolean;1180  readonly isSettingPropertiesNotAllowed: boolean;1181  readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1182}11831184/** @name PalletRefungibleItemData */1185export interface PalletRefungibleItemData extends Struct {1186  readonly constData: Bytes;1187}11881189/** @name PalletRmrkCoreCall */1190export interface PalletRmrkCoreCall extends Enum {1191  readonly isCreateCollection: boolean;1192  readonly asCreateCollection: {1193    readonly metadata: Bytes;1194    readonly max: Option<u32>;1195    readonly symbol: Bytes;1196  } & Struct;1197  readonly isDestroyCollection: boolean;1198  readonly asDestroyCollection: {1199    readonly collectionId: u32;1200  } & Struct;1201  readonly isChangeCollectionIssuer: boolean;1202  readonly asChangeCollectionIssuer: {1203    readonly collectionId: u32;1204    readonly newIssuer: MultiAddress;1205  } & Struct;1206  readonly isLockCollection: boolean;1207  readonly asLockCollection: {1208    readonly collectionId: u32;1209  } & Struct;1210  readonly isMintNft: boolean;1211  readonly asMintNft: {1212    readonly owner: AccountId32;1213    readonly collectionId: u32;1214    readonly recipient: Option<AccountId32>;1215    readonly royaltyAmount: Option<Permill>;1216    readonly metadata: Bytes;1217    readonly transferable: bool;1218  } & Struct;1219  readonly isBurnNft: boolean;1220  readonly asBurnNft: {1221    readonly collectionId: u32;1222    readonly nftId: u32;1223  } & Struct;1224  readonly isSend: boolean;1225  readonly asSend: {1226    readonly rmrkCollectionId: u32;1227    readonly rmrkNftId: u32;1228    readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1229  } & Struct;1230  readonly isAcceptNft: boolean;1231  readonly asAcceptNft: {1232    readonly rmrkCollectionId: u32;1233    readonly rmrkNftId: u32;1234    readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1235  } & Struct;1236  readonly isRejectNft: boolean;1237  readonly asRejectNft: {1238    readonly rmrkCollectionId: u32;1239    readonly rmrkNftId: u32;1240  } & Struct;1241  readonly isAcceptResource: boolean;1242  readonly asAcceptResource: {1243    readonly rmrkCollectionId: u32;1244    readonly rmrkNftId: u32;1245    readonly rmrkResourceId: u32;1246  } & Struct;1247  readonly isAcceptResourceRemoval: boolean;1248  readonly asAcceptResourceRemoval: {1249    readonly rmrkCollectionId: u32;1250    readonly rmrkNftId: u32;1251    readonly rmrkResourceId: u32;1252  } & Struct;1253  readonly isSetProperty: boolean;1254  readonly asSetProperty: {1255    readonly rmrkCollectionId: Compact<u32>;1256    readonly maybeNftId: Option<u32>;1257    readonly key: Bytes;1258    readonly value: Bytes;1259  } & Struct;1260  readonly isSetPriority: boolean;1261  readonly asSetPriority: {1262    readonly rmrkCollectionId: u32;1263    readonly rmrkNftId: u32;1264    readonly priorities: Vec<u32>;1265  } & Struct;1266  readonly isAddBasicResource: boolean;1267  readonly asAddBasicResource: {1268    readonly rmrkCollectionId: u32;1269    readonly nftId: u32;1270    readonly resource: RmrkTraitsResourceBasicResource;1271  } & Struct;1272  readonly isAddComposableResource: boolean;1273  readonly asAddComposableResource: {1274    readonly rmrkCollectionId: u32;1275    readonly nftId: u32;1276    readonly resourceId: Bytes;1277    readonly resource: RmrkTraitsResourceComposableResource;1278  } & Struct;1279  readonly isAddSlotResource: boolean;1280  readonly asAddSlotResource: {1281    readonly rmrkCollectionId: u32;1282    readonly nftId: u32;1283    readonly resource: RmrkTraitsResourceSlotResource;1284  } & Struct;1285  readonly isRemoveResource: boolean;1286  readonly asRemoveResource: {1287    readonly rmrkCollectionId: u32;1288    readonly nftId: u32;1289    readonly resourceId: u32;1290  } & Struct;1291  readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';1292}12931294/** @name PalletRmrkCoreError */1295export interface PalletRmrkCoreError extends Enum {1296  readonly isCorruptedCollectionType: boolean;1297  readonly isNftTypeEncodeError: boolean;1298  readonly isRmrkPropertyKeyIsTooLong: boolean;1299  readonly isRmrkPropertyValueIsTooLong: boolean;1300  readonly isCollectionNotEmpty: boolean;1301  readonly isNoAvailableCollectionId: boolean;1302  readonly isNoAvailableNftId: boolean;1303  readonly isCollectionUnknown: boolean;1304  readonly isNoPermission: boolean;1305  readonly isNonTransferable: boolean;1306  readonly isCollectionFullOrLocked: boolean;1307  readonly isResourceDoesntExist: boolean;1308  readonly isCannotSendToDescendentOrSelf: boolean;1309  readonly isCannotAcceptNonOwnedNft: boolean;1310  readonly isCannotRejectNonOwnedNft: boolean;1311  readonly isResourceNotPending: boolean;1312  readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending';1313}13141315/** @name PalletRmrkCoreEvent */1316export interface PalletRmrkCoreEvent extends Enum {1317  readonly isCollectionCreated: boolean;1318  readonly asCollectionCreated: {1319    readonly issuer: AccountId32;1320    readonly collectionId: u32;1321  } & Struct;1322  readonly isCollectionDestroyed: boolean;1323  readonly asCollectionDestroyed: {1324    readonly issuer: AccountId32;1325    readonly collectionId: u32;1326  } & Struct;1327  readonly isIssuerChanged: boolean;1328  readonly asIssuerChanged: {1329    readonly oldIssuer: AccountId32;1330    readonly newIssuer: AccountId32;1331    readonly collectionId: u32;1332  } & Struct;1333  readonly isCollectionLocked: boolean;1334  readonly asCollectionLocked: {1335    readonly issuer: AccountId32;1336    readonly collectionId: u32;1337  } & Struct;1338  readonly isNftMinted: boolean;1339  readonly asNftMinted: {1340    readonly owner: AccountId32;1341    readonly collectionId: u32;1342    readonly nftId: u32;1343  } & Struct;1344  readonly isNftBurned: boolean;1345  readonly asNftBurned: {1346    readonly owner: AccountId32;1347    readonly nftId: u32;1348  } & Struct;1349  readonly isNftSent: boolean;1350  readonly asNftSent: {1351    readonly sender: AccountId32;1352    readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1353    readonly collectionId: u32;1354    readonly nftId: u32;1355    readonly approvalRequired: bool;1356  } & Struct;1357  readonly isNftAccepted: boolean;1358  readonly asNftAccepted: {1359    readonly sender: AccountId32;1360    readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1361    readonly collectionId: u32;1362    readonly nftId: u32;1363  } & Struct;1364  readonly isNftRejected: boolean;1365  readonly asNftRejected: {1366    readonly sender: AccountId32;1367    readonly collectionId: u32;1368    readonly nftId: u32;1369  } & Struct;1370  readonly isPropertySet: boolean;1371  readonly asPropertySet: {1372    readonly collectionId: u32;1373    readonly maybeNftId: Option<u32>;1374    readonly key: Bytes;1375    readonly value: Bytes;1376  } & Struct;1377  readonly isResourceAdded: boolean;1378  readonly asResourceAdded: {1379    readonly nftId: u32;1380    readonly resourceId: u32;1381  } & Struct;1382  readonly isResourceRemoval: boolean;1383  readonly asResourceRemoval: {1384    readonly nftId: u32;1385    readonly resourceId: u32;1386  } & Struct;1387  readonly isResourceAccepted: boolean;1388  readonly asResourceAccepted: {1389    readonly nftId: u32;1390    readonly resourceId: u32;1391  } & Struct;1392  readonly isResourceRemovalAccepted: boolean;1393  readonly asResourceRemovalAccepted: {1394    readonly nftId: u32;1395    readonly resourceId: u32;1396  } & Struct;1397  readonly isPrioritySet: boolean;1398  readonly asPrioritySet: {1399    readonly collectionId: u32;1400    readonly nftId: u32;1401  } & Struct;1402  readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1403}14041405/** @name PalletRmrkEquipCall */1406export interface PalletRmrkEquipCall extends Enum {1407  readonly isCreateBase: boolean;1408  readonly asCreateBase: {1409    readonly baseType: Bytes;1410    readonly symbol: Bytes;1411    readonly parts: Vec<RmrkTraitsPartPartType>;1412  } & Struct;1413  readonly isThemeAdd: boolean;1414  readonly asThemeAdd: {1415    readonly baseId: u32;1416    readonly theme: RmrkTraitsTheme;1417  } & Struct;1418  readonly type: 'CreateBase' | 'ThemeAdd';1419}14201421/** @name PalletRmrkEquipError */1422export interface PalletRmrkEquipError extends Enum {1423  readonly isPermissionError: boolean;1424  readonly isNoAvailableBaseId: boolean;1425  readonly isNoAvailablePartId: boolean;1426  readonly isBaseDoesntExist: boolean;1427  readonly isNeedsDefaultThemeFirst: boolean;1428  readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst';1429}14301431/** @name PalletRmrkEquipEvent */1432export interface PalletRmrkEquipEvent extends Enum {1433  readonly isBaseCreated: boolean;1434  readonly asBaseCreated: {1435    readonly issuer: AccountId32;1436    readonly baseId: u32;1437  } & Struct;1438  readonly type: 'BaseCreated';1439}14401441/** @name PalletStructureCall */1442export interface PalletStructureCall extends Null {}14431444/** @name PalletStructureError */1445export interface PalletStructureError extends Enum {1446  readonly isOuroborosDetected: boolean;1447  readonly isDepthLimit: boolean;1448  readonly isTokenNotFound: boolean;1449  readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';1450}14511452/** @name PalletStructureEvent */1453export interface PalletStructureEvent extends Enum {1454  readonly isExecuted: boolean;1455  readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1456  readonly type: 'Executed';1457}14581459/** @name PalletSudoCall */1460export interface PalletSudoCall extends Enum {1461  readonly isSudo: boolean;1462  readonly asSudo: {1463    readonly call: Call;1464  } & Struct;1465  readonly isSudoUncheckedWeight: boolean;1466  readonly asSudoUncheckedWeight: {1467    readonly call: Call;1468    readonly weight: u64;1469  } & Struct;1470  readonly isSetKey: boolean;1471  readonly asSetKey: {1472    readonly new_: MultiAddress;1473  } & Struct;1474  readonly isSudoAs: boolean;1475  readonly asSudoAs: {1476    readonly who: MultiAddress;1477    readonly call: Call;1478  } & Struct;1479  readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1480}14811482/** @name PalletSudoError */1483export interface PalletSudoError extends Enum {1484  readonly isRequireSudo: boolean;1485  readonly type: 'RequireSudo';1486}14871488/** @name PalletSudoEvent */1489export interface PalletSudoEvent extends Enum {1490  readonly isSudid: boolean;1491  readonly asSudid: {1492    readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1493  } & Struct;1494  readonly isKeyChanged: boolean;1495  readonly asKeyChanged: {1496    readonly oldSudoer: Option<AccountId32>;1497  } & Struct;1498  readonly isSudoAsDone: boolean;1499  readonly asSudoAsDone: {1500    readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1501  } & Struct;1502  readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1503}15041505/** @name PalletTemplateTransactionPaymentCall */1506export interface PalletTemplateTransactionPaymentCall extends Null {}15071508/** @name PalletTemplateTransactionPaymentChargeTransactionPayment */1509export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}15101511/** @name PalletTimestampCall */1512export interface PalletTimestampCall extends Enum {1513  readonly isSet: boolean;1514  readonly asSet: {1515    readonly now: Compact<u64>;1516  } & Struct;1517  readonly type: 'Set';1518}15191520/** @name PalletTransactionPaymentReleases */1521export interface PalletTransactionPaymentReleases extends Enum {1522  readonly isV1Ancient: boolean;1523  readonly isV2: boolean;1524  readonly type: 'V1Ancient' | 'V2';1525}15261527/** @name PalletTreasuryCall */1528export interface PalletTreasuryCall extends Enum {1529  readonly isProposeSpend: boolean;1530  readonly asProposeSpend: {1531    readonly value: Compact<u128>;1532    readonly beneficiary: MultiAddress;1533  } & Struct;1534  readonly isRejectProposal: boolean;1535  readonly asRejectProposal: {1536    readonly proposalId: Compact<u32>;1537  } & Struct;1538  readonly isApproveProposal: boolean;1539  readonly asApproveProposal: {1540    readonly proposalId: Compact<u32>;1541  } & Struct;1542  readonly isRemoveApproval: boolean;1543  readonly asRemoveApproval: {1544    readonly proposalId: Compact<u32>;1545  } & Struct;1546  readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'RemoveApproval';1547}15481549/** @name PalletTreasuryError */1550export interface PalletTreasuryError extends Enum {1551  readonly isInsufficientProposersBalance: boolean;1552  readonly isInvalidIndex: boolean;1553  readonly isTooManyApprovals: boolean;1554  readonly isProposalNotApproved: boolean;1555  readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'ProposalNotApproved';1556}15571558/** @name PalletTreasuryEvent */1559export interface PalletTreasuryEvent extends Enum {1560  readonly isProposed: boolean;1561  readonly asProposed: {1562    readonly proposalIndex: u32;1563  } & Struct;1564  readonly isSpending: boolean;1565  readonly asSpending: {1566    readonly budgetRemaining: u128;1567  } & Struct;1568  readonly isAwarded: boolean;1569  readonly asAwarded: {1570    readonly proposalIndex: u32;1571    readonly award: u128;1572    readonly account: AccountId32;1573  } & Struct;1574  readonly isRejected: boolean;1575  readonly asRejected: {1576    readonly proposalIndex: u32;1577    readonly slashed: u128;1578  } & Struct;1579  readonly isBurnt: boolean;1580  readonly asBurnt: {1581    readonly burntFunds: u128;1582  } & Struct;1583  readonly isRollover: boolean;1584  readonly asRollover: {1585    readonly rolloverBalance: u128;1586  } & Struct;1587  readonly isDeposit: boolean;1588  readonly asDeposit: {1589    readonly value: u128;1590  } & Struct;1591  readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';1592}15931594/** @name PalletTreasuryProposal */1595export interface PalletTreasuryProposal extends Struct {1596  readonly proposer: AccountId32;1597  readonly value: u128;1598  readonly beneficiary: AccountId32;1599  readonly bond: u128;1600}16011602/** @name PalletUniqueCall */1603export interface PalletUniqueCall extends Enum {1604  readonly isCreateCollection: boolean;1605  readonly asCreateCollection: {1606    readonly collectionName: Vec<u16>;1607    readonly collectionDescription: Vec<u16>;1608    readonly tokenPrefix: Bytes;1609    readonly mode: UpDataStructsCollectionMode;1610  } & Struct;1611  readonly isCreateCollectionEx: boolean;1612  readonly asCreateCollectionEx: {1613    readonly data: UpDataStructsCreateCollectionData;1614  } & Struct;1615  readonly isDestroyCollection: boolean;1616  readonly asDestroyCollection: {1617    readonly collectionId: u32;1618  } & Struct;1619  readonly isAddToAllowList: boolean;1620  readonly asAddToAllowList: {1621    readonly collectionId: u32;1622    readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1623  } & Struct;1624  readonly isRemoveFromAllowList: boolean;1625  readonly asRemoveFromAllowList: {1626    readonly collectionId: u32;1627    readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1628  } & Struct;1629  readonly isChangeCollectionOwner: boolean;1630  readonly asChangeCollectionOwner: {1631    readonly collectionId: u32;1632    readonly newOwner: AccountId32;1633  } & Struct;1634  readonly isAddCollectionAdmin: boolean;1635  readonly asAddCollectionAdmin: {1636    readonly collectionId: u32;1637    readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;1638  } & Struct;1639  readonly isRemoveCollectionAdmin: boolean;1640  readonly asRemoveCollectionAdmin: {1641    readonly collectionId: u32;1642    readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1643  } & Struct;1644  readonly isSetCollectionSponsor: boolean;1645  readonly asSetCollectionSponsor: {1646    readonly collectionId: u32;1647    readonly newSponsor: AccountId32;1648  } & Struct;1649  readonly isConfirmSponsorship: boolean;1650  readonly asConfirmSponsorship: {1651    readonly collectionId: u32;1652  } & Struct;1653  readonly isRemoveCollectionSponsor: boolean;1654  readonly asRemoveCollectionSponsor: {1655    readonly collectionId: u32;1656  } & Struct;1657  readonly isCreateItem: boolean;1658  readonly asCreateItem: {1659    readonly collectionId: u32;1660    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1661    readonly data: UpDataStructsCreateItemData;1662  } & Struct;1663  readonly isCreateMultipleItems: boolean;1664  readonly asCreateMultipleItems: {1665    readonly collectionId: u32;1666    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1667    readonly itemsData: Vec<UpDataStructsCreateItemData>;1668  } & Struct;1669  readonly isSetCollectionProperties: boolean;1670  readonly asSetCollectionProperties: {1671    readonly collectionId: u32;1672    readonly properties: Vec<UpDataStructsProperty>;1673  } & Struct;1674  readonly isDeleteCollectionProperties: boolean;1675  readonly asDeleteCollectionProperties: {1676    readonly collectionId: u32;1677    readonly propertyKeys: Vec<Bytes>;1678  } & Struct;1679  readonly isSetTokenProperties: boolean;1680  readonly asSetTokenProperties: {1681    readonly collectionId: u32;1682    readonly tokenId: u32;1683    readonly properties: Vec<UpDataStructsProperty>;1684  } & Struct;1685  readonly isDeleteTokenProperties: boolean;1686  readonly asDeleteTokenProperties: {1687    readonly collectionId: u32;1688    readonly tokenId: u32;1689    readonly propertyKeys: Vec<Bytes>;1690  } & Struct;1691  readonly isSetPropertyPermissions: boolean;1692  readonly asSetPropertyPermissions: {1693    readonly collectionId: u32;1694    readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1695  } & Struct;1696  readonly isCreateMultipleItemsEx: boolean;1697  readonly asCreateMultipleItemsEx: {1698    readonly collectionId: u32;1699    readonly data: UpDataStructsCreateItemExData;1700  } & Struct;1701  readonly isSetTransfersEnabledFlag: boolean;1702  readonly asSetTransfersEnabledFlag: {1703    readonly collectionId: u32;1704    readonly value: bool;1705  } & Struct;1706  readonly isBurnItem: boolean;1707  readonly asBurnItem: {1708    readonly collectionId: u32;1709    readonly itemId: u32;1710    readonly value: u128;1711  } & Struct;1712  readonly isBurnFrom: boolean;1713  readonly asBurnFrom: {1714    readonly collectionId: u32;1715    readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1716    readonly itemId: u32;1717    readonly value: u128;1718  } & Struct;1719  readonly isTransfer: boolean;1720  readonly asTransfer: {1721    readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1722    readonly collectionId: u32;1723    readonly itemId: u32;1724    readonly value: u128;1725  } & Struct;1726  readonly isApprove: boolean;1727  readonly asApprove: {1728    readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1729    readonly collectionId: u32;1730    readonly itemId: u32;1731    readonly amount: u128;1732  } & Struct;1733  readonly isTransferFrom: boolean;1734  readonly asTransferFrom: {1735    readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1736    readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1737    readonly collectionId: u32;1738    readonly itemId: u32;1739    readonly value: u128;1740  } & Struct;1741  readonly isSetCollectionLimits: boolean;1742  readonly asSetCollectionLimits: {1743    readonly collectionId: u32;1744    readonly newLimit: UpDataStructsCollectionLimits;1745  } & Struct;1746  readonly isSetCollectionPermissions: boolean;1747  readonly asSetCollectionPermissions: {1748    readonly collectionId: u32;1749    readonly newLimit: UpDataStructsCollectionPermissions;1750  } & Struct;1751  readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions';1752}17531754/** @name PalletUniqueError */1755export interface PalletUniqueError extends Enum {1756  readonly isCollectionDecimalPointLimitExceeded: boolean;1757  readonly isConfirmUnsetSponsorFail: boolean;1758  readonly isEmptyArgument: boolean;1759  readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';1760}17611762/** @name PalletUniqueRawEvent */1763export interface PalletUniqueRawEvent extends Enum {1764  readonly isCollectionSponsorRemoved: boolean;1765  readonly asCollectionSponsorRemoved: u32;1766  readonly isCollectionAdminAdded: boolean;1767  readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1768  readonly isCollectionOwnedChanged: boolean;1769  readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;1770  readonly isCollectionSponsorSet: boolean;1771  readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;1772  readonly isSponsorshipConfirmed: boolean;1773  readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;1774  readonly isCollectionAdminRemoved: boolean;1775  readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1776  readonly isAllowListAddressRemoved: boolean;1777  readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1778  readonly isAllowListAddressAdded: boolean;1779  readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1780  readonly isCollectionLimitSet: boolean;1781  readonly asCollectionLimitSet: u32;1782  readonly isCollectionPermissionSet: boolean;1783  readonly asCollectionPermissionSet: u32;1784  readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';1785}17861787/** @name PalletUnqSchedulerCall */1788export interface PalletUnqSchedulerCall extends Enum {1789  readonly isScheduleNamed: boolean;1790  readonly asScheduleNamed: {1791    readonly id: U8aFixed;1792    readonly when: u32;1793    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1794    readonly priority: u8;1795    readonly call: FrameSupportScheduleMaybeHashed;1796  } & Struct;1797  readonly isCancelNamed: boolean;1798  readonly asCancelNamed: {1799    readonly id: U8aFixed;1800  } & Struct;1801  readonly isScheduleNamedAfter: boolean;1802  readonly asScheduleNamedAfter: {1803    readonly id: U8aFixed;1804    readonly after: u32;1805    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1806    readonly priority: u8;1807    readonly call: FrameSupportScheduleMaybeHashed;1808  } & Struct;1809  readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';1810}18111812/** @name PalletUnqSchedulerError */1813export interface PalletUnqSchedulerError extends Enum {1814  readonly isFailedToSchedule: boolean;1815  readonly isNotFound: boolean;1816  readonly isTargetBlockNumberInPast: boolean;1817  readonly isRescheduleNoChange: boolean;1818  readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';1819}18201821/** @name PalletUnqSchedulerEvent */1822export interface PalletUnqSchedulerEvent extends Enum {1823  readonly isScheduled: boolean;1824  readonly asScheduled: {1825    readonly when: u32;1826    readonly index: u32;1827  } & Struct;1828  readonly isCanceled: boolean;1829  readonly asCanceled: {1830    readonly when: u32;1831    readonly index: u32;1832  } & Struct;1833  readonly isDispatched: boolean;1834  readonly asDispatched: {1835    readonly task: ITuple<[u32, u32]>;1836    readonly id: Option<U8aFixed>;1837    readonly result: Result<Null, SpRuntimeDispatchError>;1838  } & Struct;1839  readonly isCallLookupFailed: boolean;1840  readonly asCallLookupFailed: {1841    readonly task: ITuple<[u32, u32]>;1842    readonly id: Option<U8aFixed>;1843    readonly error: FrameSupportScheduleLookupError;1844  } & Struct;1845  readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';1846}18471848/** @name PalletUnqSchedulerScheduledV3 */1849export interface PalletUnqSchedulerScheduledV3 extends Struct {1850  readonly maybeId: Option<U8aFixed>;1851  readonly priority: u8;1852  readonly call: FrameSupportScheduleMaybeHashed;1853  readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1854  readonly origin: OpalRuntimeOriginCaller;1855}18561857/** @name PalletXcmCall */1858export interface PalletXcmCall extends Enum {1859  readonly isSend: boolean;1860  readonly asSend: {1861    readonly dest: XcmVersionedMultiLocation;1862    readonly message: XcmVersionedXcm;1863  } & Struct;1864  readonly isTeleportAssets: boolean;1865  readonly asTeleportAssets: {1866    readonly dest: XcmVersionedMultiLocation;1867    readonly beneficiary: XcmVersionedMultiLocation;1868    readonly assets: XcmVersionedMultiAssets;1869    readonly feeAssetItem: u32;1870  } & Struct;1871  readonly isReserveTransferAssets: boolean;1872  readonly asReserveTransferAssets: {1873    readonly dest: XcmVersionedMultiLocation;1874    readonly beneficiary: XcmVersionedMultiLocation;1875    readonly assets: XcmVersionedMultiAssets;1876    readonly feeAssetItem: u32;1877  } & Struct;1878  readonly isExecute: boolean;1879  readonly asExecute: {1880    readonly message: XcmVersionedXcm;1881    readonly maxWeight: u64;1882  } & Struct;1883  readonly isForceXcmVersion: boolean;1884  readonly asForceXcmVersion: {1885    readonly location: XcmV1MultiLocation;1886    readonly xcmVersion: u32;1887  } & Struct;1888  readonly isForceDefaultXcmVersion: boolean;1889  readonly asForceDefaultXcmVersion: {1890    readonly maybeXcmVersion: Option<u32>;1891  } & Struct;1892  readonly isForceSubscribeVersionNotify: boolean;1893  readonly asForceSubscribeVersionNotify: {1894    readonly location: XcmVersionedMultiLocation;1895  } & Struct;1896  readonly isForceUnsubscribeVersionNotify: boolean;1897  readonly asForceUnsubscribeVersionNotify: {1898    readonly location: XcmVersionedMultiLocation;1899  } & Struct;1900  readonly isLimitedReserveTransferAssets: boolean;1901  readonly asLimitedReserveTransferAssets: {1902    readonly dest: XcmVersionedMultiLocation;1903    readonly beneficiary: XcmVersionedMultiLocation;1904    readonly assets: XcmVersionedMultiAssets;1905    readonly feeAssetItem: u32;1906    readonly weightLimit: XcmV2WeightLimit;1907  } & Struct;1908  readonly isLimitedTeleportAssets: boolean;1909  readonly asLimitedTeleportAssets: {1910    readonly dest: XcmVersionedMultiLocation;1911    readonly beneficiary: XcmVersionedMultiLocation;1912    readonly assets: XcmVersionedMultiAssets;1913    readonly feeAssetItem: u32;1914    readonly weightLimit: XcmV2WeightLimit;1915  } & Struct;1916  readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';1917}19181919/** @name PalletXcmError */1920export interface PalletXcmError extends Enum {1921  readonly isUnreachable: boolean;1922  readonly isSendFailure: boolean;1923  readonly isFiltered: boolean;1924  readonly isUnweighableMessage: boolean;1925  readonly isDestinationNotInvertible: boolean;1926  readonly isEmpty: boolean;1927  readonly isCannotReanchor: boolean;1928  readonly isTooManyAssets: boolean;1929  readonly isInvalidOrigin: boolean;1930  readonly isBadVersion: boolean;1931  readonly isBadLocation: boolean;1932  readonly isNoSubscription: boolean;1933  readonly isAlreadySubscribed: boolean;1934  readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';1935}19361937/** @name PalletXcmEvent */1938export interface PalletXcmEvent extends Enum {1939  readonly isAttempted: boolean;1940  readonly asAttempted: XcmV2TraitsOutcome;1941  readonly isSent: boolean;1942  readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;1943  readonly isUnexpectedResponse: boolean;1944  readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;1945  readonly isResponseReady: boolean;1946  readonly asResponseReady: ITuple<[u64, XcmV2Response]>;1947  readonly isNotified: boolean;1948  readonly asNotified: ITuple<[u64, u8, u8]>;1949  readonly isNotifyOverweight: boolean;1950  readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;1951  readonly isNotifyDispatchError: boolean;1952  readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;1953  readonly isNotifyDecodeFailed: boolean;1954  readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;1955  readonly isInvalidResponder: boolean;1956  readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;1957  readonly isInvalidResponderVersion: boolean;1958  readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;1959  readonly isResponseTaken: boolean;1960  readonly asResponseTaken: u64;1961  readonly isAssetsTrapped: boolean;1962  readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;1963  readonly isVersionChangeNotified: boolean;1964  readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;1965  readonly isSupportedVersionChanged: boolean;1966  readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;1967  readonly isNotifyTargetSendFail: boolean;1968  readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;1969  readonly isNotifyTargetMigrationFail: boolean;1970  readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;1971  readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';1972}19731974/** @name PalletXcmOrigin */1975export interface PalletXcmOrigin extends Enum {1976  readonly isXcm: boolean;1977  readonly asXcm: XcmV1MultiLocation;1978  readonly isResponse: boolean;1979  readonly asResponse: XcmV1MultiLocation;1980  readonly type: 'Xcm' | 'Response';1981}19821983/** @name PhantomTypeUpDataStructs */1984export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}19851986/** @name PolkadotCorePrimitivesInboundDownwardMessage */1987export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1988  readonly sentAt: u32;1989  readonly msg: Bytes;1990}19911992/** @name PolkadotCorePrimitivesInboundHrmpMessage */1993export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1994  readonly sentAt: u32;1995  readonly data: Bytes;1996}19971998/** @name PolkadotCorePrimitivesOutboundHrmpMessage */1999export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {2000  readonly recipient: u32;2001  readonly data: Bytes;2002}20032004/** @name PolkadotParachainPrimitivesXcmpMessageFormat */2005export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2006  readonly isConcatenatedVersionedXcm: boolean;2007  readonly isConcatenatedEncodedBlob: boolean;2008  readonly isSignals: boolean;2009  readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2010}20112012/** @name PolkadotPrimitivesV2AbridgedHostConfiguration */2013export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {2014  readonly maxCodeSize: u32;2015  readonly maxHeadDataSize: u32;2016  readonly maxUpwardQueueCount: u32;2017  readonly maxUpwardQueueSize: u32;2018  readonly maxUpwardMessageSize: u32;2019  readonly maxUpwardMessageNumPerCandidate: u32;2020  readonly hrmpMaxMessageNumPerCandidate: u32;2021  readonly validationUpgradeCooldown: u32;2022  readonly validationUpgradeDelay: u32;2023}20242025/** @name PolkadotPrimitivesV2AbridgedHrmpChannel */2026export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {2027  readonly maxCapacity: u32;2028  readonly maxTotalSize: u32;2029  readonly maxMessageSize: u32;2030  readonly msgCount: u32;2031  readonly totalSize: u32;2032  readonly mqcHead: Option<H256>;2033}20342035/** @name PolkadotPrimitivesV2PersistedValidationData */2036export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {2037  readonly parentHead: Bytes;2038  readonly relayParentNumber: u32;2039  readonly relayParentStorageRoot: H256;2040  readonly maxPovSize: u32;2041}20422043/** @name PolkadotPrimitivesV2UpgradeRestriction */2044export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {2045  readonly isPresent: boolean;2046  readonly type: 'Present';2047}20482049/** @name RmrkTraitsBaseBaseInfo */2050export interface RmrkTraitsBaseBaseInfo extends Struct {2051  readonly issuer: AccountId32;2052  readonly baseType: Bytes;2053  readonly symbol: Bytes;2054}20552056/** @name RmrkTraitsCollectionCollectionInfo */2057export interface RmrkTraitsCollectionCollectionInfo extends Struct {2058  readonly issuer: AccountId32;2059  readonly metadata: Bytes;2060  readonly max: Option<u32>;2061  readonly symbol: Bytes;2062  readonly nftsCount: u32;2063}20642065/** @name RmrkTraitsNftAccountIdOrCollectionNftTuple */2066export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {2067  readonly isAccountId: boolean;2068  readonly asAccountId: AccountId32;2069  readonly isCollectionAndNftTuple: boolean;2070  readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;2071  readonly type: 'AccountId' | 'CollectionAndNftTuple';2072}20732074/** @name RmrkTraitsNftNftChild */2075export interface RmrkTraitsNftNftChild extends Struct {2076  readonly collectionId: u32;2077  readonly nftId: u32;2078}20792080/** @name RmrkTraitsNftNftInfo */2081export interface RmrkTraitsNftNftInfo extends Struct {2082  readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;2083  readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;2084  readonly metadata: Bytes;2085  readonly equipped: bool;2086  readonly pending: bool;2087}20882089/** @name RmrkTraitsNftRoyaltyInfo */2090export interface RmrkTraitsNftRoyaltyInfo extends Struct {2091  readonly recipient: AccountId32;2092  readonly amount: Permill;2093}20942095/** @name RmrkTraitsPartEquippableList */2096export interface RmrkTraitsPartEquippableList extends Enum {2097  readonly isAll: boolean;2098  readonly isEmpty: boolean;2099  readonly isCustom: boolean;2100  readonly asCustom: Vec<u32>;2101  readonly type: 'All' | 'Empty' | 'Custom';2102}21032104/** @name RmrkTraitsPartFixedPart */2105export interface RmrkTraitsPartFixedPart extends Struct {2106  readonly id: u32;2107  readonly z: u32;2108  readonly src: Bytes;2109}21102111/** @name RmrkTraitsPartPartType */2112export interface RmrkTraitsPartPartType extends Enum {2113  readonly isFixedPart: boolean;2114  readonly asFixedPart: RmrkTraitsPartFixedPart;2115  readonly isSlotPart: boolean;2116  readonly asSlotPart: RmrkTraitsPartSlotPart;2117  readonly type: 'FixedPart' | 'SlotPart';2118}21192120/** @name RmrkTraitsPartSlotPart */2121export interface RmrkTraitsPartSlotPart extends Struct {2122  readonly id: u32;2123  readonly equippable: RmrkTraitsPartEquippableList;2124  readonly src: Bytes;2125  readonly z: u32;2126}21272128/** @name RmrkTraitsPropertyPropertyInfo */2129export interface RmrkTraitsPropertyPropertyInfo extends Struct {2130  readonly key: Bytes;2131  readonly value: Bytes;2132}21332134/** @name RmrkTraitsResourceBasicResource */2135export interface RmrkTraitsResourceBasicResource extends Struct {2136  readonly src: Option<Bytes>;2137  readonly metadata: Option<Bytes>;2138  readonly license: Option<Bytes>;2139  readonly thumb: Option<Bytes>;2140}21412142/** @name RmrkTraitsResourceComposableResource */2143export interface RmrkTraitsResourceComposableResource extends Struct {2144  readonly parts: Vec<u32>;2145  readonly base: u32;2146  readonly src: Option<Bytes>;2147  readonly metadata: Option<Bytes>;2148  readonly license: Option<Bytes>;2149  readonly thumb: Option<Bytes>;2150}21512152/** @name RmrkTraitsResourceResourceInfo */2153export interface RmrkTraitsResourceResourceInfo extends Struct {2154  readonly id: u32;2155  readonly resource: RmrkTraitsResourceResourceTypes;2156  readonly pending: bool;2157  readonly pendingRemoval: bool;2158}21592160/** @name RmrkTraitsResourceResourceTypes */2161export interface RmrkTraitsResourceResourceTypes extends Enum {2162  readonly isBasic: boolean;2163  readonly asBasic: RmrkTraitsResourceBasicResource;2164  readonly isComposable: boolean;2165  readonly asComposable: RmrkTraitsResourceComposableResource;2166  readonly isSlot: boolean;2167  readonly asSlot: RmrkTraitsResourceSlotResource;2168  readonly type: 'Basic' | 'Composable' | 'Slot';2169}21702171/** @name RmrkTraitsResourceSlotResource */2172export interface RmrkTraitsResourceSlotResource extends Struct {2173  readonly base: u32;2174  readonly src: Option<Bytes>;2175  readonly metadata: Option<Bytes>;2176  readonly slot: u32;2177  readonly license: Option<Bytes>;2178  readonly thumb: Option<Bytes>;2179}21802181/** @name RmrkTraitsTheme */2182export interface RmrkTraitsTheme extends Struct {2183  readonly name: Bytes;2184  readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2185  readonly inherit: bool;2186}21872188/** @name RmrkTraitsThemeThemeProperty */2189export interface RmrkTraitsThemeThemeProperty extends Struct {2190  readonly key: Bytes;2191  readonly value: Bytes;2192}21932194/** @name SpCoreEcdsaSignature */2195export interface SpCoreEcdsaSignature extends U8aFixed {}21962197/** @name SpCoreEd25519Signature */2198export interface SpCoreEd25519Signature extends U8aFixed {}21992200/** @name SpCoreSr25519Signature */2201export interface SpCoreSr25519Signature extends U8aFixed {}22022203/** @name SpCoreVoid */2204export interface SpCoreVoid extends Null {}22052206/** @name SpRuntimeArithmeticError */2207export interface SpRuntimeArithmeticError extends Enum {2208  readonly isUnderflow: boolean;2209  readonly isOverflow: boolean;2210  readonly isDivisionByZero: boolean;2211  readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';2212}22132214/** @name SpRuntimeDigest */2215export interface SpRuntimeDigest extends Struct {2216  readonly logs: Vec<SpRuntimeDigestDigestItem>;2217}22182219/** @name SpRuntimeDigestDigestItem */2220export interface SpRuntimeDigestDigestItem extends Enum {2221  readonly isOther: boolean;2222  readonly asOther: Bytes;2223  readonly isConsensus: boolean;2224  readonly asConsensus: ITuple<[U8aFixed, Bytes]>;2225  readonly isSeal: boolean;2226  readonly asSeal: ITuple<[U8aFixed, Bytes]>;2227  readonly isPreRuntime: boolean;2228  readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;2229  readonly isRuntimeEnvironmentUpdated: boolean;2230  readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';2231}22322233/** @name SpRuntimeDispatchError */2234export interface SpRuntimeDispatchError extends Enum {2235  readonly isOther: boolean;2236  readonly isCannotLookup: boolean;2237  readonly isBadOrigin: boolean;2238  readonly isModule: boolean;2239  readonly asModule: SpRuntimeModuleError;2240  readonly isConsumerRemaining: boolean;2241  readonly isNoProviders: boolean;2242  readonly isTooManyConsumers: boolean;2243  readonly isToken: boolean;2244  readonly asToken: SpRuntimeTokenError;2245  readonly isArithmetic: boolean;2246  readonly asArithmetic: SpRuntimeArithmeticError;2247  readonly isTransactional: boolean;2248  readonly asTransactional: SpRuntimeTransactionalError;2249  readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';2250}22512252/** @name SpRuntimeModuleError */2253export interface SpRuntimeModuleError extends Struct {2254  readonly index: u8;2255  readonly error: U8aFixed;2256}22572258/** @name SpRuntimeMultiSignature */2259export interface SpRuntimeMultiSignature extends Enum {2260  readonly isEd25519: boolean;2261  readonly asEd25519: SpCoreEd25519Signature;2262  readonly isSr25519: boolean;2263  readonly asSr25519: SpCoreSr25519Signature;2264  readonly isEcdsa: boolean;2265  readonly asEcdsa: SpCoreEcdsaSignature;2266  readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';2267}22682269/** @name SpRuntimeTokenError */2270export interface SpRuntimeTokenError extends Enum {2271  readonly isNoFunds: boolean;2272  readonly isWouldDie: boolean;2273  readonly isBelowMinimum: boolean;2274  readonly isCannotCreate: boolean;2275  readonly isUnknownAsset: boolean;2276  readonly isFrozen: boolean;2277  readonly isUnsupported: boolean;2278  readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';2279}22802281/** @name SpRuntimeTransactionalError */2282export interface SpRuntimeTransactionalError extends Enum {2283  readonly isLimitReached: boolean;2284  readonly isNoLayer: boolean;2285  readonly type: 'LimitReached' | 'NoLayer';2286}22872288/** @name SpTrieStorageProof */2289export interface SpTrieStorageProof extends Struct {2290  readonly trieNodes: BTreeSet<Bytes>;2291}22922293/** @name SpVersionRuntimeVersion */2294export interface SpVersionRuntimeVersion extends Struct {2295  readonly specName: Text;2296  readonly implName: Text;2297  readonly authoringVersion: u32;2298  readonly specVersion: u32;2299  readonly implVersion: u32;2300  readonly apis: Vec<ITuple<[U8aFixed, u32]>>;2301  readonly transactionVersion: u32;2302  readonly stateVersion: u8;2303}23042305/** @name UpDataStructsAccessMode */2306export interface UpDataStructsAccessMode extends Enum {2307  readonly isNormal: boolean;2308  readonly isAllowList: boolean;2309  readonly type: 'Normal' | 'AllowList';2310}23112312/** @name UpDataStructsCollection */2313export interface UpDataStructsCollection extends Struct {2314  readonly owner: AccountId32;2315  readonly mode: UpDataStructsCollectionMode;2316  readonly name: Vec<u16>;2317  readonly description: Vec<u16>;2318  readonly tokenPrefix: Bytes;2319  readonly sponsorship: UpDataStructsSponsorshipState;2320  readonly limits: UpDataStructsCollectionLimits;2321  readonly permissions: UpDataStructsCollectionPermissions;2322  readonly externalCollection: bool;2323}23242325/** @name UpDataStructsCollectionLimits */2326export interface UpDataStructsCollectionLimits extends Struct {2327  readonly accountTokenOwnershipLimit: Option<u32>;2328  readonly sponsoredDataSize: Option<u32>;2329  readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;2330  readonly tokenLimit: Option<u32>;2331  readonly sponsorTransferTimeout: Option<u32>;2332  readonly sponsorApproveTimeout: Option<u32>;2333  readonly ownerCanTransfer: Option<bool>;2334  readonly ownerCanDestroy: Option<bool>;2335  readonly transfersEnabled: Option<bool>;2336}23372338/** @name UpDataStructsCollectionMode */2339export interface UpDataStructsCollectionMode extends Enum {2340  readonly isNft: boolean;2341  readonly isFungible: boolean;2342  readonly asFungible: u8;2343  readonly isReFungible: boolean;2344  readonly type: 'Nft' | 'Fungible' | 'ReFungible';2345}23462347/** @name UpDataStructsCollectionPermissions */2348export interface UpDataStructsCollectionPermissions extends Struct {2349  readonly access: Option<UpDataStructsAccessMode>;2350  readonly mintMode: Option<bool>;2351  readonly nesting: Option<UpDataStructsNestingRule>;2352}23532354/** @name UpDataStructsCollectionStats */2355export interface UpDataStructsCollectionStats extends Struct {2356  readonly created: u32;2357  readonly destroyed: u32;2358  readonly alive: u32;2359}23602361/** @name UpDataStructsCreateCollectionData */2362export interface UpDataStructsCreateCollectionData extends Struct {2363  readonly mode: UpDataStructsCollectionMode;2364  readonly access: Option<UpDataStructsAccessMode>;2365  readonly name: Vec<u16>;2366  readonly description: Vec<u16>;2367  readonly tokenPrefix: Bytes;2368  readonly pendingSponsor: Option<AccountId32>;2369  readonly limits: Option<UpDataStructsCollectionLimits>;2370  readonly permissions: Option<UpDataStructsCollectionPermissions>;2371  readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2372  readonly properties: Vec<UpDataStructsProperty>;2373}23742375/** @name UpDataStructsCreateFungibleData */2376export interface UpDataStructsCreateFungibleData extends Struct {2377  readonly value: u128;2378}23792380/** @name UpDataStructsCreateItemData */2381export interface UpDataStructsCreateItemData extends Enum {2382  readonly isNft: boolean;2383  readonly asNft: UpDataStructsCreateNftData;2384  readonly isFungible: boolean;2385  readonly asFungible: UpDataStructsCreateFungibleData;2386  readonly isReFungible: boolean;2387  readonly asReFungible: UpDataStructsCreateReFungibleData;2388  readonly type: 'Nft' | 'Fungible' | 'ReFungible';2389}23902391/** @name UpDataStructsCreateItemExData */2392export interface UpDataStructsCreateItemExData extends Enum {2393  readonly isNft: boolean;2394  readonly asNft: Vec<UpDataStructsCreateNftExData>;2395  readonly isFungible: boolean;2396  readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr,u128>;2397  readonly isRefungibleMultipleItems: boolean;2398  readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExData>;2399  readonly isRefungibleMultipleOwners: boolean;2400  readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExData;2401  readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2402}24032404/** @name UpDataStructsCreateNftData */2405export interface UpDataStructsCreateNftData extends Struct {2406  readonly properties: Vec<UpDataStructsProperty>;2407}24082409/** @name UpDataStructsCreateNftExData */2410export interface UpDataStructsCreateNftExData extends Struct {2411  readonly properties: Vec<UpDataStructsProperty>;2412  readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2413}24142415/** @name UpDataStructsCreateReFungibleData */2416export interface UpDataStructsCreateReFungibleData extends Struct {2417  readonly constData: Bytes;2418  readonly pieces: u128;2419}24202421/** @name UpDataStructsCreateRefungibleExData */2422export interface UpDataStructsCreateRefungibleExData extends Struct {2423  readonly constData: Bytes;2424  readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2425}24262427/** @name UpDataStructsNestingRule */2428export interface UpDataStructsNestingRule extends Enum {2429  readonly isDisabled: boolean;2430  readonly isOwner: boolean;2431  readonly isOwnerRestricted: boolean;2432  readonly asOwnerRestricted: BTreeSet<u32>;2433  readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';2434}24352436/** @name UpDataStructsProperties */2437export interface UpDataStructsProperties extends Struct {2438  readonly map: UpDataStructsPropertiesMapBoundedVec;2439  readonly consumedSpace: u32;2440  readonly spaceLimit: u32;2441}24422443/** @name UpDataStructsPropertiesMapBoundedVec */2444export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}24452446/** @name UpDataStructsPropertiesMapPropertyPermission */2447export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}24482449/** @name UpDataStructsProperty */2450export interface UpDataStructsProperty extends Struct {2451  readonly key: Bytes;2452  readonly value: Bytes;2453}24542455/** @name UpDataStructsPropertyKeyPermission */2456export interface UpDataStructsPropertyKeyPermission extends Struct {2457  readonly key: Bytes;2458  readonly permission: UpDataStructsPropertyPermission;2459}24602461/** @name UpDataStructsPropertyPermission */2462export interface UpDataStructsPropertyPermission extends Struct {2463  readonly mutable: bool;2464  readonly collectionAdmin: bool;2465  readonly tokenOwner: bool;2466}24672468/** @name UpDataStructsRpcCollection */2469export interface UpDataStructsRpcCollection extends Struct {2470  readonly owner: AccountId32;2471  readonly mode: UpDataStructsCollectionMode;2472  readonly name: Vec<u16>;2473  readonly description: Vec<u16>;2474  readonly tokenPrefix: Bytes;2475  readonly sponsorship: UpDataStructsSponsorshipState;2476  readonly limits: UpDataStructsCollectionLimits;2477  readonly permissions: UpDataStructsCollectionPermissions;2478  readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2479  readonly properties: Vec<UpDataStructsProperty>;2480  readonly readOnly: bool;2481}24822483/** @name UpDataStructsSponsoringRateLimit */2484export interface UpDataStructsSponsoringRateLimit extends Enum {2485  readonly isSponsoringDisabled: boolean;2486  readonly isBlocks: boolean;2487  readonly asBlocks: u32;2488  readonly type: 'SponsoringDisabled' | 'Blocks';2489}24902491/** @name UpDataStructsSponsorshipState */2492export interface UpDataStructsSponsorshipState extends Enum {2493  readonly isDisabled: boolean;2494  readonly isUnconfirmed: boolean;2495  readonly asUnconfirmed: AccountId32;2496  readonly isConfirmed: boolean;2497  readonly asConfirmed: AccountId32;2498  readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2499}25002501/** @name UpDataStructsTokenChild */2502export interface UpDataStructsTokenChild extends Struct {2503  readonly token: u32;2504  readonly collection: u32;2505}25062507/** @name UpDataStructsTokenData */2508export interface UpDataStructsTokenData extends Struct {2509  readonly properties: Vec<UpDataStructsProperty>;2510  readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2511}25122513/** @name XcmDoubleEncoded */2514export interface XcmDoubleEncoded extends Struct {2515  readonly encoded: Bytes;2516}25172518/** @name XcmV0Junction */2519export interface XcmV0Junction extends Enum {2520  readonly isParent: boolean;2521  readonly isParachain: boolean;2522  readonly asParachain: Compact<u32>;2523  readonly isAccountId32: boolean;2524  readonly asAccountId32: {2525    readonly network: XcmV0JunctionNetworkId;2526    readonly id: U8aFixed;2527  } & Struct;2528  readonly isAccountIndex64: boolean;2529  readonly asAccountIndex64: {2530    readonly network: XcmV0JunctionNetworkId;2531    readonly index: Compact<u64>;2532  } & Struct;2533  readonly isAccountKey20: boolean;2534  readonly asAccountKey20: {2535    readonly network: XcmV0JunctionNetworkId;2536    readonly key: U8aFixed;2537  } & Struct;2538  readonly isPalletInstance: boolean;2539  readonly asPalletInstance: u8;2540  readonly isGeneralIndex: boolean;2541  readonly asGeneralIndex: Compact<u128>;2542  readonly isGeneralKey: boolean;2543  readonly asGeneralKey: Bytes;2544  readonly isOnlyChild: boolean;2545  readonly isPlurality: boolean;2546  readonly asPlurality: {2547    readonly id: XcmV0JunctionBodyId;2548    readonly part: XcmV0JunctionBodyPart;2549  } & Struct;2550  readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';2551}25522553/** @name XcmV0JunctionBodyId */2554export interface XcmV0JunctionBodyId extends Enum {2555  readonly isUnit: boolean;2556  readonly isNamed: boolean;2557  readonly asNamed: Bytes;2558  readonly isIndex: boolean;2559  readonly asIndex: Compact<u32>;2560  readonly isExecutive: boolean;2561  readonly isTechnical: boolean;2562  readonly isLegislative: boolean;2563  readonly isJudicial: boolean;2564  readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';2565}25662567/** @name XcmV0JunctionBodyPart */2568export interface XcmV0JunctionBodyPart extends Enum {2569  readonly isVoice: boolean;2570  readonly isMembers: boolean;2571  readonly asMembers: {2572    readonly count: Compact<u32>;2573  } & Struct;2574  readonly isFraction: boolean;2575  readonly asFraction: {2576    readonly nom: Compact<u32>;2577    readonly denom: Compact<u32>;2578  } & Struct;2579  readonly isAtLeastProportion: boolean;2580  readonly asAtLeastProportion: {2581    readonly nom: Compact<u32>;2582    readonly denom: Compact<u32>;2583  } & Struct;2584  readonly isMoreThanProportion: boolean;2585  readonly asMoreThanProportion: {2586    readonly nom: Compact<u32>;2587    readonly denom: Compact<u32>;2588  } & Struct;2589  readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';2590}25912592/** @name XcmV0JunctionNetworkId */2593export interface XcmV0JunctionNetworkId extends Enum {2594  readonly isAny: boolean;2595  readonly isNamed: boolean;2596  readonly asNamed: Bytes;2597  readonly isPolkadot: boolean;2598  readonly isKusama: boolean;2599  readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';2600}26012602/** @name XcmV0MultiAsset */2603export interface XcmV0MultiAsset extends Enum {2604  readonly isNone: boolean;2605  readonly isAll: boolean;2606  readonly isAllFungible: boolean;2607  readonly isAllNonFungible: boolean;2608  readonly isAllAbstractFungible: boolean;2609  readonly asAllAbstractFungible: {2610    readonly id: Bytes;2611  } & Struct;2612  readonly isAllAbstractNonFungible: boolean;2613  readonly asAllAbstractNonFungible: {2614    readonly class: Bytes;2615  } & Struct;2616  readonly isAllConcreteFungible: boolean;2617  readonly asAllConcreteFungible: {2618    readonly id: XcmV0MultiLocation;2619  } & Struct;2620  readonly isAllConcreteNonFungible: boolean;2621  readonly asAllConcreteNonFungible: {2622    readonly class: XcmV0MultiLocation;2623  } & Struct;2624  readonly isAbstractFungible: boolean;2625  readonly asAbstractFungible: {2626    readonly id: Bytes;2627    readonly amount: Compact<u128>;2628  } & Struct;2629  readonly isAbstractNonFungible: boolean;2630  readonly asAbstractNonFungible: {2631    readonly class: Bytes;2632    readonly instance: XcmV1MultiassetAssetInstance;2633  } & Struct;2634  readonly isConcreteFungible: boolean;2635  readonly asConcreteFungible: {2636    readonly id: XcmV0MultiLocation;2637    readonly amount: Compact<u128>;2638  } & Struct;2639  readonly isConcreteNonFungible: boolean;2640  readonly asConcreteNonFungible: {2641    readonly class: XcmV0MultiLocation;2642    readonly instance: XcmV1MultiassetAssetInstance;2643  } & Struct;2644  readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';2645}26462647/** @name XcmV0MultiLocation */2648export interface XcmV0MultiLocation extends Enum {2649  readonly isNull: boolean;2650  readonly isX1: boolean;2651  readonly asX1: XcmV0Junction;2652  readonly isX2: boolean;2653  readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;2654  readonly isX3: boolean;2655  readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2656  readonly isX4: boolean;2657  readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2658  readonly isX5: boolean;2659  readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2660  readonly isX6: boolean;2661  readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2662  readonly isX7: boolean;2663  readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2664  readonly isX8: boolean;2665  readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2666  readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';2667}26682669/** @name XcmV0Order */2670export interface XcmV0Order extends Enum {2671  readonly isNull: boolean;2672  readonly isDepositAsset: boolean;2673  readonly asDepositAsset: {2674    readonly assets: Vec<XcmV0MultiAsset>;2675    readonly dest: XcmV0MultiLocation;2676  } & Struct;2677  readonly isDepositReserveAsset: boolean;2678  readonly asDepositReserveAsset: {2679    readonly assets: Vec<XcmV0MultiAsset>;2680    readonly dest: XcmV0MultiLocation;2681    readonly effects: Vec<XcmV0Order>;2682  } & Struct;2683  readonly isExchangeAsset: boolean;2684  readonly asExchangeAsset: {2685    readonly give: Vec<XcmV0MultiAsset>;2686    readonly receive: Vec<XcmV0MultiAsset>;2687  } & Struct;2688  readonly isInitiateReserveWithdraw: boolean;2689  readonly asInitiateReserveWithdraw: {2690    readonly assets: Vec<XcmV0MultiAsset>;2691    readonly reserve: XcmV0MultiLocation;2692    readonly effects: Vec<XcmV0Order>;2693  } & Struct;2694  readonly isInitiateTeleport: boolean;2695  readonly asInitiateTeleport: {2696    readonly assets: Vec<XcmV0MultiAsset>;2697    readonly dest: XcmV0MultiLocation;2698    readonly effects: Vec<XcmV0Order>;2699  } & Struct;2700  readonly isQueryHolding: boolean;2701  readonly asQueryHolding: {2702    readonly queryId: Compact<u64>;2703    readonly dest: XcmV0MultiLocation;2704    readonly assets: Vec<XcmV0MultiAsset>;2705  } & Struct;2706  readonly isBuyExecution: boolean;2707  readonly asBuyExecution: {2708    readonly fees: XcmV0MultiAsset;2709    readonly weight: u64;2710    readonly debt: u64;2711    readonly haltOnError: bool;2712    readonly xcm: Vec<XcmV0Xcm>;2713  } & Struct;2714  readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2715}27162717/** @name XcmV0OriginKind */2718export interface XcmV0OriginKind extends Enum {2719  readonly isNative: boolean;2720  readonly isSovereignAccount: boolean;2721  readonly isSuperuser: boolean;2722  readonly isXcm: boolean;2723  readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';2724}27252726/** @name XcmV0Response */2727export interface XcmV0Response extends Enum {2728  readonly isAssets: boolean;2729  readonly asAssets: Vec<XcmV0MultiAsset>;2730  readonly type: 'Assets';2731}27322733/** @name XcmV0Xcm */2734export interface XcmV0Xcm extends Enum {2735  readonly isWithdrawAsset: boolean;2736  readonly asWithdrawAsset: {2737    readonly assets: Vec<XcmV0MultiAsset>;2738    readonly effects: Vec<XcmV0Order>;2739  } & Struct;2740  readonly isReserveAssetDeposit: boolean;2741  readonly asReserveAssetDeposit: {2742    readonly assets: Vec<XcmV0MultiAsset>;2743    readonly effects: Vec<XcmV0Order>;2744  } & Struct;2745  readonly isTeleportAsset: boolean;2746  readonly asTeleportAsset: {2747    readonly assets: Vec<XcmV0MultiAsset>;2748    readonly effects: Vec<XcmV0Order>;2749  } & Struct;2750  readonly isQueryResponse: boolean;2751  readonly asQueryResponse: {2752    readonly queryId: Compact<u64>;2753    readonly response: XcmV0Response;2754  } & Struct;2755  readonly isTransferAsset: boolean;2756  readonly asTransferAsset: {2757    readonly assets: Vec<XcmV0MultiAsset>;2758    readonly dest: XcmV0MultiLocation;2759  } & Struct;2760  readonly isTransferReserveAsset: boolean;2761  readonly asTransferReserveAsset: {2762    readonly assets: Vec<XcmV0MultiAsset>;2763    readonly dest: XcmV0MultiLocation;2764    readonly effects: Vec<XcmV0Order>;2765  } & Struct;2766  readonly isTransact: boolean;2767  readonly asTransact: {2768    readonly originType: XcmV0OriginKind;2769    readonly requireWeightAtMost: u64;2770    readonly call: XcmDoubleEncoded;2771  } & Struct;2772  readonly isHrmpNewChannelOpenRequest: boolean;2773  readonly asHrmpNewChannelOpenRequest: {2774    readonly sender: Compact<u32>;2775    readonly maxMessageSize: Compact<u32>;2776    readonly maxCapacity: Compact<u32>;2777  } & Struct;2778  readonly isHrmpChannelAccepted: boolean;2779  readonly asHrmpChannelAccepted: {2780    readonly recipient: Compact<u32>;2781  } & Struct;2782  readonly isHrmpChannelClosing: boolean;2783  readonly asHrmpChannelClosing: {2784    readonly initiator: Compact<u32>;2785    readonly sender: Compact<u32>;2786    readonly recipient: Compact<u32>;2787  } & Struct;2788  readonly isRelayedFrom: boolean;2789  readonly asRelayedFrom: {2790    readonly who: XcmV0MultiLocation;2791    readonly message: XcmV0Xcm;2792  } & Struct;2793  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';2794}27952796/** @name XcmV1Junction */2797export interface XcmV1Junction extends Enum {2798  readonly isParachain: boolean;2799  readonly asParachain: Compact<u32>;2800  readonly isAccountId32: boolean;2801  readonly asAccountId32: {2802    readonly network: XcmV0JunctionNetworkId;2803    readonly id: U8aFixed;2804  } & Struct;2805  readonly isAccountIndex64: boolean;2806  readonly asAccountIndex64: {2807    readonly network: XcmV0JunctionNetworkId;2808    readonly index: Compact<u64>;2809  } & Struct;2810  readonly isAccountKey20: boolean;2811  readonly asAccountKey20: {2812    readonly network: XcmV0JunctionNetworkId;2813    readonly key: U8aFixed;2814  } & Struct;2815  readonly isPalletInstance: boolean;2816  readonly asPalletInstance: u8;2817  readonly isGeneralIndex: boolean;2818  readonly asGeneralIndex: Compact<u128>;2819  readonly isGeneralKey: boolean;2820  readonly asGeneralKey: Bytes;2821  readonly isOnlyChild: boolean;2822  readonly isPlurality: boolean;2823  readonly asPlurality: {2824    readonly id: XcmV0JunctionBodyId;2825    readonly part: XcmV0JunctionBodyPart;2826  } & Struct;2827  readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';2828}28292830/** @name XcmV1MultiAsset */2831export interface XcmV1MultiAsset extends Struct {2832  readonly id: XcmV1MultiassetAssetId;2833  readonly fun: XcmV1MultiassetFungibility;2834}28352836/** @name XcmV1MultiassetAssetId */2837export interface XcmV1MultiassetAssetId extends Enum {2838  readonly isConcrete: boolean;2839  readonly asConcrete: XcmV1MultiLocation;2840  readonly isAbstract: boolean;2841  readonly asAbstract: Bytes;2842  readonly type: 'Concrete' | 'Abstract';2843}28442845/** @name XcmV1MultiassetAssetInstance */2846export interface XcmV1MultiassetAssetInstance extends Enum {2847  readonly isUndefined: boolean;2848  readonly isIndex: boolean;2849  readonly asIndex: Compact<u128>;2850  readonly isArray4: boolean;2851  readonly asArray4: U8aFixed;2852  readonly isArray8: boolean;2853  readonly asArray8: U8aFixed;2854  readonly isArray16: boolean;2855  readonly asArray16: U8aFixed;2856  readonly isArray32: boolean;2857  readonly asArray32: U8aFixed;2858  readonly isBlob: boolean;2859  readonly asBlob: Bytes;2860  readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';2861}28622863/** @name XcmV1MultiassetFungibility */2864export interface XcmV1MultiassetFungibility extends Enum {2865  readonly isFungible: boolean;2866  readonly asFungible: Compact<u128>;2867  readonly isNonFungible: boolean;2868  readonly asNonFungible: XcmV1MultiassetAssetInstance;2869  readonly type: 'Fungible' | 'NonFungible';2870}28712872/** @name XcmV1MultiassetMultiAssetFilter */2873export interface XcmV1MultiassetMultiAssetFilter extends Enum {2874  readonly isDefinite: boolean;2875  readonly asDefinite: XcmV1MultiassetMultiAssets;2876  readonly isWild: boolean;2877  readonly asWild: XcmV1MultiassetWildMultiAsset;2878  readonly type: 'Definite' | 'Wild';2879}28802881/** @name XcmV1MultiassetMultiAssets */2882export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}28832884/** @name XcmV1MultiassetWildFungibility */2885export interface XcmV1MultiassetWildFungibility extends Enum {2886  readonly isFungible: boolean;2887  readonly isNonFungible: boolean;2888  readonly type: 'Fungible' | 'NonFungible';2889}28902891/** @name XcmV1MultiassetWildMultiAsset */2892export interface XcmV1MultiassetWildMultiAsset extends Enum {2893  readonly isAll: boolean;2894  readonly isAllOf: boolean;2895  readonly asAllOf: {2896    readonly id: XcmV1MultiassetAssetId;2897    readonly fun: XcmV1MultiassetWildFungibility;2898  } & Struct;2899  readonly type: 'All' | 'AllOf';2900}29012902/** @name XcmV1MultiLocation */2903export interface XcmV1MultiLocation extends Struct {2904  readonly parents: u8;2905  readonly interior: XcmV1MultilocationJunctions;2906}29072908/** @name XcmV1MultilocationJunctions */2909export interface XcmV1MultilocationJunctions extends Enum {2910  readonly isHere: boolean;2911  readonly isX1: boolean;2912  readonly asX1: XcmV1Junction;2913  readonly isX2: boolean;2914  readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;2915  readonly isX3: boolean;2916  readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2917  readonly isX4: boolean;2918  readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2919  readonly isX5: boolean;2920  readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2921  readonly isX6: boolean;2922  readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2923  readonly isX7: boolean;2924  readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2925  readonly isX8: boolean;2926  readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2927  readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';2928}29292930/** @name XcmV1Order */2931export interface XcmV1Order extends Enum {2932  readonly isNoop: boolean;2933  readonly isDepositAsset: boolean;2934  readonly asDepositAsset: {2935    readonly assets: XcmV1MultiassetMultiAssetFilter;2936    readonly maxAssets: u32;2937    readonly beneficiary: XcmV1MultiLocation;2938  } & Struct;2939  readonly isDepositReserveAsset: boolean;2940  readonly asDepositReserveAsset: {2941    readonly assets: XcmV1MultiassetMultiAssetFilter;2942    readonly maxAssets: u32;2943    readonly dest: XcmV1MultiLocation;2944    readonly effects: Vec<XcmV1Order>;2945  } & Struct;2946  readonly isExchangeAsset: boolean;2947  readonly asExchangeAsset: {2948    readonly give: XcmV1MultiassetMultiAssetFilter;2949    readonly receive: XcmV1MultiassetMultiAssets;2950  } & Struct;2951  readonly isInitiateReserveWithdraw: boolean;2952  readonly asInitiateReserveWithdraw: {2953    readonly assets: XcmV1MultiassetMultiAssetFilter;2954    readonly reserve: XcmV1MultiLocation;2955    readonly effects: Vec<XcmV1Order>;2956  } & Struct;2957  readonly isInitiateTeleport: boolean;2958  readonly asInitiateTeleport: {2959    readonly assets: XcmV1MultiassetMultiAssetFilter;2960    readonly dest: XcmV1MultiLocation;2961    readonly effects: Vec<XcmV1Order>;2962  } & Struct;2963  readonly isQueryHolding: boolean;2964  readonly asQueryHolding: {2965    readonly queryId: Compact<u64>;2966    readonly dest: XcmV1MultiLocation;2967    readonly assets: XcmV1MultiassetMultiAssetFilter;2968  } & Struct;2969  readonly isBuyExecution: boolean;2970  readonly asBuyExecution: {2971    readonly fees: XcmV1MultiAsset;2972    readonly weight: u64;2973    readonly debt: u64;2974    readonly haltOnError: bool;2975    readonly instructions: Vec<XcmV1Xcm>;2976  } & Struct;2977  readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2978}29792980/** @name XcmV1Response */2981export interface XcmV1Response extends Enum {2982  readonly isAssets: boolean;2983  readonly asAssets: XcmV1MultiassetMultiAssets;2984  readonly isVersion: boolean;2985  readonly asVersion: u32;2986  readonly type: 'Assets' | 'Version';2987}29882989/** @name XcmV1Xcm */2990export interface XcmV1Xcm extends Enum {2991  readonly isWithdrawAsset: boolean;2992  readonly asWithdrawAsset: {2993    readonly assets: XcmV1MultiassetMultiAssets;2994    readonly effects: Vec<XcmV1Order>;2995  } & Struct;2996  readonly isReserveAssetDeposited: boolean;2997  readonly asReserveAssetDeposited: {2998    readonly assets: XcmV1MultiassetMultiAssets;2999    readonly effects: Vec<XcmV1Order>;3000  } & Struct;3001  readonly isReceiveTeleportedAsset: boolean;3002  readonly asReceiveTeleportedAsset: {3003    readonly assets: XcmV1MultiassetMultiAssets;3004    readonly effects: Vec<XcmV1Order>;3005  } & Struct;3006  readonly isQueryResponse: boolean;3007  readonly asQueryResponse: {3008    readonly queryId: Compact<u64>;3009    readonly response: XcmV1Response;3010  } & Struct;3011  readonly isTransferAsset: boolean;3012  readonly asTransferAsset: {3013    readonly assets: XcmV1MultiassetMultiAssets;3014    readonly beneficiary: XcmV1MultiLocation;3015  } & Struct;3016  readonly isTransferReserveAsset: boolean;3017  readonly asTransferReserveAsset: {3018    readonly assets: XcmV1MultiassetMultiAssets;3019    readonly dest: XcmV1MultiLocation;3020    readonly effects: Vec<XcmV1Order>;3021  } & Struct;3022  readonly isTransact: boolean;3023  readonly asTransact: {3024    readonly originType: XcmV0OriginKind;3025    readonly requireWeightAtMost: u64;3026    readonly call: XcmDoubleEncoded;3027  } & Struct;3028  readonly isHrmpNewChannelOpenRequest: boolean;3029  readonly asHrmpNewChannelOpenRequest: {3030    readonly sender: Compact<u32>;3031    readonly maxMessageSize: Compact<u32>;3032    readonly maxCapacity: Compact<u32>;3033  } & Struct;3034  readonly isHrmpChannelAccepted: boolean;3035  readonly asHrmpChannelAccepted: {3036    readonly recipient: Compact<u32>;3037  } & Struct;3038  readonly isHrmpChannelClosing: boolean;3039  readonly asHrmpChannelClosing: {3040    readonly initiator: Compact<u32>;3041    readonly sender: Compact<u32>;3042    readonly recipient: Compact<u32>;3043  } & Struct;3044  readonly isRelayedFrom: boolean;3045  readonly asRelayedFrom: {3046    readonly who: XcmV1MultilocationJunctions;3047    readonly message: XcmV1Xcm;3048  } & Struct;3049  readonly isSubscribeVersion: boolean;3050  readonly asSubscribeVersion: {3051    readonly queryId: Compact<u64>;3052    readonly maxResponseWeight: Compact<u64>;3053  } & Struct;3054  readonly isUnsubscribeVersion: boolean;3055  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';3056}30573058/** @name XcmV2Instruction */3059export interface XcmV2Instruction extends Enum {3060  readonly isWithdrawAsset: boolean;3061  readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;3062  readonly isReserveAssetDeposited: boolean;3063  readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;3064  readonly isReceiveTeleportedAsset: boolean;3065  readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;3066  readonly isQueryResponse: boolean;3067  readonly asQueryResponse: {3068    readonly queryId: Compact<u64>;3069    readonly response: XcmV2Response;3070    readonly maxWeight: Compact<u64>;3071  } & Struct;3072  readonly isTransferAsset: boolean;3073  readonly asTransferAsset: {3074    readonly assets: XcmV1MultiassetMultiAssets;3075    readonly beneficiary: XcmV1MultiLocation;3076  } & Struct;3077  readonly isTransferReserveAsset: boolean;3078  readonly asTransferReserveAsset: {3079    readonly assets: XcmV1MultiassetMultiAssets;3080    readonly dest: XcmV1MultiLocation;3081    readonly xcm: XcmV2Xcm;3082  } & Struct;3083  readonly isTransact: boolean;3084  readonly asTransact: {3085    readonly originType: XcmV0OriginKind;3086    readonly requireWeightAtMost: Compact<u64>;3087    readonly call: XcmDoubleEncoded;3088  } & Struct;3089  readonly isHrmpNewChannelOpenRequest: boolean;3090  readonly asHrmpNewChannelOpenRequest: {3091    readonly sender: Compact<u32>;3092    readonly maxMessageSize: Compact<u32>;3093    readonly maxCapacity: Compact<u32>;3094  } & Struct;3095  readonly isHrmpChannelAccepted: boolean;3096  readonly asHrmpChannelAccepted: {3097    readonly recipient: Compact<u32>;3098  } & Struct;3099  readonly isHrmpChannelClosing: boolean;3100  readonly asHrmpChannelClosing: {3101    readonly initiator: Compact<u32>;3102    readonly sender: Compact<u32>;3103    readonly recipient: Compact<u32>;3104  } & Struct;3105  readonly isClearOrigin: boolean;3106  readonly isDescendOrigin: boolean;3107  readonly asDescendOrigin: XcmV1MultilocationJunctions;3108  readonly isReportError: boolean;3109  readonly asReportError: {3110    readonly queryId: Compact<u64>;3111    readonly dest: XcmV1MultiLocation;3112    readonly maxResponseWeight: Compact<u64>;3113  } & Struct;3114  readonly isDepositAsset: boolean;3115  readonly asDepositAsset: {3116    readonly assets: XcmV1MultiassetMultiAssetFilter;3117    readonly maxAssets: Compact<u32>;3118    readonly beneficiary: XcmV1MultiLocation;3119  } & Struct;3120  readonly isDepositReserveAsset: boolean;3121  readonly asDepositReserveAsset: {3122    readonly assets: XcmV1MultiassetMultiAssetFilter;3123    readonly maxAssets: Compact<u32>;3124    readonly dest: XcmV1MultiLocation;3125    readonly xcm: XcmV2Xcm;3126  } & Struct;3127  readonly isExchangeAsset: boolean;3128  readonly asExchangeAsset: {3129    readonly give: XcmV1MultiassetMultiAssetFilter;3130    readonly receive: XcmV1MultiassetMultiAssets;3131  } & Struct;3132  readonly isInitiateReserveWithdraw: boolean;3133  readonly asInitiateReserveWithdraw: {3134    readonly assets: XcmV1MultiassetMultiAssetFilter;3135    readonly reserve: XcmV1MultiLocation;3136    readonly xcm: XcmV2Xcm;3137  } & Struct;3138  readonly isInitiateTeleport: boolean;3139  readonly asInitiateTeleport: {3140    readonly assets: XcmV1MultiassetMultiAssetFilter;3141    readonly dest: XcmV1MultiLocation;3142    readonly xcm: XcmV2Xcm;3143  } & Struct;3144  readonly isQueryHolding: boolean;3145  readonly asQueryHolding: {3146    readonly queryId: Compact<u64>;3147    readonly dest: XcmV1MultiLocation;3148    readonly assets: XcmV1MultiassetMultiAssetFilter;3149    readonly maxResponseWeight: Compact<u64>;3150  } & Struct;3151  readonly isBuyExecution: boolean;3152  readonly asBuyExecution: {3153    readonly fees: XcmV1MultiAsset;3154    readonly weightLimit: XcmV2WeightLimit;3155  } & Struct;3156  readonly isRefundSurplus: boolean;3157  readonly isSetErrorHandler: boolean;3158  readonly asSetErrorHandler: XcmV2Xcm;3159  readonly isSetAppendix: boolean;3160  readonly asSetAppendix: XcmV2Xcm;3161  readonly isClearError: boolean;3162  readonly isClaimAsset: boolean;3163  readonly asClaimAsset: {3164    readonly assets: XcmV1MultiassetMultiAssets;3165    readonly ticket: XcmV1MultiLocation;3166  } & Struct;3167  readonly isTrap: boolean;3168  readonly asTrap: Compact<u64>;3169  readonly isSubscribeVersion: boolean;3170  readonly asSubscribeVersion: {3171    readonly queryId: Compact<u64>;3172    readonly maxResponseWeight: Compact<u64>;3173  } & Struct;3174  readonly isUnsubscribeVersion: boolean;3175  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';3176}31773178/** @name XcmV2Response */3179export interface XcmV2Response extends Enum {3180  readonly isNull: boolean;3181  readonly isAssets: boolean;3182  readonly asAssets: XcmV1MultiassetMultiAssets;3183  readonly isExecutionResult: boolean;3184  readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;3185  readonly isVersion: boolean;3186  readonly asVersion: u32;3187  readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';3188}31893190/** @name XcmV2TraitsError */3191export interface XcmV2TraitsError extends Enum {3192  readonly isOverflow: boolean;3193  readonly isUnimplemented: boolean;3194  readonly isUntrustedReserveLocation: boolean;3195  readonly isUntrustedTeleportLocation: boolean;3196  readonly isMultiLocationFull: boolean;3197  readonly isMultiLocationNotInvertible: boolean;3198  readonly isBadOrigin: boolean;3199  readonly isInvalidLocation: boolean;3200  readonly isAssetNotFound: boolean;3201  readonly isFailedToTransactAsset: boolean;3202  readonly isNotWithdrawable: boolean;3203  readonly isLocationCannotHold: boolean;3204  readonly isExceedsMaxMessageSize: boolean;3205  readonly isDestinationUnsupported: boolean;3206  readonly isTransport: boolean;3207  readonly isUnroutable: boolean;3208  readonly isUnknownClaim: boolean;3209  readonly isFailedToDecode: boolean;3210  readonly isMaxWeightInvalid: boolean;3211  readonly isNotHoldingFees: boolean;3212  readonly isTooExpensive: boolean;3213  readonly isTrap: boolean;3214  readonly asTrap: u64;3215  readonly isUnhandledXcmVersion: boolean;3216  readonly isWeightLimitReached: boolean;3217  readonly asWeightLimitReached: u64;3218  readonly isBarrier: boolean;3219  readonly isWeightNotComputable: boolean;3220  readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';3221}32223223/** @name XcmV2TraitsOutcome */3224export interface XcmV2TraitsOutcome extends Enum {3225  readonly isComplete: boolean;3226  readonly asComplete: u64;3227  readonly isIncomplete: boolean;3228  readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;3229  readonly isError: boolean;3230  readonly asError: XcmV2TraitsError;3231  readonly type: 'Complete' | 'Incomplete' | 'Error';3232}32333234/** @name XcmV2WeightLimit */3235export interface XcmV2WeightLimit extends Enum {3236  readonly isUnlimited: boolean;3237  readonly isLimited: boolean;3238  readonly asLimited: Compact<u64>;3239  readonly type: 'Unlimited' | 'Limited';3240}32413242/** @name XcmV2Xcm */3243export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}32443245/** @name XcmVersionedMultiAssets */3246export interface XcmVersionedMultiAssets extends Enum {3247  readonly isV0: boolean;3248  readonly asV0: Vec<XcmV0MultiAsset>;3249  readonly isV1: boolean;3250  readonly asV1: XcmV1MultiassetMultiAssets;3251  readonly type: 'V0' | 'V1';3252}32533254/** @name XcmVersionedMultiLocation */3255export interface XcmVersionedMultiLocation extends Enum {3256  readonly isV0: boolean;3257  readonly asV0: XcmV0MultiLocation;3258  readonly isV1: boolean;3259  readonly asV1: XcmV1MultiLocation;3260  readonly type: 'V0' | 'V1';3261}32623263/** @name XcmVersionedXcm */3264export interface XcmVersionedXcm extends Enum {3265  readonly isV0: boolean;3266  readonly asV0: XcmV0Xcm;3267  readonly isV1: boolean;3268  readonly asV1: XcmV1Xcm;3269  readonly isV2: boolean;3270  readonly asV2: XcmV2Xcm;3271  readonly type: 'V0' | 'V1' | 'V2';3272}32733274export type PHANTOM_DEFAULT = 'default';
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1425,27 +1425,30 @@
   UpDataStructsCollectionPermissions: {
     access: 'Option<UpDataStructsAccessMode>',
     mintMode: 'Option<bool>',
-    nesting: 'Option<UpDataStructsNestingRule>'
+    nesting: 'Option<UpDataStructsNestingPermissions>'
   },
   /**
-   * Lookup169: up_data_structs::NestingRule
+   * Lookup169: up_data_structs::NestingPermissions
    **/
-  UpDataStructsNestingRule: {
-    _enum: {
-      Disabled: 'Null',
-      Owner: 'Null',
-      OwnerRestricted: 'BTreeSet<u32>'
-    }
+  UpDataStructsNestingPermissions: {
+    tokenOwner: 'bool',
+    admin: 'bool',
+    restricted: 'Option<UpDataStructsOwnerRestrictedSet>',
+    permissive: 'bool'
   },
   /**
-   * Lookup175: up_data_structs::PropertyKeyPermission
+   * Lookup171: up_data_structs::OwnerRestrictedSet
    **/
+  UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',
+  /**
+   * Lookup177: up_data_structs::PropertyKeyPermission
+   **/
   UpDataStructsPropertyKeyPermission: {
     key: 'Bytes',
     permission: 'UpDataStructsPropertyPermission'
   },
   /**
-   * Lookup177: up_data_structs::PropertyPermission
+   * Lookup179: up_data_structs::PropertyPermission
    **/
   UpDataStructsPropertyPermission: {
     mutable: 'bool',
@@ -1453,14 +1456,14 @@
     tokenOwner: 'bool'
   },
   /**
-   * Lookup180: up_data_structs::Property
+   * Lookup182: up_data_structs::Property
    **/
   UpDataStructsProperty: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup183: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>
+   * Lookup185: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>
    **/
   PalletEvmAccountBasicCrossAccountIdRepr: {
     _enum: {
@@ -1469,7 +1472,7 @@
     }
   },
   /**
-   * Lookup185: up_data_structs::CreateItemData
+   * Lookup187: up_data_structs::CreateItemData
    **/
   UpDataStructsCreateItemData: {
     _enum: {
@@ -1479,26 +1482,26 @@
     }
   },
   /**
-   * Lookup186: up_data_structs::CreateNftData
+   * Lookup188: up_data_structs::CreateNftData
    **/
   UpDataStructsCreateNftData: {
     properties: 'Vec<UpDataStructsProperty>'
   },
   /**
-   * Lookup187: up_data_structs::CreateFungibleData
+   * Lookup189: up_data_structs::CreateFungibleData
    **/
   UpDataStructsCreateFungibleData: {
     value: 'u128'
   },
   /**
-   * Lookup188: up_data_structs::CreateReFungibleData
+   * Lookup190: up_data_structs::CreateReFungibleData
    **/
   UpDataStructsCreateReFungibleData: {
     constData: 'Bytes',
     pieces: 'u128'
   },
   /**
-   * Lookup193: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup195: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsCreateItemExData: {
     _enum: {
@@ -1509,21 +1512,21 @@
     }
   },
   /**
-   * Lookup195: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup197: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsCreateNftExData: {
     properties: 'Vec<UpDataStructsProperty>',
     owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
   },
   /**
-   * Lookup202: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup204: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsCreateRefungibleExData: {
     constData: 'Bytes',
     users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>'
   },
   /**
-   * Lookup204: pallet_unq_scheduler::pallet::Call<T>
+   * Lookup206: pallet_unq_scheduler::pallet::Call<T>
    **/
   PalletUnqSchedulerCall: {
     _enum: {
@@ -1547,7 +1550,7 @@
     }
   },
   /**
-   * Lookup206: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>
+   * Lookup208: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>
    **/
   FrameSupportScheduleMaybeHashed: {
     _enum: {
@@ -1556,15 +1559,15 @@
     }
   },
   /**
-   * Lookup207: pallet_template_transaction_payment::Call<T>
+   * Lookup209: pallet_template_transaction_payment::Call<T>
    **/
   PalletTemplateTransactionPaymentCall: 'Null',
   /**
-   * Lookup208: pallet_structure::pallet::Call<T>
+   * Lookup210: pallet_structure::pallet::Call<T>
    **/
   PalletStructureCall: 'Null',
   /**
-   * Lookup209: pallet_rmrk_core::pallet::Call<T>
+   * Lookup211: pallet_rmrk_core::pallet::Call<T>
    **/
   PalletRmrkCoreCall: {
     _enum: {
@@ -1654,7 +1657,7 @@
     }
   },
   /**
-   * Lookup213: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
+   * Lookup215: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
    **/
   RmrkTraitsNftAccountIdOrCollectionNftTuple: {
     _enum: {
@@ -1663,7 +1666,7 @@
     }
   },
   /**
-   * Lookup217: rmrk_traits::resource::BasicResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup219: rmrk_traits::resource::BasicResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceBasicResource: {
     src: 'Option<Bytes>',
@@ -1672,7 +1675,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup220: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup222: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceComposableResource: {
     parts: 'Vec<u32>',
@@ -1683,7 +1686,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup222: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup224: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceSlotResource: {
     base: 'u32',
@@ -1694,7 +1697,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup223: pallet_rmrk_equip::pallet::Call<T>
+   * Lookup225: pallet_rmrk_equip::pallet::Call<T>
    **/
   PalletRmrkEquipCall: {
     _enum: {
@@ -1710,7 +1713,7 @@
     }
   },
   /**
-   * Lookup225: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup227: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartPartType: {
     _enum: {
@@ -1719,7 +1722,7 @@
     }
   },
   /**
-   * Lookup227: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup229: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartFixedPart: {
     id: 'u32',
@@ -1727,7 +1730,7 @@
     src: 'Bytes'
   },
   /**
-   * Lookup228: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup230: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartSlotPart: {
     id: 'u32',
@@ -1736,7 +1739,7 @@
     z: 'u32'
   },
   /**
-   * Lookup229: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup231: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartEquippableList: {
     _enum: {
@@ -1746,7 +1749,7 @@
     }
   },
   /**
-   * Lookup231: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, PropertyList>
+   * Lookup233: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, PropertyList>
    **/
   RmrkTraitsTheme: {
     name: 'Bytes',
@@ -1754,14 +1757,14 @@
     inherit: 'bool'
   },
   /**
-   * Lookup233: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup235: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsThemeThemeProperty: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup234: pallet_evm::pallet::Call<T>
+   * Lookup236: pallet_evm::pallet::Call<T>
    **/
   PalletEvmCall: {
     _enum: {
@@ -1804,7 +1807,7 @@
     }
   },
   /**
-   * Lookup240: pallet_ethereum::pallet::Call<T>
+   * Lookup242: pallet_ethereum::pallet::Call<T>
    **/
   PalletEthereumCall: {
     _enum: {
@@ -1814,7 +1817,7 @@
     }
   },
   /**
-   * Lookup241: ethereum::transaction::TransactionV2
+   * Lookup243: ethereum::transaction::TransactionV2
    **/
   EthereumTransactionTransactionV2: {
     _enum: {
@@ -1824,7 +1827,7 @@
     }
   },
   /**
-   * Lookup242: ethereum::transaction::LegacyTransaction
+   * Lookup244: ethereum::transaction::LegacyTransaction
    **/
   EthereumTransactionLegacyTransaction: {
     nonce: 'U256',
@@ -1836,7 +1839,7 @@
     signature: 'EthereumTransactionTransactionSignature'
   },
   /**
-   * Lookup243: ethereum::transaction::TransactionAction
+   * Lookup245: ethereum::transaction::TransactionAction
    **/
   EthereumTransactionTransactionAction: {
     _enum: {
@@ -1845,7 +1848,7 @@
     }
   },
   /**
-   * Lookup244: ethereum::transaction::TransactionSignature
+   * Lookup246: ethereum::transaction::TransactionSignature
    **/
   EthereumTransactionTransactionSignature: {
     v: 'u64',
@@ -1853,7 +1856,7 @@
     s: 'H256'
   },
   /**
-   * Lookup246: ethereum::transaction::EIP2930Transaction
+   * Lookup248: ethereum::transaction::EIP2930Transaction
    **/
   EthereumTransactionEip2930Transaction: {
     chainId: 'u64',
@@ -1869,14 +1872,14 @@
     s: 'H256'
   },
   /**
-   * Lookup248: ethereum::transaction::AccessListItem
+   * Lookup250: ethereum::transaction::AccessListItem
    **/
   EthereumTransactionAccessListItem: {
     address: 'H160',
     storageKeys: 'Vec<H256>'
   },
   /**
-   * Lookup249: ethereum::transaction::EIP1559Transaction
+   * Lookup251: ethereum::transaction::EIP1559Transaction
    **/
   EthereumTransactionEip1559Transaction: {
     chainId: 'u64',
@@ -1893,7 +1896,7 @@
     s: 'H256'
   },
   /**
-   * Lookup250: pallet_evm_migration::pallet::Call<T>
+   * Lookup252: pallet_evm_migration::pallet::Call<T>
    **/
   PalletEvmMigrationCall: {
     _enum: {
@@ -1911,7 +1914,7 @@
     }
   },
   /**
-   * Lookup253: pallet_sudo::pallet::Event<T>
+   * Lookup255: pallet_sudo::pallet::Event<T>
    **/
   PalletSudoEvent: {
     _enum: {
@@ -1927,7 +1930,7 @@
     }
   },
   /**
-   * Lookup255: sp_runtime::DispatchError
+   * Lookup257: sp_runtime::DispatchError
    **/
   SpRuntimeDispatchError: {
     _enum: {
@@ -1944,38 +1947,38 @@
     }
   },
   /**
-   * Lookup256: sp_runtime::ModuleError
+   * Lookup258: sp_runtime::ModuleError
    **/
   SpRuntimeModuleError: {
     index: 'u8',
     error: '[u8;4]'
   },
   /**
-   * Lookup257: sp_runtime::TokenError
+   * Lookup259: sp_runtime::TokenError
    **/
   SpRuntimeTokenError: {
     _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']
   },
   /**
-   * Lookup258: sp_runtime::ArithmeticError
+   * Lookup260: sp_runtime::ArithmeticError
    **/
   SpRuntimeArithmeticError: {
     _enum: ['Underflow', 'Overflow', 'DivisionByZero']
   },
   /**
-   * Lookup259: sp_runtime::TransactionalError
+   * Lookup261: sp_runtime::TransactionalError
    **/
   SpRuntimeTransactionalError: {
     _enum: ['LimitReached', 'NoLayer']
   },
   /**
-   * Lookup260: pallet_sudo::pallet::Error<T>
+   * Lookup262: pallet_sudo::pallet::Error<T>
    **/
   PalletSudoError: {
     _enum: ['RequireSudo']
   },
   /**
-   * Lookup261: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>
+   * Lookup263: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>
    **/
   FrameSystemAccountInfo: {
     nonce: 'u32',
@@ -1985,7 +1988,7 @@
     data: 'PalletBalancesAccountData'
   },
   /**
-   * Lookup262: frame_support::weights::PerDispatchClass<T>
+   * Lookup264: frame_support::weights::PerDispatchClass<T>
    **/
   FrameSupportWeightsPerDispatchClassU64: {
     normal: 'u64',
@@ -1993,13 +1996,13 @@
     mandatory: 'u64'
   },
   /**
-   * Lookup263: sp_runtime::generic::digest::Digest
+   * Lookup265: sp_runtime::generic::digest::Digest
    **/
   SpRuntimeDigest: {
     logs: 'Vec<SpRuntimeDigestDigestItem>'
   },
   /**
-   * Lookup265: sp_runtime::generic::digest::DigestItem
+   * Lookup267: sp_runtime::generic::digest::DigestItem
    **/
   SpRuntimeDigestDigestItem: {
     _enum: {
@@ -2015,7 +2018,7 @@
     }
   },
   /**
-   * Lookup267: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>
+   * Lookup269: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>
    **/
   FrameSystemEventRecord: {
     phase: 'FrameSystemPhase',
@@ -2023,7 +2026,7 @@
     topics: 'Vec<H256>'
   },
   /**
-   * Lookup269: frame_system::pallet::Event<T>
+   * Lookup271: frame_system::pallet::Event<T>
    **/
   FrameSystemEvent: {
     _enum: {
@@ -2051,7 +2054,7 @@
     }
   },
   /**
-   * Lookup270: frame_support::weights::DispatchInfo
+   * Lookup272: frame_support::weights::DispatchInfo
    **/
   FrameSupportWeightsDispatchInfo: {
     weight: 'u64',
@@ -2059,19 +2062,19 @@
     paysFee: 'FrameSupportWeightsPays'
   },
   /**
-   * Lookup271: frame_support::weights::DispatchClass
+   * Lookup273: frame_support::weights::DispatchClass
    **/
   FrameSupportWeightsDispatchClass: {
     _enum: ['Normal', 'Operational', 'Mandatory']
   },
   /**
-   * Lookup272: frame_support::weights::Pays
+   * Lookup274: frame_support::weights::Pays
    **/
   FrameSupportWeightsPays: {
     _enum: ['Yes', 'No']
   },
   /**
-   * Lookup273: orml_vesting::module::Event<T>
+   * Lookup275: orml_vesting::module::Event<T>
    **/
   OrmlVestingModuleEvent: {
     _enum: {
@@ -2090,7 +2093,7 @@
     }
   },
   /**
-   * Lookup274: cumulus_pallet_xcmp_queue::pallet::Event<T>
+   * Lookup276: cumulus_pallet_xcmp_queue::pallet::Event<T>
    **/
   CumulusPalletXcmpQueueEvent: {
     _enum: {
@@ -2105,7 +2108,7 @@
     }
   },
   /**
-   * Lookup275: pallet_xcm::pallet::Event<T>
+   * Lookup277: pallet_xcm::pallet::Event<T>
    **/
   PalletXcmEvent: {
     _enum: {
@@ -2128,7 +2131,7 @@
     }
   },
   /**
-   * Lookup276: xcm::v2::traits::Outcome
+   * Lookup278: xcm::v2::traits::Outcome
    **/
   XcmV2TraitsOutcome: {
     _enum: {
@@ -2138,7 +2141,7 @@
     }
   },
   /**
-   * Lookup278: cumulus_pallet_xcm::pallet::Event<T>
+   * Lookup280: cumulus_pallet_xcm::pallet::Event<T>
    **/
   CumulusPalletXcmEvent: {
     _enum: {
@@ -2148,7 +2151,7 @@
     }
   },
   /**
-   * Lookup279: cumulus_pallet_dmp_queue::pallet::Event<T>
+   * Lookup281: cumulus_pallet_dmp_queue::pallet::Event<T>
    **/
   CumulusPalletDmpQueueEvent: {
     _enum: {
@@ -2161,7 +2164,7 @@
     }
   },
   /**
-   * Lookup280: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup282: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   PalletUniqueRawEvent: {
     _enum: {
@@ -2178,7 +2181,7 @@
     }
   },
   /**
-   * Lookup281: pallet_unq_scheduler::pallet::Event<T>
+   * Lookup283: pallet_unq_scheduler::pallet::Event<T>
    **/
   PalletUnqSchedulerEvent: {
     _enum: {
@@ -2203,13 +2206,13 @@
     }
   },
   /**
-   * Lookup283: frame_support::traits::schedule::LookupError
+   * Lookup285: frame_support::traits::schedule::LookupError
    **/
   FrameSupportScheduleLookupError: {
     _enum: ['Unknown', 'BadFormat']
   },
   /**
-   * Lookup284: pallet_common::pallet::Event<T>
+   * Lookup286: pallet_common::pallet::Event<T>
    **/
   PalletCommonEvent: {
     _enum: {
@@ -2227,7 +2230,7 @@
     }
   },
   /**
-   * Lookup285: pallet_structure::pallet::Event<T>
+   * Lookup287: pallet_structure::pallet::Event<T>
    **/
   PalletStructureEvent: {
     _enum: {
@@ -2235,7 +2238,7 @@
     }
   },
   /**
-   * Lookup286: pallet_rmrk_core::pallet::Event<T>
+   * Lookup288: pallet_rmrk_core::pallet::Event<T>
    **/
   PalletRmrkCoreEvent: {
     _enum: {
@@ -2312,7 +2315,7 @@
     }
   },
   /**
-   * Lookup287: pallet_rmrk_equip::pallet::Event<T>
+   * Lookup289: pallet_rmrk_equip::pallet::Event<T>
    **/
   PalletRmrkEquipEvent: {
     _enum: {
@@ -2323,7 +2326,7 @@
     }
   },
   /**
-   * Lookup288: pallet_evm::pallet::Event<T>
+   * Lookup290: pallet_evm::pallet::Event<T>
    **/
   PalletEvmEvent: {
     _enum: {
@@ -2337,7 +2340,7 @@
     }
   },
   /**
-   * Lookup289: ethereum::log::Log
+   * Lookup291: ethereum::log::Log
    **/
   EthereumLog: {
     address: 'H160',
@@ -2345,7 +2348,7 @@
     data: 'Bytes'
   },
   /**
-   * Lookup290: pallet_ethereum::pallet::Event
+   * Lookup292: pallet_ethereum::pallet::Event
    **/
   PalletEthereumEvent: {
     _enum: {
@@ -2353,7 +2356,7 @@
     }
   },
   /**
-   * Lookup291: evm_core::error::ExitReason
+   * Lookup293: evm_core::error::ExitReason
    **/
   EvmCoreErrorExitReason: {
     _enum: {
@@ -2364,13 +2367,13 @@
     }
   },
   /**
-   * Lookup292: evm_core::error::ExitSucceed
+   * Lookup294: evm_core::error::ExitSucceed
    **/
   EvmCoreErrorExitSucceed: {
     _enum: ['Stopped', 'Returned', 'Suicided']
   },
   /**
-   * Lookup293: evm_core::error::ExitError
+   * Lookup295: evm_core::error::ExitError
    **/
   EvmCoreErrorExitError: {
     _enum: {
@@ -2392,13 +2395,13 @@
     }
   },
   /**
-   * Lookup296: evm_core::error::ExitRevert
+   * Lookup298: evm_core::error::ExitRevert
    **/
   EvmCoreErrorExitRevert: {
     _enum: ['Reverted']
   },
   /**
-   * Lookup297: evm_core::error::ExitFatal
+   * Lookup299: evm_core::error::ExitFatal
    **/
   EvmCoreErrorExitFatal: {
     _enum: {
@@ -2409,7 +2412,7 @@
     }
   },
   /**
-   * Lookup298: frame_system::Phase
+   * Lookup300: frame_system::Phase
    **/
   FrameSystemPhase: {
     _enum: {
@@ -2419,14 +2422,14 @@
     }
   },
   /**
-   * Lookup300: frame_system::LastRuntimeUpgradeInfo
+   * Lookup302: frame_system::LastRuntimeUpgradeInfo
    **/
   FrameSystemLastRuntimeUpgradeInfo: {
     specVersion: 'Compact<u32>',
     specName: 'Text'
   },
   /**
-   * Lookup301: frame_system::limits::BlockWeights
+   * Lookup303: frame_system::limits::BlockWeights
    **/
   FrameSystemLimitsBlockWeights: {
     baseBlock: 'u64',
@@ -2434,7 +2437,7 @@
     perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'
   },
   /**
-   * Lookup302: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
+   * Lookup304: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
    **/
   FrameSupportWeightsPerDispatchClassWeightsPerClass: {
     normal: 'FrameSystemLimitsWeightsPerClass',
@@ -2442,7 +2445,7 @@
     mandatory: 'FrameSystemLimitsWeightsPerClass'
   },
   /**
-   * Lookup303: frame_system::limits::WeightsPerClass
+   * Lookup305: frame_system::limits::WeightsPerClass
    **/
   FrameSystemLimitsWeightsPerClass: {
     baseExtrinsic: 'u64',
@@ -2451,13 +2454,13 @@
     reserved: 'Option<u64>'
   },
   /**
-   * Lookup305: frame_system::limits::BlockLength
+   * Lookup307: frame_system::limits::BlockLength
    **/
   FrameSystemLimitsBlockLength: {
     max: 'FrameSupportWeightsPerDispatchClassU32'
   },
   /**
-   * Lookup306: frame_support::weights::PerDispatchClass<T>
+   * Lookup308: frame_support::weights::PerDispatchClass<T>
    **/
   FrameSupportWeightsPerDispatchClassU32: {
     normal: 'u32',
@@ -2465,14 +2468,14 @@
     mandatory: 'u32'
   },
   /**
-   * Lookup307: frame_support::weights::RuntimeDbWeight
+   * Lookup309: frame_support::weights::RuntimeDbWeight
    **/
   FrameSupportWeightsRuntimeDbWeight: {
     read: 'u64',
     write: 'u64'
   },
   /**
-   * Lookup308: sp_version::RuntimeVersion
+   * Lookup310: sp_version::RuntimeVersion
    **/
   SpVersionRuntimeVersion: {
     specName: 'Text',
@@ -2485,19 +2488,19 @@
     stateVersion: 'u8'
   },
   /**
-   * Lookup312: frame_system::pallet::Error<T>
+   * Lookup314: frame_system::pallet::Error<T>
    **/
   FrameSystemError: {
     _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']
   },
   /**
-   * Lookup314: orml_vesting::module::Error<T>
+   * Lookup316: orml_vesting::module::Error<T>
    **/
   OrmlVestingModuleError: {
     _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
   },
   /**
-   * Lookup316: cumulus_pallet_xcmp_queue::InboundChannelDetails
+   * Lookup318: cumulus_pallet_xcmp_queue::InboundChannelDetails
    **/
   CumulusPalletXcmpQueueInboundChannelDetails: {
     sender: 'u32',
@@ -2505,19 +2508,19 @@
     messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
   },
   /**
-   * Lookup317: cumulus_pallet_xcmp_queue::InboundState
+   * Lookup319: cumulus_pallet_xcmp_queue::InboundState
    **/
   CumulusPalletXcmpQueueInboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup320: polkadot_parachain::primitives::XcmpMessageFormat
+   * Lookup322: polkadot_parachain::primitives::XcmpMessageFormat
    **/
   PolkadotParachainPrimitivesXcmpMessageFormat: {
     _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
   },
   /**
-   * Lookup323: cumulus_pallet_xcmp_queue::OutboundChannelDetails
+   * Lookup325: cumulus_pallet_xcmp_queue::OutboundChannelDetails
    **/
   CumulusPalletXcmpQueueOutboundChannelDetails: {
     recipient: 'u32',
@@ -2527,13 +2530,13 @@
     lastIndex: 'u16'
   },
   /**
-   * Lookup324: cumulus_pallet_xcmp_queue::OutboundState
+   * Lookup326: cumulus_pallet_xcmp_queue::OutboundState
    **/
   CumulusPalletXcmpQueueOutboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup326: cumulus_pallet_xcmp_queue::QueueConfigData
+   * Lookup328: cumulus_pallet_xcmp_queue::QueueConfigData
    **/
   CumulusPalletXcmpQueueQueueConfigData: {
     suspendThreshold: 'u32',
@@ -2544,29 +2547,29 @@
     xcmpMaxIndividualWeight: 'u64'
   },
   /**
-   * Lookup328: cumulus_pallet_xcmp_queue::pallet::Error<T>
+   * Lookup330: cumulus_pallet_xcmp_queue::pallet::Error<T>
    **/
   CumulusPalletXcmpQueueError: {
     _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
   },
   /**
-   * Lookup329: pallet_xcm::pallet::Error<T>
+   * Lookup331: pallet_xcm::pallet::Error<T>
    **/
   PalletXcmError: {
     _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
   },
   /**
-   * Lookup330: cumulus_pallet_xcm::pallet::Error<T>
+   * Lookup332: cumulus_pallet_xcm::pallet::Error<T>
    **/
   CumulusPalletXcmError: 'Null',
   /**
-   * Lookup331: cumulus_pallet_dmp_queue::ConfigData
+   * Lookup333: cumulus_pallet_dmp_queue::ConfigData
    **/
   CumulusPalletDmpQueueConfigData: {
     maxIndividual: 'u64'
   },
   /**
-   * Lookup332: cumulus_pallet_dmp_queue::PageIndexData
+   * Lookup334: cumulus_pallet_dmp_queue::PageIndexData
    **/
   CumulusPalletDmpQueuePageIndexData: {
     beginUsed: 'u32',
@@ -2574,19 +2577,19 @@
     overweightCount: 'u64'
   },
   /**
-   * Lookup335: cumulus_pallet_dmp_queue::pallet::Error<T>
+   * Lookup337: cumulus_pallet_dmp_queue::pallet::Error<T>
    **/
   CumulusPalletDmpQueueError: {
     _enum: ['Unknown', 'OverLimit']
   },
   /**
-   * Lookup339: pallet_unique::Error<T>
+   * Lookup341: pallet_unique::Error<T>
    **/
   PalletUniqueError: {
     _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument']
   },
   /**
-   * Lookup342: pallet_unq_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
+   * Lookup344: pallet_unq_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
    **/
   PalletUnqSchedulerScheduledV3: {
     maybeId: 'Option<[u8;16]>',
@@ -2596,7 +2599,7 @@
     origin: 'OpalRuntimeOriginCaller'
   },
   /**
-   * Lookup343: opal_runtime::OriginCaller
+   * Lookup345: opal_runtime::OriginCaller
    **/
   OpalRuntimeOriginCaller: {
     _enum: {
@@ -2705,7 +2708,7 @@
     }
   },
   /**
-   * Lookup344: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
+   * Lookup346: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
    **/
   FrameSupportDispatchRawOrigin: {
     _enum: {
@@ -2715,7 +2718,7 @@
     }
   },
   /**
-   * Lookup345: pallet_xcm::pallet::Origin
+   * Lookup347: pallet_xcm::pallet::Origin
    **/
   PalletXcmOrigin: {
     _enum: {
@@ -2724,7 +2727,7 @@
     }
   },
   /**
-   * Lookup346: cumulus_pallet_xcm::pallet::Origin
+   * Lookup348: cumulus_pallet_xcm::pallet::Origin
    **/
   CumulusPalletXcmOrigin: {
     _enum: {
@@ -2733,7 +2736,7 @@
     }
   },
   /**
-   * Lookup347: pallet_ethereum::RawOrigin
+   * Lookup349: pallet_ethereum::RawOrigin
    **/
   PalletEthereumRawOrigin: {
     _enum: {
@@ -2741,17 +2744,17 @@
     }
   },
   /**
-   * Lookup348: sp_core::Void
+   * Lookup350: sp_core::Void
    **/
   SpCoreVoid: 'Null',
   /**
-   * Lookup349: pallet_unq_scheduler::pallet::Error<T>
+   * Lookup351: pallet_unq_scheduler::pallet::Error<T>
    **/
   PalletUnqSchedulerError: {
     _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
   },
   /**
-   * Lookup350: up_data_structs::Collection<sp_core::crypto::AccountId32>
+   * Lookup352: up_data_structs::Collection<sp_core::crypto::AccountId32>
    **/
   UpDataStructsCollection: {
     owner: 'AccountId32',
@@ -2765,7 +2768,7 @@
     externalCollection: 'bool'
   },
   /**
-   * Lookup351: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
+   * Lookup353: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
    **/
   UpDataStructsSponsorshipState: {
     _enum: {
@@ -2775,7 +2778,7 @@
     }
   },
   /**
-   * Lookup352: up_data_structs::Properties
+   * Lookup354: up_data_structs::Properties
    **/
   UpDataStructsProperties: {
     map: 'UpDataStructsPropertiesMapBoundedVec',
@@ -2783,15 +2786,15 @@
     spaceLimit: 'u32'
   },
   /**
-   * Lookup353: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup355: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
   /**
-   * Lookup358: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
+   * Lookup360: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
    **/
   UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
   /**
-   * Lookup365: up_data_structs::CollectionStats
+   * Lookup367: up_data_structs::CollectionStats
    **/
   UpDataStructsCollectionStats: {
     created: 'u32',
@@ -2799,25 +2802,25 @@
     alive: 'u32'
   },
   /**
-   * Lookup366: up_data_structs::TokenChild
+   * Lookup368: up_data_structs::TokenChild
    **/
   UpDataStructsTokenChild: {
     token: 'u32',
     collection: 'u32'
   },
   /**
-   * Lookup367: PhantomType::up_data_structs<T>
+   * Lookup369: PhantomType::up_data_structs<T>
    **/
   PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
   /**
-   * Lookup369: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup371: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsTokenData: {
     properties: 'Vec<UpDataStructsProperty>',
     owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>'
   },
   /**
-   * Lookup371: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
+   * Lookup373: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
    **/
   UpDataStructsRpcCollection: {
     owner: 'AccountId32',
@@ -2833,7 +2836,7 @@
     readOnly: 'bool'
   },
   /**
-   * Lookup372: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
+   * Lookup374: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
    **/
   RmrkTraitsCollectionCollectionInfo: {
     issuer: 'AccountId32',
@@ -2843,7 +2846,7 @@
     nftsCount: 'u32'
   },
   /**
-   * Lookup373: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup375: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsNftNftInfo: {
     owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
@@ -2853,14 +2856,14 @@
     pending: 'bool'
   },
   /**
-   * Lookup375: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+   * Lookup377: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
    **/
   RmrkTraitsNftRoyaltyInfo: {
     recipient: 'AccountId32',
     amount: 'Permill'
   },
   /**
-   * Lookup376: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup378: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceResourceInfo: {
     id: 'u32',
@@ -2869,7 +2872,7 @@
     pendingRemoval: 'bool'
   },
   /**
-   * Lookup377: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup379: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceResourceTypes: {
     _enum: {
@@ -2879,14 +2882,14 @@
     }
   },
   /**
-   * Lookup378: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup380: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPropertyPropertyInfo: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup379: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup381: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsBaseBaseInfo: {
     issuer: 'AccountId32',
@@ -2894,74 +2897,74 @@
     symbol: 'Bytes'
   },
   /**
-   * Lookup380: rmrk_traits::nft::NftChild
+   * Lookup382: rmrk_traits::nft::NftChild
    **/
   RmrkTraitsNftNftChild: {
     collectionId: 'u32',
     nftId: 'u32'
   },
   /**
-   * Lookup382: pallet_common::pallet::Error<T>
+   * Lookup384: pallet_common::pallet::Error<T>
    **/
   PalletCommonError: {
-    _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'NestingIsDisabled', 'OnlyOwnerAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']
+    _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']
   },
   /**
-   * Lookup384: pallet_fungible::pallet::Error<T>
+   * Lookup386: pallet_fungible::pallet::Error<T>
    **/
   PalletFungibleError: {
     _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup385: pallet_refungible::ItemData
+   * Lookup387: pallet_refungible::ItemData
    **/
   PalletRefungibleItemData: {
     constData: 'Bytes'
   },
   /**
-   * Lookup389: pallet_refungible::pallet::Error<T>
+   * Lookup391: pallet_refungible::pallet::Error<T>
    **/
   PalletRefungibleError: {
     _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup390: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup392: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   PalletNonfungibleItemData: {
     owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
   },
   /**
-   * Lookup392: pallet_nonfungible::pallet::Error<T>
+   * Lookup394: pallet_nonfungible::pallet::Error<T>
    **/
   PalletNonfungibleError: {
     _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
   },
   /**
-   * Lookup393: pallet_structure::pallet::Error<T>
+   * Lookup395: pallet_structure::pallet::Error<T>
    **/
   PalletStructureError: {
-    _enum: ['OuroborosDetected', 'DepthLimit', 'TokenNotFound']
+    _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
   },
   /**
-   * Lookup394: pallet_rmrk_core::pallet::Error<T>
+   * Lookup396: pallet_rmrk_core::pallet::Error<T>
    **/
   PalletRmrkCoreError: {
     _enum: ['CorruptedCollectionType', 'NftTypeEncodeError', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'ResourceNotPending']
   },
   /**
-   * Lookup396: pallet_rmrk_equip::pallet::Error<T>
+   * Lookup398: pallet_rmrk_equip::pallet::Error<T>
    **/
   PalletRmrkEquipError: {
     _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst']
   },
   /**
-   * Lookup399: pallet_evm::pallet::Error<T>
+   * Lookup401: pallet_evm::pallet::Error<T>
    **/
   PalletEvmError: {
     _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
   },
   /**
-   * Lookup402: fp_rpc::TransactionStatus
+   * Lookup404: fp_rpc::TransactionStatus
    **/
   FpRpcTransactionStatus: {
     transactionHash: 'H256',
@@ -2973,11 +2976,11 @@
     logsBloom: 'EthbloomBloom'
   },
   /**
-   * Lookup404: ethbloom::Bloom
+   * Lookup406: ethbloom::Bloom
    **/
   EthbloomBloom: '[u8;256]',
   /**
-   * Lookup406: ethereum::receipt::ReceiptV3
+   * Lookup408: ethereum::receipt::ReceiptV3
    **/
   EthereumReceiptReceiptV3: {
     _enum: {
@@ -2987,7 +2990,7 @@
     }
   },
   /**
-   * Lookup407: ethereum::receipt::EIP658ReceiptData
+   * Lookup409: ethereum::receipt::EIP658ReceiptData
    **/
   EthereumReceiptEip658ReceiptData: {
     statusCode: 'u8',
@@ -2996,7 +2999,7 @@
     logs: 'Vec<EthereumLog>'
   },
   /**
-   * Lookup408: ethereum::block::Block<ethereum::transaction::TransactionV2>
+   * Lookup410: ethereum::block::Block<ethereum::transaction::TransactionV2>
    **/
   EthereumBlock: {
     header: 'EthereumHeader',
@@ -3004,7 +3007,7 @@
     ommers: 'Vec<EthereumHeader>'
   },
   /**
-   * Lookup409: ethereum::header::Header
+   * Lookup411: ethereum::header::Header
    **/
   EthereumHeader: {
     parentHash: 'H256',
@@ -3024,41 +3027,41 @@
     nonce: 'EthereumTypesHashH64'
   },
   /**
-   * Lookup410: ethereum_types::hash::H64
+   * Lookup412: ethereum_types::hash::H64
    **/
   EthereumTypesHashH64: '[u8;8]',
   /**
-   * Lookup415: pallet_ethereum::pallet::Error<T>
+   * Lookup417: pallet_ethereum::pallet::Error<T>
    **/
   PalletEthereumError: {
     _enum: ['InvalidSignature', 'PreLogExists']
   },
   /**
-   * Lookup416: pallet_evm_coder_substrate::pallet::Error<T>
+   * Lookup418: pallet_evm_coder_substrate::pallet::Error<T>
    **/
   PalletEvmCoderSubstrateError: {
     _enum: ['OutOfGas', 'OutOfFund']
   },
   /**
-   * Lookup417: pallet_evm_contract_helpers::SponsoringModeT
+   * Lookup419: pallet_evm_contract_helpers::SponsoringModeT
    **/
   PalletEvmContractHelpersSponsoringModeT: {
     _enum: ['Disabled', 'Allowlisted', 'Generous']
   },
   /**
-   * Lookup419: pallet_evm_contract_helpers::pallet::Error<T>
+   * Lookup421: pallet_evm_contract_helpers::pallet::Error<T>
    **/
   PalletEvmContractHelpersError: {
     _enum: ['NoPermission']
   },
   /**
-   * Lookup420: pallet_evm_migration::pallet::Error<T>
+   * Lookup422: pallet_evm_migration::pallet::Error<T>
    **/
   PalletEvmMigrationError: {
     _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
   },
   /**
-   * Lookup422: sp_runtime::MultiSignature
+   * Lookup424: sp_runtime::MultiSignature
    **/
   SpRuntimeMultiSignature: {
     _enum: {
@@ -3068,43 +3071,43 @@
     }
   },
   /**
-   * Lookup423: sp_core::ed25519::Signature
+   * Lookup425: sp_core::ed25519::Signature
    **/
   SpCoreEd25519Signature: '[u8;64]',
   /**
-   * Lookup425: sp_core::sr25519::Signature
+   * Lookup427: sp_core::sr25519::Signature
    **/
   SpCoreSr25519Signature: '[u8;64]',
   /**
-   * Lookup426: sp_core::ecdsa::Signature
+   * Lookup428: sp_core::ecdsa::Signature
    **/
   SpCoreEcdsaSignature: '[u8;65]',
   /**
-   * Lookup429: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+   * Lookup431: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
    **/
   FrameSystemExtensionsCheckSpecVersion: 'Null',
   /**
-   * Lookup430: frame_system::extensions::check_genesis::CheckGenesis<T>
+   * Lookup432: frame_system::extensions::check_genesis::CheckGenesis<T>
    **/
   FrameSystemExtensionsCheckGenesis: 'Null',
   /**
-   * Lookup433: frame_system::extensions::check_nonce::CheckNonce<T>
+   * Lookup435: frame_system::extensions::check_nonce::CheckNonce<T>
    **/
   FrameSystemExtensionsCheckNonce: 'Compact<u32>',
   /**
-   * Lookup434: frame_system::extensions::check_weight::CheckWeight<T>
+   * Lookup436: frame_system::extensions::check_weight::CheckWeight<T>
    **/
   FrameSystemExtensionsCheckWeight: 'Null',
   /**
-   * Lookup435: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+   * Lookup437: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
    **/
   PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
   /**
-   * Lookup436: opal_runtime::Runtime
+   * Lookup438: opal_runtime::Runtime
    **/
   OpalRuntimeRuntime: 'Null',
   /**
-   * Lookup437: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+   * Lookup439: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
    **/
   PalletEthereumFakeTransactionFinalizer: 'Null'
 };
modifiedtests/src/interfaces/registry.tsdiffbeforeafterboth
--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 declare module '@polkadot/types/types/registry' {
   export interface InterfaceTypes {
@@ -196,7 +196,8 @@
     UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;
     UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;
     UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;
-    UpDataStructsNestingRule: UpDataStructsNestingRule;
+    UpDataStructsNestingPermissions: UpDataStructsNestingPermissions;
+    UpDataStructsOwnerRestrictedSet: UpDataStructsOwnerRestrictedSet;
     UpDataStructsProperties: UpDataStructsProperties;
     UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;
     UpDataStructsPropertiesMapPropertyPermission: UpDataStructsPropertiesMapPropertyPermission;
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1556,38 +1556,40 @@
   export interface UpDataStructsCollectionPermissions extends Struct {
     readonly access: Option<UpDataStructsAccessMode>;
     readonly mintMode: Option<bool>;
-    readonly nesting: Option<UpDataStructsNestingRule>;
+    readonly nesting: Option<UpDataStructsNestingPermissions>;
   }
 
-  /** @name UpDataStructsNestingRule (169) */
-  export interface UpDataStructsNestingRule extends Enum {
-    readonly isDisabled: boolean;
-    readonly isOwner: boolean;
-    readonly isOwnerRestricted: boolean;
-    readonly asOwnerRestricted: BTreeSet<u32>;
-    readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';
+  /** @name UpDataStructsNestingPermissions (169) */
+  export interface UpDataStructsNestingPermissions extends Struct {
+    readonly tokenOwner: bool;
+    readonly admin: bool;
+    readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;
+    readonly permissive: bool;
   }
 
-  /** @name UpDataStructsPropertyKeyPermission (175) */
+  /** @name UpDataStructsOwnerRestrictedSet (171) */
+  export interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}
+
+  /** @name UpDataStructsPropertyKeyPermission (177) */
   export interface UpDataStructsPropertyKeyPermission extends Struct {
     readonly key: Bytes;
     readonly permission: UpDataStructsPropertyPermission;
   }
 
-  /** @name UpDataStructsPropertyPermission (177) */
+  /** @name UpDataStructsPropertyPermission (179) */
   export interface UpDataStructsPropertyPermission extends Struct {
     readonly mutable: bool;
     readonly collectionAdmin: bool;
     readonly tokenOwner: bool;
   }
 
-  /** @name UpDataStructsProperty (180) */
+  /** @name UpDataStructsProperty (182) */
   export interface UpDataStructsProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name PalletEvmAccountBasicCrossAccountIdRepr (183) */
+  /** @name PalletEvmAccountBasicCrossAccountIdRepr (185) */
   export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {
     readonly isSubstrate: boolean;
     readonly asSubstrate: AccountId32;
@@ -1596,7 +1598,7 @@
     readonly type: 'Substrate' | 'Ethereum';
   }
 
-  /** @name UpDataStructsCreateItemData (185) */
+  /** @name UpDataStructsCreateItemData (187) */
   export interface UpDataStructsCreateItemData extends Enum {
     readonly isNft: boolean;
     readonly asNft: UpDataStructsCreateNftData;
@@ -1607,23 +1609,23 @@
     readonly type: 'Nft' | 'Fungible' | 'ReFungible';
   }
 
-  /** @name UpDataStructsCreateNftData (186) */
+  /** @name UpDataStructsCreateNftData (188) */
   export interface UpDataStructsCreateNftData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsCreateFungibleData (187) */
+  /** @name UpDataStructsCreateFungibleData (189) */
   export interface UpDataStructsCreateFungibleData extends Struct {
     readonly value: u128;
   }
 
-  /** @name UpDataStructsCreateReFungibleData (188) */
+  /** @name UpDataStructsCreateReFungibleData (190) */
   export interface UpDataStructsCreateReFungibleData extends Struct {
     readonly constData: Bytes;
     readonly pieces: u128;
   }
 
-  /** @name UpDataStructsCreateItemExData (193) */
+  /** @name UpDataStructsCreateItemExData (195) */
   export interface UpDataStructsCreateItemExData extends Enum {
     readonly isNft: boolean;
     readonly asNft: Vec<UpDataStructsCreateNftExData>;
@@ -1636,19 +1638,19 @@
     readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';
   }
 
-  /** @name UpDataStructsCreateNftExData (195) */
+  /** @name UpDataStructsCreateNftExData (197) */
   export interface UpDataStructsCreateNftExData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name UpDataStructsCreateRefungibleExData (202) */
+  /** @name UpDataStructsCreateRefungibleExData (204) */
   export interface UpDataStructsCreateRefungibleExData extends Struct {
     readonly constData: Bytes;
     readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
   }
 
-  /** @name PalletUnqSchedulerCall (204) */
+  /** @name PalletUnqSchedulerCall (206) */
   export interface PalletUnqSchedulerCall extends Enum {
     readonly isScheduleNamed: boolean;
     readonly asScheduleNamed: {
@@ -1673,7 +1675,7 @@
     readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';
   }
 
-  /** @name FrameSupportScheduleMaybeHashed (206) */
+  /** @name FrameSupportScheduleMaybeHashed (208) */
   export interface FrameSupportScheduleMaybeHashed extends Enum {
     readonly isValue: boolean;
     readonly asValue: Call;
@@ -1682,13 +1684,13 @@
     readonly type: 'Value' | 'Hash';
   }
 
-  /** @name PalletTemplateTransactionPaymentCall (207) */
+  /** @name PalletTemplateTransactionPaymentCall (209) */
   export type PalletTemplateTransactionPaymentCall = Null;
 
-  /** @name PalletStructureCall (208) */
+  /** @name PalletStructureCall (210) */
   export type PalletStructureCall = Null;
 
-  /** @name PalletRmrkCoreCall (209) */
+  /** @name PalletRmrkCoreCall (211) */
   export interface PalletRmrkCoreCall extends Enum {
     readonly isCreateCollection: boolean;
     readonly asCreateCollection: {
@@ -1793,7 +1795,7 @@
     readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';
   }
 
-  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (213) */
+  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (215) */
   export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
     readonly isAccountId: boolean;
     readonly asAccountId: AccountId32;
@@ -1802,7 +1804,7 @@
     readonly type: 'AccountId' | 'CollectionAndNftTuple';
   }
 
-  /** @name RmrkTraitsResourceBasicResource (217) */
+  /** @name RmrkTraitsResourceBasicResource (219) */
   export interface RmrkTraitsResourceBasicResource extends Struct {
     readonly src: Option<Bytes>;
     readonly metadata: Option<Bytes>;
@@ -1810,7 +1812,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceComposableResource (220) */
+  /** @name RmrkTraitsResourceComposableResource (222) */
   export interface RmrkTraitsResourceComposableResource extends Struct {
     readonly parts: Vec<u32>;
     readonly base: u32;
@@ -1820,7 +1822,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceSlotResource (222) */
+  /** @name RmrkTraitsResourceSlotResource (224) */
   export interface RmrkTraitsResourceSlotResource extends Struct {
     readonly base: u32;
     readonly src: Option<Bytes>;
@@ -1830,7 +1832,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name PalletRmrkEquipCall (223) */
+  /** @name PalletRmrkEquipCall (225) */
   export interface PalletRmrkEquipCall extends Enum {
     readonly isCreateBase: boolean;
     readonly asCreateBase: {
@@ -1846,7 +1848,7 @@
     readonly type: 'CreateBase' | 'ThemeAdd';
   }
 
-  /** @name RmrkTraitsPartPartType (225) */
+  /** @name RmrkTraitsPartPartType (227) */
   export interface RmrkTraitsPartPartType extends Enum {
     readonly isFixedPart: boolean;
     readonly asFixedPart: RmrkTraitsPartFixedPart;
@@ -1855,14 +1857,14 @@
     readonly type: 'FixedPart' | 'SlotPart';
   }
 
-  /** @name RmrkTraitsPartFixedPart (227) */
+  /** @name RmrkTraitsPartFixedPart (229) */
   export interface RmrkTraitsPartFixedPart extends Struct {
     readonly id: u32;
     readonly z: u32;
     readonly src: Bytes;
   }
 
-  /** @name RmrkTraitsPartSlotPart (228) */
+  /** @name RmrkTraitsPartSlotPart (230) */
   export interface RmrkTraitsPartSlotPart extends Struct {
     readonly id: u32;
     readonly equippable: RmrkTraitsPartEquippableList;
@@ -1870,7 +1872,7 @@
     readonly z: u32;
   }
 
-  /** @name RmrkTraitsPartEquippableList (229) */
+  /** @name RmrkTraitsPartEquippableList (231) */
   export interface RmrkTraitsPartEquippableList extends Enum {
     readonly isAll: boolean;
     readonly isEmpty: boolean;
@@ -1879,20 +1881,20 @@
     readonly type: 'All' | 'Empty' | 'Custom';
   }
 
-  /** @name RmrkTraitsTheme (231) */
+  /** @name RmrkTraitsTheme (233) */
   export interface RmrkTraitsTheme extends Struct {
     readonly name: Bytes;
     readonly properties: Vec<RmrkTraitsThemeThemeProperty>;
     readonly inherit: bool;
   }
 
-  /** @name RmrkTraitsThemeThemeProperty (233) */
+  /** @name RmrkTraitsThemeThemeProperty (235) */
   export interface RmrkTraitsThemeThemeProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name PalletEvmCall (234) */
+  /** @name PalletEvmCall (236) */
   export interface PalletEvmCall extends Enum {
     readonly isWithdraw: boolean;
     readonly asWithdraw: {
@@ -1937,7 +1939,7 @@
     readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
   }
 
-  /** @name PalletEthereumCall (240) */
+  /** @name PalletEthereumCall (242) */
   export interface PalletEthereumCall extends Enum {
     readonly isTransact: boolean;
     readonly asTransact: {
@@ -1946,7 +1948,7 @@
     readonly type: 'Transact';
   }
 
-  /** @name EthereumTransactionTransactionV2 (241) */
+  /** @name EthereumTransactionTransactionV2 (243) */
   export interface EthereumTransactionTransactionV2 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -1957,7 +1959,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumTransactionLegacyTransaction (242) */
+  /** @name EthereumTransactionLegacyTransaction (244) */
   export interface EthereumTransactionLegacyTransaction extends Struct {
     readonly nonce: U256;
     readonly gasPrice: U256;
@@ -1968,7 +1970,7 @@
     readonly signature: EthereumTransactionTransactionSignature;
   }
 
-  /** @name EthereumTransactionTransactionAction (243) */
+  /** @name EthereumTransactionTransactionAction (245) */
   export interface EthereumTransactionTransactionAction extends Enum {
     readonly isCall: boolean;
     readonly asCall: H160;
@@ -1976,14 +1978,14 @@
     readonly type: 'Call' | 'Create';
   }
 
-  /** @name EthereumTransactionTransactionSignature (244) */
+  /** @name EthereumTransactionTransactionSignature (246) */
   export interface EthereumTransactionTransactionSignature extends Struct {
     readonly v: u64;
     readonly r: H256;
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionEip2930Transaction (246) */
+  /** @name EthereumTransactionEip2930Transaction (248) */
   export interface EthereumTransactionEip2930Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -1998,13 +2000,13 @@
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionAccessListItem (248) */
+  /** @name EthereumTransactionAccessListItem (250) */
   export interface EthereumTransactionAccessListItem extends Struct {
     readonly address: H160;
     readonly storageKeys: Vec<H256>;
   }
 
-  /** @name EthereumTransactionEip1559Transaction (249) */
+  /** @name EthereumTransactionEip1559Transaction (251) */
   export interface EthereumTransactionEip1559Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -2020,7 +2022,7 @@
     readonly s: H256;
   }
 
-  /** @name PalletEvmMigrationCall (250) */
+  /** @name PalletEvmMigrationCall (252) */
   export interface PalletEvmMigrationCall extends Enum {
     readonly isBegin: boolean;
     readonly asBegin: {
@@ -2039,7 +2041,7 @@
     readonly type: 'Begin' | 'SetData' | 'Finish';
   }
 
-  /** @name PalletSudoEvent (253) */
+  /** @name PalletSudoEvent (255) */
   export interface PalletSudoEvent extends Enum {
     readonly isSudid: boolean;
     readonly asSudid: {
@@ -2056,7 +2058,7 @@
     readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';
   }
 
-  /** @name SpRuntimeDispatchError (255) */
+  /** @name SpRuntimeDispatchError (257) */
   export interface SpRuntimeDispatchError extends Enum {
     readonly isOther: boolean;
     readonly isCannotLookup: boolean;
@@ -2075,13 +2077,13 @@
     readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';
   }
 
-  /** @name SpRuntimeModuleError (256) */
+  /** @name SpRuntimeModuleError (258) */
   export interface SpRuntimeModuleError extends Struct {
     readonly index: u8;
     readonly error: U8aFixed;
   }
 
-  /** @name SpRuntimeTokenError (257) */
+  /** @name SpRuntimeTokenError (259) */
   export interface SpRuntimeTokenError extends Enum {
     readonly isNoFunds: boolean;
     readonly isWouldDie: boolean;
@@ -2093,7 +2095,7 @@
     readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';
   }
 
-  /** @name SpRuntimeArithmeticError (258) */
+  /** @name SpRuntimeArithmeticError (260) */
   export interface SpRuntimeArithmeticError extends Enum {
     readonly isUnderflow: boolean;
     readonly isOverflow: boolean;
@@ -2101,20 +2103,20 @@
     readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';
   }
 
-  /** @name SpRuntimeTransactionalError (259) */
+  /** @name SpRuntimeTransactionalError (261) */
   export interface SpRuntimeTransactionalError extends Enum {
     readonly isLimitReached: boolean;
     readonly isNoLayer: boolean;
     readonly type: 'LimitReached' | 'NoLayer';
   }
 
-  /** @name PalletSudoError (260) */
+  /** @name PalletSudoError (262) */
   export interface PalletSudoError extends Enum {
     readonly isRequireSudo: boolean;
     readonly type: 'RequireSudo';
   }
 
-  /** @name FrameSystemAccountInfo (261) */
+  /** @name FrameSystemAccountInfo (263) */
   export interface FrameSystemAccountInfo extends Struct {
     readonly nonce: u32;
     readonly consumers: u32;
@@ -2123,19 +2125,19 @@
     readonly data: PalletBalancesAccountData;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassU64 (262) */
+  /** @name FrameSupportWeightsPerDispatchClassU64 (264) */
   export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {
     readonly normal: u64;
     readonly operational: u64;
     readonly mandatory: u64;
   }
 
-  /** @name SpRuntimeDigest (263) */
+  /** @name SpRuntimeDigest (265) */
   export interface SpRuntimeDigest extends Struct {
     readonly logs: Vec<SpRuntimeDigestDigestItem>;
   }
 
-  /** @name SpRuntimeDigestDigestItem (265) */
+  /** @name SpRuntimeDigestDigestItem (267) */
   export interface SpRuntimeDigestDigestItem extends Enum {
     readonly isOther: boolean;
     readonly asOther: Bytes;
@@ -2149,14 +2151,14 @@
     readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';
   }
 
-  /** @name FrameSystemEventRecord (267) */
+  /** @name FrameSystemEventRecord (269) */
   export interface FrameSystemEventRecord extends Struct {
     readonly phase: FrameSystemPhase;
     readonly event: Event;
     readonly topics: Vec<H256>;
   }
 
-  /** @name FrameSystemEvent (269) */
+  /** @name FrameSystemEvent (271) */
   export interface FrameSystemEvent extends Enum {
     readonly isExtrinsicSuccess: boolean;
     readonly asExtrinsicSuccess: {
@@ -2184,14 +2186,14 @@
     readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';
   }
 
-  /** @name FrameSupportWeightsDispatchInfo (270) */
+  /** @name FrameSupportWeightsDispatchInfo (272) */
   export interface FrameSupportWeightsDispatchInfo extends Struct {
     readonly weight: u64;
     readonly class: FrameSupportWeightsDispatchClass;
     readonly paysFee: FrameSupportWeightsPays;
   }
 
-  /** @name FrameSupportWeightsDispatchClass (271) */
+  /** @name FrameSupportWeightsDispatchClass (273) */
   export interface FrameSupportWeightsDispatchClass extends Enum {
     readonly isNormal: boolean;
     readonly isOperational: boolean;
@@ -2199,14 +2201,14 @@
     readonly type: 'Normal' | 'Operational' | 'Mandatory';
   }
 
-  /** @name FrameSupportWeightsPays (272) */
+  /** @name FrameSupportWeightsPays (274) */
   export interface FrameSupportWeightsPays extends Enum {
     readonly isYes: boolean;
     readonly isNo: boolean;
     readonly type: 'Yes' | 'No';
   }
 
-  /** @name OrmlVestingModuleEvent (273) */
+  /** @name OrmlVestingModuleEvent (275) */
   export interface OrmlVestingModuleEvent extends Enum {
     readonly isVestingScheduleAdded: boolean;
     readonly asVestingScheduleAdded: {
@@ -2226,7 +2228,7 @@
     readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';
   }
 
-  /** @name CumulusPalletXcmpQueueEvent (274) */
+  /** @name CumulusPalletXcmpQueueEvent (276) */
   export interface CumulusPalletXcmpQueueEvent extends Enum {
     readonly isSuccess: boolean;
     readonly asSuccess: Option<H256>;
@@ -2247,7 +2249,7 @@
     readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name PalletXcmEvent (275) */
+  /** @name PalletXcmEvent (277) */
   export interface PalletXcmEvent extends Enum {
     readonly isAttempted: boolean;
     readonly asAttempted: XcmV2TraitsOutcome;
@@ -2284,7 +2286,7 @@
     readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';
   }
 
-  /** @name XcmV2TraitsOutcome (276) */
+  /** @name XcmV2TraitsOutcome (278) */
   export interface XcmV2TraitsOutcome extends Enum {
     readonly isComplete: boolean;
     readonly asComplete: u64;
@@ -2295,7 +2297,7 @@
     readonly type: 'Complete' | 'Incomplete' | 'Error';
   }
 
-  /** @name CumulusPalletXcmEvent (278) */
+  /** @name CumulusPalletXcmEvent (280) */
   export interface CumulusPalletXcmEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: U8aFixed;
@@ -2306,7 +2308,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';
   }
 
-  /** @name CumulusPalletDmpQueueEvent (279) */
+  /** @name CumulusPalletDmpQueueEvent (281) */
   export interface CumulusPalletDmpQueueEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: U8aFixed;
@@ -2323,7 +2325,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name PalletUniqueRawEvent (280) */
+  /** @name PalletUniqueRawEvent (282) */
   export interface PalletUniqueRawEvent extends Enum {
     readonly isCollectionSponsorRemoved: boolean;
     readonly asCollectionSponsorRemoved: u32;
@@ -2348,7 +2350,7 @@
     readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';
   }
 
-  /** @name PalletUnqSchedulerEvent (281) */
+  /** @name PalletUnqSchedulerEvent (283) */
   export interface PalletUnqSchedulerEvent extends Enum {
     readonly isScheduled: boolean;
     readonly asScheduled: {
@@ -2375,14 +2377,14 @@
     readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';
   }
 
-  /** @name FrameSupportScheduleLookupError (283) */
+  /** @name FrameSupportScheduleLookupError (285) */
   export interface FrameSupportScheduleLookupError extends Enum {
     readonly isUnknown: boolean;
     readonly isBadFormat: boolean;
     readonly type: 'Unknown' | 'BadFormat';
   }
 
-  /** @name PalletCommonEvent (284) */
+  /** @name PalletCommonEvent (286) */
   export interface PalletCommonEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
@@ -2409,14 +2411,14 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
   }
 
-  /** @name PalletStructureEvent (285) */
+  /** @name PalletStructureEvent (287) */
   export interface PalletStructureEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
     readonly type: 'Executed';
   }
 
-  /** @name PalletRmrkCoreEvent (286) */
+  /** @name PalletRmrkCoreEvent (288) */
   export interface PalletRmrkCoreEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: {
@@ -2506,7 +2508,7 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';
   }
 
-  /** @name PalletRmrkEquipEvent (287) */
+  /** @name PalletRmrkEquipEvent (289) */
   export interface PalletRmrkEquipEvent extends Enum {
     readonly isBaseCreated: boolean;
     readonly asBaseCreated: {
@@ -2516,7 +2518,7 @@
     readonly type: 'BaseCreated';
   }
 
-  /** @name PalletEvmEvent (288) */
+  /** @name PalletEvmEvent (290) */
   export interface PalletEvmEvent extends Enum {
     readonly isLog: boolean;
     readonly asLog: EthereumLog;
@@ -2535,21 +2537,21 @@
     readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';
   }
 
-  /** @name EthereumLog (289) */
+  /** @name EthereumLog (291) */
   export interface EthereumLog extends Struct {
     readonly address: H160;
     readonly topics: Vec<H256>;
     readonly data: Bytes;
   }
 
-  /** @name PalletEthereumEvent (290) */
+  /** @name PalletEthereumEvent (292) */
   export interface PalletEthereumEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;
     readonly type: 'Executed';
   }
 
-  /** @name EvmCoreErrorExitReason (291) */
+  /** @name EvmCoreErrorExitReason (293) */
   export interface EvmCoreErrorExitReason extends Enum {
     readonly isSucceed: boolean;
     readonly asSucceed: EvmCoreErrorExitSucceed;
@@ -2562,7 +2564,7 @@
     readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
   }
 
-  /** @name EvmCoreErrorExitSucceed (292) */
+  /** @name EvmCoreErrorExitSucceed (294) */
   export interface EvmCoreErrorExitSucceed extends Enum {
     readonly isStopped: boolean;
     readonly isReturned: boolean;
@@ -2570,7 +2572,7 @@
     readonly type: 'Stopped' | 'Returned' | 'Suicided';
   }
 
-  /** @name EvmCoreErrorExitError (293) */
+  /** @name EvmCoreErrorExitError (295) */
   export interface EvmCoreErrorExitError extends Enum {
     readonly isStackUnderflow: boolean;
     readonly isStackOverflow: boolean;
@@ -2591,13 +2593,13 @@
     readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
   }
 
-  /** @name EvmCoreErrorExitRevert (296) */
+  /** @name EvmCoreErrorExitRevert (298) */
   export interface EvmCoreErrorExitRevert extends Enum {
     readonly isReverted: boolean;
     readonly type: 'Reverted';
   }
 
-  /** @name EvmCoreErrorExitFatal (297) */
+  /** @name EvmCoreErrorExitFatal (299) */
   export interface EvmCoreErrorExitFatal extends Enum {
     readonly isNotSupported: boolean;
     readonly isUnhandledInterrupt: boolean;
@@ -2608,7 +2610,7 @@
     readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
   }
 
-  /** @name FrameSystemPhase (298) */
+  /** @name FrameSystemPhase (300) */
   export interface FrameSystemPhase extends Enum {
     readonly isApplyExtrinsic: boolean;
     readonly asApplyExtrinsic: u32;
@@ -2617,27 +2619,27 @@
     readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
   }
 
-  /** @name FrameSystemLastRuntimeUpgradeInfo (300) */
+  /** @name FrameSystemLastRuntimeUpgradeInfo (302) */
   export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {
     readonly specVersion: Compact<u32>;
     readonly specName: Text;
   }
 
-  /** @name FrameSystemLimitsBlockWeights (301) */
+  /** @name FrameSystemLimitsBlockWeights (303) */
   export interface FrameSystemLimitsBlockWeights extends Struct {
     readonly baseBlock: u64;
     readonly maxBlock: u64;
     readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (302) */
+  /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (304) */
   export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {
     readonly normal: FrameSystemLimitsWeightsPerClass;
     readonly operational: FrameSystemLimitsWeightsPerClass;
     readonly mandatory: FrameSystemLimitsWeightsPerClass;
   }
 
-  /** @name FrameSystemLimitsWeightsPerClass (303) */
+  /** @name FrameSystemLimitsWeightsPerClass (305) */
   export interface FrameSystemLimitsWeightsPerClass extends Struct {
     readonly baseExtrinsic: u64;
     readonly maxExtrinsic: Option<u64>;
@@ -2645,25 +2647,25 @@
     readonly reserved: Option<u64>;
   }
 
-  /** @name FrameSystemLimitsBlockLength (305) */
+  /** @name FrameSystemLimitsBlockLength (307) */
   export interface FrameSystemLimitsBlockLength extends Struct {
     readonly max: FrameSupportWeightsPerDispatchClassU32;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassU32 (306) */
+  /** @name FrameSupportWeightsPerDispatchClassU32 (308) */
   export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {
     readonly normal: u32;
     readonly operational: u32;
     readonly mandatory: u32;
   }
 
-  /** @name FrameSupportWeightsRuntimeDbWeight (307) */
+  /** @name FrameSupportWeightsRuntimeDbWeight (309) */
   export interface FrameSupportWeightsRuntimeDbWeight extends Struct {
     readonly read: u64;
     readonly write: u64;
   }
 
-  /** @name SpVersionRuntimeVersion (308) */
+  /** @name SpVersionRuntimeVersion (310) */
   export interface SpVersionRuntimeVersion extends Struct {
     readonly specName: Text;
     readonly implName: Text;
@@ -2675,7 +2677,7 @@
     readonly stateVersion: u8;
   }
 
-  /** @name FrameSystemError (312) */
+  /** @name FrameSystemError (314) */
   export interface FrameSystemError extends Enum {
     readonly isInvalidSpecName: boolean;
     readonly isSpecVersionNeedsToIncrease: boolean;
@@ -2686,7 +2688,7 @@
     readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';
   }
 
-  /** @name OrmlVestingModuleError (314) */
+  /** @name OrmlVestingModuleError (316) */
   export interface OrmlVestingModuleError extends Enum {
     readonly isZeroVestingPeriod: boolean;
     readonly isZeroVestingPeriodCount: boolean;
@@ -2697,21 +2699,21 @@
     readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
   }
 
-  /** @name CumulusPalletXcmpQueueInboundChannelDetails (316) */
+  /** @name CumulusPalletXcmpQueueInboundChannelDetails (318) */
   export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
     readonly sender: u32;
     readonly state: CumulusPalletXcmpQueueInboundState;
     readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
   }
 
-  /** @name CumulusPalletXcmpQueueInboundState (317) */
+  /** @name CumulusPalletXcmpQueueInboundState (319) */
   export interface CumulusPalletXcmpQueueInboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (320) */
+  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (322) */
   export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
     readonly isConcatenatedVersionedXcm: boolean;
     readonly isConcatenatedEncodedBlob: boolean;
@@ -2719,7 +2721,7 @@
     readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (323) */
+  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (325) */
   export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
     readonly recipient: u32;
     readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -2728,14 +2730,14 @@
     readonly lastIndex: u16;
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundState (324) */
+  /** @name CumulusPalletXcmpQueueOutboundState (326) */
   export interface CumulusPalletXcmpQueueOutboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name CumulusPalletXcmpQueueQueueConfigData (326) */
+  /** @name CumulusPalletXcmpQueueQueueConfigData (328) */
   export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
     readonly suspendThreshold: u32;
     readonly dropThreshold: u32;
@@ -2745,7 +2747,7 @@
     readonly xcmpMaxIndividualWeight: u64;
   }
 
-  /** @name CumulusPalletXcmpQueueError (328) */
+  /** @name CumulusPalletXcmpQueueError (330) */
   export interface CumulusPalletXcmpQueueError extends Enum {
     readonly isFailedToSend: boolean;
     readonly isBadXcmOrigin: boolean;
@@ -2755,7 +2757,7 @@
     readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
   }
 
-  /** @name PalletXcmError (329) */
+  /** @name PalletXcmError (331) */
   export interface PalletXcmError extends Enum {
     readonly isUnreachable: boolean;
     readonly isSendFailure: boolean;
@@ -2773,29 +2775,29 @@
     readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
   }
 
-  /** @name CumulusPalletXcmError (330) */
+  /** @name CumulusPalletXcmError (332) */
   export type CumulusPalletXcmError = Null;
 
-  /** @name CumulusPalletDmpQueueConfigData (331) */
+  /** @name CumulusPalletDmpQueueConfigData (333) */
   export interface CumulusPalletDmpQueueConfigData extends Struct {
     readonly maxIndividual: u64;
   }
 
-  /** @name CumulusPalletDmpQueuePageIndexData (332) */
+  /** @name CumulusPalletDmpQueuePageIndexData (334) */
   export interface CumulusPalletDmpQueuePageIndexData extends Struct {
     readonly beginUsed: u32;
     readonly endUsed: u32;
     readonly overweightCount: u64;
   }
 
-  /** @name CumulusPalletDmpQueueError (335) */
+  /** @name CumulusPalletDmpQueueError (337) */
   export interface CumulusPalletDmpQueueError extends Enum {
     readonly isUnknown: boolean;
     readonly isOverLimit: boolean;
     readonly type: 'Unknown' | 'OverLimit';
   }
 
-  /** @name PalletUniqueError (339) */
+  /** @name PalletUniqueError (341) */
   export interface PalletUniqueError extends Enum {
     readonly isCollectionDecimalPointLimitExceeded: boolean;
     readonly isConfirmUnsetSponsorFail: boolean;
@@ -2803,7 +2805,7 @@
     readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';
   }
 
-  /** @name PalletUnqSchedulerScheduledV3 (342) */
+  /** @name PalletUnqSchedulerScheduledV3 (344) */
   export interface PalletUnqSchedulerScheduledV3 extends Struct {
     readonly maybeId: Option<U8aFixed>;
     readonly priority: u8;
@@ -2812,7 +2814,7 @@
     readonly origin: OpalRuntimeOriginCaller;
   }
 
-  /** @name OpalRuntimeOriginCaller (343) */
+  /** @name OpalRuntimeOriginCaller (345) */
   export interface OpalRuntimeOriginCaller extends Enum {
     readonly isVoid: boolean;
     readonly isSystem: boolean;
@@ -2826,7 +2828,7 @@
     readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';
   }
 
-  /** @name FrameSupportDispatchRawOrigin (344) */
+  /** @name FrameSupportDispatchRawOrigin (346) */
   export interface FrameSupportDispatchRawOrigin extends Enum {
     readonly isRoot: boolean;
     readonly isSigned: boolean;
@@ -2835,7 +2837,7 @@
     readonly type: 'Root' | 'Signed' | 'None';
   }
 
-  /** @name PalletXcmOrigin (345) */
+  /** @name PalletXcmOrigin (347) */
   export interface PalletXcmOrigin extends Enum {
     readonly isXcm: boolean;
     readonly asXcm: XcmV1MultiLocation;
@@ -2844,7 +2846,7 @@
     readonly type: 'Xcm' | 'Response';
   }
 
-  /** @name CumulusPalletXcmOrigin (346) */
+  /** @name CumulusPalletXcmOrigin (348) */
   export interface CumulusPalletXcmOrigin extends Enum {
     readonly isRelay: boolean;
     readonly isSiblingParachain: boolean;
@@ -2852,17 +2854,17 @@
     readonly type: 'Relay' | 'SiblingParachain';
   }
 
-  /** @name PalletEthereumRawOrigin (347) */
+  /** @name PalletEthereumRawOrigin (349) */
   export interface PalletEthereumRawOrigin extends Enum {
     readonly isEthereumTransaction: boolean;
     readonly asEthereumTransaction: H160;
     readonly type: 'EthereumTransaction';
   }
 
-  /** @name SpCoreVoid (348) */
+  /** @name SpCoreVoid (350) */
   export type SpCoreVoid = Null;
 
-  /** @name PalletUnqSchedulerError (349) */
+  /** @name PalletUnqSchedulerError (351) */
   export interface PalletUnqSchedulerError extends Enum {
     readonly isFailedToSchedule: boolean;
     readonly isNotFound: boolean;
@@ -2871,7 +2873,7 @@
     readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
   }
 
-  /** @name UpDataStructsCollection (350) */
+  /** @name UpDataStructsCollection (352) */
   export interface UpDataStructsCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -2884,7 +2886,7 @@
     readonly externalCollection: bool;
   }
 
-  /** @name UpDataStructsSponsorshipState (351) */
+  /** @name UpDataStructsSponsorshipState (353) */
   export interface UpDataStructsSponsorshipState extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -2894,42 +2896,42 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name UpDataStructsProperties (352) */
+  /** @name UpDataStructsProperties (354) */
   export interface UpDataStructsProperties extends Struct {
     readonly map: UpDataStructsPropertiesMapBoundedVec;
     readonly consumedSpace: u32;
     readonly spaceLimit: u32;
   }
 
-  /** @name UpDataStructsPropertiesMapBoundedVec (353) */
+  /** @name UpDataStructsPropertiesMapBoundedVec (355) */
   export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
 
-  /** @name UpDataStructsPropertiesMapPropertyPermission (358) */
+  /** @name UpDataStructsPropertiesMapPropertyPermission (360) */
   export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
 
-  /** @name UpDataStructsCollectionStats (365) */
+  /** @name UpDataStructsCollectionStats (367) */
   export interface UpDataStructsCollectionStats extends Struct {
     readonly created: u32;
     readonly destroyed: u32;
     readonly alive: u32;
   }
 
-  /** @name UpDataStructsTokenChild (366) */
+  /** @name UpDataStructsTokenChild (368) */
   export interface UpDataStructsTokenChild extends Struct {
     readonly token: u32;
     readonly collection: u32;
   }
 
-  /** @name PhantomTypeUpDataStructs (367) */
+  /** @name PhantomTypeUpDataStructs (369) */
   export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
 
-  /** @name UpDataStructsTokenData (369) */
+  /** @name UpDataStructsTokenData (371) */
   export interface UpDataStructsTokenData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
   }
 
-  /** @name UpDataStructsRpcCollection (371) */
+  /** @name UpDataStructsRpcCollection (373) */
   export interface UpDataStructsRpcCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -2944,7 +2946,7 @@
     readonly readOnly: bool;
   }
 
-  /** @name RmrkTraitsCollectionCollectionInfo (372) */
+  /** @name RmrkTraitsCollectionCollectionInfo (374) */
   export interface RmrkTraitsCollectionCollectionInfo extends Struct {
     readonly issuer: AccountId32;
     readonly metadata: Bytes;
@@ -2953,7 +2955,7 @@
     readonly nftsCount: u32;
   }
 
-  /** @name RmrkTraitsNftNftInfo (373) */
+  /** @name RmrkTraitsNftNftInfo (375) */
   export interface RmrkTraitsNftNftInfo extends Struct {
     readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;
     readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;
@@ -2962,13 +2964,13 @@
     readonly pending: bool;
   }
 
-  /** @name RmrkTraitsNftRoyaltyInfo (375) */
+  /** @name RmrkTraitsNftRoyaltyInfo (377) */
   export interface RmrkTraitsNftRoyaltyInfo extends Struct {
     readonly recipient: AccountId32;
     readonly amount: Permill;
   }
 
-  /** @name RmrkTraitsResourceResourceInfo (376) */
+  /** @name RmrkTraitsResourceResourceInfo (378) */
   export interface RmrkTraitsResourceResourceInfo extends Struct {
     readonly id: u32;
     readonly resource: RmrkTraitsResourceResourceTypes;
@@ -2976,7 +2978,7 @@
     readonly pendingRemoval: bool;
   }
 
-  /** @name RmrkTraitsResourceResourceTypes (377) */
+  /** @name RmrkTraitsResourceResourceTypes (379) */
   export interface RmrkTraitsResourceResourceTypes extends Enum {
     readonly isBasic: boolean;
     readonly asBasic: RmrkTraitsResourceBasicResource;
@@ -2987,26 +2989,26 @@
     readonly type: 'Basic' | 'Composable' | 'Slot';
   }
 
-  /** @name RmrkTraitsPropertyPropertyInfo (378) */
+  /** @name RmrkTraitsPropertyPropertyInfo (380) */
   export interface RmrkTraitsPropertyPropertyInfo extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name RmrkTraitsBaseBaseInfo (379) */
+  /** @name RmrkTraitsBaseBaseInfo (381) */
   export interface RmrkTraitsBaseBaseInfo extends Struct {
     readonly issuer: AccountId32;
     readonly baseType: Bytes;
     readonly symbol: Bytes;
   }
 
-  /** @name RmrkTraitsNftNftChild (380) */
+  /** @name RmrkTraitsNftNftChild (382) */
   export interface RmrkTraitsNftNftChild extends Struct {
     readonly collectionId: u32;
     readonly nftId: u32;
   }
 
-  /** @name PalletCommonError (382) */
+  /** @name PalletCommonError (384) */
   export interface PalletCommonError extends Enum {
     readonly isCollectionNotFound: boolean;
     readonly isMustBeTokenOwner: boolean;
@@ -3032,8 +3034,7 @@
     readonly isAddressIsZero: boolean;
     readonly isUnsupportedOperation: boolean;
     readonly isNotSufficientFounds: boolean;
-    readonly isNestingIsDisabled: boolean;
-    readonly isOnlyOwnerAllowedToNest: boolean;
+    readonly isUserIsNotAllowedToNest: boolean;
     readonly isSourceCollectionIsNotAllowedToNest: boolean;
     readonly isCollectionFieldSizeExceeded: boolean;
     readonly isNoSpaceForProperty: boolean;
@@ -3043,10 +3044,10 @@
     readonly isEmptyPropertyKey: boolean;
     readonly isCollectionIsExternal: boolean;
     readonly isCollectionIsInternal: boolean;
-    readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';
+    readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';
   }
 
-  /** @name PalletFungibleError (384) */
+  /** @name PalletFungibleError (386) */
   export interface PalletFungibleError extends Enum {
     readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isFungibleItemsHaveNoId: boolean;
@@ -3056,12 +3057,12 @@
     readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletRefungibleItemData (385) */
+  /** @name PalletRefungibleItemData (387) */
   export interface PalletRefungibleItemData extends Struct {
     readonly constData: Bytes;
   }
 
-  /** @name PalletRefungibleError (389) */
+  /** @name PalletRefungibleError (391) */
   export interface PalletRefungibleError extends Enum {
     readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isWrongRefungiblePieces: boolean;
@@ -3070,12 +3071,12 @@
     readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletNonfungibleItemData (390) */
+  /** @name PalletNonfungibleItemData (392) */
   export interface PalletNonfungibleItemData extends Struct {
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name PalletNonfungibleError (392) */
+  /** @name PalletNonfungibleError (394) */
   export interface PalletNonfungibleError extends Enum {
     readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isNonfungibleItemsHaveNoAmount: boolean;
@@ -3083,15 +3084,16 @@
     readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';
   }
 
-  /** @name PalletStructureError (393) */
+  /** @name PalletStructureError (395) */
   export interface PalletStructureError extends Enum {
     readonly isOuroborosDetected: boolean;
     readonly isDepthLimit: boolean;
+    readonly isBreadthLimit: boolean;
     readonly isTokenNotFound: boolean;
-    readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';
+    readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';
   }
 
-  /** @name PalletRmrkCoreError (394) */
+  /** @name PalletRmrkCoreError (396) */
   export interface PalletRmrkCoreError extends Enum {
     readonly isCorruptedCollectionType: boolean;
     readonly isNftTypeEncodeError: boolean;
@@ -3112,7 +3114,7 @@
     readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending';
   }
 
-  /** @name PalletRmrkEquipError (396) */
+  /** @name PalletRmrkEquipError (398) */
   export interface PalletRmrkEquipError extends Enum {
     readonly isPermissionError: boolean;
     readonly isNoAvailableBaseId: boolean;
@@ -3122,7 +3124,7 @@
     readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst';
   }
 
-  /** @name PalletEvmError (399) */
+  /** @name PalletEvmError (401) */
   export interface PalletEvmError extends Enum {
     readonly isBalanceLow: boolean;
     readonly isFeeOverflow: boolean;
@@ -3133,7 +3135,7 @@
     readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
   }
 
-  /** @name FpRpcTransactionStatus (402) */
+  /** @name FpRpcTransactionStatus (404) */
   export interface FpRpcTransactionStatus extends Struct {
     readonly transactionHash: H256;
     readonly transactionIndex: u32;
@@ -3144,10 +3146,10 @@
     readonly logsBloom: EthbloomBloom;
   }
 
-  /** @name EthbloomBloom (404) */
+  /** @name EthbloomBloom (406) */
   export interface EthbloomBloom extends U8aFixed {}
 
-  /** @name EthereumReceiptReceiptV3 (406) */
+  /** @name EthereumReceiptReceiptV3 (408) */
   export interface EthereumReceiptReceiptV3 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -3158,7 +3160,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumReceiptEip658ReceiptData (407) */
+  /** @name EthereumReceiptEip658ReceiptData (409) */
   export interface EthereumReceiptEip658ReceiptData extends Struct {
     readonly statusCode: u8;
     readonly usedGas: U256;
@@ -3166,14 +3168,14 @@
     readonly logs: Vec<EthereumLog>;
   }
 
-  /** @name EthereumBlock (408) */
+  /** @name EthereumBlock (410) */
   export interface EthereumBlock extends Struct {
     readonly header: EthereumHeader;
     readonly transactions: Vec<EthereumTransactionTransactionV2>;
     readonly ommers: Vec<EthereumHeader>;
   }
 
-  /** @name EthereumHeader (409) */
+  /** @name EthereumHeader (411) */
   export interface EthereumHeader extends Struct {
     readonly parentHash: H256;
     readonly ommersHash: H256;
@@ -3192,24 +3194,24 @@
     readonly nonce: EthereumTypesHashH64;
   }
 
-  /** @name EthereumTypesHashH64 (410) */
+  /** @name EthereumTypesHashH64 (412) */
   export interface EthereumTypesHashH64 extends U8aFixed {}
 
-  /** @name PalletEthereumError (415) */
+  /** @name PalletEthereumError (417) */
   export interface PalletEthereumError extends Enum {
     readonly isInvalidSignature: boolean;
     readonly isPreLogExists: boolean;
     readonly type: 'InvalidSignature' | 'PreLogExists';
   }
 
-  /** @name PalletEvmCoderSubstrateError (416) */
+  /** @name PalletEvmCoderSubstrateError (418) */
   export interface PalletEvmCoderSubstrateError extends Enum {
     readonly isOutOfGas: boolean;
     readonly isOutOfFund: boolean;
     readonly type: 'OutOfGas' | 'OutOfFund';
   }
 
-  /** @name PalletEvmContractHelpersSponsoringModeT (417) */
+  /** @name PalletEvmContractHelpersSponsoringModeT (419) */
   export interface PalletEvmContractHelpersSponsoringModeT extends Enum {
     readonly isDisabled: boolean;
     readonly isAllowlisted: boolean;
@@ -3217,20 +3219,20 @@
     readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
   }
 
-  /** @name PalletEvmContractHelpersError (419) */
+  /** @name PalletEvmContractHelpersError (421) */
   export interface PalletEvmContractHelpersError extends Enum {
     readonly isNoPermission: boolean;
     readonly type: 'NoPermission';
   }
 
-  /** @name PalletEvmMigrationError (420) */
+  /** @name PalletEvmMigrationError (422) */
   export interface PalletEvmMigrationError extends Enum {
     readonly isAccountNotEmpty: boolean;
     readonly isAccountIsNotMigrating: boolean;
     readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
   }
 
-  /** @name SpRuntimeMultiSignature (422) */
+  /** @name SpRuntimeMultiSignature (424) */
   export interface SpRuntimeMultiSignature extends Enum {
     readonly isEd25519: boolean;
     readonly asEd25519: SpCoreEd25519Signature;
@@ -3241,34 +3243,34 @@
     readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
   }
 
-  /** @name SpCoreEd25519Signature (423) */
+  /** @name SpCoreEd25519Signature (425) */
   export interface SpCoreEd25519Signature extends U8aFixed {}
 
-  /** @name SpCoreSr25519Signature (425) */
+  /** @name SpCoreSr25519Signature (427) */
   export interface SpCoreSr25519Signature extends U8aFixed {}
 
-  /** @name SpCoreEcdsaSignature (426) */
+  /** @name SpCoreEcdsaSignature (428) */
   export interface SpCoreEcdsaSignature extends U8aFixed {}
 
-  /** @name FrameSystemExtensionsCheckSpecVersion (429) */
+  /** @name FrameSystemExtensionsCheckSpecVersion (431) */
   export type FrameSystemExtensionsCheckSpecVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckGenesis (430) */
+  /** @name FrameSystemExtensionsCheckGenesis (432) */
   export type FrameSystemExtensionsCheckGenesis = Null;
 
-  /** @name FrameSystemExtensionsCheckNonce (433) */
+  /** @name FrameSystemExtensionsCheckNonce (435) */
   export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
 
-  /** @name FrameSystemExtensionsCheckWeight (434) */
+  /** @name FrameSystemExtensionsCheckWeight (436) */
   export type FrameSystemExtensionsCheckWeight = Null;
 
-  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (435) */
+  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (437) */
   export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
-  /** @name OpalRuntimeRuntime (436) */
+  /** @name OpalRuntimeRuntime (438) */
   export type OpalRuntimeRuntime = Null;
 
-  /** @name PalletEthereumFakeTransactionFinalizer (437) */
+  /** @name PalletEthereumFakeTransactionFinalizer (439) */
   export type PalletEthereumFakeTransactionFinalizer = Null;
 
 } // declare module
modifiedtests/src/nesting/nest.test.tsdiffbeforeafterboth
--- a/tests/src/nesting/nest.test.ts
+++ b/tests/src/nesting/nest.test.ts
@@ -32,7 +32,7 @@
   it('Performs the full suite: bundles a token, transfers, and unnests', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
 
       // Create a nested token
@@ -62,7 +62,7 @@
   it('Transfers an already bundled token', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
 
       const tokenA = await createItemExpectSuccess(alice, collection, 'NFT');
       const tokenB = await createItemExpectSuccess(alice, collection, 'NFT');
@@ -92,7 +92,7 @@
   it('Checks token children', async () => {
     await usingApi(async api => {
       const collectionA = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionA, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collectionA, {nesting: {tokenOwner: true}});
       const collectionB = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
 
       const targetToken = await createItemExpectSuccess(alice, collectionA, 'NFT');
@@ -151,7 +151,7 @@
   it('NFT: allows an Owner to nest/unnest their token', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
 
       // Create a nested token
@@ -170,7 +170,7 @@
   it('NFT: allows an Owner to nest/unnest their token (Restricted nesting)', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {OwnerRestricted:[collection]}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true, restricted:[collection]}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
 
       // Create a nested token
@@ -191,7 +191,7 @@
   it('Fungible: allows an Owner to nest/unnest their token', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT', {Substrate: alice.address});
       const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)};
 
@@ -218,7 +218,7 @@
 
       const collectionFT = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
 
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted: [collectionFT]}});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted: [collectionFT]}});
 
       // Create a nested token
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
@@ -238,7 +238,7 @@
   it('ReFungible: allows an Owner to nest/unnest their token', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT', {Substrate: alice.address});
       const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)};
 
@@ -265,7 +265,7 @@
 
       const collectionRFT = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
 
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[collectionRFT]}});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[collectionRFT]}});
 
       // Create a nested token
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
@@ -292,7 +292,7 @@
   it('Disallows excessive token nesting', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
 
       const maxNestingLevel = 5;
@@ -326,7 +326,7 @@
   it('NFT: disallows to nest token if nesting is disabled', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Disabled'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
 
       // Try to create a nested token
@@ -334,12 +334,12 @@
         collection,
         {Ethereum: tokenIdToAddress(collection, targetToken)},
           {nft: {const_data: [], variable_data: []}} as any,
-      )), 'while creating nested token').to.be.rejectedWith(/^common\.NestingIsDisabled$/);
+      )), 'while creating nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);
 
       // Create a token to be nested
       const newToken = await createItemExpectSuccess(alice, collection, 'NFT');
       // Try to nest
-      await expect(executeTransaction(api, alice, api.tx.unique.transfer({Ethereum: tokenIdToAddress(collection, targetToken)}, collection, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.NestingIsDisabled/);
+      await expect(executeTransaction(api, alice, api.tx.unique.transfer({Ethereum: tokenIdToAddress(collection, targetToken)}, collection, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
       expect(await getTopmostTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: alice.address});
       expect(await getTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: alice.address});
     });
@@ -348,7 +348,7 @@
   it('NFT: disallows a non-Owner to nest someone else\'s token', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
 
       await addToAllowListExpectSuccess(alice, collection, bob.address);
       await enableAllowListExpectSuccess(alice, collection);
@@ -362,7 +362,7 @@
         collection,
         {Ethereum: tokenIdToAddress(collection, targetToken)},
           {nft: {const_data: [], variable_data: []}} as any,
-      )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
       const newToken = await createItemExpectSuccess(alice, collection, 'NFT');
@@ -374,7 +374,7 @@
   it('NFT: disallows a non-Owner to nest someone else\'s token (Restricted nesting)', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {OwnerRestricted:[collection]}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true, restricted:[collection]}});
 
       await addToAllowListExpectSuccess(alice, collection, bob.address);
       await enableAllowListExpectSuccess(alice, collection);
@@ -388,7 +388,7 @@
         collection,
         {Ethereum: tokenIdToAddress(collection, targetToken)},
           {nft: {const_data: [], variable_data: []}} as any,
-      )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
       const newToken = await createItemExpectSuccess(alice, collection, 'NFT');
@@ -400,7 +400,7 @@
   it('NFT: disallows to nest token in an unlisted collection', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {OwnerRestricted:[]}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true, restricted:[]}});
 
       // Create a token to attempt to be nested into
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
@@ -424,7 +424,7 @@
   it('Fungible: disallows to nest token if nesting is disabled', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Disabled'});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {}});
       const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT');
       const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)};
 
@@ -435,12 +435,12 @@
         collectionFT,
         targetAddress,
         {Fungible: {Value: 10}},
-      )), 'while creating nested token').to.be.rejectedWith(/^common\.NestingIsDisabled$/);
+      )), 'while creating nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);
 
       // Create a token to be nested
       const newToken = await createItemExpectSuccess(alice, collectionFT, 'Fungible');
       // Try to nest
-      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.NestingIsDisabled/);
+      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Create another token to be nested
       const newToken2 = await createItemExpectSuccess(alice, collectionFT, 'Fungible');
@@ -452,7 +452,7 @@
   it('Fungible: disallows a non-Owner to nest someone else\'s token', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}});
 
       await addToAllowListExpectSuccess(alice, collectionNFT, bob.address);
       await enableAllowListExpectSuccess(alice, collectionNFT);
@@ -469,11 +469,11 @@
         collectionFT,
         targetAddress,
         {Fungible: {Value: 10}},
-      )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
       const newToken = await createItemExpectSuccess(alice, collectionFT, 'Fungible');
-      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
     });
   });
 
@@ -489,25 +489,25 @@
       const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)};
 
       const collectionFT = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[collectionFT]}});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[collectionFT]}});
 
       // Try to create a nested token in the wrong collection
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionFT,
         targetAddress,
         {Fungible: {Value: 10}},
-      )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
       const newToken = await createItemExpectSuccess(alice, collectionFT, 'Fungible');
-      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
     });
   });
 
   it('Fungible: disallows to nest token in an unlisted collection', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[]}});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[]}});
 
       // Create a token to attempt to be nested into
       const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT');
@@ -533,7 +533,7 @@
   it('ReFungible: disallows to nest token if nesting is disabled', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Disabled'});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {}});
       const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT');
       const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)};
 
@@ -544,14 +544,14 @@
         collectionRFT,
         targetAddress,
         {ReFungible: {const_data: [], pieces: 100}},
-      )), 'while creating a nested token').to.be.rejectedWith(/^common\.NestingIsDisabled$/);
+      )), 'while creating a nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);
 
       // Create a token to be nested
       const newToken = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible');
       // Try to nest
       await transferExpectFailure(collectionRFT, newToken, alice, targetAddress, 100);
       // Try to nest
-      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.NestingIsDisabled/);
+      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Create another token to be nested
       const newToken2 = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible');
@@ -563,7 +563,7 @@
   it('ReFungible: disallows a non-Owner to nest someone else\'s token', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}});
 
       await addToAllowListExpectSuccess(alice, collectionNFT, bob.address);
       await enableAllowListExpectSuccess(alice, collectionNFT);
@@ -580,11 +580,11 @@
         collectionRFT,
         targetAddress,
         {ReFungible: {const_data: [], pieces: 100}},
-      )), 'while creating a nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      )), 'while creating a nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
       const newToken = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible');
-      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
     });
   });
 
@@ -600,25 +600,25 @@
       const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)};
 
       const collectionRFT = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[collectionRFT]}});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[collectionRFT]}});
 
       // Try to create a nested token in the wrong collection
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionRFT,
         targetAddress,
         {ReFungible: {const_data: [], pieces: 100}},
-      )), 'while creating a nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      )), 'while creating a nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
       const newToken = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible');
-      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/);
+      await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
     });
   });
 
   it('ReFungible: disallows to nest token to an unlisted collection', async () => {
     await usingApi(async api => {
       const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[]}});
+      await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[]}});
 
       // Create a token to attempt to be nested into
       const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT');
modifiedtests/src/nesting/rules-smoke.test.tsdiffbeforeafterboth
--- a/tests/src/nesting/rules-smoke.test.ts
+++ b/tests/src/nesting/rules-smoke.test.ts
@@ -14,7 +14,7 @@
       const events = await executeTransaction(api, alice, api.tx.unique.createCollectionEx({
         mode: 'NFT',
         permissions: {
-          nesting: {OwnerRestricted: []},
+          nesting: {tokenOwner: true, restricted: []},
         },
       }));
       const collection = getCreateCollectionResult(events).collectionId;
modifiedtests/src/nesting/unnest.test.tsdiffbeforeafterboth
--- a/tests/src/nesting/unnest.test.ts
+++ b/tests/src/nesting/unnest.test.ts
@@ -27,7 +27,7 @@
   it('NFT: allows the owner to successfully unnest a token', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
       const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)};
 
@@ -56,7 +56,7 @@
   it('Fungible: allows the owner to successfully unnest a token', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
       const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)};
 
@@ -83,7 +83,7 @@
   it('ReFungible: allows the owner to successfully unnest a token', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
       const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)};
 
@@ -118,7 +118,7 @@
   it('Disallows a non-owner to unnest/burn a token', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
       const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
       const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)};
 
@@ -148,7 +148,7 @@
   // Recursive nesting
   it('Prevents Ouroboros creation', async () => {
     const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-    await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'});
+    await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
     const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
 
     // Create a nested token ouroboros
modifiedtests/src/util/helpers.tsdiffbeforeafterboth
--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -193,7 +193,7 @@
     if (method === 'ExtrinsicSuccess') {
       success = true;
     } else if ((expectSection == section) && (expectMethod == method)) {
-      successData = extractAction!(data);
+      successData = extractAction!(data as any);
     }
   });
 
@@ -547,7 +547,7 @@
   });
 }
 
-export const setCollectionPermissionsExpectSuccess = async (sender: IKeyringPair, collectionId: number, permissions: {mintMode?: boolean, access?: 'Normal' | 'AllowList', nesting?: 'Disabled' | 'Owner' | {OwnerRestricted: number[]}}) => {
+export const setCollectionPermissionsExpectSuccess = async (sender: IKeyringPair, collectionId: number, permissions: any) => {
   await usingApi(async(api) => {
     const tx = api.tx.unique.setCollectionPermissions(collectionId, permissions);
     const events = await submitTransactionAsync(sender, tx);
modifiedtests/yarn.lockdiffbeforeafterboth
--- a/tests/yarn.lock
+++ b/tests/yarn.lock
@@ -508,78 +508,78 @@
     "@nodelib/fs.scandir" "2.1.5"
     fastq "^1.6.0"
 
-"@polkadot/api-augment@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-8.7.2-11.tgz#7f174f830c181d82863eb41f48e24fd6bbde3065"
-  integrity sha512-yKsuxjez1ArwSEZJ+g8mausm38CgOtaWBG5ob5cmO9M2v45HBXy3Kmviqr8Dputtu23deT85p7m/8RFLlAnzSA==
+"@polkadot/api-augment@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-8.7.2-15.tgz#a141d3cd595a39e7e2965330268b5eb92bdd5849"
+  integrity sha512-QGXosX6p0RFYNhWepZCIaRiyCvHnVt5Pb6U7/77UxIszgGRHfHFDsYr4v5bGiaRTOj/E8moc2Ufi/+VgOiG9sw==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/api-base" "8.7.2-11"
-    "@polkadot/rpc-augment" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-augment" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
+    "@polkadot/api-base" "8.7.2-15"
+    "@polkadot/rpc-augment" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-augment" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
 
-"@polkadot/api-base@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-8.7.2-11.tgz#7e297a0ca283a58bc9d8d11c1edb099bc61da9f1"
-  integrity sha512-WQE5uvb7W7AKSfy4ekW2i6mJJzZYLMS/eNPNXYpURW/cRPt9NhT9lNz2Ae2d7gaWgWil+jNLecXTHTUzxobRbA==
+"@polkadot/api-base@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-8.7.2-15.tgz#c909d3bf0fbfb3cc46ca7067199e36e72b959bdb"
+  integrity sha512-HXdtaqbpnfFbOazjI9CPSYM37S4mzhxUs8hLMKrWqpHL//at4tiMa5dRyev9VSKeE6gqeqCT9JTBvEAZ9eNR6Q==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/rpc-core" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
+    "@polkadot/rpc-core" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     rxjs "^7.5.5"
 
-"@polkadot/api-contract@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-8.7.2-11.tgz#9487394286e536a7b1edfb6296529722fa63a43a"
-  integrity sha512-vOi4FX33ttkotJDzSum0nFUworWJ2+yfDejZkC33mM8zb+ne0Quggfz2nQqiKS2lgkj2z4YwJbsf/9paRQeS3w==
+"@polkadot/api-contract@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-8.7.2-15.tgz#687706fb4bd33c4a88187db3a269292f6e559892"
+  integrity sha512-Pr1Nm5zBpW9foCKm/Q6hIT5KHCeFVE8EFSfHBgjbitYpFOGnz19kduEpa0vxIcfq2WVXcVPTQ2eqjGtHoThNqA==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/api" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
-    "@polkadot/types-create" "8.7.2-11"
+    "@polkadot/api" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
+    "@polkadot/types-create" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     "@polkadot/util-crypto" "^9.4.1"
     rxjs "^7.5.5"
 
-"@polkadot/api-derive@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-8.7.2-11.tgz#21e315d554a8cd31bb1f3b10077960e35391a311"
-  integrity sha512-8fkYidDgNjJcWHtiRfJQaI4H386uGZh5Ie0t21KG4sSC5R+Lbnm0CJwIX4scJvQ/U+38gCyQW07b+Pxt9oDwvg==
+"@polkadot/api-derive@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-8.7.2-15.tgz#b29f24d435c036c9bf5624d18a9d93196cf2c4f4"
+  integrity sha512-0R3M9LFKoQ0d7elIDQjPKuV5EAHTtkU/72Lgxw2GYStsOqcnfFNomfLoLMuk8Xy4ETUAp/Kq1eMJpvsY6hSTtA==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/api" "8.7.2-11"
-    "@polkadot/api-augment" "8.7.2-11"
-    "@polkadot/api-base" "8.7.2-11"
-    "@polkadot/rpc-core" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
+    "@polkadot/api" "8.7.2-15"
+    "@polkadot/api-augment" "8.7.2-15"
+    "@polkadot/api-base" "8.7.2-15"
+    "@polkadot/rpc-core" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     "@polkadot/util-crypto" "^9.4.1"
     rxjs "^7.5.5"
 
-"@polkadot/api@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-8.7.2-11.tgz#d76ad24f96fc9eba49825c11277105d12bf5e05c"
-  integrity sha512-eFQtZOJOVK5IbNSjvrk1JrOZJrtZRjaecMAhnQiglMPoIfQJiRbnXhUslGbXsgFoJsfWW6DAVY5aJi/PjuF9OQ==
+"@polkadot/api@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-8.7.2-15.tgz#c7ede416e4d277c227fc93fdfdc4d27634935d08"
+  integrity sha512-tzEUWsXIPzPbnpn/3LTGtJ7SXzMgCJ/da5d9q0UH3vsx1gDEjuZEWXOeSYLHgbqQSgwPukvMVuGtRjcC+A/WZQ==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/api-augment" "8.7.2-11"
-    "@polkadot/api-base" "8.7.2-11"
-    "@polkadot/api-derive" "8.7.2-11"
+    "@polkadot/api-augment" "8.7.2-15"
+    "@polkadot/api-base" "8.7.2-15"
+    "@polkadot/api-derive" "8.7.2-15"
     "@polkadot/keyring" "^9.4.1"
-    "@polkadot/rpc-augment" "8.7.2-11"
-    "@polkadot/rpc-core" "8.7.2-11"
-    "@polkadot/rpc-provider" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-augment" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
-    "@polkadot/types-create" "8.7.2-11"
-    "@polkadot/types-known" "8.7.2-11"
+    "@polkadot/rpc-augment" "8.7.2-15"
+    "@polkadot/rpc-core" "8.7.2-15"
+    "@polkadot/rpc-provider" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-augment" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
+    "@polkadot/types-create" "8.7.2-15"
+    "@polkadot/types-known" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     "@polkadot/util-crypto" "^9.4.1"
     eventemitter3 "^4.0.7"
@@ -603,38 +603,38 @@
     "@polkadot/util" "9.4.1"
     "@substrate/ss58-registry" "^1.22.0"
 
-"@polkadot/rpc-augment@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-8.7.2-11.tgz#b118303653fb6f80688c62600fde2ed489e1c974"
-  integrity sha512-/h50Kzz/UZwhsV+g7bwGWf0fkVvlWIQ/zaA7H9xtuE4VGvmZRE4Uu06011ToVWNyAwM5xQfXBx1gUznRhem+pg==
+"@polkadot/rpc-augment@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-8.7.2-15.tgz#6175126968dfb79ba5549b03cac8c3860666e72b"
+  integrity sha512-IgfkR9CHT8jDuGYkb75DBFu+yJNW32+vOt3oS0sf57VqkHketSq9rD3mtZD37V/21Q4a17yrqKQOte7mMl9kcg==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/rpc-core" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
+    "@polkadot/rpc-core" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
 
-"@polkadot/rpc-core@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-8.7.2-11.tgz#9c31a34bc2f70e4dab40f9ba08ca9b89c8f3e5c0"
-  integrity sha512-DyHYgzBusMFfsDJ/2VBaVTNHRwZ2cf/woaeJA/ijJbxK2Ke/sg9UW6zr+3Ip8T62GnSNnJoSHMOaMdqvebkNVQ==
+"@polkadot/rpc-core@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-8.7.2-15.tgz#827a31adf833fb866cb5f39dbd86c5f0b44d63a4"
+  integrity sha512-yGmpESOmGyzY7+D3yUxbKToz/eP/q8vDyOGajLnHn12TcnjgbAfMdc4xdU6cQex+mSsPwS0YQFuPrPXGloCOHA==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/rpc-augment" "8.7.2-11"
-    "@polkadot/rpc-provider" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
+    "@polkadot/rpc-augment" "8.7.2-15"
+    "@polkadot/rpc-provider" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     rxjs "^7.5.5"
 
-"@polkadot/rpc-provider@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-8.7.2-11.tgz#1f4ef542aee83e0c4e1b2a126ed00ade7c818660"
-  integrity sha512-LE5kKEMxL4mZ+dLbU8lOPG2GuPYliYtX1SnXv509zAgUjSCWW9fkdeMBF3tFCjSJJcUmle3mlxG8kYuAqNUScA==
+"@polkadot/rpc-provider@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-8.7.2-15.tgz#99dd30085284442265225e0f12aef3849b7bfe44"
+  integrity sha512-EwgBnUIpGhEfSanDXVviQQ784HYD3DWUPdv9pIvn9qnCZPk7o+MGPvKW73A+XbQpPV9j8tAGnVsSnbDuoSVp1g==
   dependencies:
     "@babel/runtime" "^7.18.3"
     "@polkadot/keyring" "^9.4.1"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-support" "8.7.2-11"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-support" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     "@polkadot/util-crypto" "^9.4.1"
     "@polkadot/x-fetch" "^9.4.1"
@@ -652,86 +652,86 @@
   dependencies:
     "@types/chrome" "^0.0.171"
 
-"@polkadot/typegen@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-8.7.2-11.tgz#047c3c91f4b34f0188853bed606fd12f6a0fbf4d"
-  integrity sha512-YZpyT8LJFm3akFurrxHpRWxZU50yKvrfdgyZpJh+JJOhSIIDtkx58JNj2+lv0QvhUFOUkd4IWap9bbCPmeLf6w==
+"@polkadot/typegen@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-8.7.2-15.tgz#06e9d054db1c63d9862186429a8017b2b80bce2a"
+  integrity sha512-NC8Ticirh20k1Co17D8cqQawIJ8W9HWDuq6oDyEMT4XkeBbZ1hQRO9JBO14neWDJmYJBhlUotP65jgjs8D5bMw==
   dependencies:
     "@babel/core" "^7.18.2"
     "@babel/register" "^7.17.7"
     "@babel/runtime" "^7.18.3"
-    "@polkadot/api" "8.7.2-11"
-    "@polkadot/api-augment" "8.7.2-11"
-    "@polkadot/rpc-augment" "8.7.2-11"
-    "@polkadot/rpc-provider" "8.7.2-11"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-augment" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
-    "@polkadot/types-create" "8.7.2-11"
-    "@polkadot/types-support" "8.7.2-11"
+    "@polkadot/api" "8.7.2-15"
+    "@polkadot/api-augment" "8.7.2-15"
+    "@polkadot/rpc-augment" "8.7.2-15"
+    "@polkadot/rpc-provider" "8.7.2-15"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-augment" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
+    "@polkadot/types-create" "8.7.2-15"
+    "@polkadot/types-support" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     "@polkadot/x-ws" "^9.4.1"
     handlebars "^4.7.7"
     websocket "^1.0.34"
     yargs "^17.5.1"
 
-"@polkadot/types-augment@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-8.7.2-11.tgz#c63105c76f8d85f7e642f8e81e16c3ffc3b3e7c4"
-  integrity sha512-1meIbpS0Synfdz+Jo90jc/utxwbwl9XQiH5WoFCUYLlbtE/H/yQcIoeme5o6gr/q7BalFQMYYwGBfctGT/KGjA==
+"@polkadot/types-augment@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-8.7.2-15.tgz#7ab077a1a31190ad17183196efb1da065c0d0bcd"
+  integrity sha512-th1jVBDqpyQVB2gCNzo/HV0dIeNinjyPla01BFdhQ5mDKYXJ8fugsLCk5oKUPpItBrj+5NWCgynVvCwm0YJw3g==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
 
-"@polkadot/types-codec@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-8.7.2-11.tgz#a852d3493062ee1052f7a837d07cce4146f2c67e"
-  integrity sha512-ZvRBiVo5IwZ+vcbKIMv6l0kRG2bVpBmU+pCPdWV9zGtKpgumz1FTvxBmjXoNo6OJVX23fKNMF8qBD/DEiC9ZwA==
+"@polkadot/types-codec@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-8.7.2-15.tgz#6afa4ff45dc7afb9250f283f70a40be641367941"
+  integrity sha512-k8t7/Ern7sY4ZKQc5cYY3h1bg7/GAEaTPmKz094DhPJmEhi3NNgeJ4uyeB/JYCo5GbxXQG6W2M021s582urjMw==
   dependencies:
     "@babel/runtime" "^7.18.3"
     "@polkadot/util" "^9.4.1"
 
-"@polkadot/types-create@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-8.7.2-11.tgz#2489409155d55c941a322349d740e9f8f8325147"
-  integrity sha512-489UaZP7JKfZ2Fn0oDQ32setAiV7vv9Q3Kg4a+j4m2TGEEXAVeiNE4Uvijmsw3ayLTtzO9hL0WtMpFWa8GlIMg==
+"@polkadot/types-create@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-8.7.2-15.tgz#106a11eb71dc2743b140d8640a3b3e7fc5ccf10e"
+  integrity sha512-xB9jAJ3XQh/U05b+X77m5TPh4N9oBwwpePkAmLhovTSOSeobj7qeUKrZqccs0BSxJnJPlLwrwuusjeTtTfZCHw==
   dependencies:
     "@babel/runtime" "^7.18.3"
-    "@polkadot/types-codec" "8.7.2-11"
+    "@polkadot/types-codec" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
 
-"@polkadot/types-known@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-8.7.2-11.tgz#89cb0cdea197ed3887b30948a560b0cd13b39c23"
-  integrity sha512-ulPQCmwJTJ/MGJGVJZfjWEGq28HGl7D4sOrigbfLOlo6/KyFl2p5H4GUFeF/s+/lGfUQsxfu4Q6QgXDZAOkB1A==
+"@polkadot/types-known@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-8.7.2-15.tgz#171b8d3963a5c38d46f98a7c14be59033f9a4da8"
+  integrity sha512-c5YuuauPCu70chDnV7Fphh7SbAQl8JWj+PoY37I5BACCNFxtUx5KnP93BChiD0QxcHs2QqD6RdjW6O7cVRUKfA==
   dependencies:
     "@babel/runtime" "^7.18.3"
     "@polkadot/networks" "^9.4.1"
-    "@polkadot/types" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
-    "@polkadot/types-create" "8.7.2-11"
+    "@polkadot/types" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
+    "@polkadot/types-create" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
 
-"@polkadot/types-support@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-8.7.2-11.tgz#ed08331ba1faf7a803e35aafa0692eefd28baa90"
-  integrity sha512-oflUi0eahFMoS3Sxz6EKjZKNl7GMRnd91kClEV0FzR1wEha+3CL1BCXTGV3n8YoJtfztUUNInVHPQTvMW78WvQ==
+"@polkadot/types-support@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-8.7.2-15.tgz#2d726e3d5615383ca97db3f32ee21e2aad077fcb"
+  integrity sha512-Tl6xm9r/uqrKQK1OUdi5X9MaTgplBYPj3tY9677ZPV7QGYWt0Uz912u9fC2v0PGNReDXtzvrlgvk0aoErwzF5Q==
   dependencies:
     "@babel/runtime" "^7.18.3"
     "@polkadot/util" "^9.4.1"
 
-"@polkadot/types@8.7.2-11":
-  version "8.7.2-11"
-  resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-8.7.2-11.tgz#84b1dca2896fec4af23d4096fa810b59f44071ac"
-  integrity sha512-PSreCXr/csWpMVqtByEj7Pk5j+JEqxOiipsP+PdtOJaRnWtBMFpMqs7Fj2uULVYqFJKKPyp+JofnRDRcH1YDYg==
+"@polkadot/types@8.7.2-15":
+  version "8.7.2-15"
+  resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-8.7.2-15.tgz#5b25b6b76c916637a1d15133b5880a73079e65bc"
+  integrity sha512-KfJKzk6/Ta8vZVJH8+xYYPvd9SD+4fdl4coGgKuPGYZFsjDGnYvAX4ls6/WKby51JK5s24sqaUP3vZisIgh4wA==
   dependencies:
     "@babel/runtime" "^7.18.3"
     "@polkadot/keyring" "^9.4.1"
-    "@polkadot/types-augment" "8.7.2-11"
-    "@polkadot/types-codec" "8.7.2-11"
-    "@polkadot/types-create" "8.7.2-11"
+    "@polkadot/types-augment" "8.7.2-15"
+    "@polkadot/types-codec" "8.7.2-15"
+    "@polkadot/types-create" "8.7.2-15"
     "@polkadot/util" "^9.4.1"
     "@polkadot/util-crypto" "^9.4.1"
     rxjs "^7.5.5"