git.delta.rocks / unique-network / refs/commits / c6354cf493a0

difftreelog

feat add ApproveForAll to Eth and Sub

Grigoriy Simonov2022-12-06parent: #e7f81f3.patch.diff
in: master

39 files changed

modifiedclient/rpc/src/lib.rsdiffbeforeafterboth
--- a/client/rpc/src/lib.rs
+++ b/client/rpc/src/lib.rs
@@ -246,6 +246,16 @@
 		token_id: TokenId,
 		at: Option<BlockHash>,
 	) -> Result<Option<String>>;
+
+	/// Get whether an operator is approved by a given owner.
+	#[method(name = "unique_isApprovedForAll")]
+	fn is_approved_for_all(
+		&self,
+		collection: CollectionId,
+		owner: CrossAccountId,
+		operator: CrossAccountId,
+		at: Option<BlockHash>,
+	) -> Result<bool>;
 }
 
 mod app_promotion_unique_rpc {
@@ -569,6 +579,7 @@
 	pass_method!(effective_collection_limits(collection_id: CollectionId) -> Option<CollectionLimits>, unique_api);
 	pass_method!(total_pieces(collection_id: CollectionId, token_id: TokenId) -> Option<String> => |o| o.map(|number| number.to_string()) , unique_api);
 	pass_method!(token_owners(collection: CollectionId, token: TokenId) -> Vec<CrossAccountId>, unique_api);
+	pass_method!(is_approved_for_all(collection: CollectionId, owner: CrossAccountId, operator: CrossAccountId) -> bool, unique_api);
 }
 
 impl<C, Block, BlockNumber, CrossAccountId, AccountId>
modifiedpallets/common/src/lib.rsdiffbeforeafterboth
--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -472,6 +472,18 @@
 			u128,
 		),
 
+		/// Amount pieces of token owned by `sender` was approved for `spender`.
+		ApprovedForAll(
+			/// Id of collection to which item is belong.
+			CollectionId,
+			/// Owner of a wallet.
+			T::CrossAccountId,
+			/// Id for which operator status was granted or rewoked.
+			T::CrossAccountId,
+			/// Is operator status was granted or rewoked.
+			bool,
+		),
+
 		/// The colletion property has been added or edited.
 		CollectionPropertySet(
 			/// Id of collection to which property has been set.
@@ -1521,6 +1533,9 @@
 
 	/// The price of retrieving token owner
 	fn token_owner() -> Weight;
+
+	/// The price of setting approval for all
+	fn set_approval_for_all() -> Weight;
 }
 
 /// Weight info extension trait for refungible pallet.
@@ -1828,6 +1843,20 @@
 
 	/// Get extension for RFT collection.
 	fn refungible_extensions(&self) -> Option<&dyn RefungibleExtensions<T>>;
+
+	/// An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// * `owner` - Token owner
+	/// * `operator` - Operator
+	/// * `approve` - Is operator enabled or disabled
+	fn set_approval_for_all(
+		&self,
+		owner: T::CrossAccountId,
+		operator: T::CrossAccountId,
+		approve: bool,
+	) -> DispatchResultWithPostInfo;
+
+	/// Tells whether an operator is approved by a given owner.
+	fn is_approved_for_all(&self, owner: T::CrossAccountId, operator: T::CrossAccountId) -> bool;
 }
 
 /// Extension for RFT collection.
modifiedpallets/fungible/src/common.rsdiffbeforeafterboth
--- a/pallets/fungible/src/common.rs
+++ b/pallets/fungible/src/common.rs
@@ -107,6 +107,10 @@
 	fn token_owner() -> Weight {
 		Weight::zero()
 	}
+
+	fn set_approval_for_all() -> Weight {
+		Weight::zero()
+	}
 }
 
 /// Implementation of `CommonCollectionOperations` for `FungibleHandle`. It wraps FungibleHandle Pallete
@@ -424,4 +428,17 @@
 		}
 		<TotalSupply<T>>::try_get(self.id).ok()
 	}
+
+	fn set_approval_for_all(
+		&self,
+		_owner: T::CrossAccountId,
+		_operator: T::CrossAccountId,
+		_approve: bool,
+	) -> DispatchResultWithPostInfo {
+		fail!(<Error<T>>::SettingApprovalForAllNotAllowed)
+	}
+
+	fn is_approved_for_all(&self, _owner: T::CrossAccountId, _operator: T::CrossAccountId) -> bool {
+		false
+	}
 }
modifiedpallets/fungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/fungible/src/lib.rs
+++ b/pallets/fungible/src/lib.rs
@@ -127,6 +127,8 @@
 		FungibleDisallowsNesting,
 		/// Setting item properties is not allowed.
 		SettingPropertiesNotAllowed,
+		/// Setting approval for all is not allowed.
+		SettingApprovalForAllNotAllowed,
 	}
 
 	#[pallet::config]
modifiedpallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/benchmarking.rs
+++ b/pallets/nonfungible/src/benchmarking.rs
@@ -222,4 +222,18 @@
 		let item = create_max_item(&collection, &owner, owner.clone())?;
 
 	}: {collection.token_owner(item)}
+
+	set_approval_for_all {
+		bench_init!{
+			owner: sub; collection: collection(owner);
+			operator: cross_from_sub(owner); owner: cross_sub;
+		};
+	}: {<Pallet<T>>::set_approval_for_all(&collection, &owner, &operator, true)}
+
+	is_approved_for_all {
+		bench_init!{
+			owner: sub; collection: collection(owner);
+			operator: cross_from_sub(owner); owner: cross_sub;
+		};
+	}: {<Pallet<T>>::is_approved_for_all(&collection, &owner, &operator)}
 }
modifiedpallets/nonfungible/src/common.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -122,6 +122,10 @@
 	fn token_owner() -> Weight {
 		<SelfWeightOf<T>>::token_owner()
 	}
+
+	fn set_approval_for_all() -> Weight {
+		<SelfWeightOf<T>>::set_approval_for_all()
+	}
 }
 
 fn map_create_data<T: Config>(
@@ -512,4 +516,20 @@
 			None
 		}
 	}
+
+	fn set_approval_for_all(
+		&self,
+		owner: T::CrossAccountId,
+		operator: T::CrossAccountId,
+		approve: bool,
+	) -> DispatchResultWithPostInfo {
+		with_weight(
+			<Pallet<T>>::set_approval_for_all(self, &owner, &operator, approve),
+			<CommonWeights<T>>::set_approval_for_all(),
+		)
+	}
+
+	fn is_approved_for_all(&self, owner: T::CrossAccountId, operator: T::CrossAccountId) -> bool {
+		<Pallet<T>>::is_approved_for_all(self, &owner, &operator)
+	}
 }
modifiedpallets/nonfungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -469,15 +469,23 @@
 		Ok(())
 	}
 
-	/// @dev Not implemented
+	/// @notice Sets or unsets the approval of a given operator.
+	///  An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// @param operator Operator
+	/// @param approved Is operator enabled or disabled
+	#[weight(<SelfWeightOf<T>>::set_approval_for_all())]
 	fn set_approval_for_all(
 		&mut self,
-		_caller: caller,
-		_operator: address,
-		_approved: bool,
+		caller: caller,
+		operator: address,
+		approved: bool,
 	) -> Result<void> {
-		// TODO: Not implemetable
-		Err("not implemented".into())
+		let caller = T::CrossAccountId::from_eth(caller);
+		let operator = T::CrossAccountId::from_eth(operator);
+
+		<Pallet<T>>::set_approval_for_all(self, &caller, &operator, approved)
+			.map_err(dispatch_to_evm::<T>)?;
+		Ok(())
 	}
 
 	/// @dev Not implemented
@@ -486,10 +494,13 @@
 		Err("not implemented".into())
 	}
 
-	/// @dev Not implemented
-	fn is_approved_for_all(&self, _owner: address, _operator: address) -> Result<address> {
-		// TODO: Not implemetable
-		Err("not implemented".into())
+	/// @notice Tells whether an operator is approved by a given owner.
+	#[weight(<SelfWeightOf<T>>::is_approved_for_all())]
+	fn is_approved_for_all(&self, owner: address, operator: address) -> Result<bool> {
+		let owner = T::CrossAccountId::from_eth(owner);
+		let operator = T::CrossAccountId::from_eth(operator);
+
+		Ok(<Pallet<T>>::is_approved_for_all(self, &owner, &operator))
 	}
 
 	/// @notice Returns collection helper contract address
modifiedpallets/nonfungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -272,6 +272,18 @@
 		QueryKind = OptionQuery,
 	>;
 
+	/// Operator set by a wallet owner that could perform certain transactions on all tokens in the wallet.
+	#[pallet::storage]
+	pub type WalletOperator<T: Config> = StorageNMap<
+		Key = (
+			Key<Twox64Concat, CollectionId>,
+			Key<Blake2_128Concat, T::CrossAccountId>,
+			Key<Blake2_128Concat, T::CrossAccountId>,
+		),
+		Value = bool,
+		QueryKind = OptionQuery,
+	>;
+
 	/// Upgrade from the old schema to properties.
 	#[pallet::hooks]
 	impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
@@ -438,6 +450,7 @@
 		<TokensBurnt<T>>::remove(id);
 		let _ = <Allowance<T>>::clear_prefix((id,), u32::MAX, None);
 		let _ = <AccountBalance<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <WalletOperator<T>>::clear_prefix((id,), u32::MAX, None);
 		Ok(())
 	}
 
@@ -1193,6 +1206,9 @@
 		if <Allowance<T>>::get((collection.id, token)).as_ref() == Some(spender) {
 			return Ok(());
 		}
+		if <WalletOperator<T>>::get((collection.id, from, spender)) == Some(true) {
+			return Ok(());
+		}
 		ensure!(
 			collection.ignores_allowance(spender),
 			<CommonError<T>>::ApprovedValueTooLow
@@ -1326,4 +1342,52 @@
 	) -> DispatchResult {
 		Self::create_multiple_items(collection, sender, vec![data], nesting_budget)
 	}
+
+	/// Sets or unsets the approval of a given operator.
+	///
+	/// An operator is allowed to transfer all token pieces of the sender on their behalf.
+	/// - `owner`: Token owner
+	/// - `operator`: Operator
+	/// - `approve`: Is operator enabled or disabled
+	pub fn set_approval_for_all(
+		collection: &NonfungibleHandle<T>,
+		owner: &T::CrossAccountId,
+		operator: &T::CrossAccountId,
+		approve: bool,
+	) -> DispatchResult {
+		if collection.permissions.access() == AccessMode::AllowList {
+			collection.check_allowlist(owner)?;
+			collection.check_allowlist(operator)?;
+		}
+
+		<PalletCommon<T>>::ensure_correct_receiver(operator)?;
+
+		// =========
+
+		<WalletOperator<T>>::insert((collection.id, owner, operator), approve);
+		<PalletEvm<T>>::deposit_log(
+			ERC721Events::ApprovalForAll {
+				owner: *owner.as_eth(),
+				operator: *operator.as_eth(),
+				approved: approve,
+			}
+			.to_log(collection_id_to_address(collection.id)),
+		);
+		<PalletCommon<T>>::deposit_event(CommonEvent::ApprovedForAll(
+			collection.id,
+			owner.clone(),
+			operator.clone(),
+			approve,
+		));
+		Ok(())
+	}
+
+	/// Tells whether an operator is approved by a given owner.
+	pub fn is_approved_for_all(
+		collection: &NonfungibleHandle<T>,
+		owner: &T::CrossAccountId,
+		operator: &T::CrossAccountId,
+	) -> bool {
+		<WalletOperator<T>>::get((collection.id, owner, operator)).unwrap_or(false)
+	}
 }
modifiedpallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -1020,7 +1020,10 @@
 		dummy = 0;
 	}
 
-	/// @dev Not implemented
+	/// @notice Sets or unsets the approval of a given operator.
+	///  An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// @param operator Operator
+	/// @param approved Is operator enabled or disabled
 	/// @dev EVM selector for this function is: 0xa22cb465,
 	///  or in textual repr: setApprovalForAll(address,bool)
 	function setApprovalForAll(address operator, bool approved) public {
@@ -1040,15 +1043,15 @@
 		return 0x0000000000000000000000000000000000000000;
 	}
 
-	/// @dev Not implemented
+	/// @notice Tells whether an operator is approved by a given owner.
 	/// @dev EVM selector for this function is: 0xe985e9c5,
 	///  or in textual repr: isApprovedForAll(address,address)
-	function isApprovedForAll(address owner, address operator) public view returns (address) {
+	function isApprovedForAll(address owner, address operator) public view returns (bool) {
 		require(false, stub_error);
 		owner;
 		operator;
 		dummy;
-		return 0x0000000000000000000000000000000000000000;
+		return false;
 	}
 
 	/// @notice Returns collection helper contract address
modifiedpallets/nonfungible/src/weights.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/weights.rs
+++ b/pallets/nonfungible/src/weights.rs
@@ -26,6 +26,7 @@
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
 #![allow(unused_imports)]
+#![allow(missing_docs)]
 #![allow(clippy::unnecessary_cast)]
 
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
@@ -47,6 +48,8 @@
 	fn set_token_properties(b: u32, ) -> Weight;
 	fn delete_token_properties(b: u32, ) -> Weight;
 	fn token_owner() -> Weight;
+	fn set_approval_for_all() -> Weight;
+	fn is_approved_for_all() -> Weight;
 }
 
 /// Weights for pallet_nonfungible using the Substrate node and recommended hardware.
@@ -195,6 +198,16 @@
 		Weight::from_ref_time(4_366_000)
 			.saturating_add(T::DbWeight::get().reads(1 as u64))
 	}
+	// Storage: Nonfungible WalletOperator (r:0 w:1)
+	fn set_approval_for_all() -> Weight {
+		Weight::from_ref_time(16_231_000 as u64)
+			.saturating_add(T::DbWeight::get().writes(1 as u64))
+	}
+	// Storage: Nonfungible WalletOperator (r:1 w:0)
+	fn is_approved_for_all() -> Weight {
+		Weight::from_ref_time(6_161_000 as u64)
+			.saturating_add(T::DbWeight::get().reads(1 as u64))
+	}
 }
 
 // For backwards compatibility and tests
@@ -342,4 +355,14 @@
 		Weight::from_ref_time(4_366_000)
 			.saturating_add(RocksDbWeight::get().reads(1 as u64))
 	}
+	// Storage: Nonfungible WalletOperator (r:0 w:1)
+	fn set_approval_for_all() -> Weight {
+		Weight::from_ref_time(16_231_000 as u64)
+			.saturating_add(RocksDbWeight::get().writes(1 as u64))
+	}
+	// Storage: Nonfungible WalletOperator (r:1 w:0)
+	fn is_approved_for_all() -> Weight {
+		Weight::from_ref_time(6_161_000 as u64)
+			.saturating_add(RocksDbWeight::get().reads(1 as u64))
+	}
 }
modifiedpallets/refungible/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/refungible/src/benchmarking.rs
+++ b/pallets/refungible/src/benchmarking.rs
@@ -290,4 +290,18 @@
 		};
 		let item = create_max_item(&collection, &sender, [(owner.clone(), 100)])?;
 	}: {<Pallet<T>>::token_owner(collection.id, item)}
+
+	set_approval_for_all {
+		bench_init!{
+			owner: sub; collection: collection(owner);
+			operator: cross_from_sub(owner); owner: cross_sub;
+		};
+	}: {<Pallet<T>>::set_approval_for_all(&collection, &owner, &operator, true)}
+
+	is_approved_for_all {
+		bench_init!{
+			owner: sub; collection: collection(owner);
+			operator: cross_from_sub(owner); owner: cross_sub;
+		};
+	}: {<Pallet<T>>::is_approved_for_all(&collection, &owner, &operator)}
 }
modifiedpallets/refungible/src/common.rsdiffbeforeafterboth
--- a/pallets/refungible/src/common.rs
+++ b/pallets/refungible/src/common.rs
@@ -152,6 +152,10 @@
 	fn token_owner() -> Weight {
 		<SelfWeightOf<T>>::token_owner()
 	}
+
+	fn set_approval_for_all() -> Weight {
+		<SelfWeightOf<T>>::set_approval_for_all()
+	}
 }
 
 fn map_create_data<T: Config>(
@@ -516,6 +520,22 @@
 	fn total_pieces(&self, token: TokenId) -> Option<u128> {
 		<Pallet<T>>::total_pieces(self.id, token)
 	}
+
+	fn set_approval_for_all(
+		&self,
+		owner: T::CrossAccountId,
+		operator: T::CrossAccountId,
+		approve: bool,
+	) -> DispatchResultWithPostInfo {
+		with_weight(
+			<Pallet<T>>::set_approval_for_all(self, &owner, &operator, approve),
+			<CommonWeights<T>>::set_approval_for_all(),
+		)
+	}
+
+	fn is_approved_for_all(&self, owner: T::CrossAccountId, operator: T::CrossAccountId) -> bool {
+		<Pallet<T>>::is_approved_for_all(self, &owner, &operator)
+	}
 }
 
 impl<T: Config> RefungibleExtensions<T> for RefungibleHandle<T> {
modifiedpallets/refungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -461,15 +461,23 @@
 		Err("not implemented".into())
 	}
 
-	/// @dev Not implemented
+	/// @notice Sets or unsets the approval of a given operator.
+	///  An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// @param operator Operator
+	/// @param approved Is operator enabled or disabled
+	#[weight(<SelfWeightOf<T>>::set_approval_for_all())]
 	fn set_approval_for_all(
 		&mut self,
-		_caller: caller,
-		_operator: address,
-		_approved: bool,
+		caller: caller,
+		operator: address,
+		approved: bool,
 	) -> Result<void> {
-		// TODO: Not implemetable
-		Err("not implemented".into())
+		let caller = T::CrossAccountId::from_eth(caller);
+		let operator = T::CrossAccountId::from_eth(operator);
+
+		<Pallet<T>>::set_approval_for_all(self, &caller, &operator, approved)
+			.map_err(dispatch_to_evm::<T>)?;
+		Ok(())
 	}
 
 	/// @dev Not implemented
@@ -478,10 +486,13 @@
 		Err("not implemented".into())
 	}
 
-	/// @dev Not implemented
-	fn is_approved_for_all(&self, _owner: address, _operator: address) -> Result<address> {
-		// TODO: Not implemetable
-		Err("not implemented".into())
+	/// @notice Tells whether an operator is approved by a given owner.
+	#[weight(<SelfWeightOf<T>>::is_approved_for_all())]
+	fn is_approved_for_all(&self, owner: address, operator: address) -> Result<bool> {
+		let owner = T::CrossAccountId::from_eth(owner);
+		let operator = T::CrossAccountId::from_eth(operator);
+
+		Ok(<Pallet<T>>::is_approved_for_all(self, &owner, &operator))
 	}
 
 	/// @notice Returns collection helper contract address
modifiedpallets/refungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -273,6 +273,18 @@
 		QueryKind = ValueQuery,
 	>;
 
+	/// Operator set by a wallet owner that could perform certain transactions on all tokens in the wallet.
+	#[pallet::storage]
+	pub type WalletOperator<T: Config> = StorageNMap<
+		Key = (
+			Key<Twox64Concat, CollectionId>,
+			Key<Blake2_128Concat, T::CrossAccountId>,
+			Key<Blake2_128Concat, T::CrossAccountId>,
+		),
+		Value = bool,
+		QueryKind = OptionQuery,
+	>;
+
 	#[pallet::hooks]
 	impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
 		fn on_runtime_upgrade() -> Weight {
@@ -1161,6 +1173,12 @@
 		}
 		let allowance =
 			<Allowance<T>>::get((collection.id, token, from, &spender)).checked_sub(amount);
+
+		// Allowance if any would be reduced if spender is also wallet operator
+		if <WalletOperator<T>>::get((collection.id, from, spender)) == Some(true) {
+			return Ok(allowance);
+		}
+
 		if allowance.is_none() {
 			ensure!(
 				collection.ignores_allowance(spender),
@@ -1387,4 +1405,52 @@
 			Some(res)
 		}
 	}
+
+	/// Sets or unsets the approval of a given operator.
+	///
+	/// An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// - `owner`: Token owner
+	/// - `operator`: Operator
+	/// - `approve`: Is operator enabled or disabled
+	pub fn set_approval_for_all(
+		collection: &RefungibleHandle<T>,
+		owner: &T::CrossAccountId,
+		operator: &T::CrossAccountId,
+		approve: bool,
+	) -> DispatchResult {
+		if collection.permissions.access() == AccessMode::AllowList {
+			collection.check_allowlist(owner)?;
+			collection.check_allowlist(operator)?;
+		}
+
+		<PalletCommon<T>>::ensure_correct_receiver(operator)?;
+
+		// =========
+
+		<WalletOperator<T>>::insert((collection.id, owner, operator), approve);
+		<PalletEvm<T>>::deposit_log(
+			ERC721Events::ApprovalForAll {
+				owner: *owner.as_eth(),
+				operator: *operator.as_eth(),
+				approved: approve,
+			}
+			.to_log(collection_id_to_address(collection.id)),
+		);
+		<PalletCommon<T>>::deposit_event(CommonEvent::ApprovedForAll(
+			collection.id,
+			owner.clone(),
+			operator.clone(),
+			approve,
+		));
+		Ok(())
+	}
+
+	/// Tells whether an operator is approved by a given owner.
+	pub fn is_approved_for_all(
+		collection: &RefungibleHandle<T>,
+		owner: &T::CrossAccountId,
+		operator: &T::CrossAccountId,
+	) -> bool {
+		<WalletOperator<T>>::get((collection.id, owner, operator)).unwrap_or(false)
+	}
 }
modifiedpallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -1017,7 +1017,10 @@
 		dummy = 0;
 	}
 
-	/// @dev Not implemented
+	/// @notice Sets or unsets the approval of a given operator.
+	///  An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// @param operator Operator
+	/// @param approved Is operator enabled or disabled
 	/// @dev EVM selector for this function is: 0xa22cb465,
 	///  or in textual repr: setApprovalForAll(address,bool)
 	function setApprovalForAll(address operator, bool approved) public {
@@ -1037,15 +1040,15 @@
 		return 0x0000000000000000000000000000000000000000;
 	}
 
-	/// @dev Not implemented
+	/// @notice Tells whether an operator is approved by a given owner.
 	/// @dev EVM selector for this function is: 0xe985e9c5,
 	///  or in textual repr: isApprovedForAll(address,address)
-	function isApprovedForAll(address owner, address operator) public view returns (address) {
+	function isApprovedForAll(address owner, address operator) public view returns (bool) {
 		require(false, stub_error);
 		owner;
 		operator;
 		dummy;
-		return 0x0000000000000000000000000000000000000000;
+		return false;
 	}
 
 	/// @notice Returns collection helper contract address
modifiedpallets/refungible/src/weights.rsdiffbeforeafterboth
--- a/pallets/refungible/src/weights.rs
+++ b/pallets/refungible/src/weights.rs
@@ -3,7 +3,7 @@
 //! Autogenerated weights for pallet_refungible
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-08-15, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-11-25, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
 
 // Executed Command:
@@ -26,6 +26,7 @@
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
 #![allow(unused_imports)]
+#![allow(missing_docs)]
 #![allow(clippy::unnecessary_cast)]
 
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
@@ -54,6 +55,8 @@
 	fn delete_token_properties(b: u32, ) -> Weight;
 	fn repartition_item() -> Weight;
 	fn token_owner() -> Weight;
+	fn set_approval_for_all() -> Weight;
+	fn is_approved_for_all() -> Weight;
 }
 
 /// Weights for pallet_refungible using the Substrate node and recommended hardware.
@@ -259,6 +262,16 @@
 		Weight::from_ref_time(9_431_000)
 			.saturating_add(T::DbWeight::get().reads(2 as u64))
 	}
+	// Storage: Refungible WalletOperator (r:0 w:1)
+	fn set_approval_for_all() -> Weight {
+		Weight::from_ref_time(16_150_000 as u64)
+			.saturating_add(T::DbWeight::get().writes(1 as u64))
+	}
+	// Storage: Refungible WalletOperator (r:1 w:0)
+	fn is_approved_for_all() -> Weight {
+		Weight::from_ref_time(5_901_000 as u64)
+			.saturating_add(T::DbWeight::get().reads(1 as u64))
+	}
 }
 
 // For backwards compatibility and tests
@@ -463,4 +476,14 @@
 		Weight::from_ref_time(9_431_000)
 			.saturating_add(RocksDbWeight::get().reads(2 as u64))
 	}
+	// Storage: Refungible WalletOperator (r:0 w:1)
+	fn set_approval_for_all() -> Weight {
+		Weight::from_ref_time(16_150_000 as u64)
+			.saturating_add(RocksDbWeight::get().writes(1 as u64))
+	}
+	// Storage: Refungible WalletOperator (r:1 w:0)
+	fn is_approved_for_all() -> Weight {
+		Weight::from_ref_time(5_901_000 as u64)
+			.saturating_add(RocksDbWeight::get().reads(1 as u64))
+	}
 }
modifiedpallets/unique/src/lib.rsdiffbeforeafterboth
--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -1126,6 +1126,28 @@
 				}
 			})
 		}
+
+		/// Sets or unsets the approval of a given operator.
+		///
+		/// An operator is allowed to transfer all tokens of the sender on their behalf.
+		///
+		/// # Arguments
+		///
+		/// * `owner`: Token owner
+		/// * `operator`: Operator
+		/// * `approve`: Is operator enabled or disabled
+		#[weight = T::CommonWeightInfo::set_approval_for_all()]
+		pub fn set_approval_for_all(
+			origin,
+			collection_id: CollectionId,
+			operator: T::CrossAccountId,
+			approve: bool,
+		) -> DispatchResultWithPostInfo {
+			let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
+			dispatch_tx::<T, _>(collection_id, |d| {
+				d.set_approval_for_all(sender, operator, approve)
+			})
+		}
 	}
 }
 
modifiedprimitives/rpc/src/lib.rsdiffbeforeafterboth
--- a/primitives/rpc/src/lib.rs
+++ b/primitives/rpc/src/lib.rs
@@ -132,5 +132,8 @@
 		fn total_pieces(collection_id: CollectionId, token_id: TokenId) -> Result<Option<u128>>;
 
 		fn token_owners(collection: CollectionId, token: TokenId) -> Result<Vec<CrossAccountId>>;
+
+		/// Get whether an operator is approved by a given owner.
+		fn is_approved_for_all(collection: CollectionId, owner: CrossAccountId, operator: CrossAccountId) -> Result<bool>;
 	}
 }
modifiedruntime/common/runtime_apis.rsdiffbeforeafterboth
--- a/runtime/common/runtime_apis.rs
+++ b/runtime/common/runtime_apis.rs
@@ -187,6 +187,10 @@
                 fn total_pieces(collection: CollectionId, token_id: TokenId) -> Result<Option<u128>, DispatchError> {
                     dispatch_unique_runtime!(collection.total_pieces(token_id))
                 }
+
+		        fn is_approved_for_all(collection: CollectionId, owner: CrossAccountId, operator: CrossAccountId) -> Result<bool, DispatchError> {
+                    dispatch_unique_runtime!(collection.is_approved_for_all(owner, operator))
+                }
             }
 
             impl app_promotion_rpc::AppPromotionApi<Block, BlockNumber, CrossAccountId, AccountId> for Runtime {
modifiedruntime/common/weights.rsdiffbeforeafterboth
--- a/runtime/common/weights.rs
+++ b/runtime/common/weights.rs
@@ -120,6 +120,10 @@
 	fn token_owner() -> Weight {
 		max_weight_of!(token_owner())
 	}
+
+	fn set_approval_for_all() -> Weight {
+		max_weight_of!(set_approval_for_all())
+	}
 }
 
 #[cfg(feature = "refungible")]
modifiedtests/src/approve.test.tsdiffbeforeafterboth
--- a/tests/src/approve.test.ts
+++ b/tests/src/approve.test.ts
@@ -603,3 +603,40 @@
     await expect(approveTx()).to.be.rejected;
   });
 });
+
+describe('Normal user can approve other users to be wallet operator:', () => {
+  let alice: IKeyringPair;
+  let bob: IKeyringPair;
+
+  before(async () => {
+    await usingPlaygrounds(async (helper, privateKey) => {
+      const donor = await privateKey({filename: __filename});
+      [alice, bob] = await helper.arrange.createAccounts([100n, 100n], donor);
+    });
+  });
+
+  itSub('[nft] Enable and disable approval', async ({helper}) => {
+    const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});
+    await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});
+    const checkBeforeApprovalTx = () => helper.nft.isApprovedForAll(collectionId, {Substrate: alice.address}, {Substrate: bob.address});
+    expect(await checkBeforeApprovalTx()).to.be.false;
+    await helper.nft.setApprovalForAll(alice, collectionId, {Substrate: bob.address}, true);
+    const checkAfterApprovalTx = () => helper.nft.isApprovedForAll(collectionId, {Substrate: alice.address}, {Substrate: bob.address});
+    expect(await checkAfterApprovalTx()).to.be.true;
+    await helper.nft.setApprovalForAll(alice, collectionId, {Substrate: bob.address}, false);
+    const checkAfterDisapprovalTx = () => helper.nft.isApprovedForAll(collectionId, {Substrate: alice.address}, {Substrate: bob.address});
+    expect(await checkAfterDisapprovalTx()).to.be.false;
+  });
+
+  itSub.ifWithPallets('[rft] Enable and disable approval', [Pallets.ReFungible], async ({helper}) => {
+    const {collectionId} = await helper.rft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});
+    const checkBeforeApprovalTx = () => helper.rft.isApprovedForAll(collectionId, {Substrate: alice.address}, {Substrate: bob.address});
+    expect(await checkBeforeApprovalTx()).to.be.false;
+    await helper.rft.setApprovalForAll(alice, collectionId, {Substrate: bob.address}, true);
+    const checkAfterApprovalTx = () => helper.rft.isApprovedForAll(collectionId, {Substrate: alice.address}, {Substrate: bob.address});
+    expect(await checkAfterApprovalTx()).to.be.true;
+    await helper.rft.setApprovalForAll(alice, collectionId, {Substrate: bob.address}, false);
+    const checkAfterDisapprovalTx = () => helper.rft.isApprovedForAll(collectionId, {Substrate: alice.address}, {Substrate: bob.address});
+    expect(await checkAfterDisapprovalTx()).to.be.false;
+  });
+});
modifiedtests/src/eth/abi/nonFungible.jsondiffbeforeafterboth
--- a/tests/src/eth/abi/nonFungible.json
+++ b/tests/src/eth/abi/nonFungible.json
@@ -384,7 +384,7 @@
       { "internalType": "address", "name": "operator", "type": "address" }
     ],
     "name": "isApprovedForAll",
-    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
     "stateMutability": "view",
     "type": "function"
   },
modifiedtests/src/eth/abi/reFungible.jsondiffbeforeafterboth
--- a/tests/src/eth/abi/reFungible.json
+++ b/tests/src/eth/abi/reFungible.json
@@ -366,7 +366,7 @@
       { "internalType": "address", "name": "operator", "type": "address" }
     ],
     "name": "isApprovedForAll",
-    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
     "stateMutability": "view",
     "type": "function"
   },
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -671,7 +671,10 @@
 	///  or in textual repr: approve(address,uint256)
 	function approve(address approved, uint256 tokenId) external;
 
-	/// @dev Not implemented
+	/// @notice Sets or unsets the approval of a given operator.
+	///  An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// @param operator Operator
+	/// @param approved Is operator enabled or disabled
 	/// @dev EVM selector for this function is: 0xa22cb465,
 	///  or in textual repr: setApprovalForAll(address,bool)
 	function setApprovalForAll(address operator, bool approved) external;
@@ -681,10 +684,10 @@
 	///  or in textual repr: getApproved(uint256)
 	function getApproved(uint256 tokenId) external view returns (address);
 
-	/// @dev Not implemented
+	/// @notice Tells whether an operator is approved by a given owner.
 	/// @dev EVM selector for this function is: 0xe985e9c5,
 	///  or in textual repr: isApprovedForAll(address,address)
-	function isApprovedForAll(address owner, address operator) external view returns (address);
+	function isApprovedForAll(address owner, address operator) external view returns (bool);
 
 	/// @notice Returns collection helper contract address
 	/// @dev EVM selector for this function is: 0x1896cce6,
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -668,7 +668,10 @@
 	///  or in textual repr: approve(address,uint256)
 	function approve(address approved, uint256 tokenId) external;
 
-	/// @dev Not implemented
+	/// @notice Sets or unsets the approval of a given operator.
+	///  An operator is allowed to transfer all tokens of the sender on their behalf.
+	/// @param operator Operator
+	/// @param approved Is operator enabled or disabled
 	/// @dev EVM selector for this function is: 0xa22cb465,
 	///  or in textual repr: setApprovalForAll(address,bool)
 	function setApprovalForAll(address operator, bool approved) external;
@@ -678,10 +681,10 @@
 	///  or in textual repr: getApproved(uint256)
 	function getApproved(uint256 tokenId) external view returns (address);
 
-	/// @dev Not implemented
+	/// @notice Tells whether an operator is approved by a given owner.
 	/// @dev EVM selector for this function is: 0xe985e9c5,
 	///  or in textual repr: isApprovedForAll(address,address)
-	function isApprovedForAll(address owner, address operator) external view returns (address);
+	function isApprovedForAll(address owner, address operator) external view returns (bool);
 
 	/// @notice Returns collection helper contract address
 	/// @dev EVM selector for this function is: 0x1896cce6,
modifiedtests/src/eth/nonFungible.test.tsdiffbeforeafterboth
--- a/tests/src/eth/nonFungible.test.ts
+++ b/tests/src/eth/nonFungible.test.ts
@@ -249,6 +249,114 @@
     }
   });
 
+  itEth('Can perform setApprovalForAll()', async ({helper}) => {
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const operator = helper.eth.createAccount();
+
+    const collection = await helper.nft.mintCollection(minter, {});
+
+    const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+
+    const approvedBefore = await contract.methods.isApprovedForAll(owner, operator).call();
+    expect(approvedBefore).to.be.equal(false);
+
+    {
+      const result = await contract.methods.setApprovalForAll(operator, true).send({from: owner});
+
+      expect(result.events.ApprovalForAll).to.be.like({
+        address: collectionAddress,
+        event: 'ApprovalForAll',
+        returnValues: {
+          owner,
+          operator,
+          approved: true,
+        },
+      });
+
+      const approvedAfter = await contract.methods.isApprovedForAll(owner, operator).call();
+      expect(approvedAfter).to.be.equal(true);
+    }
+
+    {
+      const result = await contract.methods.setApprovalForAll(operator, false).send({from: owner});
+
+      expect(result.events.ApprovalForAll).to.be.like({
+        address: collectionAddress,
+        event: 'ApprovalForAll',
+        returnValues: {
+          owner,
+          operator,
+          approved: false,
+        },
+      });
+
+      const approvedAfter = await contract.methods.isApprovedForAll(owner, operator).call();
+      expect(approvedAfter).to.be.equal(false);
+    }
+  });
+
+  itEth('Can perform burn with ApprovalForAll', async ({helper}) => {
+    const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const operator = await helper.eth.createAccountWithBalance(donor, 100n);
+
+    const token = await collection.mintToken(minter, {Ethereum: owner});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'nft');
+
+    {
+      await contract.methods.setApprovalForAll(operator, true).send({from: owner});
+      const ownerCross = helper.ethCrossAccount.fromAddress(owner);
+      const result = await contract.methods.burnFromCross(ownerCross, token.tokenId).send({from: operator});
+      const events = result.events.Transfer;
+
+      expect(events).to.be.like({
+        address,
+        event: 'Transfer',
+        returnValues: {
+          from: owner,
+          to: '0x0000000000000000000000000000000000000000',
+          tokenId: token.tokenId.toString(),
+        },
+      });
+    }
+  });
+  
+  itEth('Can perform transfer with ApprovalForAll', async ({helper}) => {
+    const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const operator = await helper.eth.createAccountWithBalance(donor);
+    const receiver = charlie;
+
+    const token = await collection.mintToken(minter, {Ethereum: owner});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'nft');
+
+    {
+      await contract.methods.setApprovalForAll(operator, true).send({from: owner});
+      const ownerCross = helper.ethCrossAccount.fromAddress(owner);
+      const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);
+      const result = await contract.methods.transferFromCross(ownerCross, recieverCross, token.tokenId).send({from: operator});
+      const event = result.events.Transfer;
+      expect(event).to.be.like({
+        address: helper.ethAddress.fromCollectionId(collection.collectionId),
+        event: 'Transfer',
+        returnValues: {
+          from: owner,
+          to: helper.address.substrateToEth(receiver.address),
+          tokenId: token.tokenId.toString(),
+        },
+      });
+    }
+
+    expect(await token.getOwner()).to.be.like({Substrate: receiver.address});
+  });
+
   itEth('Can perform burnFromCross()', async ({helper}) => {
     const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
     const ownerSub = bob;
@@ -822,3 +930,53 @@
     expect(symbol).to.equal('CHANGE');
   });
 });
+
+describe('Negative tests', () => {
+  let donor: IKeyringPair;
+  let minter: IKeyringPair;
+  let alice: IKeyringPair;
+  let bob: IKeyringPair;
+
+  before(async function() {
+    await usingEthPlaygrounds(async (helper, privateKey) => {
+      donor = await privateKey({filename: __filename});
+      [minter, alice, bob] = await helper.arrange.createAccounts([100n, 100n, 100n], donor);
+    });
+  });
+
+  itEth('[negative] Cant perform burn without approval', async ({helper}) => {
+    const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+
+    const owner = bob;
+    const spender = await helper.eth.createAccountWithBalance(donor, 100n);
+
+    const token = await collection.mintToken(minter, {Substrate: owner.address});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'nft');
+
+    {
+      const ownerCross = helper.ethCrossAccount.fromKeyringPair(owner);
+      await expect(contract.methods.burnFromCross(ownerCross, token.tokenId).send({from: spender})).to.be.rejected;
+    }
+  });
+
+  itEth('[negative] Cant perform transfer without approval', async ({helper}) => {
+    const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+    const owner = bob;
+    const receiver = alice;
+
+    const spender = await helper.eth.createAccountWithBalance(donor, 100n);
+
+    const token = await collection.mintToken(minter, {Substrate: owner.address});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'nft');
+
+    {
+      const ownerCross = helper.ethCrossAccount.fromKeyringPair(owner);
+      const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);
+      await expect(contract.methods.transferFromCross(ownerCross, recieverCross, token.tokenId).send({from: spender})).to.be.rejected;
+    }
+  });
+});
modifiedtests/src/eth/reFungible.test.tsdiffbeforeafterboth
--- a/tests/src/eth/reFungible.test.ts
+++ b/tests/src/eth/reFungible.test.ts
@@ -169,6 +169,136 @@
     }
   });
 
+  itEth('Can perform setApprovalForAll()', async ({helper}) => {
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const operator = helper.eth.createAccount();
+
+    const collection = await helper.rft.mintCollection(minter, {});
+
+    const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);
+
+    const approvedBefore = await contract.methods.isApprovedForAll(owner, operator).call();
+    expect(approvedBefore).to.be.equal(false);
+
+    {
+      const result = await contract.methods.setApprovalForAll(operator, true).send({from: owner});
+
+      expect(result.events.ApprovalForAll).to.be.like({
+        address: collectionAddress,
+        event: 'ApprovalForAll',
+        returnValues: {
+          owner,
+          operator,
+          approved: true,
+        },
+      });
+
+      const approvedAfter = await contract.methods.isApprovedForAll(owner, operator).call();
+      expect(approvedAfter).to.be.equal(true);
+    }
+
+    {
+      const result = await contract.methods.setApprovalForAll(operator, false).send({from: owner});
+
+      expect(result.events.ApprovalForAll).to.be.like({
+        address: collectionAddress,
+        event: 'ApprovalForAll',
+        returnValues: {
+          owner,
+          operator,
+          approved: false,
+        },
+      });
+
+      const approvedAfter = await contract.methods.isApprovedForAll(owner, operator).call();
+      expect(approvedAfter).to.be.equal(false);
+    }
+  });
+
+  itEth('Can perform burn with ApprovalForAll', async ({helper}) => {
+    const collection = await helper.rft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const operator = await helper.eth.createAccountWithBalance(donor, 100n);
+
+    const token = await collection.mintToken(minter, 100n, {Ethereum: owner});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'rft');
+
+    {
+      await contract.methods.setApprovalForAll(operator, true).send({from: owner});
+      const ownerCross = helper.ethCrossAccount.fromAddress(owner);
+      const result = await contract.methods.burnFromCross(ownerCross, token.tokenId).send({from: operator});
+      const events = result.events.Transfer;
+
+      expect(events).to.be.like({
+        address,
+        event: 'Transfer',
+        returnValues: {
+          from: owner,
+          to: '0x0000000000000000000000000000000000000000',
+          tokenId: token.tokenId.toString(),
+        },
+      });
+    }
+  });
+
+  itEth('Can perform burn with approve and approvalForAll', async ({helper}) => {
+    const collection = await helper.rft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const operator = await helper.eth.createAccountWithBalance(donor, 100n);
+
+    const token = await collection.mintToken(minter, 100n, {Ethereum: owner});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'rft');
+
+    const rftToken = helper.ethNativeContract.rftTokenById(token.collectionId, token.tokenId, owner);
+
+    {
+      await rftToken.methods.approve(operator, 15n).send({from: owner});
+      await contract.methods.setApprovalForAll(operator, true).send({from: owner});
+      await rftToken.methods.burnFrom(owner, 10n).send({from: operator});
+      const allowance = await rftToken.methods.allowance(owner, operator).call();
+      expect(allowance).to.be.equal('5');
+    }
+  });
+  
+  itEth('Can perform transfer with ApprovalForAll', async ({helper}) => {
+    const collection = await helper.rft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const operator = await helper.eth.createAccountWithBalance(donor);
+    const receiver = charlie;
+
+    const token = await collection.mintToken(minter, 100n, {Ethereum: owner});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'rft');
+
+    {
+      await contract.methods.setApprovalForAll(operator, true).send({from: owner});
+      const ownerCross = helper.ethCrossAccount.fromAddress(owner);
+      const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);
+      const result = await contract.methods.transferFromCross(ownerCross, recieverCross, token.tokenId).send({from: operator});
+      const event = result.events.Transfer;
+      expect(event).to.be.like({
+        address: helper.ethAddress.fromCollectionId(collection.collectionId),
+        event: 'Transfer',
+        returnValues: {
+          from: owner,
+          to: helper.address.substrateToEth(receiver.address),
+          tokenId: token.tokenId.toString(),
+        },
+      });
+    }
+
+    expect(await token.getTop10Owners()).to.be.like([{Substrate: receiver.address}]);
+  });
+
   itEth('Can perform burn()', async ({helper}) => {
     const caller = await helper.eth.createAccountWithBalance(donor);
     const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Burny', '6', '6');
@@ -594,3 +724,52 @@
     expect(symbol).to.equal('12');
   });
 });
+
+describe('Negative tests', () => {
+  let donor: IKeyringPair;
+  let minter: IKeyringPair;
+  let alice: IKeyringPair;
+
+  before(async function() {
+    await usingEthPlaygrounds(async (helper, privateKey) => {
+      donor = await privateKey({filename: __filename});
+      [minter, alice] = await helper.arrange.createAccounts([100n, 100n], donor);
+    });
+  });
+
+  itEth('[negative] Cant perform burn without approval', async ({helper}) => {
+    const collection = await helper.rft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+
+    const owner = await helper.eth.createAccountWithBalance(donor, 100n);
+    const spender = await helper.eth.createAccountWithBalance(donor, 100n);
+
+    const token = await collection.mintToken(minter, 100n, {Ethereum: owner});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'rft');
+
+    {
+      const ownerCross = helper.ethCrossAccount.fromAddress(owner);
+      await expect(contract.methods.burnFromCross(ownerCross, token.tokenId).send({from: spender})).to.be.rejected;
+    }
+  });
+
+  itEth('[negative] Cant perform transfer without approval', async ({helper}) => {
+    const collection = await helper.rft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});
+    const owner = await helper.eth.createAccountWithBalance(donor, 100n);
+    const receiver = alice;
+
+    const spender = await helper.eth.createAccountWithBalance(donor, 100n);
+
+    const token = await collection.mintToken(minter, 100n, {Ethereum: owner});
+
+    const address = helper.ethAddress.fromCollectionId(collection.collectionId);
+    const contract = helper.ethNativeContract.collection(address, 'rft');
+
+    {
+      const ownerCross = helper.ethCrossAccount.fromAddress(owner);
+      const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);
+      await expect(contract.methods.transferFromCross(ownerCross, recieverCross, token.tokenId).send({from: spender})).to.be.rejected;
+    }
+  });
+});
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -386,6 +386,10 @@
        **/
       NotFungibleDataUsedToMintFungibleCollectionToken: AugmentedError<ApiType>;
       /**
+       * Setting approval for all is not allowed.
+       **/
+      SettingApprovalForAllNotAllowed: AugmentedError<ApiType>;
+      /**
        * Setting item properties is not allowed.
        **/
       SettingPropertiesNotAllowed: 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
@@ -107,6 +107,10 @@
        **/
       Approved: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
       /**
+       * Amount pieces of token owned by `sender` was approved for `spender`.
+       **/
+      ApprovedForAll: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, bool]>;
+      /**
        * New collection was created
        **/
       CollectionCreated: AugmentedEvent<ApiType, [u32, u8, AccountId32]>;
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -442,6 +442,10 @@
        **/
       tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
       /**
+       * Operator set by a wallet owner that could perform certain transactions on all tokens in the wallet.
+       **/
+      walletOperator: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<Option<bool>>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;
+      /**
        * Generic query
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
@@ -645,6 +649,10 @@
        **/
       totalSupply: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
       /**
+       * Operator set by a wallet owner that could perform certain transactions on all tokens in the wallet.
+       **/
+      walletOperator: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<Option<bool>>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;
+      /**
        * Generic query
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
modifiedtests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-rpc.ts
+++ b/tests/src/interfaces/augment-api-rpc.ts
@@ -720,6 +720,10 @@
        **/
       effectiveCollectionLimits: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<UpDataStructsCollectionLimits>>>;
       /**
+       * Tells whether an operator is approved by a given owner.
+       **/
+      isApprovedForAll: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, operator: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<bool>>>;
+      /**
        * Get the last token ID created in a collection
        **/
       lastTokenId: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -1545,6 +1545,18 @@
        **/
       repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;
       /**
+       * Sets or unsets the approval of a given operator.
+       * 
+       * An operator is allowed to transfer all tokens of the sender on their behalf.
+       * 
+       * # Arguments
+       * 
+       * * `owner`: Token owner
+       * * `operator`: Operator
+       * * `approve`: Is operator enabled or disabled
+       **/
+      setApprovalForAll: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, operator: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, bool]>;
+      /**
        * Set specific limits of a collection. Empty, or None fields mean chain default.
        * 
        * # Permissions
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -1286,6 +1286,8 @@
   readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
   readonly isApproved: boolean;
   readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
+  readonly isApprovedForAll: boolean;
+  readonly asApprovedForAll: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, bool]>;
   readonly isCollectionPropertySet: boolean;
   readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;
   readonly isCollectionPropertyDeleted: boolean;
@@ -1296,7 +1298,7 @@
   readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;
   readonly isPropertyPermissionSet: boolean;
   readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;
-  readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
+  readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'ApprovedForAll' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
 }
 
 /** @name PalletConfigurationCall */
@@ -1603,7 +1605,8 @@
   readonly isFungibleItemsDontHaveData: boolean;
   readonly isFungibleDisallowsNesting: boolean;
   readonly isSettingPropertiesNotAllowed: boolean;
-  readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
+  readonly isSettingApprovalForAllNotAllowed: boolean;
+  readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed' | 'SettingApprovalForAllNotAllowed';
 }
 
 /** @name PalletInflationCall */
@@ -2309,7 +2312,13 @@
     readonly tokenId: u32;
     readonly amount: u128;
   } & Struct;
-  readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';
+  readonly isSetApprovalForAll: boolean;
+  readonly asSetApprovalForAll: {
+    readonly collectionId: u32;
+    readonly operator: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly approve: bool;
+  } & Struct;
+  readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetApprovalForAll';
 }
 
 /** @name PalletUniqueError */
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
before · tests/src/interfaces/lookup.ts
1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34/* eslint-disable sort-keys */56export default {7  /**8   * Lookup3: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>9   **/10  FrameSystemAccountInfo: {11    nonce: 'u32',12    consumers: 'u32',13    providers: 'u32',14    sufficients: 'u32',15    data: 'PalletBalancesAccountData'16  },17  /**18   * Lookup5: pallet_balances::AccountData<Balance>19   **/20  PalletBalancesAccountData: {21    free: 'u128',22    reserved: 'u128',23    miscFrozen: 'u128',24    feeFrozen: 'u128'25  },26  /**27   * Lookup7: frame_support::dispatch::PerDispatchClass<sp_weights::weight_v2::Weight>28   **/29  FrameSupportDispatchPerDispatchClassWeight: {30    normal: 'Weight',31    operational: 'Weight',32    mandatory: 'Weight'33  },34  /**35   * Lookup12: sp_runtime::generic::digest::Digest36   **/37  SpRuntimeDigest: {38    logs: 'Vec<SpRuntimeDigestDigestItem>'39  },40  /**41   * Lookup14: sp_runtime::generic::digest::DigestItem42   **/43  SpRuntimeDigestDigestItem: {44    _enum: {45      Other: 'Bytes',46      __Unused1: 'Null',47      __Unused2: 'Null',48      __Unused3: 'Null',49      Consensus: '([u8;4],Bytes)',50      Seal: '([u8;4],Bytes)',51      PreRuntime: '([u8;4],Bytes)',52      __Unused7: 'Null',53      RuntimeEnvironmentUpdated: 'Null'54    }55  },56  /**57   * Lookup17: frame_system::EventRecord<opal_runtime::RuntimeEvent, primitive_types::H256>58   **/59  FrameSystemEventRecord: {60    phase: 'FrameSystemPhase',61    event: 'Event',62    topics: 'Vec<H256>'63  },64  /**65   * Lookup19: frame_system::pallet::Event<T>66   **/67  FrameSystemEvent: {68    _enum: {69      ExtrinsicSuccess: {70        dispatchInfo: 'FrameSupportDispatchDispatchInfo',71      },72      ExtrinsicFailed: {73        dispatchError: 'SpRuntimeDispatchError',74        dispatchInfo: 'FrameSupportDispatchDispatchInfo',75      },76      CodeUpdated: 'Null',77      NewAccount: {78        account: 'AccountId32',79      },80      KilledAccount: {81        account: 'AccountId32',82      },83      Remarked: {84        _alias: {85          hash_: 'hash',86        },87        sender: 'AccountId32',88        hash_: 'H256'89      }90    }91  },92  /**93   * Lookup20: frame_support::dispatch::DispatchInfo94   **/95  FrameSupportDispatchDispatchInfo: {96    weight: 'Weight',97    class: 'FrameSupportDispatchDispatchClass',98    paysFee: 'FrameSupportDispatchPays'99  },100  /**101   * Lookup21: frame_support::dispatch::DispatchClass102   **/103  FrameSupportDispatchDispatchClass: {104    _enum: ['Normal', 'Operational', 'Mandatory']105  },106  /**107   * Lookup22: frame_support::dispatch::Pays108   **/109  FrameSupportDispatchPays: {110    _enum: ['Yes', 'No']111  },112  /**113   * Lookup23: sp_runtime::DispatchError114   **/115  SpRuntimeDispatchError: {116    _enum: {117      Other: 'Null',118      CannotLookup: 'Null',119      BadOrigin: 'Null',120      Module: 'SpRuntimeModuleError',121      ConsumerRemaining: 'Null',122      NoProviders: 'Null',123      TooManyConsumers: 'Null',124      Token: 'SpRuntimeTokenError',125      Arithmetic: 'SpRuntimeArithmeticError',126      Transactional: 'SpRuntimeTransactionalError'127    }128  },129  /**130   * Lookup24: sp_runtime::ModuleError131   **/132  SpRuntimeModuleError: {133    index: 'u8',134    error: '[u8;4]'135  },136  /**137   * Lookup25: sp_runtime::TokenError138   **/139  SpRuntimeTokenError: {140    _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']141  },142  /**143   * Lookup26: sp_runtime::ArithmeticError144   **/145  SpRuntimeArithmeticError: {146    _enum: ['Underflow', 'Overflow', 'DivisionByZero']147  },148  /**149   * Lookup27: sp_runtime::TransactionalError150   **/151  SpRuntimeTransactionalError: {152    _enum: ['LimitReached', 'NoLayer']153  },154  /**155   * Lookup28: cumulus_pallet_parachain_system::pallet::Event<T>156   **/157  CumulusPalletParachainSystemEvent: {158    _enum: {159      ValidationFunctionStored: 'Null',160      ValidationFunctionApplied: {161        relayChainBlockNum: 'u32',162      },163      ValidationFunctionDiscarded: 'Null',164      UpgradeAuthorized: {165        codeHash: 'H256',166      },167      DownwardMessagesReceived: {168        count: 'u32',169      },170      DownwardMessagesProcessed: {171        weightUsed: 'Weight',172        dmqHead: 'H256'173      }174    }175  },176  /**177   * Lookup29: pallet_balances::pallet::Event<T, I>178   **/179  PalletBalancesEvent: {180    _enum: {181      Endowed: {182        account: 'AccountId32',183        freeBalance: 'u128',184      },185      DustLost: {186        account: 'AccountId32',187        amount: 'u128',188      },189      Transfer: {190        from: 'AccountId32',191        to: 'AccountId32',192        amount: 'u128',193      },194      BalanceSet: {195        who: 'AccountId32',196        free: 'u128',197        reserved: 'u128',198      },199      Reserved: {200        who: 'AccountId32',201        amount: 'u128',202      },203      Unreserved: {204        who: 'AccountId32',205        amount: 'u128',206      },207      ReserveRepatriated: {208        from: 'AccountId32',209        to: 'AccountId32',210        amount: 'u128',211        destinationStatus: 'FrameSupportTokensMiscBalanceStatus',212      },213      Deposit: {214        who: 'AccountId32',215        amount: 'u128',216      },217      Withdraw: {218        who: 'AccountId32',219        amount: 'u128',220      },221      Slashed: {222        who: 'AccountId32',223        amount: 'u128'224      }225    }226  },227  /**228   * Lookup30: frame_support::traits::tokens::misc::BalanceStatus229   **/230  FrameSupportTokensMiscBalanceStatus: {231    _enum: ['Free', 'Reserved']232  },233  /**234   * Lookup31: pallet_transaction_payment::pallet::Event<T>235   **/236  PalletTransactionPaymentEvent: {237    _enum: {238      TransactionFeePaid: {239        who: 'AccountId32',240        actualFee: 'u128',241        tip: 'u128'242      }243    }244  },245  /**246   * Lookup32: pallet_treasury::pallet::Event<T, I>247   **/248  PalletTreasuryEvent: {249    _enum: {250      Proposed: {251        proposalIndex: 'u32',252      },253      Spending: {254        budgetRemaining: 'u128',255      },256      Awarded: {257        proposalIndex: 'u32',258        award: 'u128',259        account: 'AccountId32',260      },261      Rejected: {262        proposalIndex: 'u32',263        slashed: 'u128',264      },265      Burnt: {266        burntFunds: 'u128',267      },268      Rollover: {269        rolloverBalance: 'u128',270      },271      Deposit: {272        value: 'u128',273      },274      SpendApproved: {275        proposalIndex: 'u32',276        amount: 'u128',277        beneficiary: 'AccountId32'278      }279    }280  },281  /**282   * Lookup33: pallet_sudo::pallet::Event<T>283   **/284  PalletSudoEvent: {285    _enum: {286      Sudid: {287        sudoResult: 'Result<Null, SpRuntimeDispatchError>',288      },289      KeyChanged: {290        oldSudoer: 'Option<AccountId32>',291      },292      SudoAsDone: {293        sudoResult: 'Result<Null, SpRuntimeDispatchError>'294      }295    }296  },297  /**298   * Lookup37: orml_vesting::module::Event<T>299   **/300  OrmlVestingModuleEvent: {301    _enum: {302      VestingScheduleAdded: {303        from: 'AccountId32',304        to: 'AccountId32',305        vestingSchedule: 'OrmlVestingVestingSchedule',306      },307      Claimed: {308        who: 'AccountId32',309        amount: 'u128',310      },311      VestingSchedulesUpdated: {312        who: 'AccountId32'313      }314    }315  },316  /**317   * Lookup38: orml_vesting::VestingSchedule<BlockNumber, Balance>318   **/319  OrmlVestingVestingSchedule: {320    start: 'u32',321    period: 'u32',322    periodCount: 'u32',323    perPeriod: 'Compact<u128>'324  },325  /**326   * Lookup40: orml_xtokens::module::Event<T>327   **/328  OrmlXtokensModuleEvent: {329    _enum: {330      TransferredMultiAssets: {331        sender: 'AccountId32',332        assets: 'XcmV1MultiassetMultiAssets',333        fee: 'XcmV1MultiAsset',334        dest: 'XcmV1MultiLocation'335      }336    }337  },338  /**339   * Lookup41: xcm::v1::multiasset::MultiAssets340   **/341  XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',342  /**343   * Lookup43: xcm::v1::multiasset::MultiAsset344   **/345  XcmV1MultiAsset: {346    id: 'XcmV1MultiassetAssetId',347    fun: 'XcmV1MultiassetFungibility'348  },349  /**350   * Lookup44: xcm::v1::multiasset::AssetId351   **/352  XcmV1MultiassetAssetId: {353    _enum: {354      Concrete: 'XcmV1MultiLocation',355      Abstract: 'Bytes'356    }357  },358  /**359   * Lookup45: xcm::v1::multilocation::MultiLocation360   **/361  XcmV1MultiLocation: {362    parents: 'u8',363    interior: 'XcmV1MultilocationJunctions'364  },365  /**366   * Lookup46: xcm::v1::multilocation::Junctions367   **/368  XcmV1MultilocationJunctions: {369    _enum: {370      Here: 'Null',371      X1: 'XcmV1Junction',372      X2: '(XcmV1Junction,XcmV1Junction)',373      X3: '(XcmV1Junction,XcmV1Junction,XcmV1Junction)',374      X4: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',375      X5: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',376      X6: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',377      X7: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',378      X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'379    }380  },381  /**382   * Lookup47: xcm::v1::junction::Junction383   **/384  XcmV1Junction: {385    _enum: {386      Parachain: 'Compact<u32>',387      AccountId32: {388        network: 'XcmV0JunctionNetworkId',389        id: '[u8;32]',390      },391      AccountIndex64: {392        network: 'XcmV0JunctionNetworkId',393        index: 'Compact<u64>',394      },395      AccountKey20: {396        network: 'XcmV0JunctionNetworkId',397        key: '[u8;20]',398      },399      PalletInstance: 'u8',400      GeneralIndex: 'Compact<u128>',401      GeneralKey: 'Bytes',402      OnlyChild: 'Null',403      Plurality: {404        id: 'XcmV0JunctionBodyId',405        part: 'XcmV0JunctionBodyPart'406      }407    }408  },409  /**410   * Lookup49: xcm::v0::junction::NetworkId411   **/412  XcmV0JunctionNetworkId: {413    _enum: {414      Any: 'Null',415      Named: 'Bytes',416      Polkadot: 'Null',417      Kusama: 'Null'418    }419  },420  /**421   * Lookup53: xcm::v0::junction::BodyId422   **/423  XcmV0JunctionBodyId: {424    _enum: {425      Unit: 'Null',426      Named: 'Bytes',427      Index: 'Compact<u32>',428      Executive: 'Null',429      Technical: 'Null',430      Legislative: 'Null',431      Judicial: 'Null'432    }433  },434  /**435   * Lookup54: xcm::v0::junction::BodyPart436   **/437  XcmV0JunctionBodyPart: {438    _enum: {439      Voice: 'Null',440      Members: {441        count: 'Compact<u32>',442      },443      Fraction: {444        nom: 'Compact<u32>',445        denom: 'Compact<u32>',446      },447      AtLeastProportion: {448        nom: 'Compact<u32>',449        denom: 'Compact<u32>',450      },451      MoreThanProportion: {452        nom: 'Compact<u32>',453        denom: 'Compact<u32>'454      }455    }456  },457  /**458   * Lookup55: xcm::v1::multiasset::Fungibility459   **/460  XcmV1MultiassetFungibility: {461    _enum: {462      Fungible: 'Compact<u128>',463      NonFungible: 'XcmV1MultiassetAssetInstance'464    }465  },466  /**467   * Lookup56: xcm::v1::multiasset::AssetInstance468   **/469  XcmV1MultiassetAssetInstance: {470    _enum: {471      Undefined: 'Null',472      Index: 'Compact<u128>',473      Array4: '[u8;4]',474      Array8: '[u8;8]',475      Array16: '[u8;16]',476      Array32: '[u8;32]',477      Blob: 'Bytes'478    }479  },480  /**481   * Lookup59: orml_tokens::module::Event<T>482   **/483  OrmlTokensModuleEvent: {484    _enum: {485      Endowed: {486        currencyId: 'PalletForeignAssetsAssetIds',487        who: 'AccountId32',488        amount: 'u128',489      },490      DustLost: {491        currencyId: 'PalletForeignAssetsAssetIds',492        who: 'AccountId32',493        amount: 'u128',494      },495      Transfer: {496        currencyId: 'PalletForeignAssetsAssetIds',497        from: 'AccountId32',498        to: 'AccountId32',499        amount: 'u128',500      },501      Reserved: {502        currencyId: 'PalletForeignAssetsAssetIds',503        who: 'AccountId32',504        amount: 'u128',505      },506      Unreserved: {507        currencyId: 'PalletForeignAssetsAssetIds',508        who: 'AccountId32',509        amount: 'u128',510      },511      ReserveRepatriated: {512        currencyId: 'PalletForeignAssetsAssetIds',513        from: 'AccountId32',514        to: 'AccountId32',515        amount: 'u128',516        status: 'FrameSupportTokensMiscBalanceStatus',517      },518      BalanceSet: {519        currencyId: 'PalletForeignAssetsAssetIds',520        who: 'AccountId32',521        free: 'u128',522        reserved: 'u128',523      },524      TotalIssuanceSet: {525        currencyId: 'PalletForeignAssetsAssetIds',526        amount: 'u128',527      },528      Withdrawn: {529        currencyId: 'PalletForeignAssetsAssetIds',530        who: 'AccountId32',531        amount: 'u128',532      },533      Slashed: {534        currencyId: 'PalletForeignAssetsAssetIds',535        who: 'AccountId32',536        freeAmount: 'u128',537        reservedAmount: 'u128',538      },539      Deposited: {540        currencyId: 'PalletForeignAssetsAssetIds',541        who: 'AccountId32',542        amount: 'u128',543      },544      LockSet: {545        lockId: '[u8;8]',546        currencyId: 'PalletForeignAssetsAssetIds',547        who: 'AccountId32',548        amount: 'u128',549      },550      LockRemoved: {551        lockId: '[u8;8]',552        currencyId: 'PalletForeignAssetsAssetIds',553        who: 'AccountId32'554      }555    }556  },557  /**558   * Lookup60: pallet_foreign_assets::AssetIds559   **/560  PalletForeignAssetsAssetIds: {561    _enum: {562      ForeignAssetId: 'u32',563      NativeAssetId: 'PalletForeignAssetsNativeCurrency'564    }565  },566  /**567   * Lookup61: pallet_foreign_assets::NativeCurrency568   **/569  PalletForeignAssetsNativeCurrency: {570    _enum: ['Here', 'Parent']571  },572  /**573   * Lookup62: cumulus_pallet_xcmp_queue::pallet::Event<T>574   **/575  CumulusPalletXcmpQueueEvent: {576    _enum: {577      Success: {578        messageHash: 'Option<H256>',579        weight: 'Weight',580      },581      Fail: {582        messageHash: 'Option<H256>',583        error: 'XcmV2TraitsError',584        weight: 'Weight',585      },586      BadVersion: {587        messageHash: 'Option<H256>',588      },589      BadFormat: {590        messageHash: 'Option<H256>',591      },592      UpwardMessageSent: {593        messageHash: 'Option<H256>',594      },595      XcmpMessageSent: {596        messageHash: 'Option<H256>',597      },598      OverweightEnqueued: {599        sender: 'u32',600        sentAt: 'u32',601        index: 'u64',602        required: 'Weight',603      },604      OverweightServiced: {605        index: 'u64',606        used: 'Weight'607      }608    }609  },610  /**611   * Lookup64: xcm::v2::traits::Error612   **/613  XcmV2TraitsError: {614    _enum: {615      Overflow: 'Null',616      Unimplemented: 'Null',617      UntrustedReserveLocation: 'Null',618      UntrustedTeleportLocation: 'Null',619      MultiLocationFull: 'Null',620      MultiLocationNotInvertible: 'Null',621      BadOrigin: 'Null',622      InvalidLocation: 'Null',623      AssetNotFound: 'Null',624      FailedToTransactAsset: 'Null',625      NotWithdrawable: 'Null',626      LocationCannotHold: 'Null',627      ExceedsMaxMessageSize: 'Null',628      DestinationUnsupported: 'Null',629      Transport: 'Null',630      Unroutable: 'Null',631      UnknownClaim: 'Null',632      FailedToDecode: 'Null',633      MaxWeightInvalid: 'Null',634      NotHoldingFees: 'Null',635      TooExpensive: 'Null',636      Trap: 'u64',637      UnhandledXcmVersion: 'Null',638      WeightLimitReached: 'u64',639      Barrier: 'Null',640      WeightNotComputable: 'Null'641    }642  },643  /**644   * Lookup66: pallet_xcm::pallet::Event<T>645   **/646  PalletXcmEvent: {647    _enum: {648      Attempted: 'XcmV2TraitsOutcome',649      Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',650      UnexpectedResponse: '(XcmV1MultiLocation,u64)',651      ResponseReady: '(u64,XcmV2Response)',652      Notified: '(u64,u8,u8)',653      NotifyOverweight: '(u64,u8,u8,Weight,Weight)',654      NotifyDispatchError: '(u64,u8,u8)',655      NotifyDecodeFailed: '(u64,u8,u8)',656      InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',657      InvalidResponderVersion: '(XcmV1MultiLocation,u64)',658      ResponseTaken: 'u64',659      AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',660      VersionChangeNotified: '(XcmV1MultiLocation,u32)',661      SupportedVersionChanged: '(XcmV1MultiLocation,u32)',662      NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',663      NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'664    }665  },666  /**667   * Lookup67: xcm::v2::traits::Outcome668   **/669  XcmV2TraitsOutcome: {670    _enum: {671      Complete: 'u64',672      Incomplete: '(u64,XcmV2TraitsError)',673      Error: 'XcmV2TraitsError'674    }675  },676  /**677   * Lookup68: xcm::v2::Xcm<RuntimeCall>678   **/679  XcmV2Xcm: 'Vec<XcmV2Instruction>',680  /**681   * Lookup70: xcm::v2::Instruction<RuntimeCall>682   **/683  XcmV2Instruction: {684    _enum: {685      WithdrawAsset: 'XcmV1MultiassetMultiAssets',686      ReserveAssetDeposited: 'XcmV1MultiassetMultiAssets',687      ReceiveTeleportedAsset: 'XcmV1MultiassetMultiAssets',688      QueryResponse: {689        queryId: 'Compact<u64>',690        response: 'XcmV2Response',691        maxWeight: 'Compact<u64>',692      },693      TransferAsset: {694        assets: 'XcmV1MultiassetMultiAssets',695        beneficiary: 'XcmV1MultiLocation',696      },697      TransferReserveAsset: {698        assets: 'XcmV1MultiassetMultiAssets',699        dest: 'XcmV1MultiLocation',700        xcm: 'XcmV2Xcm',701      },702      Transact: {703        originType: 'XcmV0OriginKind',704        requireWeightAtMost: 'Compact<u64>',705        call: 'XcmDoubleEncoded',706      },707      HrmpNewChannelOpenRequest: {708        sender: 'Compact<u32>',709        maxMessageSize: 'Compact<u32>',710        maxCapacity: 'Compact<u32>',711      },712      HrmpChannelAccepted: {713        recipient: 'Compact<u32>',714      },715      HrmpChannelClosing: {716        initiator: 'Compact<u32>',717        sender: 'Compact<u32>',718        recipient: 'Compact<u32>',719      },720      ClearOrigin: 'Null',721      DescendOrigin: 'XcmV1MultilocationJunctions',722      ReportError: {723        queryId: 'Compact<u64>',724        dest: 'XcmV1MultiLocation',725        maxResponseWeight: 'Compact<u64>',726      },727      DepositAsset: {728        assets: 'XcmV1MultiassetMultiAssetFilter',729        maxAssets: 'Compact<u32>',730        beneficiary: 'XcmV1MultiLocation',731      },732      DepositReserveAsset: {733        assets: 'XcmV1MultiassetMultiAssetFilter',734        maxAssets: 'Compact<u32>',735        dest: 'XcmV1MultiLocation',736        xcm: 'XcmV2Xcm',737      },738      ExchangeAsset: {739        give: 'XcmV1MultiassetMultiAssetFilter',740        receive: 'XcmV1MultiassetMultiAssets',741      },742      InitiateReserveWithdraw: {743        assets: 'XcmV1MultiassetMultiAssetFilter',744        reserve: 'XcmV1MultiLocation',745        xcm: 'XcmV2Xcm',746      },747      InitiateTeleport: {748        assets: 'XcmV1MultiassetMultiAssetFilter',749        dest: 'XcmV1MultiLocation',750        xcm: 'XcmV2Xcm',751      },752      QueryHolding: {753        queryId: 'Compact<u64>',754        dest: 'XcmV1MultiLocation',755        assets: 'XcmV1MultiassetMultiAssetFilter',756        maxResponseWeight: 'Compact<u64>',757      },758      BuyExecution: {759        fees: 'XcmV1MultiAsset',760        weightLimit: 'XcmV2WeightLimit',761      },762      RefundSurplus: 'Null',763      SetErrorHandler: 'XcmV2Xcm',764      SetAppendix: 'XcmV2Xcm',765      ClearError: 'Null',766      ClaimAsset: {767        assets: 'XcmV1MultiassetMultiAssets',768        ticket: 'XcmV1MultiLocation',769      },770      Trap: 'Compact<u64>',771      SubscribeVersion: {772        queryId: 'Compact<u64>',773        maxResponseWeight: 'Compact<u64>',774      },775      UnsubscribeVersion: 'Null'776    }777  },778  /**779   * Lookup71: xcm::v2::Response780   **/781  XcmV2Response: {782    _enum: {783      Null: 'Null',784      Assets: 'XcmV1MultiassetMultiAssets',785      ExecutionResult: 'Option<(u32,XcmV2TraitsError)>',786      Version: 'u32'787    }788  },789  /**790   * Lookup74: xcm::v0::OriginKind791   **/792  XcmV0OriginKind: {793    _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']794  },795  /**796   * Lookup75: xcm::double_encoded::DoubleEncoded<T>797   **/798  XcmDoubleEncoded: {799    encoded: 'Bytes'800  },801  /**802   * Lookup76: xcm::v1::multiasset::MultiAssetFilter803   **/804  XcmV1MultiassetMultiAssetFilter: {805    _enum: {806      Definite: 'XcmV1MultiassetMultiAssets',807      Wild: 'XcmV1MultiassetWildMultiAsset'808    }809  },810  /**811   * Lookup77: xcm::v1::multiasset::WildMultiAsset812   **/813  XcmV1MultiassetWildMultiAsset: {814    _enum: {815      All: 'Null',816      AllOf: {817        id: 'XcmV1MultiassetAssetId',818        fun: 'XcmV1MultiassetWildFungibility'819      }820    }821  },822  /**823   * Lookup78: xcm::v1::multiasset::WildFungibility824   **/825  XcmV1MultiassetWildFungibility: {826    _enum: ['Fungible', 'NonFungible']827  },828  /**829   * Lookup79: xcm::v2::WeightLimit830   **/831  XcmV2WeightLimit: {832    _enum: {833      Unlimited: 'Null',834      Limited: 'Compact<u64>'835    }836  },837  /**838   * Lookup81: xcm::VersionedMultiAssets839   **/840  XcmVersionedMultiAssets: {841    _enum: {842      V0: 'Vec<XcmV0MultiAsset>',843      V1: 'XcmV1MultiassetMultiAssets'844    }845  },846  /**847   * Lookup83: xcm::v0::multi_asset::MultiAsset848   **/849  XcmV0MultiAsset: {850    _enum: {851      None: 'Null',852      All: 'Null',853      AllFungible: 'Null',854      AllNonFungible: 'Null',855      AllAbstractFungible: {856        id: 'Bytes',857      },858      AllAbstractNonFungible: {859        class: 'Bytes',860      },861      AllConcreteFungible: {862        id: 'XcmV0MultiLocation',863      },864      AllConcreteNonFungible: {865        class: 'XcmV0MultiLocation',866      },867      AbstractFungible: {868        id: 'Bytes',869        amount: 'Compact<u128>',870      },871      AbstractNonFungible: {872        class: 'Bytes',873        instance: 'XcmV1MultiassetAssetInstance',874      },875      ConcreteFungible: {876        id: 'XcmV0MultiLocation',877        amount: 'Compact<u128>',878      },879      ConcreteNonFungible: {880        class: 'XcmV0MultiLocation',881        instance: 'XcmV1MultiassetAssetInstance'882      }883    }884  },885  /**886   * Lookup84: xcm::v0::multi_location::MultiLocation887   **/888  XcmV0MultiLocation: {889    _enum: {890      Null: 'Null',891      X1: 'XcmV0Junction',892      X2: '(XcmV0Junction,XcmV0Junction)',893      X3: '(XcmV0Junction,XcmV0Junction,XcmV0Junction)',894      X4: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',895      X5: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',896      X6: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',897      X7: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',898      X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'899    }900  },901  /**902   * Lookup85: xcm::v0::junction::Junction903   **/904  XcmV0Junction: {905    _enum: {906      Parent: 'Null',907      Parachain: 'Compact<u32>',908      AccountId32: {909        network: 'XcmV0JunctionNetworkId',910        id: '[u8;32]',911      },912      AccountIndex64: {913        network: 'XcmV0JunctionNetworkId',914        index: 'Compact<u64>',915      },916      AccountKey20: {917        network: 'XcmV0JunctionNetworkId',918        key: '[u8;20]',919      },920      PalletInstance: 'u8',921      GeneralIndex: 'Compact<u128>',922      GeneralKey: 'Bytes',923      OnlyChild: 'Null',924      Plurality: {925        id: 'XcmV0JunctionBodyId',926        part: 'XcmV0JunctionBodyPart'927      }928    }929  },930  /**931   * Lookup86: xcm::VersionedMultiLocation932   **/933  XcmVersionedMultiLocation: {934    _enum: {935      V0: 'XcmV0MultiLocation',936      V1: 'XcmV1MultiLocation'937    }938  },939  /**940   * Lookup87: cumulus_pallet_xcm::pallet::Event<T>941   **/942  CumulusPalletXcmEvent: {943    _enum: {944      InvalidFormat: '[u8;8]',945      UnsupportedVersion: '[u8;8]',946      ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'947    }948  },949  /**950   * Lookup88: cumulus_pallet_dmp_queue::pallet::Event<T>951   **/952  CumulusPalletDmpQueueEvent: {953    _enum: {954      InvalidFormat: {955        messageId: '[u8;32]',956      },957      UnsupportedVersion: {958        messageId: '[u8;32]',959      },960      ExecutedDownward: {961        messageId: '[u8;32]',962        outcome: 'XcmV2TraitsOutcome',963      },964      WeightExhausted: {965        messageId: '[u8;32]',966        remainingWeight: 'Weight',967        requiredWeight: 'Weight',968      },969      OverweightEnqueued: {970        messageId: '[u8;32]',971        overweightIndex: 'u64',972        requiredWeight: 'Weight',973      },974      OverweightServiced: {975        overweightIndex: 'u64',976        weightUsed: 'Weight'977      }978    }979  },980  /**981   * Lookup89: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>982   **/983  PalletUniqueRawEvent: {984    _enum: {985      CollectionSponsorRemoved: 'u32',986      CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',987      CollectionOwnedChanged: '(u32,AccountId32)',988      CollectionSponsorSet: '(u32,AccountId32)',989      SponsorshipConfirmed: '(u32,AccountId32)',990      CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',991      AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',992      AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',993      CollectionLimitSet: 'u32',994      CollectionPermissionSet: 'u32'995    }996  },997  /**998   * Lookup90: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>999   **/1000  PalletEvmAccountBasicCrossAccountIdRepr: {1001    _enum: {1002      Substrate: 'AccountId32',1003      Ethereum: 'H160'1004    }1005  },1006  /**1007   * Lookup93: pallet_unique_scheduler_v2::pallet::Event<T>1008   **/1009  PalletUniqueSchedulerV2Event: {1010    _enum: {1011      Scheduled: {1012        when: 'u32',1013        index: 'u32',1014      },1015      Canceled: {1016        when: 'u32',1017        index: 'u32',1018      },1019      Dispatched: {1020        task: '(u32,u32)',1021        id: 'Option<[u8;32]>',1022        result: 'Result<Null, SpRuntimeDispatchError>',1023      },1024      PriorityChanged: {1025        task: '(u32,u32)',1026        priority: 'u8',1027      },1028      CallUnavailable: {1029        task: '(u32,u32)',1030        id: 'Option<[u8;32]>',1031      },1032      PermanentlyOverweight: {1033        task: '(u32,u32)',1034        id: 'Option<[u8;32]>'1035      }1036    }1037  },1038  /**1039   * Lookup96: pallet_common::pallet::Event<T>1040   **/1041  PalletCommonEvent: {1042    _enum: {1043      CollectionCreated: '(u32,u8,AccountId32)',1044      CollectionDestroyed: 'u32',1045      ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1046      ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1047      Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1048      Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1049      CollectionPropertySet: '(u32,Bytes)',1050      CollectionPropertyDeleted: '(u32,Bytes)',1051      TokenPropertySet: '(u32,u32,Bytes)',1052      TokenPropertyDeleted: '(u32,u32,Bytes)',1053      PropertyPermissionSet: '(u32,Bytes)'1054    }1055  },1056  /**1057   * Lookup99: pallet_structure::pallet::Event<T>1058   **/1059  PalletStructureEvent: {1060    _enum: {1061      Executed: 'Result<Null, SpRuntimeDispatchError>'1062    }1063  },1064  /**1065   * Lookup100: pallet_rmrk_core::pallet::Event<T>1066   **/1067  PalletRmrkCoreEvent: {1068    _enum: {1069      CollectionCreated: {1070        issuer: 'AccountId32',1071        collectionId: 'u32',1072      },1073      CollectionDestroyed: {1074        issuer: 'AccountId32',1075        collectionId: 'u32',1076      },1077      IssuerChanged: {1078        oldIssuer: 'AccountId32',1079        newIssuer: 'AccountId32',1080        collectionId: 'u32',1081      },1082      CollectionLocked: {1083        issuer: 'AccountId32',1084        collectionId: 'u32',1085      },1086      NftMinted: {1087        owner: 'AccountId32',1088        collectionId: 'u32',1089        nftId: 'u32',1090      },1091      NFTBurned: {1092        owner: 'AccountId32',1093        nftId: 'u32',1094      },1095      NFTSent: {1096        sender: 'AccountId32',1097        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1098        collectionId: 'u32',1099        nftId: 'u32',1100        approvalRequired: 'bool',1101      },1102      NFTAccepted: {1103        sender: 'AccountId32',1104        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1105        collectionId: 'u32',1106        nftId: 'u32',1107      },1108      NFTRejected: {1109        sender: 'AccountId32',1110        collectionId: 'u32',1111        nftId: 'u32',1112      },1113      PropertySet: {1114        collectionId: 'u32',1115        maybeNftId: 'Option<u32>',1116        key: 'Bytes',1117        value: 'Bytes',1118      },1119      ResourceAdded: {1120        nftId: 'u32',1121        resourceId: 'u32',1122      },1123      ResourceRemoval: {1124        nftId: 'u32',1125        resourceId: 'u32',1126      },1127      ResourceAccepted: {1128        nftId: 'u32',1129        resourceId: 'u32',1130      },1131      ResourceRemovalAccepted: {1132        nftId: 'u32',1133        resourceId: 'u32',1134      },1135      PrioritySet: {1136        collectionId: 'u32',1137        nftId: 'u32'1138      }1139    }1140  },1141  /**1142   * Lookup101: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1143   **/1144  RmrkTraitsNftAccountIdOrCollectionNftTuple: {1145    _enum: {1146      AccountId: 'AccountId32',1147      CollectionAndNftTuple: '(u32,u32)'1148    }1149  },1150  /**1151   * Lookup106: pallet_rmrk_equip::pallet::Event<T>1152   **/1153  PalletRmrkEquipEvent: {1154    _enum: {1155      BaseCreated: {1156        issuer: 'AccountId32',1157        baseId: 'u32',1158      },1159      EquippablesUpdated: {1160        baseId: 'u32',1161        slotId: 'u32'1162      }1163    }1164  },1165  /**1166   * Lookup107: pallet_app_promotion::pallet::Event<T>1167   **/1168  PalletAppPromotionEvent: {1169    _enum: {1170      StakingRecalculation: '(AccountId32,u128,u128)',1171      Stake: '(AccountId32,u128)',1172      Unstake: '(AccountId32,u128)',1173      SetAdmin: 'AccountId32'1174    }1175  },1176  /**1177   * Lookup108: pallet_foreign_assets::module::Event<T>1178   **/1179  PalletForeignAssetsModuleEvent: {1180    _enum: {1181      ForeignAssetRegistered: {1182        assetId: 'u32',1183        assetAddress: 'XcmV1MultiLocation',1184        metadata: 'PalletForeignAssetsModuleAssetMetadata',1185      },1186      ForeignAssetUpdated: {1187        assetId: 'u32',1188        assetAddress: 'XcmV1MultiLocation',1189        metadata: 'PalletForeignAssetsModuleAssetMetadata',1190      },1191      AssetRegistered: {1192        assetId: 'PalletForeignAssetsAssetIds',1193        metadata: 'PalletForeignAssetsModuleAssetMetadata',1194      },1195      AssetUpdated: {1196        assetId: 'PalletForeignAssetsAssetIds',1197        metadata: 'PalletForeignAssetsModuleAssetMetadata'1198      }1199    }1200  },1201  /**1202   * Lookup109: pallet_foreign_assets::module::AssetMetadata<Balance>1203   **/1204  PalletForeignAssetsModuleAssetMetadata: {1205    name: 'Bytes',1206    symbol: 'Bytes',1207    decimals: 'u8',1208    minimalBalance: 'u128'1209  },1210  /**1211   * Lookup110: pallet_evm::pallet::Event<T>1212   **/1213  PalletEvmEvent: {1214    _enum: {1215      Log: {1216        log: 'EthereumLog',1217      },1218      Created: {1219        address: 'H160',1220      },1221      CreatedFailed: {1222        address: 'H160',1223      },1224      Executed: {1225        address: 'H160',1226      },1227      ExecutedFailed: {1228        address: 'H160'1229      }1230    }1231  },1232  /**1233   * Lookup111: ethereum::log::Log1234   **/1235  EthereumLog: {1236    address: 'H160',1237    topics: 'Vec<H256>',1238    data: 'Bytes'1239  },1240  /**1241   * Lookup113: pallet_ethereum::pallet::Event1242   **/1243  PalletEthereumEvent: {1244    _enum: {1245      Executed: {1246        from: 'H160',1247        to: 'H160',1248        transactionHash: 'H256',1249        exitReason: 'EvmCoreErrorExitReason'1250      }1251    }1252  },1253  /**1254   * Lookup114: evm_core::error::ExitReason1255   **/1256  EvmCoreErrorExitReason: {1257    _enum: {1258      Succeed: 'EvmCoreErrorExitSucceed',1259      Error: 'EvmCoreErrorExitError',1260      Revert: 'EvmCoreErrorExitRevert',1261      Fatal: 'EvmCoreErrorExitFatal'1262    }1263  },1264  /**1265   * Lookup115: evm_core::error::ExitSucceed1266   **/1267  EvmCoreErrorExitSucceed: {1268    _enum: ['Stopped', 'Returned', 'Suicided']1269  },1270  /**1271   * Lookup116: evm_core::error::ExitError1272   **/1273  EvmCoreErrorExitError: {1274    _enum: {1275      StackUnderflow: 'Null',1276      StackOverflow: 'Null',1277      InvalidJump: 'Null',1278      InvalidRange: 'Null',1279      DesignatedInvalid: 'Null',1280      CallTooDeep: 'Null',1281      CreateCollision: 'Null',1282      CreateContractLimit: 'Null',1283      OutOfOffset: 'Null',1284      OutOfGas: 'Null',1285      OutOfFund: 'Null',1286      PCUnderflow: 'Null',1287      CreateEmpty: 'Null',1288      Other: 'Text',1289      InvalidCode: 'Null'1290    }1291  },1292  /**1293   * Lookup119: evm_core::error::ExitRevert1294   **/1295  EvmCoreErrorExitRevert: {1296    _enum: ['Reverted']1297  },1298  /**1299   * Lookup120: evm_core::error::ExitFatal1300   **/1301  EvmCoreErrorExitFatal: {1302    _enum: {1303      NotSupported: 'Null',1304      UnhandledInterrupt: 'Null',1305      CallErrorAsFatal: 'EvmCoreErrorExitError',1306      Other: 'Text'1307    }1308  },1309  /**1310   * Lookup121: pallet_evm_contract_helpers::pallet::Event<T>1311   **/1312  PalletEvmContractHelpersEvent: {1313    _enum: {1314      ContractSponsorSet: '(H160,AccountId32)',1315      ContractSponsorshipConfirmed: '(H160,AccountId32)',1316      ContractSponsorRemoved: 'H160'1317    }1318  },1319  /**1320   * Lookup122: pallet_evm_migration::pallet::Event<T>1321   **/1322  PalletEvmMigrationEvent: {1323    _enum: ['TestEvent']1324  },1325  /**1326   * Lookup123: pallet_maintenance::pallet::Event<T>1327   **/1328  PalletMaintenanceEvent: {1329    _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']1330  },1331  /**1332   * Lookup124: pallet_test_utils::pallet::Event<T>1333   **/1334  PalletTestUtilsEvent: {1335    _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted']1336  },1337  /**1338   * Lookup125: frame_system::Phase1339   **/1340  FrameSystemPhase: {1341    _enum: {1342      ApplyExtrinsic: 'u32',1343      Finalization: 'Null',1344      Initialization: 'Null'1345    }1346  },1347  /**1348   * Lookup127: frame_system::LastRuntimeUpgradeInfo1349   **/1350  FrameSystemLastRuntimeUpgradeInfo: {1351    specVersion: 'Compact<u32>',1352    specName: 'Text'1353  },1354  /**1355   * Lookup128: frame_system::pallet::Call<T>1356   **/1357  FrameSystemCall: {1358    _enum: {1359      fill_block: {1360        ratio: 'Perbill',1361      },1362      remark: {1363        remark: 'Bytes',1364      },1365      set_heap_pages: {1366        pages: 'u64',1367      },1368      set_code: {1369        code: 'Bytes',1370      },1371      set_code_without_checks: {1372        code: 'Bytes',1373      },1374      set_storage: {1375        items: 'Vec<(Bytes,Bytes)>',1376      },1377      kill_storage: {1378        _alias: {1379          keys_: 'keys',1380        },1381        keys_: 'Vec<Bytes>',1382      },1383      kill_prefix: {1384        prefix: 'Bytes',1385        subkeys: 'u32',1386      },1387      remark_with_event: {1388        remark: 'Bytes'1389      }1390    }1391  },1392  /**1393   * Lookup133: frame_system::limits::BlockWeights1394   **/1395  FrameSystemLimitsBlockWeights: {1396    baseBlock: 'Weight',1397    maxBlock: 'Weight',1398    perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1399  },1400  /**1401   * Lookup134: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1402   **/1403  FrameSupportDispatchPerDispatchClassWeightsPerClass: {1404    normal: 'FrameSystemLimitsWeightsPerClass',1405    operational: 'FrameSystemLimitsWeightsPerClass',1406    mandatory: 'FrameSystemLimitsWeightsPerClass'1407  },1408  /**1409   * Lookup135: frame_system::limits::WeightsPerClass1410   **/1411  FrameSystemLimitsWeightsPerClass: {1412    baseExtrinsic: 'Weight',1413    maxExtrinsic: 'Option<Weight>',1414    maxTotal: 'Option<Weight>',1415    reserved: 'Option<Weight>'1416  },1417  /**1418   * Lookup137: frame_system::limits::BlockLength1419   **/1420  FrameSystemLimitsBlockLength: {1421    max: 'FrameSupportDispatchPerDispatchClassU32'1422  },1423  /**1424   * Lookup138: frame_support::dispatch::PerDispatchClass<T>1425   **/1426  FrameSupportDispatchPerDispatchClassU32: {1427    normal: 'u32',1428    operational: 'u32',1429    mandatory: 'u32'1430  },1431  /**1432   * Lookup139: sp_weights::RuntimeDbWeight1433   **/1434  SpWeightsRuntimeDbWeight: {1435    read: 'u64',1436    write: 'u64'1437  },1438  /**1439   * Lookup140: sp_version::RuntimeVersion1440   **/1441  SpVersionRuntimeVersion: {1442    specName: 'Text',1443    implName: 'Text',1444    authoringVersion: 'u32',1445    specVersion: 'u32',1446    implVersion: 'u32',1447    apis: 'Vec<([u8;8],u32)>',1448    transactionVersion: 'u32',1449    stateVersion: 'u8'1450  },1451  /**1452   * Lookup145: frame_system::pallet::Error<T>1453   **/1454  FrameSystemError: {1455    _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1456  },1457  /**1458   * Lookup146: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1459   **/1460  PolkadotPrimitivesV2PersistedValidationData: {1461    parentHead: 'Bytes',1462    relayParentNumber: 'u32',1463    relayParentStorageRoot: 'H256',1464    maxPovSize: 'u32'1465  },1466  /**1467   * Lookup149: polkadot_primitives::v2::UpgradeRestriction1468   **/1469  PolkadotPrimitivesV2UpgradeRestriction: {1470    _enum: ['Present']1471  },1472  /**1473   * Lookup150: sp_trie::storage_proof::StorageProof1474   **/1475  SpTrieStorageProof: {1476    trieNodes: 'BTreeSet<Bytes>'1477  },1478  /**1479   * Lookup152: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1480   **/1481  CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1482    dmqMqcHead: 'H256',1483    relayDispatchQueueSize: '(u32,u32)',1484    ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1485    egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1486  },1487  /**1488   * Lookup155: polkadot_primitives::v2::AbridgedHrmpChannel1489   **/1490  PolkadotPrimitivesV2AbridgedHrmpChannel: {1491    maxCapacity: 'u32',1492    maxTotalSize: 'u32',1493    maxMessageSize: 'u32',1494    msgCount: 'u32',1495    totalSize: 'u32',1496    mqcHead: 'Option<H256>'1497  },1498  /**1499   * Lookup156: polkadot_primitives::v2::AbridgedHostConfiguration1500   **/1501  PolkadotPrimitivesV2AbridgedHostConfiguration: {1502    maxCodeSize: 'u32',1503    maxHeadDataSize: 'u32',1504    maxUpwardQueueCount: 'u32',1505    maxUpwardQueueSize: 'u32',1506    maxUpwardMessageSize: 'u32',1507    maxUpwardMessageNumPerCandidate: 'u32',1508    hrmpMaxMessageNumPerCandidate: 'u32',1509    validationUpgradeCooldown: 'u32',1510    validationUpgradeDelay: 'u32'1511  },1512  /**1513   * Lookup162: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1514   **/1515  PolkadotCorePrimitivesOutboundHrmpMessage: {1516    recipient: 'u32',1517    data: 'Bytes'1518  },1519  /**1520   * Lookup163: cumulus_pallet_parachain_system::pallet::Call<T>1521   **/1522  CumulusPalletParachainSystemCall: {1523    _enum: {1524      set_validation_data: {1525        data: 'CumulusPrimitivesParachainInherentParachainInherentData',1526      },1527      sudo_send_upward_message: {1528        message: 'Bytes',1529      },1530      authorize_upgrade: {1531        codeHash: 'H256',1532      },1533      enact_authorized_upgrade: {1534        code: 'Bytes'1535      }1536    }1537  },1538  /**1539   * Lookup164: cumulus_primitives_parachain_inherent::ParachainInherentData1540   **/1541  CumulusPrimitivesParachainInherentParachainInherentData: {1542    validationData: 'PolkadotPrimitivesV2PersistedValidationData',1543    relayChainState: 'SpTrieStorageProof',1544    downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1545    horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1546  },1547  /**1548   * Lookup166: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1549   **/1550  PolkadotCorePrimitivesInboundDownwardMessage: {1551    sentAt: 'u32',1552    msg: 'Bytes'1553  },1554  /**1555   * Lookup169: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1556   **/1557  PolkadotCorePrimitivesInboundHrmpMessage: {1558    sentAt: 'u32',1559    data: 'Bytes'1560  },1561  /**1562   * Lookup172: cumulus_pallet_parachain_system::pallet::Error<T>1563   **/1564  CumulusPalletParachainSystemError: {1565    _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1566  },1567  /**1568   * Lookup174: pallet_balances::BalanceLock<Balance>1569   **/1570  PalletBalancesBalanceLock: {1571    id: '[u8;8]',1572    amount: 'u128',1573    reasons: 'PalletBalancesReasons'1574  },1575  /**1576   * Lookup175: pallet_balances::Reasons1577   **/1578  PalletBalancesReasons: {1579    _enum: ['Fee', 'Misc', 'All']1580  },1581  /**1582   * Lookup178: pallet_balances::ReserveData<ReserveIdentifier, Balance>1583   **/1584  PalletBalancesReserveData: {1585    id: '[u8;16]',1586    amount: 'u128'1587  },1588  /**1589   * Lookup180: pallet_balances::Releases1590   **/1591  PalletBalancesReleases: {1592    _enum: ['V1_0_0', 'V2_0_0']1593  },1594  /**1595   * Lookup181: pallet_balances::pallet::Call<T, I>1596   **/1597  PalletBalancesCall: {1598    _enum: {1599      transfer: {1600        dest: 'MultiAddress',1601        value: 'Compact<u128>',1602      },1603      set_balance: {1604        who: 'MultiAddress',1605        newFree: 'Compact<u128>',1606        newReserved: 'Compact<u128>',1607      },1608      force_transfer: {1609        source: 'MultiAddress',1610        dest: 'MultiAddress',1611        value: 'Compact<u128>',1612      },1613      transfer_keep_alive: {1614        dest: 'MultiAddress',1615        value: 'Compact<u128>',1616      },1617      transfer_all: {1618        dest: 'MultiAddress',1619        keepAlive: 'bool',1620      },1621      force_unreserve: {1622        who: 'MultiAddress',1623        amount: 'u128'1624      }1625    }1626  },1627  /**1628   * Lookup184: pallet_balances::pallet::Error<T, I>1629   **/1630  PalletBalancesError: {1631    _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1632  },1633  /**1634   * Lookup186: pallet_timestamp::pallet::Call<T>1635   **/1636  PalletTimestampCall: {1637    _enum: {1638      set: {1639        now: 'Compact<u64>'1640      }1641    }1642  },1643  /**1644   * Lookup188: pallet_transaction_payment::Releases1645   **/1646  PalletTransactionPaymentReleases: {1647    _enum: ['V1Ancient', 'V2']1648  },1649  /**1650   * Lookup189: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1651   **/1652  PalletTreasuryProposal: {1653    proposer: 'AccountId32',1654    value: 'u128',1655    beneficiary: 'AccountId32',1656    bond: 'u128'1657  },1658  /**1659   * Lookup192: pallet_treasury::pallet::Call<T, I>1660   **/1661  PalletTreasuryCall: {1662    _enum: {1663      propose_spend: {1664        value: 'Compact<u128>',1665        beneficiary: 'MultiAddress',1666      },1667      reject_proposal: {1668        proposalId: 'Compact<u32>',1669      },1670      approve_proposal: {1671        proposalId: 'Compact<u32>',1672      },1673      spend: {1674        amount: 'Compact<u128>',1675        beneficiary: 'MultiAddress',1676      },1677      remove_approval: {1678        proposalId: 'Compact<u32>'1679      }1680    }1681  },1682  /**1683   * Lookup195: frame_support::PalletId1684   **/1685  FrameSupportPalletId: '[u8;8]',1686  /**1687   * Lookup196: pallet_treasury::pallet::Error<T, I>1688   **/1689  PalletTreasuryError: {1690    _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1691  },1692  /**1693   * Lookup197: pallet_sudo::pallet::Call<T>1694   **/1695  PalletSudoCall: {1696    _enum: {1697      sudo: {1698        call: 'Call',1699      },1700      sudo_unchecked_weight: {1701        call: 'Call',1702        weight: 'Weight',1703      },1704      set_key: {1705        _alias: {1706          new_: 'new',1707        },1708        new_: 'MultiAddress',1709      },1710      sudo_as: {1711        who: 'MultiAddress',1712        call: 'Call'1713      }1714    }1715  },1716  /**1717   * Lookup199: orml_vesting::module::Call<T>1718   **/1719  OrmlVestingModuleCall: {1720    _enum: {1721      claim: 'Null',1722      vested_transfer: {1723        dest: 'MultiAddress',1724        schedule: 'OrmlVestingVestingSchedule',1725      },1726      update_vesting_schedules: {1727        who: 'MultiAddress',1728        vestingSchedules: 'Vec<OrmlVestingVestingSchedule>',1729      },1730      claim_for: {1731        dest: 'MultiAddress'1732      }1733    }1734  },1735  /**1736   * Lookup201: orml_xtokens::module::Call<T>1737   **/1738  OrmlXtokensModuleCall: {1739    _enum: {1740      transfer: {1741        currencyId: 'PalletForeignAssetsAssetIds',1742        amount: 'u128',1743        dest: 'XcmVersionedMultiLocation',1744        destWeight: 'u64',1745      },1746      transfer_multiasset: {1747        asset: 'XcmVersionedMultiAsset',1748        dest: 'XcmVersionedMultiLocation',1749        destWeight: 'u64',1750      },1751      transfer_with_fee: {1752        currencyId: 'PalletForeignAssetsAssetIds',1753        amount: 'u128',1754        fee: 'u128',1755        dest: 'XcmVersionedMultiLocation',1756        destWeight: 'u64',1757      },1758      transfer_multiasset_with_fee: {1759        asset: 'XcmVersionedMultiAsset',1760        fee: 'XcmVersionedMultiAsset',1761        dest: 'XcmVersionedMultiLocation',1762        destWeight: 'u64',1763      },1764      transfer_multicurrencies: {1765        currencies: 'Vec<(PalletForeignAssetsAssetIds,u128)>',1766        feeItem: 'u32',1767        dest: 'XcmVersionedMultiLocation',1768        destWeight: 'u64',1769      },1770      transfer_multiassets: {1771        assets: 'XcmVersionedMultiAssets',1772        feeItem: 'u32',1773        dest: 'XcmVersionedMultiLocation',1774        destWeight: 'u64'1775      }1776    }1777  },1778  /**1779   * Lookup202: xcm::VersionedMultiAsset1780   **/1781  XcmVersionedMultiAsset: {1782    _enum: {1783      V0: 'XcmV0MultiAsset',1784      V1: 'XcmV1MultiAsset'1785    }1786  },1787  /**1788   * Lookup205: orml_tokens::module::Call<T>1789   **/1790  OrmlTokensModuleCall: {1791    _enum: {1792      transfer: {1793        dest: 'MultiAddress',1794        currencyId: 'PalletForeignAssetsAssetIds',1795        amount: 'Compact<u128>',1796      },1797      transfer_all: {1798        dest: 'MultiAddress',1799        currencyId: 'PalletForeignAssetsAssetIds',1800        keepAlive: 'bool',1801      },1802      transfer_keep_alive: {1803        dest: 'MultiAddress',1804        currencyId: 'PalletForeignAssetsAssetIds',1805        amount: 'Compact<u128>',1806      },1807      force_transfer: {1808        source: 'MultiAddress',1809        dest: 'MultiAddress',1810        currencyId: 'PalletForeignAssetsAssetIds',1811        amount: 'Compact<u128>',1812      },1813      set_balance: {1814        who: 'MultiAddress',1815        currencyId: 'PalletForeignAssetsAssetIds',1816        newFree: 'Compact<u128>',1817        newReserved: 'Compact<u128>'1818      }1819    }1820  },1821  /**1822   * Lookup206: cumulus_pallet_xcmp_queue::pallet::Call<T>1823   **/1824  CumulusPalletXcmpQueueCall: {1825    _enum: {1826      service_overweight: {1827        index: 'u64',1828        weightLimit: 'Weight',1829      },1830      suspend_xcm_execution: 'Null',1831      resume_xcm_execution: 'Null',1832      update_suspend_threshold: {1833        _alias: {1834          new_: 'new',1835        },1836        new_: 'u32',1837      },1838      update_drop_threshold: {1839        _alias: {1840          new_: 'new',1841        },1842        new_: 'u32',1843      },1844      update_resume_threshold: {1845        _alias: {1846          new_: 'new',1847        },1848        new_: 'u32',1849      },1850      update_threshold_weight: {1851        _alias: {1852          new_: 'new',1853        },1854        new_: 'Weight',1855      },1856      update_weight_restrict_decay: {1857        _alias: {1858          new_: 'new',1859        },1860        new_: 'Weight',1861      },1862      update_xcmp_max_individual_weight: {1863        _alias: {1864          new_: 'new',1865        },1866        new_: 'Weight'1867      }1868    }1869  },1870  /**1871   * Lookup207: pallet_xcm::pallet::Call<T>1872   **/1873  PalletXcmCall: {1874    _enum: {1875      send: {1876        dest: 'XcmVersionedMultiLocation',1877        message: 'XcmVersionedXcm',1878      },1879      teleport_assets: {1880        dest: 'XcmVersionedMultiLocation',1881        beneficiary: 'XcmVersionedMultiLocation',1882        assets: 'XcmVersionedMultiAssets',1883        feeAssetItem: 'u32',1884      },1885      reserve_transfer_assets: {1886        dest: 'XcmVersionedMultiLocation',1887        beneficiary: 'XcmVersionedMultiLocation',1888        assets: 'XcmVersionedMultiAssets',1889        feeAssetItem: 'u32',1890      },1891      execute: {1892        message: 'XcmVersionedXcm',1893        maxWeight: 'Weight',1894      },1895      force_xcm_version: {1896        location: 'XcmV1MultiLocation',1897        xcmVersion: 'u32',1898      },1899      force_default_xcm_version: {1900        maybeXcmVersion: 'Option<u32>',1901      },1902      force_subscribe_version_notify: {1903        location: 'XcmVersionedMultiLocation',1904      },1905      force_unsubscribe_version_notify: {1906        location: 'XcmVersionedMultiLocation',1907      },1908      limited_reserve_transfer_assets: {1909        dest: 'XcmVersionedMultiLocation',1910        beneficiary: 'XcmVersionedMultiLocation',1911        assets: 'XcmVersionedMultiAssets',1912        feeAssetItem: 'u32',1913        weightLimit: 'XcmV2WeightLimit',1914      },1915      limited_teleport_assets: {1916        dest: 'XcmVersionedMultiLocation',1917        beneficiary: 'XcmVersionedMultiLocation',1918        assets: 'XcmVersionedMultiAssets',1919        feeAssetItem: 'u32',1920        weightLimit: 'XcmV2WeightLimit'1921      }1922    }1923  },1924  /**1925   * Lookup208: xcm::VersionedXcm<RuntimeCall>1926   **/1927  XcmVersionedXcm: {1928    _enum: {1929      V0: 'XcmV0Xcm',1930      V1: 'XcmV1Xcm',1931      V2: 'XcmV2Xcm'1932    }1933  },1934  /**1935   * Lookup209: xcm::v0::Xcm<RuntimeCall>1936   **/1937  XcmV0Xcm: {1938    _enum: {1939      WithdrawAsset: {1940        assets: 'Vec<XcmV0MultiAsset>',1941        effects: 'Vec<XcmV0Order>',1942      },1943      ReserveAssetDeposit: {1944        assets: 'Vec<XcmV0MultiAsset>',1945        effects: 'Vec<XcmV0Order>',1946      },1947      TeleportAsset: {1948        assets: 'Vec<XcmV0MultiAsset>',1949        effects: 'Vec<XcmV0Order>',1950      },1951      QueryResponse: {1952        queryId: 'Compact<u64>',1953        response: 'XcmV0Response',1954      },1955      TransferAsset: {1956        assets: 'Vec<XcmV0MultiAsset>',1957        dest: 'XcmV0MultiLocation',1958      },1959      TransferReserveAsset: {1960        assets: 'Vec<XcmV0MultiAsset>',1961        dest: 'XcmV0MultiLocation',1962        effects: 'Vec<XcmV0Order>',1963      },1964      Transact: {1965        originType: 'XcmV0OriginKind',1966        requireWeightAtMost: 'u64',1967        call: 'XcmDoubleEncoded',1968      },1969      HrmpNewChannelOpenRequest: {1970        sender: 'Compact<u32>',1971        maxMessageSize: 'Compact<u32>',1972        maxCapacity: 'Compact<u32>',1973      },1974      HrmpChannelAccepted: {1975        recipient: 'Compact<u32>',1976      },1977      HrmpChannelClosing: {1978        initiator: 'Compact<u32>',1979        sender: 'Compact<u32>',1980        recipient: 'Compact<u32>',1981      },1982      RelayedFrom: {1983        who: 'XcmV0MultiLocation',1984        message: 'XcmV0Xcm'1985      }1986    }1987  },1988  /**1989   * Lookup211: xcm::v0::order::Order<RuntimeCall>1990   **/1991  XcmV0Order: {1992    _enum: {1993      Null: 'Null',1994      DepositAsset: {1995        assets: 'Vec<XcmV0MultiAsset>',1996        dest: 'XcmV0MultiLocation',1997      },1998      DepositReserveAsset: {1999        assets: 'Vec<XcmV0MultiAsset>',2000        dest: 'XcmV0MultiLocation',2001        effects: 'Vec<XcmV0Order>',2002      },2003      ExchangeAsset: {2004        give: 'Vec<XcmV0MultiAsset>',2005        receive: 'Vec<XcmV0MultiAsset>',2006      },2007      InitiateReserveWithdraw: {2008        assets: 'Vec<XcmV0MultiAsset>',2009        reserve: 'XcmV0MultiLocation',2010        effects: 'Vec<XcmV0Order>',2011      },2012      InitiateTeleport: {2013        assets: 'Vec<XcmV0MultiAsset>',2014        dest: 'XcmV0MultiLocation',2015        effects: 'Vec<XcmV0Order>',2016      },2017      QueryHolding: {2018        queryId: 'Compact<u64>',2019        dest: 'XcmV0MultiLocation',2020        assets: 'Vec<XcmV0MultiAsset>',2021      },2022      BuyExecution: {2023        fees: 'XcmV0MultiAsset',2024        weight: 'u64',2025        debt: 'u64',2026        haltOnError: 'bool',2027        xcm: 'Vec<XcmV0Xcm>'2028      }2029    }2030  },2031  /**2032   * Lookup213: xcm::v0::Response2033   **/2034  XcmV0Response: {2035    _enum: {2036      Assets: 'Vec<XcmV0MultiAsset>'2037    }2038  },2039  /**2040   * Lookup214: xcm::v1::Xcm<RuntimeCall>2041   **/2042  XcmV1Xcm: {2043    _enum: {2044      WithdrawAsset: {2045        assets: 'XcmV1MultiassetMultiAssets',2046        effects: 'Vec<XcmV1Order>',2047      },2048      ReserveAssetDeposited: {2049        assets: 'XcmV1MultiassetMultiAssets',2050        effects: 'Vec<XcmV1Order>',2051      },2052      ReceiveTeleportedAsset: {2053        assets: 'XcmV1MultiassetMultiAssets',2054        effects: 'Vec<XcmV1Order>',2055      },2056      QueryResponse: {2057        queryId: 'Compact<u64>',2058        response: 'XcmV1Response',2059      },2060      TransferAsset: {2061        assets: 'XcmV1MultiassetMultiAssets',2062        beneficiary: 'XcmV1MultiLocation',2063      },2064      TransferReserveAsset: {2065        assets: 'XcmV1MultiassetMultiAssets',2066        dest: 'XcmV1MultiLocation',2067        effects: 'Vec<XcmV1Order>',2068      },2069      Transact: {2070        originType: 'XcmV0OriginKind',2071        requireWeightAtMost: 'u64',2072        call: 'XcmDoubleEncoded',2073      },2074      HrmpNewChannelOpenRequest: {2075        sender: 'Compact<u32>',2076        maxMessageSize: 'Compact<u32>',2077        maxCapacity: 'Compact<u32>',2078      },2079      HrmpChannelAccepted: {2080        recipient: 'Compact<u32>',2081      },2082      HrmpChannelClosing: {2083        initiator: 'Compact<u32>',2084        sender: 'Compact<u32>',2085        recipient: 'Compact<u32>',2086      },2087      RelayedFrom: {2088        who: 'XcmV1MultilocationJunctions',2089        message: 'XcmV1Xcm',2090      },2091      SubscribeVersion: {2092        queryId: 'Compact<u64>',2093        maxResponseWeight: 'Compact<u64>',2094      },2095      UnsubscribeVersion: 'Null'2096    }2097  },2098  /**2099   * Lookup216: xcm::v1::order::Order<RuntimeCall>2100   **/2101  XcmV1Order: {2102    _enum: {2103      Noop: 'Null',2104      DepositAsset: {2105        assets: 'XcmV1MultiassetMultiAssetFilter',2106        maxAssets: 'u32',2107        beneficiary: 'XcmV1MultiLocation',2108      },2109      DepositReserveAsset: {2110        assets: 'XcmV1MultiassetMultiAssetFilter',2111        maxAssets: 'u32',2112        dest: 'XcmV1MultiLocation',2113        effects: 'Vec<XcmV1Order>',2114      },2115      ExchangeAsset: {2116        give: 'XcmV1MultiassetMultiAssetFilter',2117        receive: 'XcmV1MultiassetMultiAssets',2118      },2119      InitiateReserveWithdraw: {2120        assets: 'XcmV1MultiassetMultiAssetFilter',2121        reserve: 'XcmV1MultiLocation',2122        effects: 'Vec<XcmV1Order>',2123      },2124      InitiateTeleport: {2125        assets: 'XcmV1MultiassetMultiAssetFilter',2126        dest: 'XcmV1MultiLocation',2127        effects: 'Vec<XcmV1Order>',2128      },2129      QueryHolding: {2130        queryId: 'Compact<u64>',2131        dest: 'XcmV1MultiLocation',2132        assets: 'XcmV1MultiassetMultiAssetFilter',2133      },2134      BuyExecution: {2135        fees: 'XcmV1MultiAsset',2136        weight: 'u64',2137        debt: 'u64',2138        haltOnError: 'bool',2139        instructions: 'Vec<XcmV1Xcm>'2140      }2141    }2142  },2143  /**2144   * Lookup218: xcm::v1::Response2145   **/2146  XcmV1Response: {2147    _enum: {2148      Assets: 'XcmV1MultiassetMultiAssets',2149      Version: 'u32'2150    }2151  },2152  /**2153   * Lookup232: cumulus_pallet_xcm::pallet::Call<T>2154   **/2155  CumulusPalletXcmCall: 'Null',2156  /**2157   * Lookup233: cumulus_pallet_dmp_queue::pallet::Call<T>2158   **/2159  CumulusPalletDmpQueueCall: {2160    _enum: {2161      service_overweight: {2162        index: 'u64',2163        weightLimit: 'Weight'2164      }2165    }2166  },2167  /**2168   * Lookup234: pallet_inflation::pallet::Call<T>2169   **/2170  PalletInflationCall: {2171    _enum: {2172      start_inflation: {2173        inflationStartRelayBlock: 'u32'2174      }2175    }2176  },2177  /**2178   * Lookup235: pallet_unique::Call<T>2179   **/2180  PalletUniqueCall: {2181    _enum: {2182      create_collection: {2183        collectionName: 'Vec<u16>',2184        collectionDescription: 'Vec<u16>',2185        tokenPrefix: 'Bytes',2186        mode: 'UpDataStructsCollectionMode',2187      },2188      create_collection_ex: {2189        data: 'UpDataStructsCreateCollectionData',2190      },2191      destroy_collection: {2192        collectionId: 'u32',2193      },2194      add_to_allow_list: {2195        collectionId: 'u32',2196        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2197      },2198      remove_from_allow_list: {2199        collectionId: 'u32',2200        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2201      },2202      change_collection_owner: {2203        collectionId: 'u32',2204        newOwner: 'AccountId32',2205      },2206      add_collection_admin: {2207        collectionId: 'u32',2208        newAdminId: 'PalletEvmAccountBasicCrossAccountIdRepr',2209      },2210      remove_collection_admin: {2211        collectionId: 'u32',2212        accountId: 'PalletEvmAccountBasicCrossAccountIdRepr',2213      },2214      set_collection_sponsor: {2215        collectionId: 'u32',2216        newSponsor: 'AccountId32',2217      },2218      confirm_sponsorship: {2219        collectionId: 'u32',2220      },2221      remove_collection_sponsor: {2222        collectionId: 'u32',2223      },2224      create_item: {2225        collectionId: 'u32',2226        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2227        data: 'UpDataStructsCreateItemData',2228      },2229      create_multiple_items: {2230        collectionId: 'u32',2231        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2232        itemsData: 'Vec<UpDataStructsCreateItemData>',2233      },2234      set_collection_properties: {2235        collectionId: 'u32',2236        properties: 'Vec<UpDataStructsProperty>',2237      },2238      delete_collection_properties: {2239        collectionId: 'u32',2240        propertyKeys: 'Vec<Bytes>',2241      },2242      set_token_properties: {2243        collectionId: 'u32',2244        tokenId: 'u32',2245        properties: 'Vec<UpDataStructsProperty>',2246      },2247      delete_token_properties: {2248        collectionId: 'u32',2249        tokenId: 'u32',2250        propertyKeys: 'Vec<Bytes>',2251      },2252      set_token_property_permissions: {2253        collectionId: 'u32',2254        propertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2255      },2256      create_multiple_items_ex: {2257        collectionId: 'u32',2258        data: 'UpDataStructsCreateItemExData',2259      },2260      set_transfers_enabled_flag: {2261        collectionId: 'u32',2262        value: 'bool',2263      },2264      burn_item: {2265        collectionId: 'u32',2266        itemId: 'u32',2267        value: 'u128',2268      },2269      burn_from: {2270        collectionId: 'u32',2271        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2272        itemId: 'u32',2273        value: 'u128',2274      },2275      transfer: {2276        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2277        collectionId: 'u32',2278        itemId: 'u32',2279        value: 'u128',2280      },2281      approve: {2282        spender: 'PalletEvmAccountBasicCrossAccountIdRepr',2283        collectionId: 'u32',2284        itemId: 'u32',2285        amount: 'u128',2286      },2287      transfer_from: {2288        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2289        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2290        collectionId: 'u32',2291        itemId: 'u32',2292        value: 'u128',2293      },2294      set_collection_limits: {2295        collectionId: 'u32',2296        newLimit: 'UpDataStructsCollectionLimits',2297      },2298      set_collection_permissions: {2299        collectionId: 'u32',2300        newPermission: 'UpDataStructsCollectionPermissions',2301      },2302      repartition: {2303        collectionId: 'u32',2304        tokenId: 'u32',2305        amount: 'u128'2306      }2307    }2308  },2309  /**2310   * Lookup240: up_data_structs::CollectionMode2311   **/2312  UpDataStructsCollectionMode: {2313    _enum: {2314      NFT: 'Null',2315      Fungible: 'u8',2316      ReFungible: 'Null'2317    }2318  },2319  /**2320   * Lookup241: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2321   **/2322  UpDataStructsCreateCollectionData: {2323    mode: 'UpDataStructsCollectionMode',2324    access: 'Option<UpDataStructsAccessMode>',2325    name: 'Vec<u16>',2326    description: 'Vec<u16>',2327    tokenPrefix: 'Bytes',2328    pendingSponsor: 'Option<AccountId32>',2329    limits: 'Option<UpDataStructsCollectionLimits>',2330    permissions: 'Option<UpDataStructsCollectionPermissions>',2331    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2332    properties: 'Vec<UpDataStructsProperty>'2333  },2334  /**2335   * Lookup243: up_data_structs::AccessMode2336   **/2337  UpDataStructsAccessMode: {2338    _enum: ['Normal', 'AllowList']2339  },2340  /**2341   * Lookup245: up_data_structs::CollectionLimits2342   **/2343  UpDataStructsCollectionLimits: {2344    accountTokenOwnershipLimit: 'Option<u32>',2345    sponsoredDataSize: 'Option<u32>',2346    sponsoredDataRateLimit: 'Option<UpDataStructsSponsoringRateLimit>',2347    tokenLimit: 'Option<u32>',2348    sponsorTransferTimeout: 'Option<u32>',2349    sponsorApproveTimeout: 'Option<u32>',2350    ownerCanTransfer: 'Option<bool>',2351    ownerCanDestroy: 'Option<bool>',2352    transfersEnabled: 'Option<bool>'2353  },2354  /**2355   * Lookup247: up_data_structs::SponsoringRateLimit2356   **/2357  UpDataStructsSponsoringRateLimit: {2358    _enum: {2359      SponsoringDisabled: 'Null',2360      Blocks: 'u32'2361    }2362  },2363  /**2364   * Lookup250: up_data_structs::CollectionPermissions2365   **/2366  UpDataStructsCollectionPermissions: {2367    access: 'Option<UpDataStructsAccessMode>',2368    mintMode: 'Option<bool>',2369    nesting: 'Option<UpDataStructsNestingPermissions>'2370  },2371  /**2372   * Lookup252: up_data_structs::NestingPermissions2373   **/2374  UpDataStructsNestingPermissions: {2375    tokenOwner: 'bool',2376    collectionAdmin: 'bool',2377    restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2378  },2379  /**2380   * Lookup254: up_data_structs::OwnerRestrictedSet2381   **/2382  UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2383  /**2384   * Lookup259: up_data_structs::PropertyKeyPermission2385   **/2386  UpDataStructsPropertyKeyPermission: {2387    key: 'Bytes',2388    permission: 'UpDataStructsPropertyPermission'2389  },2390  /**2391   * Lookup260: up_data_structs::PropertyPermission2392   **/2393  UpDataStructsPropertyPermission: {2394    mutable: 'bool',2395    collectionAdmin: 'bool',2396    tokenOwner: 'bool'2397  },2398  /**2399   * Lookup263: up_data_structs::Property2400   **/2401  UpDataStructsProperty: {2402    key: 'Bytes',2403    value: 'Bytes'2404  },2405  /**2406   * Lookup266: up_data_structs::CreateItemData2407   **/2408  UpDataStructsCreateItemData: {2409    _enum: {2410      NFT: 'UpDataStructsCreateNftData',2411      Fungible: 'UpDataStructsCreateFungibleData',2412      ReFungible: 'UpDataStructsCreateReFungibleData'2413    }2414  },2415  /**2416   * Lookup267: up_data_structs::CreateNftData2417   **/2418  UpDataStructsCreateNftData: {2419    properties: 'Vec<UpDataStructsProperty>'2420  },2421  /**2422   * Lookup268: up_data_structs::CreateFungibleData2423   **/2424  UpDataStructsCreateFungibleData: {2425    value: 'u128'2426  },2427  /**2428   * Lookup269: up_data_structs::CreateReFungibleData2429   **/2430  UpDataStructsCreateReFungibleData: {2431    pieces: 'u128',2432    properties: 'Vec<UpDataStructsProperty>'2433  },2434  /**2435   * Lookup272: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2436   **/2437  UpDataStructsCreateItemExData: {2438    _enum: {2439      NFT: 'Vec<UpDataStructsCreateNftExData>',2440      Fungible: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2441      RefungibleMultipleItems: 'Vec<UpDataStructsCreateRefungibleExSingleOwner>',2442      RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2443    }2444  },2445  /**2446   * Lookup274: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2447   **/2448  UpDataStructsCreateNftExData: {2449    properties: 'Vec<UpDataStructsProperty>',2450    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2451  },2452  /**2453   * Lookup281: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2454   **/2455  UpDataStructsCreateRefungibleExSingleOwner: {2456    user: 'PalletEvmAccountBasicCrossAccountIdRepr',2457    pieces: 'u128',2458    properties: 'Vec<UpDataStructsProperty>'2459  },2460  /**2461   * Lookup283: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2462   **/2463  UpDataStructsCreateRefungibleExMultipleOwners: {2464    users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2465    properties: 'Vec<UpDataStructsProperty>'2466  },2467  /**2468   * Lookup284: pallet_unique_scheduler_v2::pallet::Call<T>2469   **/2470  PalletUniqueSchedulerV2Call: {2471    _enum: {2472      schedule: {2473        when: 'u32',2474        maybePeriodic: 'Option<(u32,u32)>',2475        priority: 'Option<u8>',2476        call: 'Call',2477      },2478      cancel: {2479        when: 'u32',2480        index: 'u32',2481      },2482      schedule_named: {2483        id: '[u8;32]',2484        when: 'u32',2485        maybePeriodic: 'Option<(u32,u32)>',2486        priority: 'Option<u8>',2487        call: 'Call',2488      },2489      cancel_named: {2490        id: '[u8;32]',2491      },2492      schedule_after: {2493        after: 'u32',2494        maybePeriodic: 'Option<(u32,u32)>',2495        priority: 'Option<u8>',2496        call: 'Call',2497      },2498      schedule_named_after: {2499        id: '[u8;32]',2500        after: 'u32',2501        maybePeriodic: 'Option<(u32,u32)>',2502        priority: 'Option<u8>',2503        call: 'Call',2504      },2505      change_named_priority: {2506        id: '[u8;32]',2507        priority: 'u8'2508      }2509    }2510  },2511  /**2512   * Lookup287: pallet_configuration::pallet::Call<T>2513   **/2514  PalletConfigurationCall: {2515    _enum: {2516      set_weight_to_fee_coefficient_override: {2517        coeff: 'Option<u32>',2518      },2519      set_min_gas_price_override: {2520        coeff: 'Option<u64>'2521      }2522    }2523  },2524  /**2525   * Lookup289: pallet_template_transaction_payment::Call<T>2526   **/2527  PalletTemplateTransactionPaymentCall: 'Null',2528  /**2529   * Lookup290: pallet_structure::pallet::Call<T>2530   **/2531  PalletStructureCall: 'Null',2532  /**2533   * Lookup291: pallet_rmrk_core::pallet::Call<T>2534   **/2535  PalletRmrkCoreCall: {2536    _enum: {2537      create_collection: {2538        metadata: 'Bytes',2539        max: 'Option<u32>',2540        symbol: 'Bytes',2541      },2542      destroy_collection: {2543        collectionId: 'u32',2544      },2545      change_collection_issuer: {2546        collectionId: 'u32',2547        newIssuer: 'MultiAddress',2548      },2549      lock_collection: {2550        collectionId: 'u32',2551      },2552      mint_nft: {2553        owner: 'Option<AccountId32>',2554        collectionId: 'u32',2555        recipient: 'Option<AccountId32>',2556        royaltyAmount: 'Option<Permill>',2557        metadata: 'Bytes',2558        transferable: 'bool',2559        resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',2560      },2561      burn_nft: {2562        collectionId: 'u32',2563        nftId: 'u32',2564        maxBurns: 'u32',2565      },2566      send: {2567        rmrkCollectionId: 'u32',2568        rmrkNftId: 'u32',2569        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2570      },2571      accept_nft: {2572        rmrkCollectionId: 'u32',2573        rmrkNftId: 'u32',2574        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2575      },2576      reject_nft: {2577        rmrkCollectionId: 'u32',2578        rmrkNftId: 'u32',2579      },2580      accept_resource: {2581        rmrkCollectionId: 'u32',2582        rmrkNftId: 'u32',2583        resourceId: 'u32',2584      },2585      accept_resource_removal: {2586        rmrkCollectionId: 'u32',2587        rmrkNftId: 'u32',2588        resourceId: 'u32',2589      },2590      set_property: {2591        rmrkCollectionId: 'Compact<u32>',2592        maybeNftId: 'Option<u32>',2593        key: 'Bytes',2594        value: 'Bytes',2595      },2596      set_priority: {2597        rmrkCollectionId: 'u32',2598        rmrkNftId: 'u32',2599        priorities: 'Vec<u32>',2600      },2601      add_basic_resource: {2602        rmrkCollectionId: 'u32',2603        nftId: 'u32',2604        resource: 'RmrkTraitsResourceBasicResource',2605      },2606      add_composable_resource: {2607        rmrkCollectionId: 'u32',2608        nftId: 'u32',2609        resource: 'RmrkTraitsResourceComposableResource',2610      },2611      add_slot_resource: {2612        rmrkCollectionId: 'u32',2613        nftId: 'u32',2614        resource: 'RmrkTraitsResourceSlotResource',2615      },2616      remove_resource: {2617        rmrkCollectionId: 'u32',2618        nftId: 'u32',2619        resourceId: 'u32'2620      }2621    }2622  },2623  /**2624   * Lookup297: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2625   **/2626  RmrkTraitsResourceResourceTypes: {2627    _enum: {2628      Basic: 'RmrkTraitsResourceBasicResource',2629      Composable: 'RmrkTraitsResourceComposableResource',2630      Slot: 'RmrkTraitsResourceSlotResource'2631    }2632  },2633  /**2634   * Lookup299: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2635   **/2636  RmrkTraitsResourceBasicResource: {2637    src: 'Option<Bytes>',2638    metadata: 'Option<Bytes>',2639    license: 'Option<Bytes>',2640    thumb: 'Option<Bytes>'2641  },2642  /**2643   * Lookup301: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2644   **/2645  RmrkTraitsResourceComposableResource: {2646    parts: 'Vec<u32>',2647    base: 'u32',2648    src: 'Option<Bytes>',2649    metadata: 'Option<Bytes>',2650    license: 'Option<Bytes>',2651    thumb: 'Option<Bytes>'2652  },2653  /**2654   * Lookup302: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2655   **/2656  RmrkTraitsResourceSlotResource: {2657    base: 'u32',2658    src: 'Option<Bytes>',2659    metadata: 'Option<Bytes>',2660    slot: 'u32',2661    license: 'Option<Bytes>',2662    thumb: 'Option<Bytes>'2663  },2664  /**2665   * Lookup305: pallet_rmrk_equip::pallet::Call<T>2666   **/2667  PalletRmrkEquipCall: {2668    _enum: {2669      create_base: {2670        baseType: 'Bytes',2671        symbol: 'Bytes',2672        parts: 'Vec<RmrkTraitsPartPartType>',2673      },2674      theme_add: {2675        baseId: 'u32',2676        theme: 'RmrkTraitsTheme',2677      },2678      equippable: {2679        baseId: 'u32',2680        slotId: 'u32',2681        equippables: 'RmrkTraitsPartEquippableList'2682      }2683    }2684  },2685  /**2686   * Lookup308: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2687   **/2688  RmrkTraitsPartPartType: {2689    _enum: {2690      FixedPart: 'RmrkTraitsPartFixedPart',2691      SlotPart: 'RmrkTraitsPartSlotPart'2692    }2693  },2694  /**2695   * Lookup310: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2696   **/2697  RmrkTraitsPartFixedPart: {2698    id: 'u32',2699    z: 'u32',2700    src: 'Bytes'2701  },2702  /**2703   * Lookup311: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2704   **/2705  RmrkTraitsPartSlotPart: {2706    id: 'u32',2707    equippable: 'RmrkTraitsPartEquippableList',2708    src: 'Bytes',2709    z: 'u32'2710  },2711  /**2712   * Lookup312: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2713   **/2714  RmrkTraitsPartEquippableList: {2715    _enum: {2716      All: 'Null',2717      Empty: 'Null',2718      Custom: 'Vec<u32>'2719    }2720  },2721  /**2722   * Lookup314: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>2723   **/2724  RmrkTraitsTheme: {2725    name: 'Bytes',2726    properties: 'Vec<RmrkTraitsThemeThemeProperty>',2727    inherit: 'bool'2728  },2729  /**2730   * Lookup316: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2731   **/2732  RmrkTraitsThemeThemeProperty: {2733    key: 'Bytes',2734    value: 'Bytes'2735  },2736  /**2737   * Lookup318: pallet_app_promotion::pallet::Call<T>2738   **/2739  PalletAppPromotionCall: {2740    _enum: {2741      set_admin_address: {2742        admin: 'PalletEvmAccountBasicCrossAccountIdRepr',2743      },2744      stake: {2745        amount: 'u128',2746      },2747      unstake: 'Null',2748      sponsor_collection: {2749        collectionId: 'u32',2750      },2751      stop_sponsoring_collection: {2752        collectionId: 'u32',2753      },2754      sponsor_contract: {2755        contractId: 'H160',2756      },2757      stop_sponsoring_contract: {2758        contractId: 'H160',2759      },2760      payout_stakers: {2761        stakersNumber: 'Option<u8>'2762      }2763    }2764  },2765  /**2766   * Lookup319: pallet_foreign_assets::module::Call<T>2767   **/2768  PalletForeignAssetsModuleCall: {2769    _enum: {2770      register_foreign_asset: {2771        owner: 'AccountId32',2772        location: 'XcmVersionedMultiLocation',2773        metadata: 'PalletForeignAssetsModuleAssetMetadata',2774      },2775      update_foreign_asset: {2776        foreignAssetId: 'u32',2777        location: 'XcmVersionedMultiLocation',2778        metadata: 'PalletForeignAssetsModuleAssetMetadata'2779      }2780    }2781  },2782  /**2783   * Lookup320: pallet_evm::pallet::Call<T>2784   **/2785  PalletEvmCall: {2786    _enum: {2787      withdraw: {2788        address: 'H160',2789        value: 'u128',2790      },2791      call: {2792        source: 'H160',2793        target: 'H160',2794        input: 'Bytes',2795        value: 'U256',2796        gasLimit: 'u64',2797        maxFeePerGas: 'U256',2798        maxPriorityFeePerGas: 'Option<U256>',2799        nonce: 'Option<U256>',2800        accessList: 'Vec<(H160,Vec<H256>)>',2801      },2802      create: {2803        source: 'H160',2804        init: 'Bytes',2805        value: 'U256',2806        gasLimit: 'u64',2807        maxFeePerGas: 'U256',2808        maxPriorityFeePerGas: 'Option<U256>',2809        nonce: 'Option<U256>',2810        accessList: 'Vec<(H160,Vec<H256>)>',2811      },2812      create2: {2813        source: 'H160',2814        init: 'Bytes',2815        salt: 'H256',2816        value: 'U256',2817        gasLimit: 'u64',2818        maxFeePerGas: 'U256',2819        maxPriorityFeePerGas: 'Option<U256>',2820        nonce: 'Option<U256>',2821        accessList: 'Vec<(H160,Vec<H256>)>'2822      }2823    }2824  },2825  /**2826   * Lookup326: pallet_ethereum::pallet::Call<T>2827   **/2828  PalletEthereumCall: {2829    _enum: {2830      transact: {2831        transaction: 'EthereumTransactionTransactionV2'2832      }2833    }2834  },2835  /**2836   * Lookup327: ethereum::transaction::TransactionV22837   **/2838  EthereumTransactionTransactionV2: {2839    _enum: {2840      Legacy: 'EthereumTransactionLegacyTransaction',2841      EIP2930: 'EthereumTransactionEip2930Transaction',2842      EIP1559: 'EthereumTransactionEip1559Transaction'2843    }2844  },2845  /**2846   * Lookup328: ethereum::transaction::LegacyTransaction2847   **/2848  EthereumTransactionLegacyTransaction: {2849    nonce: 'U256',2850    gasPrice: 'U256',2851    gasLimit: 'U256',2852    action: 'EthereumTransactionTransactionAction',2853    value: 'U256',2854    input: 'Bytes',2855    signature: 'EthereumTransactionTransactionSignature'2856  },2857  /**2858   * Lookup329: ethereum::transaction::TransactionAction2859   **/2860  EthereumTransactionTransactionAction: {2861    _enum: {2862      Call: 'H160',2863      Create: 'Null'2864    }2865  },2866  /**2867   * Lookup330: ethereum::transaction::TransactionSignature2868   **/2869  EthereumTransactionTransactionSignature: {2870    v: 'u64',2871    r: 'H256',2872    s: 'H256'2873  },2874  /**2875   * Lookup332: ethereum::transaction::EIP2930Transaction2876   **/2877  EthereumTransactionEip2930Transaction: {2878    chainId: 'u64',2879    nonce: 'U256',2880    gasPrice: 'U256',2881    gasLimit: 'U256',2882    action: 'EthereumTransactionTransactionAction',2883    value: 'U256',2884    input: 'Bytes',2885    accessList: 'Vec<EthereumTransactionAccessListItem>',2886    oddYParity: 'bool',2887    r: 'H256',2888    s: 'H256'2889  },2890  /**2891   * Lookup334: ethereum::transaction::AccessListItem2892   **/2893  EthereumTransactionAccessListItem: {2894    address: 'H160',2895    storageKeys: 'Vec<H256>'2896  },2897  /**2898   * Lookup335: ethereum::transaction::EIP1559Transaction2899   **/2900  EthereumTransactionEip1559Transaction: {2901    chainId: 'u64',2902    nonce: 'U256',2903    maxPriorityFeePerGas: 'U256',2904    maxFeePerGas: 'U256',2905    gasLimit: 'U256',2906    action: 'EthereumTransactionTransactionAction',2907    value: 'U256',2908    input: 'Bytes',2909    accessList: 'Vec<EthereumTransactionAccessListItem>',2910    oddYParity: 'bool',2911    r: 'H256',2912    s: 'H256'2913  },2914  /**2915   * Lookup336: pallet_evm_migration::pallet::Call<T>2916   **/2917  PalletEvmMigrationCall: {2918    _enum: {2919      begin: {2920        address: 'H160',2921      },2922      set_data: {2923        address: 'H160',2924        data: 'Vec<(H256,H256)>',2925      },2926      finish: {2927        address: 'H160',2928        code: 'Bytes',2929      },2930      insert_eth_logs: {2931        logs: 'Vec<EthereumLog>',2932      },2933      insert_events: {2934        events: 'Vec<Bytes>'2935      }2936    }2937  },2938  /**2939   * Lookup340: pallet_maintenance::pallet::Call<T>2940   **/2941  PalletMaintenanceCall: {2942    _enum: ['enable', 'disable']2943  },2944  /**2945   * Lookup341: pallet_test_utils::pallet::Call<T>2946   **/2947  PalletTestUtilsCall: {2948    _enum: {2949      enable: 'Null',2950      set_test_value: {2951        value: 'u32',2952      },2953      set_test_value_and_rollback: {2954        value: 'u32',2955      },2956      inc_test_value: 'Null',2957      self_canceling_inc: {2958        id: '[u8;32]',2959        maxTestValue: 'u32',2960      },2961      just_take_fee: 'Null',2962      batch_all: {2963        calls: 'Vec<Call>'2964      }2965    }2966  },2967  /**2968   * Lookup343: pallet_sudo::pallet::Error<T>2969   **/2970  PalletSudoError: {2971    _enum: ['RequireSudo']2972  },2973  /**2974   * Lookup345: orml_vesting::module::Error<T>2975   **/2976  OrmlVestingModuleError: {2977    _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2978  },2979  /**2980   * Lookup346: orml_xtokens::module::Error<T>2981   **/2982  OrmlXtokensModuleError: {2983    _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']2984  },2985  /**2986   * Lookup349: orml_tokens::BalanceLock<Balance>2987   **/2988  OrmlTokensBalanceLock: {2989    id: '[u8;8]',2990    amount: 'u128'2991  },2992  /**2993   * Lookup351: orml_tokens::AccountData<Balance>2994   **/2995  OrmlTokensAccountData: {2996    free: 'u128',2997    reserved: 'u128',2998    frozen: 'u128'2999  },3000  /**3001   * Lookup353: orml_tokens::ReserveData<ReserveIdentifier, Balance>3002   **/3003  OrmlTokensReserveData: {3004    id: 'Null',3005    amount: 'u128'3006  },3007  /**3008   * Lookup355: orml_tokens::module::Error<T>3009   **/3010  OrmlTokensModuleError: {3011    _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']3012  },3013  /**3014   * Lookup357: cumulus_pallet_xcmp_queue::InboundChannelDetails3015   **/3016  CumulusPalletXcmpQueueInboundChannelDetails: {3017    sender: 'u32',3018    state: 'CumulusPalletXcmpQueueInboundState',3019    messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'3020  },3021  /**3022   * Lookup358: cumulus_pallet_xcmp_queue::InboundState3023   **/3024  CumulusPalletXcmpQueueInboundState: {3025    _enum: ['Ok', 'Suspended']3026  },3027  /**3028   * Lookup361: polkadot_parachain::primitives::XcmpMessageFormat3029   **/3030  PolkadotParachainPrimitivesXcmpMessageFormat: {3031    _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']3032  },3033  /**3034   * Lookup364: cumulus_pallet_xcmp_queue::OutboundChannelDetails3035   **/3036  CumulusPalletXcmpQueueOutboundChannelDetails: {3037    recipient: 'u32',3038    state: 'CumulusPalletXcmpQueueOutboundState',3039    signalsExist: 'bool',3040    firstIndex: 'u16',3041    lastIndex: 'u16'3042  },3043  /**3044   * Lookup365: cumulus_pallet_xcmp_queue::OutboundState3045   **/3046  CumulusPalletXcmpQueueOutboundState: {3047    _enum: ['Ok', 'Suspended']3048  },3049  /**3050   * Lookup367: cumulus_pallet_xcmp_queue::QueueConfigData3051   **/3052  CumulusPalletXcmpQueueQueueConfigData: {3053    suspendThreshold: 'u32',3054    dropThreshold: 'u32',3055    resumeThreshold: 'u32',3056    thresholdWeight: 'Weight',3057    weightRestrictDecay: 'Weight',3058    xcmpMaxIndividualWeight: 'Weight'3059  },3060  /**3061   * Lookup369: cumulus_pallet_xcmp_queue::pallet::Error<T>3062   **/3063  CumulusPalletXcmpQueueError: {3064    _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3065  },3066  /**3067   * Lookup370: pallet_xcm::pallet::Error<T>3068   **/3069  PalletXcmError: {3070    _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3071  },3072  /**3073   * Lookup371: cumulus_pallet_xcm::pallet::Error<T>3074   **/3075  CumulusPalletXcmError: 'Null',3076  /**3077   * Lookup372: cumulus_pallet_dmp_queue::ConfigData3078   **/3079  CumulusPalletDmpQueueConfigData: {3080    maxIndividual: 'Weight'3081  },3082  /**3083   * Lookup373: cumulus_pallet_dmp_queue::PageIndexData3084   **/3085  CumulusPalletDmpQueuePageIndexData: {3086    beginUsed: 'u32',3087    endUsed: 'u32',3088    overweightCount: 'u64'3089  },3090  /**3091   * Lookup376: cumulus_pallet_dmp_queue::pallet::Error<T>3092   **/3093  CumulusPalletDmpQueueError: {3094    _enum: ['Unknown', 'OverLimit']3095  },3096  /**3097   * Lookup380: pallet_unique::Error<T>3098   **/3099  PalletUniqueError: {3100    _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3101  },3102  /**3103   * Lookup381: pallet_unique_scheduler_v2::BlockAgenda<T>3104   **/3105  PalletUniqueSchedulerV2BlockAgenda: {3106    agenda: 'Vec<Option<PalletUniqueSchedulerV2Scheduled>>',3107    freePlaces: 'u32'3108  },3109  /**3110   * Lookup384: pallet_unique_scheduler_v2::Scheduled<Name, pallet_unique_scheduler_v2::ScheduledCall<T>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>3111   **/3112  PalletUniqueSchedulerV2Scheduled: {3113    maybeId: 'Option<[u8;32]>',3114    priority: 'u8',3115    call: 'PalletUniqueSchedulerV2ScheduledCall',3116    maybePeriodic: 'Option<(u32,u32)>',3117    origin: 'OpalRuntimeOriginCaller'3118  },3119  /**3120   * Lookup385: pallet_unique_scheduler_v2::ScheduledCall<T>3121   **/3122  PalletUniqueSchedulerV2ScheduledCall: {3123    _enum: {3124      Inline: 'Bytes',3125      PreimageLookup: {3126        _alias: {3127          hash_: 'hash',3128        },3129        hash_: 'H256',3130        unboundedLen: 'u32'3131      }3132    }3133  },3134  /**3135   * Lookup387: opal_runtime::OriginCaller3136   **/3137  OpalRuntimeOriginCaller: {3138    _enum: {3139      system: 'FrameSupportDispatchRawOrigin',3140      __Unused1: 'Null',3141      __Unused2: 'Null',3142      __Unused3: 'Null',3143      Void: 'SpCoreVoid',3144      __Unused5: 'Null',3145      __Unused6: 'Null',3146      __Unused7: 'Null',3147      __Unused8: 'Null',3148      __Unused9: 'Null',3149      __Unused10: 'Null',3150      __Unused11: 'Null',3151      __Unused12: 'Null',3152      __Unused13: 'Null',3153      __Unused14: 'Null',3154      __Unused15: 'Null',3155      __Unused16: 'Null',3156      __Unused17: 'Null',3157      __Unused18: 'Null',3158      __Unused19: 'Null',3159      __Unused20: 'Null',3160      __Unused21: 'Null',3161      __Unused22: 'Null',3162      __Unused23: 'Null',3163      __Unused24: 'Null',3164      __Unused25: 'Null',3165      __Unused26: 'Null',3166      __Unused27: 'Null',3167      __Unused28: 'Null',3168      __Unused29: 'Null',3169      __Unused30: 'Null',3170      __Unused31: 'Null',3171      __Unused32: 'Null',3172      __Unused33: 'Null',3173      __Unused34: 'Null',3174      __Unused35: 'Null',3175      __Unused36: 'Null',3176      __Unused37: 'Null',3177      __Unused38: 'Null',3178      __Unused39: 'Null',3179      __Unused40: 'Null',3180      __Unused41: 'Null',3181      __Unused42: 'Null',3182      __Unused43: 'Null',3183      __Unused44: 'Null',3184      __Unused45: 'Null',3185      __Unused46: 'Null',3186      __Unused47: 'Null',3187      __Unused48: 'Null',3188      __Unused49: 'Null',3189      __Unused50: 'Null',3190      PolkadotXcm: 'PalletXcmOrigin',3191      CumulusXcm: 'CumulusPalletXcmOrigin',3192      __Unused53: 'Null',3193      __Unused54: 'Null',3194      __Unused55: 'Null',3195      __Unused56: 'Null',3196      __Unused57: 'Null',3197      __Unused58: 'Null',3198      __Unused59: 'Null',3199      __Unused60: 'Null',3200      __Unused61: 'Null',3201      __Unused62: 'Null',3202      __Unused63: 'Null',3203      __Unused64: 'Null',3204      __Unused65: 'Null',3205      __Unused66: 'Null',3206      __Unused67: 'Null',3207      __Unused68: 'Null',3208      __Unused69: 'Null',3209      __Unused70: 'Null',3210      __Unused71: 'Null',3211      __Unused72: 'Null',3212      __Unused73: 'Null',3213      __Unused74: 'Null',3214      __Unused75: 'Null',3215      __Unused76: 'Null',3216      __Unused77: 'Null',3217      __Unused78: 'Null',3218      __Unused79: 'Null',3219      __Unused80: 'Null',3220      __Unused81: 'Null',3221      __Unused82: 'Null',3222      __Unused83: 'Null',3223      __Unused84: 'Null',3224      __Unused85: 'Null',3225      __Unused86: 'Null',3226      __Unused87: 'Null',3227      __Unused88: 'Null',3228      __Unused89: 'Null',3229      __Unused90: 'Null',3230      __Unused91: 'Null',3231      __Unused92: 'Null',3232      __Unused93: 'Null',3233      __Unused94: 'Null',3234      __Unused95: 'Null',3235      __Unused96: 'Null',3236      __Unused97: 'Null',3237      __Unused98: 'Null',3238      __Unused99: 'Null',3239      __Unused100: 'Null',3240      Ethereum: 'PalletEthereumRawOrigin'3241    }3242  },3243  /**3244   * Lookup388: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>3245   **/3246  FrameSupportDispatchRawOrigin: {3247    _enum: {3248      Root: 'Null',3249      Signed: 'AccountId32',3250      None: 'Null'3251    }3252  },3253  /**3254   * Lookup389: pallet_xcm::pallet::Origin3255   **/3256  PalletXcmOrigin: {3257    _enum: {3258      Xcm: 'XcmV1MultiLocation',3259      Response: 'XcmV1MultiLocation'3260    }3261  },3262  /**3263   * Lookup390: cumulus_pallet_xcm::pallet::Origin3264   **/3265  CumulusPalletXcmOrigin: {3266    _enum: {3267      Relay: 'Null',3268      SiblingParachain: 'u32'3269    }3270  },3271  /**3272   * Lookup391: pallet_ethereum::RawOrigin3273   **/3274  PalletEthereumRawOrigin: {3275    _enum: {3276      EthereumTransaction: 'H160'3277    }3278  },3279  /**3280   * Lookup392: sp_core::Void3281   **/3282  SpCoreVoid: 'Null',3283  /**3284   * Lookup394: pallet_unique_scheduler_v2::pallet::Error<T>3285   **/3286  PalletUniqueSchedulerV2Error: {3287    _enum: ['FailedToSchedule', 'AgendaIsExhausted', 'ScheduledCallCorrupted', 'PreimageNotFound', 'TooBigScheduledCall', 'NotFound', 'TargetBlockNumberInPast', 'Named']3288  },3289  /**3290   * Lookup395: up_data_structs::Collection<sp_core::crypto::AccountId32>3291   **/3292  UpDataStructsCollection: {3293    owner: 'AccountId32',3294    mode: 'UpDataStructsCollectionMode',3295    name: 'Vec<u16>',3296    description: 'Vec<u16>',3297    tokenPrefix: 'Bytes',3298    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3299    limits: 'UpDataStructsCollectionLimits',3300    permissions: 'UpDataStructsCollectionPermissions',3301    flags: '[u8;1]'3302  },3303  /**3304   * Lookup396: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3305   **/3306  UpDataStructsSponsorshipStateAccountId32: {3307    _enum: {3308      Disabled: 'Null',3309      Unconfirmed: 'AccountId32',3310      Confirmed: 'AccountId32'3311    }3312  },3313  /**3314   * Lookup398: up_data_structs::Properties3315   **/3316  UpDataStructsProperties: {3317    map: 'UpDataStructsPropertiesMapBoundedVec',3318    consumedSpace: 'u32',3319    spaceLimit: 'u32'3320  },3321  /**3322   * Lookup399: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3323   **/3324  UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3325  /**3326   * Lookup404: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3327   **/3328  UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3329  /**3330   * Lookup411: up_data_structs::CollectionStats3331   **/3332  UpDataStructsCollectionStats: {3333    created: 'u32',3334    destroyed: 'u32',3335    alive: 'u32'3336  },3337  /**3338   * Lookup412: up_data_structs::TokenChild3339   **/3340  UpDataStructsTokenChild: {3341    token: 'u32',3342    collection: 'u32'3343  },3344  /**3345   * Lookup413: PhantomType::up_data_structs<T>3346   **/3347  PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3348  /**3349   * Lookup415: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3350   **/3351  UpDataStructsTokenData: {3352    properties: 'Vec<UpDataStructsProperty>',3353    owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3354    pieces: 'u128'3355  },3356  /**3357   * Lookup417: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3358   **/3359  UpDataStructsRpcCollection: {3360    owner: 'AccountId32',3361    mode: 'UpDataStructsCollectionMode',3362    name: 'Vec<u16>',3363    description: 'Vec<u16>',3364    tokenPrefix: 'Bytes',3365    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3366    limits: 'UpDataStructsCollectionLimits',3367    permissions: 'UpDataStructsCollectionPermissions',3368    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',3369    properties: 'Vec<UpDataStructsProperty>',3370    readOnly: 'bool',3371    flags: 'UpDataStructsRpcCollectionFlags'3372  },3373  /**3374   * Lookup418: up_data_structs::RpcCollectionFlags3375   **/3376  UpDataStructsRpcCollectionFlags: {3377    foreign: 'bool',3378    erc721metadata: 'bool'3379  },3380  /**3381   * Lookup419: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3382   **/3383  RmrkTraitsCollectionCollectionInfo: {3384    issuer: 'AccountId32',3385    metadata: 'Bytes',3386    max: 'Option<u32>',3387    symbol: 'Bytes',3388    nftsCount: 'u32'3389  },3390  /**3391   * Lookup420: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3392   **/3393  RmrkTraitsNftNftInfo: {3394    owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3395    royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3396    metadata: 'Bytes',3397    equipped: 'bool',3398    pending: 'bool'3399  },3400  /**3401   * Lookup422: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3402   **/3403  RmrkTraitsNftRoyaltyInfo: {3404    recipient: 'AccountId32',3405    amount: 'Permill'3406  },3407  /**3408   * Lookup423: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3409   **/3410  RmrkTraitsResourceResourceInfo: {3411    id: 'u32',3412    resource: 'RmrkTraitsResourceResourceTypes',3413    pending: 'bool',3414    pendingRemoval: 'bool'3415  },3416  /**3417   * Lookup424: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3418   **/3419  RmrkTraitsPropertyPropertyInfo: {3420    key: 'Bytes',3421    value: 'Bytes'3422  },3423  /**3424   * Lookup425: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3425   **/3426  RmrkTraitsBaseBaseInfo: {3427    issuer: 'AccountId32',3428    baseType: 'Bytes',3429    symbol: 'Bytes'3430  },3431  /**3432   * Lookup426: rmrk_traits::nft::NftChild3433   **/3434  RmrkTraitsNftNftChild: {3435    collectionId: 'u32',3436    nftId: 'u32'3437  },3438  /**3439   * Lookup428: pallet_common::pallet::Error<T>3440   **/3441  PalletCommonError: {3442    _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']3443  },3444  /**3445   * Lookup430: pallet_fungible::pallet::Error<T>3446   **/3447  PalletFungibleError: {3448    _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3449  },3450  /**3451   * Lookup431: pallet_refungible::ItemData3452   **/3453  PalletRefungibleItemData: {3454    constData: 'Bytes'3455  },3456  /**3457   * Lookup436: pallet_refungible::pallet::Error<T>3458   **/3459  PalletRefungibleError: {3460    _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3461  },3462  /**3463   * Lookup437: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3464   **/3465  PalletNonfungibleItemData: {3466    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3467  },3468  /**3469   * Lookup439: up_data_structs::PropertyScope3470   **/3471  UpDataStructsPropertyScope: {3472    _enum: ['None', 'Rmrk']3473  },3474  /**3475   * Lookup441: pallet_nonfungible::pallet::Error<T>3476   **/3477  PalletNonfungibleError: {3478    _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3479  },3480  /**3481   * Lookup442: pallet_structure::pallet::Error<T>3482   **/3483  PalletStructureError: {3484    _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3485  },3486  /**3487   * Lookup443: pallet_rmrk_core::pallet::Error<T>3488   **/3489  PalletRmrkCoreError: {3490    _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3491  },3492  /**3493   * Lookup445: pallet_rmrk_equip::pallet::Error<T>3494   **/3495  PalletRmrkEquipError: {3496    _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3497  },3498  /**3499   * Lookup451: pallet_app_promotion::pallet::Error<T>3500   **/3501  PalletAppPromotionError: {3502    _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3503  },3504  /**3505   * Lookup452: pallet_foreign_assets::module::Error<T>3506   **/3507  PalletForeignAssetsModuleError: {3508    _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3509  },3510  /**3511   * Lookup454: pallet_evm::pallet::Error<T>3512   **/3513  PalletEvmError: {3514    _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy']3515  },3516  /**3517   * Lookup457: fp_rpc::TransactionStatus3518   **/3519  FpRpcTransactionStatus: {3520    transactionHash: 'H256',3521    transactionIndex: 'u32',3522    from: 'H160',3523    to: 'Option<H160>',3524    contractAddress: 'Option<H160>',3525    logs: 'Vec<EthereumLog>',3526    logsBloom: 'EthbloomBloom'3527  },3528  /**3529   * Lookup459: ethbloom::Bloom3530   **/3531  EthbloomBloom: '[u8;256]',3532  /**3533   * Lookup461: ethereum::receipt::ReceiptV33534   **/3535  EthereumReceiptReceiptV3: {3536    _enum: {3537      Legacy: 'EthereumReceiptEip658ReceiptData',3538      EIP2930: 'EthereumReceiptEip658ReceiptData',3539      EIP1559: 'EthereumReceiptEip658ReceiptData'3540    }3541  },3542  /**3543   * Lookup462: ethereum::receipt::EIP658ReceiptData3544   **/3545  EthereumReceiptEip658ReceiptData: {3546    statusCode: 'u8',3547    usedGas: 'U256',3548    logsBloom: 'EthbloomBloom',3549    logs: 'Vec<EthereumLog>'3550  },3551  /**3552   * Lookup463: ethereum::block::Block<ethereum::transaction::TransactionV2>3553   **/3554  EthereumBlock: {3555    header: 'EthereumHeader',3556    transactions: 'Vec<EthereumTransactionTransactionV2>',3557    ommers: 'Vec<EthereumHeader>'3558  },3559  /**3560   * Lookup464: ethereum::header::Header3561   **/3562  EthereumHeader: {3563    parentHash: 'H256',3564    ommersHash: 'H256',3565    beneficiary: 'H160',3566    stateRoot: 'H256',3567    transactionsRoot: 'H256',3568    receiptsRoot: 'H256',3569    logsBloom: 'EthbloomBloom',3570    difficulty: 'U256',3571    number: 'U256',3572    gasLimit: 'U256',3573    gasUsed: 'U256',3574    timestamp: 'u64',3575    extraData: 'Bytes',3576    mixHash: 'H256',3577    nonce: 'EthereumTypesHashH64'3578  },3579  /**3580   * Lookup465: ethereum_types::hash::H643581   **/3582  EthereumTypesHashH64: '[u8;8]',3583  /**3584   * Lookup470: pallet_ethereum::pallet::Error<T>3585   **/3586  PalletEthereumError: {3587    _enum: ['InvalidSignature', 'PreLogExists']3588  },3589  /**3590   * Lookup471: pallet_evm_coder_substrate::pallet::Error<T>3591   **/3592  PalletEvmCoderSubstrateError: {3593    _enum: ['OutOfGas', 'OutOfFund']3594  },3595  /**3596   * Lookup472: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3597   **/3598  UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3599    _enum: {3600      Disabled: 'Null',3601      Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3602      Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3603    }3604  },3605  /**3606   * Lookup473: pallet_evm_contract_helpers::SponsoringModeT3607   **/3608  PalletEvmContractHelpersSponsoringModeT: {3609    _enum: ['Disabled', 'Allowlisted', 'Generous']3610  },3611  /**3612   * Lookup479: pallet_evm_contract_helpers::pallet::Error<T>3613   **/3614  PalletEvmContractHelpersError: {3615    _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3616  },3617  /**3618   * Lookup480: pallet_evm_migration::pallet::Error<T>3619   **/3620  PalletEvmMigrationError: {3621    _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent']3622  },3623  /**3624   * Lookup481: pallet_maintenance::pallet::Error<T>3625   **/3626  PalletMaintenanceError: 'Null',3627  /**3628   * Lookup482: pallet_test_utils::pallet::Error<T>3629   **/3630  PalletTestUtilsError: {3631    _enum: ['TestPalletDisabled', 'TriggerRollback']3632  },3633  /**3634   * Lookup484: sp_runtime::MultiSignature3635   **/3636  SpRuntimeMultiSignature: {3637    _enum: {3638      Ed25519: 'SpCoreEd25519Signature',3639      Sr25519: 'SpCoreSr25519Signature',3640      Ecdsa: 'SpCoreEcdsaSignature'3641    }3642  },3643  /**3644   * Lookup485: sp_core::ed25519::Signature3645   **/3646  SpCoreEd25519Signature: '[u8;64]',3647  /**3648   * Lookup487: sp_core::sr25519::Signature3649   **/3650  SpCoreSr25519Signature: '[u8;64]',3651  /**3652   * Lookup488: sp_core::ecdsa::Signature3653   **/3654  SpCoreEcdsaSignature: '[u8;65]',3655  /**3656   * Lookup491: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3657   **/3658  FrameSystemExtensionsCheckSpecVersion: 'Null',3659  /**3660   * Lookup492: frame_system::extensions::check_tx_version::CheckTxVersion<T>3661   **/3662  FrameSystemExtensionsCheckTxVersion: 'Null',3663  /**3664   * Lookup493: frame_system::extensions::check_genesis::CheckGenesis<T>3665   **/3666  FrameSystemExtensionsCheckGenesis: 'Null',3667  /**3668   * Lookup496: frame_system::extensions::check_nonce::CheckNonce<T>3669   **/3670  FrameSystemExtensionsCheckNonce: 'Compact<u32>',3671  /**3672   * Lookup497: frame_system::extensions::check_weight::CheckWeight<T>3673   **/3674  FrameSystemExtensionsCheckWeight: 'Null',3675  /**3676   * Lookup498: opal_runtime::runtime_common::maintenance::CheckMaintenance3677   **/3678  OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',3679  /**3680   * Lookup499: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3681   **/3682  PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3683  /**3684   * Lookup500: opal_runtime::Runtime3685   **/3686  OpalRuntimeRuntime: 'Null',3687  /**3688   * Lookup501: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3689   **/3690  PalletEthereumFakeTransactionFinalizer: 'Null'3691};
after · tests/src/interfaces/lookup.ts
1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34/* eslint-disable sort-keys */56export default {7  /**8   * Lookup3: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>9   **/10  FrameSystemAccountInfo: {11    nonce: 'u32',12    consumers: 'u32',13    providers: 'u32',14    sufficients: 'u32',15    data: 'PalletBalancesAccountData'16  },17  /**18   * Lookup5: pallet_balances::AccountData<Balance>19   **/20  PalletBalancesAccountData: {21    free: 'u128',22    reserved: 'u128',23    miscFrozen: 'u128',24    feeFrozen: 'u128'25  },26  /**27   * Lookup7: frame_support::dispatch::PerDispatchClass<sp_weights::weight_v2::Weight>28   **/29  FrameSupportDispatchPerDispatchClassWeight: {30    normal: 'Weight',31    operational: 'Weight',32    mandatory: 'Weight'33  },34  /**35   * Lookup12: sp_runtime::generic::digest::Digest36   **/37  SpRuntimeDigest: {38    logs: 'Vec<SpRuntimeDigestDigestItem>'39  },40  /**41   * Lookup14: sp_runtime::generic::digest::DigestItem42   **/43  SpRuntimeDigestDigestItem: {44    _enum: {45      Other: 'Bytes',46      __Unused1: 'Null',47      __Unused2: 'Null',48      __Unused3: 'Null',49      Consensus: '([u8;4],Bytes)',50      Seal: '([u8;4],Bytes)',51      PreRuntime: '([u8;4],Bytes)',52      __Unused7: 'Null',53      RuntimeEnvironmentUpdated: 'Null'54    }55  },56  /**57   * Lookup17: frame_system::EventRecord<opal_runtime::RuntimeEvent, primitive_types::H256>58   **/59  FrameSystemEventRecord: {60    phase: 'FrameSystemPhase',61    event: 'Event',62    topics: 'Vec<H256>'63  },64  /**65   * Lookup19: frame_system::pallet::Event<T>66   **/67  FrameSystemEvent: {68    _enum: {69      ExtrinsicSuccess: {70        dispatchInfo: 'FrameSupportDispatchDispatchInfo',71      },72      ExtrinsicFailed: {73        dispatchError: 'SpRuntimeDispatchError',74        dispatchInfo: 'FrameSupportDispatchDispatchInfo',75      },76      CodeUpdated: 'Null',77      NewAccount: {78        account: 'AccountId32',79      },80      KilledAccount: {81        account: 'AccountId32',82      },83      Remarked: {84        _alias: {85          hash_: 'hash',86        },87        sender: 'AccountId32',88        hash_: 'H256'89      }90    }91  },92  /**93   * Lookup20: frame_support::dispatch::DispatchInfo94   **/95  FrameSupportDispatchDispatchInfo: {96    weight: 'Weight',97    class: 'FrameSupportDispatchDispatchClass',98    paysFee: 'FrameSupportDispatchPays'99  },100  /**101   * Lookup21: frame_support::dispatch::DispatchClass102   **/103  FrameSupportDispatchDispatchClass: {104    _enum: ['Normal', 'Operational', 'Mandatory']105  },106  /**107   * Lookup22: frame_support::dispatch::Pays108   **/109  FrameSupportDispatchPays: {110    _enum: ['Yes', 'No']111  },112  /**113   * Lookup23: sp_runtime::DispatchError114   **/115  SpRuntimeDispatchError: {116    _enum: {117      Other: 'Null',118      CannotLookup: 'Null',119      BadOrigin: 'Null',120      Module: 'SpRuntimeModuleError',121      ConsumerRemaining: 'Null',122      NoProviders: 'Null',123      TooManyConsumers: 'Null',124      Token: 'SpRuntimeTokenError',125      Arithmetic: 'SpRuntimeArithmeticError',126      Transactional: 'SpRuntimeTransactionalError'127    }128  },129  /**130   * Lookup24: sp_runtime::ModuleError131   **/132  SpRuntimeModuleError: {133    index: 'u8',134    error: '[u8;4]'135  },136  /**137   * Lookup25: sp_runtime::TokenError138   **/139  SpRuntimeTokenError: {140    _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']141  },142  /**143   * Lookup26: sp_runtime::ArithmeticError144   **/145  SpRuntimeArithmeticError: {146    _enum: ['Underflow', 'Overflow', 'DivisionByZero']147  },148  /**149   * Lookup27: sp_runtime::TransactionalError150   **/151  SpRuntimeTransactionalError: {152    _enum: ['LimitReached', 'NoLayer']153  },154  /**155   * Lookup28: cumulus_pallet_parachain_system::pallet::Event<T>156   **/157  CumulusPalletParachainSystemEvent: {158    _enum: {159      ValidationFunctionStored: 'Null',160      ValidationFunctionApplied: {161        relayChainBlockNum: 'u32',162      },163      ValidationFunctionDiscarded: 'Null',164      UpgradeAuthorized: {165        codeHash: 'H256',166      },167      DownwardMessagesReceived: {168        count: 'u32',169      },170      DownwardMessagesProcessed: {171        weightUsed: 'Weight',172        dmqHead: 'H256'173      }174    }175  },176  /**177   * Lookup29: pallet_balances::pallet::Event<T, I>178   **/179  PalletBalancesEvent: {180    _enum: {181      Endowed: {182        account: 'AccountId32',183        freeBalance: 'u128',184      },185      DustLost: {186        account: 'AccountId32',187        amount: 'u128',188      },189      Transfer: {190        from: 'AccountId32',191        to: 'AccountId32',192        amount: 'u128',193      },194      BalanceSet: {195        who: 'AccountId32',196        free: 'u128',197        reserved: 'u128',198      },199      Reserved: {200        who: 'AccountId32',201        amount: 'u128',202      },203      Unreserved: {204        who: 'AccountId32',205        amount: 'u128',206      },207      ReserveRepatriated: {208        from: 'AccountId32',209        to: 'AccountId32',210        amount: 'u128',211        destinationStatus: 'FrameSupportTokensMiscBalanceStatus',212      },213      Deposit: {214        who: 'AccountId32',215        amount: 'u128',216      },217      Withdraw: {218        who: 'AccountId32',219        amount: 'u128',220      },221      Slashed: {222        who: 'AccountId32',223        amount: 'u128'224      }225    }226  },227  /**228   * Lookup30: frame_support::traits::tokens::misc::BalanceStatus229   **/230  FrameSupportTokensMiscBalanceStatus: {231    _enum: ['Free', 'Reserved']232  },233  /**234   * Lookup31: pallet_transaction_payment::pallet::Event<T>235   **/236  PalletTransactionPaymentEvent: {237    _enum: {238      TransactionFeePaid: {239        who: 'AccountId32',240        actualFee: 'u128',241        tip: 'u128'242      }243    }244  },245  /**246   * Lookup32: pallet_treasury::pallet::Event<T, I>247   **/248  PalletTreasuryEvent: {249    _enum: {250      Proposed: {251        proposalIndex: 'u32',252      },253      Spending: {254        budgetRemaining: 'u128',255      },256      Awarded: {257        proposalIndex: 'u32',258        award: 'u128',259        account: 'AccountId32',260      },261      Rejected: {262        proposalIndex: 'u32',263        slashed: 'u128',264      },265      Burnt: {266        burntFunds: 'u128',267      },268      Rollover: {269        rolloverBalance: 'u128',270      },271      Deposit: {272        value: 'u128',273      },274      SpendApproved: {275        proposalIndex: 'u32',276        amount: 'u128',277        beneficiary: 'AccountId32'278      }279    }280  },281  /**282   * Lookup33: pallet_sudo::pallet::Event<T>283   **/284  PalletSudoEvent: {285    _enum: {286      Sudid: {287        sudoResult: 'Result<Null, SpRuntimeDispatchError>',288      },289      KeyChanged: {290        oldSudoer: 'Option<AccountId32>',291      },292      SudoAsDone: {293        sudoResult: 'Result<Null, SpRuntimeDispatchError>'294      }295    }296  },297  /**298   * Lookup37: orml_vesting::module::Event<T>299   **/300  OrmlVestingModuleEvent: {301    _enum: {302      VestingScheduleAdded: {303        from: 'AccountId32',304        to: 'AccountId32',305        vestingSchedule: 'OrmlVestingVestingSchedule',306      },307      Claimed: {308        who: 'AccountId32',309        amount: 'u128',310      },311      VestingSchedulesUpdated: {312        who: 'AccountId32'313      }314    }315  },316  /**317   * Lookup38: orml_vesting::VestingSchedule<BlockNumber, Balance>318   **/319  OrmlVestingVestingSchedule: {320    start: 'u32',321    period: 'u32',322    periodCount: 'u32',323    perPeriod: 'Compact<u128>'324  },325  /**326   * Lookup40: orml_xtokens::module::Event<T>327   **/328  OrmlXtokensModuleEvent: {329    _enum: {330      TransferredMultiAssets: {331        sender: 'AccountId32',332        assets: 'XcmV1MultiassetMultiAssets',333        fee: 'XcmV1MultiAsset',334        dest: 'XcmV1MultiLocation'335      }336    }337  },338  /**339   * Lookup41: xcm::v1::multiasset::MultiAssets340   **/341  XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',342  /**343   * Lookup43: xcm::v1::multiasset::MultiAsset344   **/345  XcmV1MultiAsset: {346    id: 'XcmV1MultiassetAssetId',347    fun: 'XcmV1MultiassetFungibility'348  },349  /**350   * Lookup44: xcm::v1::multiasset::AssetId351   **/352  XcmV1MultiassetAssetId: {353    _enum: {354      Concrete: 'XcmV1MultiLocation',355      Abstract: 'Bytes'356    }357  },358  /**359   * Lookup45: xcm::v1::multilocation::MultiLocation360   **/361  XcmV1MultiLocation: {362    parents: 'u8',363    interior: 'XcmV1MultilocationJunctions'364  },365  /**366   * Lookup46: xcm::v1::multilocation::Junctions367   **/368  XcmV1MultilocationJunctions: {369    _enum: {370      Here: 'Null',371      X1: 'XcmV1Junction',372      X2: '(XcmV1Junction,XcmV1Junction)',373      X3: '(XcmV1Junction,XcmV1Junction,XcmV1Junction)',374      X4: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',375      X5: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',376      X6: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',377      X7: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',378      X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'379    }380  },381  /**382   * Lookup47: xcm::v1::junction::Junction383   **/384  XcmV1Junction: {385    _enum: {386      Parachain: 'Compact<u32>',387      AccountId32: {388        network: 'XcmV0JunctionNetworkId',389        id: '[u8;32]',390      },391      AccountIndex64: {392        network: 'XcmV0JunctionNetworkId',393        index: 'Compact<u64>',394      },395      AccountKey20: {396        network: 'XcmV0JunctionNetworkId',397        key: '[u8;20]',398      },399      PalletInstance: 'u8',400      GeneralIndex: 'Compact<u128>',401      GeneralKey: 'Bytes',402      OnlyChild: 'Null',403      Plurality: {404        id: 'XcmV0JunctionBodyId',405        part: 'XcmV0JunctionBodyPart'406      }407    }408  },409  /**410   * Lookup49: xcm::v0::junction::NetworkId411   **/412  XcmV0JunctionNetworkId: {413    _enum: {414      Any: 'Null',415      Named: 'Bytes',416      Polkadot: 'Null',417      Kusama: 'Null'418    }419  },420  /**421   * Lookup53: xcm::v0::junction::BodyId422   **/423  XcmV0JunctionBodyId: {424    _enum: {425      Unit: 'Null',426      Named: 'Bytes',427      Index: 'Compact<u32>',428      Executive: 'Null',429      Technical: 'Null',430      Legislative: 'Null',431      Judicial: 'Null'432    }433  },434  /**435   * Lookup54: xcm::v0::junction::BodyPart436   **/437  XcmV0JunctionBodyPart: {438    _enum: {439      Voice: 'Null',440      Members: {441        count: 'Compact<u32>',442      },443      Fraction: {444        nom: 'Compact<u32>',445        denom: 'Compact<u32>',446      },447      AtLeastProportion: {448        nom: 'Compact<u32>',449        denom: 'Compact<u32>',450      },451      MoreThanProportion: {452        nom: 'Compact<u32>',453        denom: 'Compact<u32>'454      }455    }456  },457  /**458   * Lookup55: xcm::v1::multiasset::Fungibility459   **/460  XcmV1MultiassetFungibility: {461    _enum: {462      Fungible: 'Compact<u128>',463      NonFungible: 'XcmV1MultiassetAssetInstance'464    }465  },466  /**467   * Lookup56: xcm::v1::multiasset::AssetInstance468   **/469  XcmV1MultiassetAssetInstance: {470    _enum: {471      Undefined: 'Null',472      Index: 'Compact<u128>',473      Array4: '[u8;4]',474      Array8: '[u8;8]',475      Array16: '[u8;16]',476      Array32: '[u8;32]',477      Blob: 'Bytes'478    }479  },480  /**481   * Lookup59: orml_tokens::module::Event<T>482   **/483  OrmlTokensModuleEvent: {484    _enum: {485      Endowed: {486        currencyId: 'PalletForeignAssetsAssetIds',487        who: 'AccountId32',488        amount: 'u128',489      },490      DustLost: {491        currencyId: 'PalletForeignAssetsAssetIds',492        who: 'AccountId32',493        amount: 'u128',494      },495      Transfer: {496        currencyId: 'PalletForeignAssetsAssetIds',497        from: 'AccountId32',498        to: 'AccountId32',499        amount: 'u128',500      },501      Reserved: {502        currencyId: 'PalletForeignAssetsAssetIds',503        who: 'AccountId32',504        amount: 'u128',505      },506      Unreserved: {507        currencyId: 'PalletForeignAssetsAssetIds',508        who: 'AccountId32',509        amount: 'u128',510      },511      ReserveRepatriated: {512        currencyId: 'PalletForeignAssetsAssetIds',513        from: 'AccountId32',514        to: 'AccountId32',515        amount: 'u128',516        status: 'FrameSupportTokensMiscBalanceStatus',517      },518      BalanceSet: {519        currencyId: 'PalletForeignAssetsAssetIds',520        who: 'AccountId32',521        free: 'u128',522        reserved: 'u128',523      },524      TotalIssuanceSet: {525        currencyId: 'PalletForeignAssetsAssetIds',526        amount: 'u128',527      },528      Withdrawn: {529        currencyId: 'PalletForeignAssetsAssetIds',530        who: 'AccountId32',531        amount: 'u128',532      },533      Slashed: {534        currencyId: 'PalletForeignAssetsAssetIds',535        who: 'AccountId32',536        freeAmount: 'u128',537        reservedAmount: 'u128',538      },539      Deposited: {540        currencyId: 'PalletForeignAssetsAssetIds',541        who: 'AccountId32',542        amount: 'u128',543      },544      LockSet: {545        lockId: '[u8;8]',546        currencyId: 'PalletForeignAssetsAssetIds',547        who: 'AccountId32',548        amount: 'u128',549      },550      LockRemoved: {551        lockId: '[u8;8]',552        currencyId: 'PalletForeignAssetsAssetIds',553        who: 'AccountId32'554      }555    }556  },557  /**558   * Lookup60: pallet_foreign_assets::AssetIds559   **/560  PalletForeignAssetsAssetIds: {561    _enum: {562      ForeignAssetId: 'u32',563      NativeAssetId: 'PalletForeignAssetsNativeCurrency'564    }565  },566  /**567   * Lookup61: pallet_foreign_assets::NativeCurrency568   **/569  PalletForeignAssetsNativeCurrency: {570    _enum: ['Here', 'Parent']571  },572  /**573   * Lookup62: cumulus_pallet_xcmp_queue::pallet::Event<T>574   **/575  CumulusPalletXcmpQueueEvent: {576    _enum: {577      Success: {578        messageHash: 'Option<H256>',579        weight: 'Weight',580      },581      Fail: {582        messageHash: 'Option<H256>',583        error: 'XcmV2TraitsError',584        weight: 'Weight',585      },586      BadVersion: {587        messageHash: 'Option<H256>',588      },589      BadFormat: {590        messageHash: 'Option<H256>',591      },592      UpwardMessageSent: {593        messageHash: 'Option<H256>',594      },595      XcmpMessageSent: {596        messageHash: 'Option<H256>',597      },598      OverweightEnqueued: {599        sender: 'u32',600        sentAt: 'u32',601        index: 'u64',602        required: 'Weight',603      },604      OverweightServiced: {605        index: 'u64',606        used: 'Weight'607      }608    }609  },610  /**611   * Lookup64: xcm::v2::traits::Error612   **/613  XcmV2TraitsError: {614    _enum: {615      Overflow: 'Null',616      Unimplemented: 'Null',617      UntrustedReserveLocation: 'Null',618      UntrustedTeleportLocation: 'Null',619      MultiLocationFull: 'Null',620      MultiLocationNotInvertible: 'Null',621      BadOrigin: 'Null',622      InvalidLocation: 'Null',623      AssetNotFound: 'Null',624      FailedToTransactAsset: 'Null',625      NotWithdrawable: 'Null',626      LocationCannotHold: 'Null',627      ExceedsMaxMessageSize: 'Null',628      DestinationUnsupported: 'Null',629      Transport: 'Null',630      Unroutable: 'Null',631      UnknownClaim: 'Null',632      FailedToDecode: 'Null',633      MaxWeightInvalid: 'Null',634      NotHoldingFees: 'Null',635      TooExpensive: 'Null',636      Trap: 'u64',637      UnhandledXcmVersion: 'Null',638      WeightLimitReached: 'u64',639      Barrier: 'Null',640      WeightNotComputable: 'Null'641    }642  },643  /**644   * Lookup66: pallet_xcm::pallet::Event<T>645   **/646  PalletXcmEvent: {647    _enum: {648      Attempted: 'XcmV2TraitsOutcome',649      Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',650      UnexpectedResponse: '(XcmV1MultiLocation,u64)',651      ResponseReady: '(u64,XcmV2Response)',652      Notified: '(u64,u8,u8)',653      NotifyOverweight: '(u64,u8,u8,Weight,Weight)',654      NotifyDispatchError: '(u64,u8,u8)',655      NotifyDecodeFailed: '(u64,u8,u8)',656      InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',657      InvalidResponderVersion: '(XcmV1MultiLocation,u64)',658      ResponseTaken: 'u64',659      AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',660      VersionChangeNotified: '(XcmV1MultiLocation,u32)',661      SupportedVersionChanged: '(XcmV1MultiLocation,u32)',662      NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',663      NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'664    }665  },666  /**667   * Lookup67: xcm::v2::traits::Outcome668   **/669  XcmV2TraitsOutcome: {670    _enum: {671      Complete: 'u64',672      Incomplete: '(u64,XcmV2TraitsError)',673      Error: 'XcmV2TraitsError'674    }675  },676  /**677   * Lookup68: xcm::v2::Xcm<RuntimeCall>678   **/679  XcmV2Xcm: 'Vec<XcmV2Instruction>',680  /**681   * Lookup70: xcm::v2::Instruction<RuntimeCall>682   **/683  XcmV2Instruction: {684    _enum: {685      WithdrawAsset: 'XcmV1MultiassetMultiAssets',686      ReserveAssetDeposited: 'XcmV1MultiassetMultiAssets',687      ReceiveTeleportedAsset: 'XcmV1MultiassetMultiAssets',688      QueryResponse: {689        queryId: 'Compact<u64>',690        response: 'XcmV2Response',691        maxWeight: 'Compact<u64>',692      },693      TransferAsset: {694        assets: 'XcmV1MultiassetMultiAssets',695        beneficiary: 'XcmV1MultiLocation',696      },697      TransferReserveAsset: {698        assets: 'XcmV1MultiassetMultiAssets',699        dest: 'XcmV1MultiLocation',700        xcm: 'XcmV2Xcm',701      },702      Transact: {703        originType: 'XcmV0OriginKind',704        requireWeightAtMost: 'Compact<u64>',705        call: 'XcmDoubleEncoded',706      },707      HrmpNewChannelOpenRequest: {708        sender: 'Compact<u32>',709        maxMessageSize: 'Compact<u32>',710        maxCapacity: 'Compact<u32>',711      },712      HrmpChannelAccepted: {713        recipient: 'Compact<u32>',714      },715      HrmpChannelClosing: {716        initiator: 'Compact<u32>',717        sender: 'Compact<u32>',718        recipient: 'Compact<u32>',719      },720      ClearOrigin: 'Null',721      DescendOrigin: 'XcmV1MultilocationJunctions',722      ReportError: {723        queryId: 'Compact<u64>',724        dest: 'XcmV1MultiLocation',725        maxResponseWeight: 'Compact<u64>',726      },727      DepositAsset: {728        assets: 'XcmV1MultiassetMultiAssetFilter',729        maxAssets: 'Compact<u32>',730        beneficiary: 'XcmV1MultiLocation',731      },732      DepositReserveAsset: {733        assets: 'XcmV1MultiassetMultiAssetFilter',734        maxAssets: 'Compact<u32>',735        dest: 'XcmV1MultiLocation',736        xcm: 'XcmV2Xcm',737      },738      ExchangeAsset: {739        give: 'XcmV1MultiassetMultiAssetFilter',740        receive: 'XcmV1MultiassetMultiAssets',741      },742      InitiateReserveWithdraw: {743        assets: 'XcmV1MultiassetMultiAssetFilter',744        reserve: 'XcmV1MultiLocation',745        xcm: 'XcmV2Xcm',746      },747      InitiateTeleport: {748        assets: 'XcmV1MultiassetMultiAssetFilter',749        dest: 'XcmV1MultiLocation',750        xcm: 'XcmV2Xcm',751      },752      QueryHolding: {753        queryId: 'Compact<u64>',754        dest: 'XcmV1MultiLocation',755        assets: 'XcmV1MultiassetMultiAssetFilter',756        maxResponseWeight: 'Compact<u64>',757      },758      BuyExecution: {759        fees: 'XcmV1MultiAsset',760        weightLimit: 'XcmV2WeightLimit',761      },762      RefundSurplus: 'Null',763      SetErrorHandler: 'XcmV2Xcm',764      SetAppendix: 'XcmV2Xcm',765      ClearError: 'Null',766      ClaimAsset: {767        assets: 'XcmV1MultiassetMultiAssets',768        ticket: 'XcmV1MultiLocation',769      },770      Trap: 'Compact<u64>',771      SubscribeVersion: {772        queryId: 'Compact<u64>',773        maxResponseWeight: 'Compact<u64>',774      },775      UnsubscribeVersion: 'Null'776    }777  },778  /**779   * Lookup71: xcm::v2::Response780   **/781  XcmV2Response: {782    _enum: {783      Null: 'Null',784      Assets: 'XcmV1MultiassetMultiAssets',785      ExecutionResult: 'Option<(u32,XcmV2TraitsError)>',786      Version: 'u32'787    }788  },789  /**790   * Lookup74: xcm::v0::OriginKind791   **/792  XcmV0OriginKind: {793    _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']794  },795  /**796   * Lookup75: xcm::double_encoded::DoubleEncoded<T>797   **/798  XcmDoubleEncoded: {799    encoded: 'Bytes'800  },801  /**802   * Lookup76: xcm::v1::multiasset::MultiAssetFilter803   **/804  XcmV1MultiassetMultiAssetFilter: {805    _enum: {806      Definite: 'XcmV1MultiassetMultiAssets',807      Wild: 'XcmV1MultiassetWildMultiAsset'808    }809  },810  /**811   * Lookup77: xcm::v1::multiasset::WildMultiAsset812   **/813  XcmV1MultiassetWildMultiAsset: {814    _enum: {815      All: 'Null',816      AllOf: {817        id: 'XcmV1MultiassetAssetId',818        fun: 'XcmV1MultiassetWildFungibility'819      }820    }821  },822  /**823   * Lookup78: xcm::v1::multiasset::WildFungibility824   **/825  XcmV1MultiassetWildFungibility: {826    _enum: ['Fungible', 'NonFungible']827  },828  /**829   * Lookup79: xcm::v2::WeightLimit830   **/831  XcmV2WeightLimit: {832    _enum: {833      Unlimited: 'Null',834      Limited: 'Compact<u64>'835    }836  },837  /**838   * Lookup81: xcm::VersionedMultiAssets839   **/840  XcmVersionedMultiAssets: {841    _enum: {842      V0: 'Vec<XcmV0MultiAsset>',843      V1: 'XcmV1MultiassetMultiAssets'844    }845  },846  /**847   * Lookup83: xcm::v0::multi_asset::MultiAsset848   **/849  XcmV0MultiAsset: {850    _enum: {851      None: 'Null',852      All: 'Null',853      AllFungible: 'Null',854      AllNonFungible: 'Null',855      AllAbstractFungible: {856        id: 'Bytes',857      },858      AllAbstractNonFungible: {859        class: 'Bytes',860      },861      AllConcreteFungible: {862        id: 'XcmV0MultiLocation',863      },864      AllConcreteNonFungible: {865        class: 'XcmV0MultiLocation',866      },867      AbstractFungible: {868        id: 'Bytes',869        amount: 'Compact<u128>',870      },871      AbstractNonFungible: {872        class: 'Bytes',873        instance: 'XcmV1MultiassetAssetInstance',874      },875      ConcreteFungible: {876        id: 'XcmV0MultiLocation',877        amount: 'Compact<u128>',878      },879      ConcreteNonFungible: {880        class: 'XcmV0MultiLocation',881        instance: 'XcmV1MultiassetAssetInstance'882      }883    }884  },885  /**886   * Lookup84: xcm::v0::multi_location::MultiLocation887   **/888  XcmV0MultiLocation: {889    _enum: {890      Null: 'Null',891      X1: 'XcmV0Junction',892      X2: '(XcmV0Junction,XcmV0Junction)',893      X3: '(XcmV0Junction,XcmV0Junction,XcmV0Junction)',894      X4: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',895      X5: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',896      X6: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',897      X7: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',898      X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'899    }900  },901  /**902   * Lookup85: xcm::v0::junction::Junction903   **/904  XcmV0Junction: {905    _enum: {906      Parent: 'Null',907      Parachain: 'Compact<u32>',908      AccountId32: {909        network: 'XcmV0JunctionNetworkId',910        id: '[u8;32]',911      },912      AccountIndex64: {913        network: 'XcmV0JunctionNetworkId',914        index: 'Compact<u64>',915      },916      AccountKey20: {917        network: 'XcmV0JunctionNetworkId',918        key: '[u8;20]',919      },920      PalletInstance: 'u8',921      GeneralIndex: 'Compact<u128>',922      GeneralKey: 'Bytes',923      OnlyChild: 'Null',924      Plurality: {925        id: 'XcmV0JunctionBodyId',926        part: 'XcmV0JunctionBodyPart'927      }928    }929  },930  /**931   * Lookup86: xcm::VersionedMultiLocation932   **/933  XcmVersionedMultiLocation: {934    _enum: {935      V0: 'XcmV0MultiLocation',936      V1: 'XcmV1MultiLocation'937    }938  },939  /**940   * Lookup87: cumulus_pallet_xcm::pallet::Event<T>941   **/942  CumulusPalletXcmEvent: {943    _enum: {944      InvalidFormat: '[u8;8]',945      UnsupportedVersion: '[u8;8]',946      ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'947    }948  },949  /**950   * Lookup88: cumulus_pallet_dmp_queue::pallet::Event<T>951   **/952  CumulusPalletDmpQueueEvent: {953    _enum: {954      InvalidFormat: {955        messageId: '[u8;32]',956      },957      UnsupportedVersion: {958        messageId: '[u8;32]',959      },960      ExecutedDownward: {961        messageId: '[u8;32]',962        outcome: 'XcmV2TraitsOutcome',963      },964      WeightExhausted: {965        messageId: '[u8;32]',966        remainingWeight: 'Weight',967        requiredWeight: 'Weight',968      },969      OverweightEnqueued: {970        messageId: '[u8;32]',971        overweightIndex: 'u64',972        requiredWeight: 'Weight',973      },974      OverweightServiced: {975        overweightIndex: 'u64',976        weightUsed: 'Weight'977      }978    }979  },980  /**981   * Lookup89: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>982   **/983  PalletUniqueRawEvent: {984    _enum: {985      CollectionSponsorRemoved: 'u32',986      CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',987      CollectionOwnedChanged: '(u32,AccountId32)',988      CollectionSponsorSet: '(u32,AccountId32)',989      SponsorshipConfirmed: '(u32,AccountId32)',990      CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',991      AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',992      AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',993      CollectionLimitSet: 'u32',994      CollectionPermissionSet: 'u32'995    }996  },997  /**998   * Lookup90: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>999   **/1000  PalletEvmAccountBasicCrossAccountIdRepr: {1001    _enum: {1002      Substrate: 'AccountId32',1003      Ethereum: 'H160'1004    }1005  },1006  /**1007   * Lookup93: pallet_unique_scheduler_v2::pallet::Event<T>1008   **/1009  PalletUniqueSchedulerV2Event: {1010    _enum: {1011      Scheduled: {1012        when: 'u32',1013        index: 'u32',1014      },1015      Canceled: {1016        when: 'u32',1017        index: 'u32',1018      },1019      Dispatched: {1020        task: '(u32,u32)',1021        id: 'Option<[u8;32]>',1022        result: 'Result<Null, SpRuntimeDispatchError>',1023      },1024      PriorityChanged: {1025        task: '(u32,u32)',1026        priority: 'u8',1027      },1028      CallUnavailable: {1029        task: '(u32,u32)',1030        id: 'Option<[u8;32]>',1031      },1032      PermanentlyOverweight: {1033        task: '(u32,u32)',1034        id: 'Option<[u8;32]>'1035      }1036    }1037  },1038  /**1039   * Lookup96: pallet_common::pallet::Event<T>1040   **/1041  PalletCommonEvent: {1042    _enum: {1043      CollectionCreated: '(u32,u8,AccountId32)',1044      CollectionDestroyed: 'u32',1045      ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1046      ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1047      Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1048      Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1049      ApprovedForAll: '(u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,bool)',1050      CollectionPropertySet: '(u32,Bytes)',1051      CollectionPropertyDeleted: '(u32,Bytes)',1052      TokenPropertySet: '(u32,u32,Bytes)',1053      TokenPropertyDeleted: '(u32,u32,Bytes)',1054      PropertyPermissionSet: '(u32,Bytes)'1055    }1056  },1057  /**1058   * Lookup100: pallet_structure::pallet::Event<T>1059   **/1060  PalletStructureEvent: {1061    _enum: {1062      Executed: 'Result<Null, SpRuntimeDispatchError>'1063    }1064  },1065  /**1066   * Lookup101: pallet_rmrk_core::pallet::Event<T>1067   **/1068  PalletRmrkCoreEvent: {1069    _enum: {1070      CollectionCreated: {1071        issuer: 'AccountId32',1072        collectionId: 'u32',1073      },1074      CollectionDestroyed: {1075        issuer: 'AccountId32',1076        collectionId: 'u32',1077      },1078      IssuerChanged: {1079        oldIssuer: 'AccountId32',1080        newIssuer: 'AccountId32',1081        collectionId: 'u32',1082      },1083      CollectionLocked: {1084        issuer: 'AccountId32',1085        collectionId: 'u32',1086      },1087      NftMinted: {1088        owner: 'AccountId32',1089        collectionId: 'u32',1090        nftId: 'u32',1091      },1092      NFTBurned: {1093        owner: 'AccountId32',1094        nftId: 'u32',1095      },1096      NFTSent: {1097        sender: 'AccountId32',1098        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1099        collectionId: 'u32',1100        nftId: 'u32',1101        approvalRequired: 'bool',1102      },1103      NFTAccepted: {1104        sender: 'AccountId32',1105        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1106        collectionId: 'u32',1107        nftId: 'u32',1108      },1109      NFTRejected: {1110        sender: 'AccountId32',1111        collectionId: 'u32',1112        nftId: 'u32',1113      },1114      PropertySet: {1115        collectionId: 'u32',1116        maybeNftId: 'Option<u32>',1117        key: 'Bytes',1118        value: 'Bytes',1119      },1120      ResourceAdded: {1121        nftId: 'u32',1122        resourceId: 'u32',1123      },1124      ResourceRemoval: {1125        nftId: 'u32',1126        resourceId: 'u32',1127      },1128      ResourceAccepted: {1129        nftId: 'u32',1130        resourceId: 'u32',1131      },1132      ResourceRemovalAccepted: {1133        nftId: 'u32',1134        resourceId: 'u32',1135      },1136      PrioritySet: {1137        collectionId: 'u32',1138        nftId: 'u32'1139      }1140    }1141  },1142  /**1143   * Lookup102: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1144   **/1145  RmrkTraitsNftAccountIdOrCollectionNftTuple: {1146    _enum: {1147      AccountId: 'AccountId32',1148      CollectionAndNftTuple: '(u32,u32)'1149    }1150  },1151  /**1152   * Lookup106: pallet_rmrk_equip::pallet::Event<T>1153   **/1154  PalletRmrkEquipEvent: {1155    _enum: {1156      BaseCreated: {1157        issuer: 'AccountId32',1158        baseId: 'u32',1159      },1160      EquippablesUpdated: {1161        baseId: 'u32',1162        slotId: 'u32'1163      }1164    }1165  },1166  /**1167   * Lookup107: pallet_app_promotion::pallet::Event<T>1168   **/1169  PalletAppPromotionEvent: {1170    _enum: {1171      StakingRecalculation: '(AccountId32,u128,u128)',1172      Stake: '(AccountId32,u128)',1173      Unstake: '(AccountId32,u128)',1174      SetAdmin: 'AccountId32'1175    }1176  },1177  /**1178   * Lookup108: pallet_foreign_assets::module::Event<T>1179   **/1180  PalletForeignAssetsModuleEvent: {1181    _enum: {1182      ForeignAssetRegistered: {1183        assetId: 'u32',1184        assetAddress: 'XcmV1MultiLocation',1185        metadata: 'PalletForeignAssetsModuleAssetMetadata',1186      },1187      ForeignAssetUpdated: {1188        assetId: 'u32',1189        assetAddress: 'XcmV1MultiLocation',1190        metadata: 'PalletForeignAssetsModuleAssetMetadata',1191      },1192      AssetRegistered: {1193        assetId: 'PalletForeignAssetsAssetIds',1194        metadata: 'PalletForeignAssetsModuleAssetMetadata',1195      },1196      AssetUpdated: {1197        assetId: 'PalletForeignAssetsAssetIds',1198        metadata: 'PalletForeignAssetsModuleAssetMetadata'1199      }1200    }1201  },1202  /**1203   * Lookup109: pallet_foreign_assets::module::AssetMetadata<Balance>1204   **/1205  PalletForeignAssetsModuleAssetMetadata: {1206    name: 'Bytes',1207    symbol: 'Bytes',1208    decimals: 'u8',1209    minimalBalance: 'u128'1210  },1211  /**1212   * Lookup110: pallet_evm::pallet::Event<T>1213   **/1214  PalletEvmEvent: {1215    _enum: {1216      Log: {1217        log: 'EthereumLog',1218      },1219      Created: {1220        address: 'H160',1221      },1222      CreatedFailed: {1223        address: 'H160',1224      },1225      Executed: {1226        address: 'H160',1227      },1228      ExecutedFailed: {1229        address: 'H160'1230      }1231    }1232  },1233  /**1234   * Lookup111: ethereum::log::Log1235   **/1236  EthereumLog: {1237    address: 'H160',1238    topics: 'Vec<H256>',1239    data: 'Bytes'1240  },1241  /**1242   * Lookup113: pallet_ethereum::pallet::Event1243   **/1244  PalletEthereumEvent: {1245    _enum: {1246      Executed: {1247        from: 'H160',1248        to: 'H160',1249        transactionHash: 'H256',1250        exitReason: 'EvmCoreErrorExitReason'1251      }1252    }1253  },1254  /**1255   * Lookup114: evm_core::error::ExitReason1256   **/1257  EvmCoreErrorExitReason: {1258    _enum: {1259      Succeed: 'EvmCoreErrorExitSucceed',1260      Error: 'EvmCoreErrorExitError',1261      Revert: 'EvmCoreErrorExitRevert',1262      Fatal: 'EvmCoreErrorExitFatal'1263    }1264  },1265  /**1266   * Lookup115: evm_core::error::ExitSucceed1267   **/1268  EvmCoreErrorExitSucceed: {1269    _enum: ['Stopped', 'Returned', 'Suicided']1270  },1271  /**1272   * Lookup116: evm_core::error::ExitError1273   **/1274  EvmCoreErrorExitError: {1275    _enum: {1276      StackUnderflow: 'Null',1277      StackOverflow: 'Null',1278      InvalidJump: 'Null',1279      InvalidRange: 'Null',1280      DesignatedInvalid: 'Null',1281      CallTooDeep: 'Null',1282      CreateCollision: 'Null',1283      CreateContractLimit: 'Null',1284      OutOfOffset: 'Null',1285      OutOfGas: 'Null',1286      OutOfFund: 'Null',1287      PCUnderflow: 'Null',1288      CreateEmpty: 'Null',1289      Other: 'Text',1290      InvalidCode: 'Null'1291    }1292  },1293  /**1294   * Lookup119: evm_core::error::ExitRevert1295   **/1296  EvmCoreErrorExitRevert: {1297    _enum: ['Reverted']1298  },1299  /**1300   * Lookup120: evm_core::error::ExitFatal1301   **/1302  EvmCoreErrorExitFatal: {1303    _enum: {1304      NotSupported: 'Null',1305      UnhandledInterrupt: 'Null',1306      CallErrorAsFatal: 'EvmCoreErrorExitError',1307      Other: 'Text'1308    }1309  },1310  /**1311   * Lookup121: pallet_evm_contract_helpers::pallet::Event<T>1312   **/1313  PalletEvmContractHelpersEvent: {1314    _enum: {1315      ContractSponsorSet: '(H160,AccountId32)',1316      ContractSponsorshipConfirmed: '(H160,AccountId32)',1317      ContractSponsorRemoved: 'H160'1318    }1319  },1320  /**1321   * Lookup122: pallet_evm_migration::pallet::Event<T>1322   **/1323  PalletEvmMigrationEvent: {1324    _enum: ['TestEvent']1325  },1326  /**1327   * Lookup123: pallet_maintenance::pallet::Event<T>1328   **/1329  PalletMaintenanceEvent: {1330    _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']1331  },1332  /**1333   * Lookup124: pallet_test_utils::pallet::Event<T>1334   **/1335  PalletTestUtilsEvent: {1336    _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted']1337  },1338  /**1339   * Lookup125: frame_system::Phase1340   **/1341  FrameSystemPhase: {1342    _enum: {1343      ApplyExtrinsic: 'u32',1344      Finalization: 'Null',1345      Initialization: 'Null'1346    }1347  },1348  /**1349   * Lookup127: frame_system::LastRuntimeUpgradeInfo1350   **/1351  FrameSystemLastRuntimeUpgradeInfo: {1352    specVersion: 'Compact<u32>',1353    specName: 'Text'1354  },1355  /**1356   * Lookup128: frame_system::pallet::Call<T>1357   **/1358  FrameSystemCall: {1359    _enum: {1360      fill_block: {1361        ratio: 'Perbill',1362      },1363      remark: {1364        remark: 'Bytes',1365      },1366      set_heap_pages: {1367        pages: 'u64',1368      },1369      set_code: {1370        code: 'Bytes',1371      },1372      set_code_without_checks: {1373        code: 'Bytes',1374      },1375      set_storage: {1376        items: 'Vec<(Bytes,Bytes)>',1377      },1378      kill_storage: {1379        _alias: {1380          keys_: 'keys',1381        },1382        keys_: 'Vec<Bytes>',1383      },1384      kill_prefix: {1385        prefix: 'Bytes',1386        subkeys: 'u32',1387      },1388      remark_with_event: {1389        remark: 'Bytes'1390      }1391    }1392  },1393  /**1394   * Lookup133: frame_system::limits::BlockWeights1395   **/1396  FrameSystemLimitsBlockWeights: {1397    baseBlock: 'Weight',1398    maxBlock: 'Weight',1399    perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1400  },1401  /**1402   * Lookup134: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1403   **/1404  FrameSupportDispatchPerDispatchClassWeightsPerClass: {1405    normal: 'FrameSystemLimitsWeightsPerClass',1406    operational: 'FrameSystemLimitsWeightsPerClass',1407    mandatory: 'FrameSystemLimitsWeightsPerClass'1408  },1409  /**1410   * Lookup135: frame_system::limits::WeightsPerClass1411   **/1412  FrameSystemLimitsWeightsPerClass: {1413    baseExtrinsic: 'Weight',1414    maxExtrinsic: 'Option<Weight>',1415    maxTotal: 'Option<Weight>',1416    reserved: 'Option<Weight>'1417  },1418  /**1419   * Lookup137: frame_system::limits::BlockLength1420   **/1421  FrameSystemLimitsBlockLength: {1422    max: 'FrameSupportDispatchPerDispatchClassU32'1423  },1424  /**1425   * Lookup138: frame_support::dispatch::PerDispatchClass<T>1426   **/1427  FrameSupportDispatchPerDispatchClassU32: {1428    normal: 'u32',1429    operational: 'u32',1430    mandatory: 'u32'1431  },1432  /**1433   * Lookup139: sp_weights::RuntimeDbWeight1434   **/1435  SpWeightsRuntimeDbWeight: {1436    read: 'u64',1437    write: 'u64'1438  },1439  /**1440   * Lookup140: sp_version::RuntimeVersion1441   **/1442  SpVersionRuntimeVersion: {1443    specName: 'Text',1444    implName: 'Text',1445    authoringVersion: 'u32',1446    specVersion: 'u32',1447    implVersion: 'u32',1448    apis: 'Vec<([u8;8],u32)>',1449    transactionVersion: 'u32',1450    stateVersion: 'u8'1451  },1452  /**1453   * Lookup145: frame_system::pallet::Error<T>1454   **/1455  FrameSystemError: {1456    _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1457  },1458  /**1459   * Lookup146: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1460   **/1461  PolkadotPrimitivesV2PersistedValidationData: {1462    parentHead: 'Bytes',1463    relayParentNumber: 'u32',1464    relayParentStorageRoot: 'H256',1465    maxPovSize: 'u32'1466  },1467  /**1468   * Lookup149: polkadot_primitives::v2::UpgradeRestriction1469   **/1470  PolkadotPrimitivesV2UpgradeRestriction: {1471    _enum: ['Present']1472  },1473  /**1474   * Lookup150: sp_trie::storage_proof::StorageProof1475   **/1476  SpTrieStorageProof: {1477    trieNodes: 'BTreeSet<Bytes>'1478  },1479  /**1480   * Lookup152: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1481   **/1482  CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1483    dmqMqcHead: 'H256',1484    relayDispatchQueueSize: '(u32,u32)',1485    ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1486    egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1487  },1488  /**1489   * Lookup155: polkadot_primitives::v2::AbridgedHrmpChannel1490   **/1491  PolkadotPrimitivesV2AbridgedHrmpChannel: {1492    maxCapacity: 'u32',1493    maxTotalSize: 'u32',1494    maxMessageSize: 'u32',1495    msgCount: 'u32',1496    totalSize: 'u32',1497    mqcHead: 'Option<H256>'1498  },1499  /**1500   * Lookup156: polkadot_primitives::v2::AbridgedHostConfiguration1501   **/1502  PolkadotPrimitivesV2AbridgedHostConfiguration: {1503    maxCodeSize: 'u32',1504    maxHeadDataSize: 'u32',1505    maxUpwardQueueCount: 'u32',1506    maxUpwardQueueSize: 'u32',1507    maxUpwardMessageSize: 'u32',1508    maxUpwardMessageNumPerCandidate: 'u32',1509    hrmpMaxMessageNumPerCandidate: 'u32',1510    validationUpgradeCooldown: 'u32',1511    validationUpgradeDelay: 'u32'1512  },1513  /**1514   * Lookup162: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1515   **/1516  PolkadotCorePrimitivesOutboundHrmpMessage: {1517    recipient: 'u32',1518    data: 'Bytes'1519  },1520  /**1521   * Lookup163: cumulus_pallet_parachain_system::pallet::Call<T>1522   **/1523  CumulusPalletParachainSystemCall: {1524    _enum: {1525      set_validation_data: {1526        data: 'CumulusPrimitivesParachainInherentParachainInherentData',1527      },1528      sudo_send_upward_message: {1529        message: 'Bytes',1530      },1531      authorize_upgrade: {1532        codeHash: 'H256',1533      },1534      enact_authorized_upgrade: {1535        code: 'Bytes'1536      }1537    }1538  },1539  /**1540   * Lookup164: cumulus_primitives_parachain_inherent::ParachainInherentData1541   **/1542  CumulusPrimitivesParachainInherentParachainInherentData: {1543    validationData: 'PolkadotPrimitivesV2PersistedValidationData',1544    relayChainState: 'SpTrieStorageProof',1545    downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1546    horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1547  },1548  /**1549   * Lookup166: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1550   **/1551  PolkadotCorePrimitivesInboundDownwardMessage: {1552    sentAt: 'u32',1553    msg: 'Bytes'1554  },1555  /**1556   * Lookup169: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1557   **/1558  PolkadotCorePrimitivesInboundHrmpMessage: {1559    sentAt: 'u32',1560    data: 'Bytes'1561  },1562  /**1563   * Lookup172: cumulus_pallet_parachain_system::pallet::Error<T>1564   **/1565  CumulusPalletParachainSystemError: {1566    _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1567  },1568  /**1569   * Lookup174: pallet_balances::BalanceLock<Balance>1570   **/1571  PalletBalancesBalanceLock: {1572    id: '[u8;8]',1573    amount: 'u128',1574    reasons: 'PalletBalancesReasons'1575  },1576  /**1577   * Lookup175: pallet_balances::Reasons1578   **/1579  PalletBalancesReasons: {1580    _enum: ['Fee', 'Misc', 'All']1581  },1582  /**1583   * Lookup178: pallet_balances::ReserveData<ReserveIdentifier, Balance>1584   **/1585  PalletBalancesReserveData: {1586    id: '[u8;16]',1587    amount: 'u128'1588  },1589  /**1590   * Lookup180: pallet_balances::Releases1591   **/1592  PalletBalancesReleases: {1593    _enum: ['V1_0_0', 'V2_0_0']1594  },1595  /**1596   * Lookup181: pallet_balances::pallet::Call<T, I>1597   **/1598  PalletBalancesCall: {1599    _enum: {1600      transfer: {1601        dest: 'MultiAddress',1602        value: 'Compact<u128>',1603      },1604      set_balance: {1605        who: 'MultiAddress',1606        newFree: 'Compact<u128>',1607        newReserved: 'Compact<u128>',1608      },1609      force_transfer: {1610        source: 'MultiAddress',1611        dest: 'MultiAddress',1612        value: 'Compact<u128>',1613      },1614      transfer_keep_alive: {1615        dest: 'MultiAddress',1616        value: 'Compact<u128>',1617      },1618      transfer_all: {1619        dest: 'MultiAddress',1620        keepAlive: 'bool',1621      },1622      force_unreserve: {1623        who: 'MultiAddress',1624        amount: 'u128'1625      }1626    }1627  },1628  /**1629   * Lookup184: pallet_balances::pallet::Error<T, I>1630   **/1631  PalletBalancesError: {1632    _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1633  },1634  /**1635   * Lookup186: pallet_timestamp::pallet::Call<T>1636   **/1637  PalletTimestampCall: {1638    _enum: {1639      set: {1640        now: 'Compact<u64>'1641      }1642    }1643  },1644  /**1645   * Lookup188: pallet_transaction_payment::Releases1646   **/1647  PalletTransactionPaymentReleases: {1648    _enum: ['V1Ancient', 'V2']1649  },1650  /**1651   * Lookup189: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1652   **/1653  PalletTreasuryProposal: {1654    proposer: 'AccountId32',1655    value: 'u128',1656    beneficiary: 'AccountId32',1657    bond: 'u128'1658  },1659  /**1660   * Lookup192: pallet_treasury::pallet::Call<T, I>1661   **/1662  PalletTreasuryCall: {1663    _enum: {1664      propose_spend: {1665        value: 'Compact<u128>',1666        beneficiary: 'MultiAddress',1667      },1668      reject_proposal: {1669        proposalId: 'Compact<u32>',1670      },1671      approve_proposal: {1672        proposalId: 'Compact<u32>',1673      },1674      spend: {1675        amount: 'Compact<u128>',1676        beneficiary: 'MultiAddress',1677      },1678      remove_approval: {1679        proposalId: 'Compact<u32>'1680      }1681    }1682  },1683  /**1684   * Lookup195: frame_support::PalletId1685   **/1686  FrameSupportPalletId: '[u8;8]',1687  /**1688   * Lookup196: pallet_treasury::pallet::Error<T, I>1689   **/1690  PalletTreasuryError: {1691    _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1692  },1693  /**1694   * Lookup197: pallet_sudo::pallet::Call<T>1695   **/1696  PalletSudoCall: {1697    _enum: {1698      sudo: {1699        call: 'Call',1700      },1701      sudo_unchecked_weight: {1702        call: 'Call',1703        weight: 'Weight',1704      },1705      set_key: {1706        _alias: {1707          new_: 'new',1708        },1709        new_: 'MultiAddress',1710      },1711      sudo_as: {1712        who: 'MultiAddress',1713        call: 'Call'1714      }1715    }1716  },1717  /**1718   * Lookup199: orml_vesting::module::Call<T>1719   **/1720  OrmlVestingModuleCall: {1721    _enum: {1722      claim: 'Null',1723      vested_transfer: {1724        dest: 'MultiAddress',1725        schedule: 'OrmlVestingVestingSchedule',1726      },1727      update_vesting_schedules: {1728        who: 'MultiAddress',1729        vestingSchedules: 'Vec<OrmlVestingVestingSchedule>',1730      },1731      claim_for: {1732        dest: 'MultiAddress'1733      }1734    }1735  },1736  /**1737   * Lookup201: orml_xtokens::module::Call<T>1738   **/1739  OrmlXtokensModuleCall: {1740    _enum: {1741      transfer: {1742        currencyId: 'PalletForeignAssetsAssetIds',1743        amount: 'u128',1744        dest: 'XcmVersionedMultiLocation',1745        destWeight: 'u64',1746      },1747      transfer_multiasset: {1748        asset: 'XcmVersionedMultiAsset',1749        dest: 'XcmVersionedMultiLocation',1750        destWeight: 'u64',1751      },1752      transfer_with_fee: {1753        currencyId: 'PalletForeignAssetsAssetIds',1754        amount: 'u128',1755        fee: 'u128',1756        dest: 'XcmVersionedMultiLocation',1757        destWeight: 'u64',1758      },1759      transfer_multiasset_with_fee: {1760        asset: 'XcmVersionedMultiAsset',1761        fee: 'XcmVersionedMultiAsset',1762        dest: 'XcmVersionedMultiLocation',1763        destWeight: 'u64',1764      },1765      transfer_multicurrencies: {1766        currencies: 'Vec<(PalletForeignAssetsAssetIds,u128)>',1767        feeItem: 'u32',1768        dest: 'XcmVersionedMultiLocation',1769        destWeight: 'u64',1770      },1771      transfer_multiassets: {1772        assets: 'XcmVersionedMultiAssets',1773        feeItem: 'u32',1774        dest: 'XcmVersionedMultiLocation',1775        destWeight: 'u64'1776      }1777    }1778  },1779  /**1780   * Lookup202: xcm::VersionedMultiAsset1781   **/1782  XcmVersionedMultiAsset: {1783    _enum: {1784      V0: 'XcmV0MultiAsset',1785      V1: 'XcmV1MultiAsset'1786    }1787  },1788  /**1789   * Lookup205: orml_tokens::module::Call<T>1790   **/1791  OrmlTokensModuleCall: {1792    _enum: {1793      transfer: {1794        dest: 'MultiAddress',1795        currencyId: 'PalletForeignAssetsAssetIds',1796        amount: 'Compact<u128>',1797      },1798      transfer_all: {1799        dest: 'MultiAddress',1800        currencyId: 'PalletForeignAssetsAssetIds',1801        keepAlive: 'bool',1802      },1803      transfer_keep_alive: {1804        dest: 'MultiAddress',1805        currencyId: 'PalletForeignAssetsAssetIds',1806        amount: 'Compact<u128>',1807      },1808      force_transfer: {1809        source: 'MultiAddress',1810        dest: 'MultiAddress',1811        currencyId: 'PalletForeignAssetsAssetIds',1812        amount: 'Compact<u128>',1813      },1814      set_balance: {1815        who: 'MultiAddress',1816        currencyId: 'PalletForeignAssetsAssetIds',1817        newFree: 'Compact<u128>',1818        newReserved: 'Compact<u128>'1819      }1820    }1821  },1822  /**1823   * Lookup206: cumulus_pallet_xcmp_queue::pallet::Call<T>1824   **/1825  CumulusPalletXcmpQueueCall: {1826    _enum: {1827      service_overweight: {1828        index: 'u64',1829        weightLimit: 'Weight',1830      },1831      suspend_xcm_execution: 'Null',1832      resume_xcm_execution: 'Null',1833      update_suspend_threshold: {1834        _alias: {1835          new_: 'new',1836        },1837        new_: 'u32',1838      },1839      update_drop_threshold: {1840        _alias: {1841          new_: 'new',1842        },1843        new_: 'u32',1844      },1845      update_resume_threshold: {1846        _alias: {1847          new_: 'new',1848        },1849        new_: 'u32',1850      },1851      update_threshold_weight: {1852        _alias: {1853          new_: 'new',1854        },1855        new_: 'Weight',1856      },1857      update_weight_restrict_decay: {1858        _alias: {1859          new_: 'new',1860        },1861        new_: 'Weight',1862      },1863      update_xcmp_max_individual_weight: {1864        _alias: {1865          new_: 'new',1866        },1867        new_: 'Weight'1868      }1869    }1870  },1871  /**1872   * Lookup207: pallet_xcm::pallet::Call<T>1873   **/1874  PalletXcmCall: {1875    _enum: {1876      send: {1877        dest: 'XcmVersionedMultiLocation',1878        message: 'XcmVersionedXcm',1879      },1880      teleport_assets: {1881        dest: 'XcmVersionedMultiLocation',1882        beneficiary: 'XcmVersionedMultiLocation',1883        assets: 'XcmVersionedMultiAssets',1884        feeAssetItem: 'u32',1885      },1886      reserve_transfer_assets: {1887        dest: 'XcmVersionedMultiLocation',1888        beneficiary: 'XcmVersionedMultiLocation',1889        assets: 'XcmVersionedMultiAssets',1890        feeAssetItem: 'u32',1891      },1892      execute: {1893        message: 'XcmVersionedXcm',1894        maxWeight: 'Weight',1895      },1896      force_xcm_version: {1897        location: 'XcmV1MultiLocation',1898        xcmVersion: 'u32',1899      },1900      force_default_xcm_version: {1901        maybeXcmVersion: 'Option<u32>',1902      },1903      force_subscribe_version_notify: {1904        location: 'XcmVersionedMultiLocation',1905      },1906      force_unsubscribe_version_notify: {1907        location: 'XcmVersionedMultiLocation',1908      },1909      limited_reserve_transfer_assets: {1910        dest: 'XcmVersionedMultiLocation',1911        beneficiary: 'XcmVersionedMultiLocation',1912        assets: 'XcmVersionedMultiAssets',1913        feeAssetItem: 'u32',1914        weightLimit: 'XcmV2WeightLimit',1915      },1916      limited_teleport_assets: {1917        dest: 'XcmVersionedMultiLocation',1918        beneficiary: 'XcmVersionedMultiLocation',1919        assets: 'XcmVersionedMultiAssets',1920        feeAssetItem: 'u32',1921        weightLimit: 'XcmV2WeightLimit'1922      }1923    }1924  },1925  /**1926   * Lookup208: xcm::VersionedXcm<RuntimeCall>1927   **/1928  XcmVersionedXcm: {1929    _enum: {1930      V0: 'XcmV0Xcm',1931      V1: 'XcmV1Xcm',1932      V2: 'XcmV2Xcm'1933    }1934  },1935  /**1936   * Lookup209: xcm::v0::Xcm<RuntimeCall>1937   **/1938  XcmV0Xcm: {1939    _enum: {1940      WithdrawAsset: {1941        assets: 'Vec<XcmV0MultiAsset>',1942        effects: 'Vec<XcmV0Order>',1943      },1944      ReserveAssetDeposit: {1945        assets: 'Vec<XcmV0MultiAsset>',1946        effects: 'Vec<XcmV0Order>',1947      },1948      TeleportAsset: {1949        assets: 'Vec<XcmV0MultiAsset>',1950        effects: 'Vec<XcmV0Order>',1951      },1952      QueryResponse: {1953        queryId: 'Compact<u64>',1954        response: 'XcmV0Response',1955      },1956      TransferAsset: {1957        assets: 'Vec<XcmV0MultiAsset>',1958        dest: 'XcmV0MultiLocation',1959      },1960      TransferReserveAsset: {1961        assets: 'Vec<XcmV0MultiAsset>',1962        dest: 'XcmV0MultiLocation',1963        effects: 'Vec<XcmV0Order>',1964      },1965      Transact: {1966        originType: 'XcmV0OriginKind',1967        requireWeightAtMost: 'u64',1968        call: 'XcmDoubleEncoded',1969      },1970      HrmpNewChannelOpenRequest: {1971        sender: 'Compact<u32>',1972        maxMessageSize: 'Compact<u32>',1973        maxCapacity: 'Compact<u32>',1974      },1975      HrmpChannelAccepted: {1976        recipient: 'Compact<u32>',1977      },1978      HrmpChannelClosing: {1979        initiator: 'Compact<u32>',1980        sender: 'Compact<u32>',1981        recipient: 'Compact<u32>',1982      },1983      RelayedFrom: {1984        who: 'XcmV0MultiLocation',1985        message: 'XcmV0Xcm'1986      }1987    }1988  },1989  /**1990   * Lookup211: xcm::v0::order::Order<RuntimeCall>1991   **/1992  XcmV0Order: {1993    _enum: {1994      Null: 'Null',1995      DepositAsset: {1996        assets: 'Vec<XcmV0MultiAsset>',1997        dest: 'XcmV0MultiLocation',1998      },1999      DepositReserveAsset: {2000        assets: 'Vec<XcmV0MultiAsset>',2001        dest: 'XcmV0MultiLocation',2002        effects: 'Vec<XcmV0Order>',2003      },2004      ExchangeAsset: {2005        give: 'Vec<XcmV0MultiAsset>',2006        receive: 'Vec<XcmV0MultiAsset>',2007      },2008      InitiateReserveWithdraw: {2009        assets: 'Vec<XcmV0MultiAsset>',2010        reserve: 'XcmV0MultiLocation',2011        effects: 'Vec<XcmV0Order>',2012      },2013      InitiateTeleport: {2014        assets: 'Vec<XcmV0MultiAsset>',2015        dest: 'XcmV0MultiLocation',2016        effects: 'Vec<XcmV0Order>',2017      },2018      QueryHolding: {2019        queryId: 'Compact<u64>',2020        dest: 'XcmV0MultiLocation',2021        assets: 'Vec<XcmV0MultiAsset>',2022      },2023      BuyExecution: {2024        fees: 'XcmV0MultiAsset',2025        weight: 'u64',2026        debt: 'u64',2027        haltOnError: 'bool',2028        xcm: 'Vec<XcmV0Xcm>'2029      }2030    }2031  },2032  /**2033   * Lookup213: xcm::v0::Response2034   **/2035  XcmV0Response: {2036    _enum: {2037      Assets: 'Vec<XcmV0MultiAsset>'2038    }2039  },2040  /**2041   * Lookup214: xcm::v1::Xcm<RuntimeCall>2042   **/2043  XcmV1Xcm: {2044    _enum: {2045      WithdrawAsset: {2046        assets: 'XcmV1MultiassetMultiAssets',2047        effects: 'Vec<XcmV1Order>',2048      },2049      ReserveAssetDeposited: {2050        assets: 'XcmV1MultiassetMultiAssets',2051        effects: 'Vec<XcmV1Order>',2052      },2053      ReceiveTeleportedAsset: {2054        assets: 'XcmV1MultiassetMultiAssets',2055        effects: 'Vec<XcmV1Order>',2056      },2057      QueryResponse: {2058        queryId: 'Compact<u64>',2059        response: 'XcmV1Response',2060      },2061      TransferAsset: {2062        assets: 'XcmV1MultiassetMultiAssets',2063        beneficiary: 'XcmV1MultiLocation',2064      },2065      TransferReserveAsset: {2066        assets: 'XcmV1MultiassetMultiAssets',2067        dest: 'XcmV1MultiLocation',2068        effects: 'Vec<XcmV1Order>',2069      },2070      Transact: {2071        originType: 'XcmV0OriginKind',2072        requireWeightAtMost: 'u64',2073        call: 'XcmDoubleEncoded',2074      },2075      HrmpNewChannelOpenRequest: {2076        sender: 'Compact<u32>',2077        maxMessageSize: 'Compact<u32>',2078        maxCapacity: 'Compact<u32>',2079      },2080      HrmpChannelAccepted: {2081        recipient: 'Compact<u32>',2082      },2083      HrmpChannelClosing: {2084        initiator: 'Compact<u32>',2085        sender: 'Compact<u32>',2086        recipient: 'Compact<u32>',2087      },2088      RelayedFrom: {2089        who: 'XcmV1MultilocationJunctions',2090        message: 'XcmV1Xcm',2091      },2092      SubscribeVersion: {2093        queryId: 'Compact<u64>',2094        maxResponseWeight: 'Compact<u64>',2095      },2096      UnsubscribeVersion: 'Null'2097    }2098  },2099  /**2100   * Lookup216: xcm::v1::order::Order<RuntimeCall>2101   **/2102  XcmV1Order: {2103    _enum: {2104      Noop: 'Null',2105      DepositAsset: {2106        assets: 'XcmV1MultiassetMultiAssetFilter',2107        maxAssets: 'u32',2108        beneficiary: 'XcmV1MultiLocation',2109      },2110      DepositReserveAsset: {2111        assets: 'XcmV1MultiassetMultiAssetFilter',2112        maxAssets: 'u32',2113        dest: 'XcmV1MultiLocation',2114        effects: 'Vec<XcmV1Order>',2115      },2116      ExchangeAsset: {2117        give: 'XcmV1MultiassetMultiAssetFilter',2118        receive: 'XcmV1MultiassetMultiAssets',2119      },2120      InitiateReserveWithdraw: {2121        assets: 'XcmV1MultiassetMultiAssetFilter',2122        reserve: 'XcmV1MultiLocation',2123        effects: 'Vec<XcmV1Order>',2124      },2125      InitiateTeleport: {2126        assets: 'XcmV1MultiassetMultiAssetFilter',2127        dest: 'XcmV1MultiLocation',2128        effects: 'Vec<XcmV1Order>',2129      },2130      QueryHolding: {2131        queryId: 'Compact<u64>',2132        dest: 'XcmV1MultiLocation',2133        assets: 'XcmV1MultiassetMultiAssetFilter',2134      },2135      BuyExecution: {2136        fees: 'XcmV1MultiAsset',2137        weight: 'u64',2138        debt: 'u64',2139        haltOnError: 'bool',2140        instructions: 'Vec<XcmV1Xcm>'2141      }2142    }2143  },2144  /**2145   * Lookup218: xcm::v1::Response2146   **/2147  XcmV1Response: {2148    _enum: {2149      Assets: 'XcmV1MultiassetMultiAssets',2150      Version: 'u32'2151    }2152  },2153  /**2154   * Lookup232: cumulus_pallet_xcm::pallet::Call<T>2155   **/2156  CumulusPalletXcmCall: 'Null',2157  /**2158   * Lookup233: cumulus_pallet_dmp_queue::pallet::Call<T>2159   **/2160  CumulusPalletDmpQueueCall: {2161    _enum: {2162      service_overweight: {2163        index: 'u64',2164        weightLimit: 'Weight'2165      }2166    }2167  },2168  /**2169   * Lookup234: pallet_inflation::pallet::Call<T>2170   **/2171  PalletInflationCall: {2172    _enum: {2173      start_inflation: {2174        inflationStartRelayBlock: 'u32'2175      }2176    }2177  },2178  /**2179   * Lookup235: pallet_unique::Call<T>2180   **/2181  PalletUniqueCall: {2182    _enum: {2183      create_collection: {2184        collectionName: 'Vec<u16>',2185        collectionDescription: 'Vec<u16>',2186        tokenPrefix: 'Bytes',2187        mode: 'UpDataStructsCollectionMode',2188      },2189      create_collection_ex: {2190        data: 'UpDataStructsCreateCollectionData',2191      },2192      destroy_collection: {2193        collectionId: 'u32',2194      },2195      add_to_allow_list: {2196        collectionId: 'u32',2197        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2198      },2199      remove_from_allow_list: {2200        collectionId: 'u32',2201        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2202      },2203      change_collection_owner: {2204        collectionId: 'u32',2205        newOwner: 'AccountId32',2206      },2207      add_collection_admin: {2208        collectionId: 'u32',2209        newAdminId: 'PalletEvmAccountBasicCrossAccountIdRepr',2210      },2211      remove_collection_admin: {2212        collectionId: 'u32',2213        accountId: 'PalletEvmAccountBasicCrossAccountIdRepr',2214      },2215      set_collection_sponsor: {2216        collectionId: 'u32',2217        newSponsor: 'AccountId32',2218      },2219      confirm_sponsorship: {2220        collectionId: 'u32',2221      },2222      remove_collection_sponsor: {2223        collectionId: 'u32',2224      },2225      create_item: {2226        collectionId: 'u32',2227        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2228        data: 'UpDataStructsCreateItemData',2229      },2230      create_multiple_items: {2231        collectionId: 'u32',2232        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2233        itemsData: 'Vec<UpDataStructsCreateItemData>',2234      },2235      set_collection_properties: {2236        collectionId: 'u32',2237        properties: 'Vec<UpDataStructsProperty>',2238      },2239      delete_collection_properties: {2240        collectionId: 'u32',2241        propertyKeys: 'Vec<Bytes>',2242      },2243      set_token_properties: {2244        collectionId: 'u32',2245        tokenId: 'u32',2246        properties: 'Vec<UpDataStructsProperty>',2247      },2248      delete_token_properties: {2249        collectionId: 'u32',2250        tokenId: 'u32',2251        propertyKeys: 'Vec<Bytes>',2252      },2253      set_token_property_permissions: {2254        collectionId: 'u32',2255        propertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2256      },2257      create_multiple_items_ex: {2258        collectionId: 'u32',2259        data: 'UpDataStructsCreateItemExData',2260      },2261      set_transfers_enabled_flag: {2262        collectionId: 'u32',2263        value: 'bool',2264      },2265      burn_item: {2266        collectionId: 'u32',2267        itemId: 'u32',2268        value: 'u128',2269      },2270      burn_from: {2271        collectionId: 'u32',2272        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2273        itemId: 'u32',2274        value: 'u128',2275      },2276      transfer: {2277        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2278        collectionId: 'u32',2279        itemId: 'u32',2280        value: 'u128',2281      },2282      approve: {2283        spender: 'PalletEvmAccountBasicCrossAccountIdRepr',2284        collectionId: 'u32',2285        itemId: 'u32',2286        amount: 'u128',2287      },2288      transfer_from: {2289        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2290        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2291        collectionId: 'u32',2292        itemId: 'u32',2293        value: 'u128',2294      },2295      set_collection_limits: {2296        collectionId: 'u32',2297        newLimit: 'UpDataStructsCollectionLimits',2298      },2299      set_collection_permissions: {2300        collectionId: 'u32',2301        newPermission: 'UpDataStructsCollectionPermissions',2302      },2303      repartition: {2304        collectionId: 'u32',2305        tokenId: 'u32',2306        amount: 'u128',2307      },2308      set_approval_for_all: {2309        collectionId: 'u32',2310        operator: 'PalletEvmAccountBasicCrossAccountIdRepr',2311        approve: 'bool'2312      }2313    }2314  },2315  /**2316   * Lookup240: up_data_structs::CollectionMode2317   **/2318  UpDataStructsCollectionMode: {2319    _enum: {2320      NFT: 'Null',2321      Fungible: 'u8',2322      ReFungible: 'Null'2323    }2324  },2325  /**2326   * Lookup241: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2327   **/2328  UpDataStructsCreateCollectionData: {2329    mode: 'UpDataStructsCollectionMode',2330    access: 'Option<UpDataStructsAccessMode>',2331    name: 'Vec<u16>',2332    description: 'Vec<u16>',2333    tokenPrefix: 'Bytes',2334    pendingSponsor: 'Option<AccountId32>',2335    limits: 'Option<UpDataStructsCollectionLimits>',2336    permissions: 'Option<UpDataStructsCollectionPermissions>',2337    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2338    properties: 'Vec<UpDataStructsProperty>'2339  },2340  /**2341   * Lookup243: up_data_structs::AccessMode2342   **/2343  UpDataStructsAccessMode: {2344    _enum: ['Normal', 'AllowList']2345  },2346  /**2347   * Lookup245: up_data_structs::CollectionLimits2348   **/2349  UpDataStructsCollectionLimits: {2350    accountTokenOwnershipLimit: 'Option<u32>',2351    sponsoredDataSize: 'Option<u32>',2352    sponsoredDataRateLimit: 'Option<UpDataStructsSponsoringRateLimit>',2353    tokenLimit: 'Option<u32>',2354    sponsorTransferTimeout: 'Option<u32>',2355    sponsorApproveTimeout: 'Option<u32>',2356    ownerCanTransfer: 'Option<bool>',2357    ownerCanDestroy: 'Option<bool>',2358    transfersEnabled: 'Option<bool>'2359  },2360  /**2361   * Lookup247: up_data_structs::SponsoringRateLimit2362   **/2363  UpDataStructsSponsoringRateLimit: {2364    _enum: {2365      SponsoringDisabled: 'Null',2366      Blocks: 'u32'2367    }2368  },2369  /**2370   * Lookup250: up_data_structs::CollectionPermissions2371   **/2372  UpDataStructsCollectionPermissions: {2373    access: 'Option<UpDataStructsAccessMode>',2374    mintMode: 'Option<bool>',2375    nesting: 'Option<UpDataStructsNestingPermissions>'2376  },2377  /**2378   * Lookup252: up_data_structs::NestingPermissions2379   **/2380  UpDataStructsNestingPermissions: {2381    tokenOwner: 'bool',2382    collectionAdmin: 'bool',2383    restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2384  },2385  /**2386   * Lookup254: up_data_structs::OwnerRestrictedSet2387   **/2388  UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2389  /**2390   * Lookup259: up_data_structs::PropertyKeyPermission2391   **/2392  UpDataStructsPropertyKeyPermission: {2393    key: 'Bytes',2394    permission: 'UpDataStructsPropertyPermission'2395  },2396  /**2397   * Lookup260: up_data_structs::PropertyPermission2398   **/2399  UpDataStructsPropertyPermission: {2400    mutable: 'bool',2401    collectionAdmin: 'bool',2402    tokenOwner: 'bool'2403  },2404  /**2405   * Lookup263: up_data_structs::Property2406   **/2407  UpDataStructsProperty: {2408    key: 'Bytes',2409    value: 'Bytes'2410  },2411  /**2412   * Lookup266: up_data_structs::CreateItemData2413   **/2414  UpDataStructsCreateItemData: {2415    _enum: {2416      NFT: 'UpDataStructsCreateNftData',2417      Fungible: 'UpDataStructsCreateFungibleData',2418      ReFungible: 'UpDataStructsCreateReFungibleData'2419    }2420  },2421  /**2422   * Lookup267: up_data_structs::CreateNftData2423   **/2424  UpDataStructsCreateNftData: {2425    properties: 'Vec<UpDataStructsProperty>'2426  },2427  /**2428   * Lookup268: up_data_structs::CreateFungibleData2429   **/2430  UpDataStructsCreateFungibleData: {2431    value: 'u128'2432  },2433  /**2434   * Lookup269: up_data_structs::CreateReFungibleData2435   **/2436  UpDataStructsCreateReFungibleData: {2437    pieces: 'u128',2438    properties: 'Vec<UpDataStructsProperty>'2439  },2440  /**2441   * Lookup272: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2442   **/2443  UpDataStructsCreateItemExData: {2444    _enum: {2445      NFT: 'Vec<UpDataStructsCreateNftExData>',2446      Fungible: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2447      RefungibleMultipleItems: 'Vec<UpDataStructsCreateRefungibleExSingleOwner>',2448      RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2449    }2450  },2451  /**2452   * Lookup274: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2453   **/2454  UpDataStructsCreateNftExData: {2455    properties: 'Vec<UpDataStructsProperty>',2456    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2457  },2458  /**2459   * Lookup281: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2460   **/2461  UpDataStructsCreateRefungibleExSingleOwner: {2462    user: 'PalletEvmAccountBasicCrossAccountIdRepr',2463    pieces: 'u128',2464    properties: 'Vec<UpDataStructsProperty>'2465  },2466  /**2467   * Lookup283: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2468   **/2469  UpDataStructsCreateRefungibleExMultipleOwners: {2470    users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2471    properties: 'Vec<UpDataStructsProperty>'2472  },2473  /**2474   * Lookup284: pallet_unique_scheduler_v2::pallet::Call<T>2475   **/2476  PalletUniqueSchedulerV2Call: {2477    _enum: {2478      schedule: {2479        when: 'u32',2480        maybePeriodic: 'Option<(u32,u32)>',2481        priority: 'Option<u8>',2482        call: 'Call',2483      },2484      cancel: {2485        when: 'u32',2486        index: 'u32',2487      },2488      schedule_named: {2489        id: '[u8;32]',2490        when: 'u32',2491        maybePeriodic: 'Option<(u32,u32)>',2492        priority: 'Option<u8>',2493        call: 'Call',2494      },2495      cancel_named: {2496        id: '[u8;32]',2497      },2498      schedule_after: {2499        after: 'u32',2500        maybePeriodic: 'Option<(u32,u32)>',2501        priority: 'Option<u8>',2502        call: 'Call',2503      },2504      schedule_named_after: {2505        id: '[u8;32]',2506        after: 'u32',2507        maybePeriodic: 'Option<(u32,u32)>',2508        priority: 'Option<u8>',2509        call: 'Call',2510      },2511      change_named_priority: {2512        id: '[u8;32]',2513        priority: 'u8'2514      }2515    }2516  },2517  /**2518   * Lookup287: pallet_configuration::pallet::Call<T>2519   **/2520  PalletConfigurationCall: {2521    _enum: {2522      set_weight_to_fee_coefficient_override: {2523        coeff: 'Option<u32>',2524      },2525      set_min_gas_price_override: {2526        coeff: 'Option<u64>'2527      }2528    }2529  },2530  /**2531   * Lookup289: pallet_template_transaction_payment::Call<T>2532   **/2533  PalletTemplateTransactionPaymentCall: 'Null',2534  /**2535   * Lookup290: pallet_structure::pallet::Call<T>2536   **/2537  PalletStructureCall: 'Null',2538  /**2539   * Lookup291: pallet_rmrk_core::pallet::Call<T>2540   **/2541  PalletRmrkCoreCall: {2542    _enum: {2543      create_collection: {2544        metadata: 'Bytes',2545        max: 'Option<u32>',2546        symbol: 'Bytes',2547      },2548      destroy_collection: {2549        collectionId: 'u32',2550      },2551      change_collection_issuer: {2552        collectionId: 'u32',2553        newIssuer: 'MultiAddress',2554      },2555      lock_collection: {2556        collectionId: 'u32',2557      },2558      mint_nft: {2559        owner: 'Option<AccountId32>',2560        collectionId: 'u32',2561        recipient: 'Option<AccountId32>',2562        royaltyAmount: 'Option<Permill>',2563        metadata: 'Bytes',2564        transferable: 'bool',2565        resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',2566      },2567      burn_nft: {2568        collectionId: 'u32',2569        nftId: 'u32',2570        maxBurns: 'u32',2571      },2572      send: {2573        rmrkCollectionId: 'u32',2574        rmrkNftId: 'u32',2575        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2576      },2577      accept_nft: {2578        rmrkCollectionId: 'u32',2579        rmrkNftId: 'u32',2580        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2581      },2582      reject_nft: {2583        rmrkCollectionId: 'u32',2584        rmrkNftId: 'u32',2585      },2586      accept_resource: {2587        rmrkCollectionId: 'u32',2588        rmrkNftId: 'u32',2589        resourceId: 'u32',2590      },2591      accept_resource_removal: {2592        rmrkCollectionId: 'u32',2593        rmrkNftId: 'u32',2594        resourceId: 'u32',2595      },2596      set_property: {2597        rmrkCollectionId: 'Compact<u32>',2598        maybeNftId: 'Option<u32>',2599        key: 'Bytes',2600        value: 'Bytes',2601      },2602      set_priority: {2603        rmrkCollectionId: 'u32',2604        rmrkNftId: 'u32',2605        priorities: 'Vec<u32>',2606      },2607      add_basic_resource: {2608        rmrkCollectionId: 'u32',2609        nftId: 'u32',2610        resource: 'RmrkTraitsResourceBasicResource',2611      },2612      add_composable_resource: {2613        rmrkCollectionId: 'u32',2614        nftId: 'u32',2615        resource: 'RmrkTraitsResourceComposableResource',2616      },2617      add_slot_resource: {2618        rmrkCollectionId: 'u32',2619        nftId: 'u32',2620        resource: 'RmrkTraitsResourceSlotResource',2621      },2622      remove_resource: {2623        rmrkCollectionId: 'u32',2624        nftId: 'u32',2625        resourceId: 'u32'2626      }2627    }2628  },2629  /**2630   * Lookup297: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2631   **/2632  RmrkTraitsResourceResourceTypes: {2633    _enum: {2634      Basic: 'RmrkTraitsResourceBasicResource',2635      Composable: 'RmrkTraitsResourceComposableResource',2636      Slot: 'RmrkTraitsResourceSlotResource'2637    }2638  },2639  /**2640   * Lookup299: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2641   **/2642  RmrkTraitsResourceBasicResource: {2643    src: 'Option<Bytes>',2644    metadata: 'Option<Bytes>',2645    license: 'Option<Bytes>',2646    thumb: 'Option<Bytes>'2647  },2648  /**2649   * Lookup301: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2650   **/2651  RmrkTraitsResourceComposableResource: {2652    parts: 'Vec<u32>',2653    base: 'u32',2654    src: 'Option<Bytes>',2655    metadata: 'Option<Bytes>',2656    license: 'Option<Bytes>',2657    thumb: 'Option<Bytes>'2658  },2659  /**2660   * Lookup302: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2661   **/2662  RmrkTraitsResourceSlotResource: {2663    base: 'u32',2664    src: 'Option<Bytes>',2665    metadata: 'Option<Bytes>',2666    slot: 'u32',2667    license: 'Option<Bytes>',2668    thumb: 'Option<Bytes>'2669  },2670  /**2671   * Lookup305: pallet_rmrk_equip::pallet::Call<T>2672   **/2673  PalletRmrkEquipCall: {2674    _enum: {2675      create_base: {2676        baseType: 'Bytes',2677        symbol: 'Bytes',2678        parts: 'Vec<RmrkTraitsPartPartType>',2679      },2680      theme_add: {2681        baseId: 'u32',2682        theme: 'RmrkTraitsTheme',2683      },2684      equippable: {2685        baseId: 'u32',2686        slotId: 'u32',2687        equippables: 'RmrkTraitsPartEquippableList'2688      }2689    }2690  },2691  /**2692   * Lookup308: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2693   **/2694  RmrkTraitsPartPartType: {2695    _enum: {2696      FixedPart: 'RmrkTraitsPartFixedPart',2697      SlotPart: 'RmrkTraitsPartSlotPart'2698    }2699  },2700  /**2701   * Lookup310: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2702   **/2703  RmrkTraitsPartFixedPart: {2704    id: 'u32',2705    z: 'u32',2706    src: 'Bytes'2707  },2708  /**2709   * Lookup311: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2710   **/2711  RmrkTraitsPartSlotPart: {2712    id: 'u32',2713    equippable: 'RmrkTraitsPartEquippableList',2714    src: 'Bytes',2715    z: 'u32'2716  },2717  /**2718   * Lookup312: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2719   **/2720  RmrkTraitsPartEquippableList: {2721    _enum: {2722      All: 'Null',2723      Empty: 'Null',2724      Custom: 'Vec<u32>'2725    }2726  },2727  /**2728   * Lookup314: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>2729   **/2730  RmrkTraitsTheme: {2731    name: 'Bytes',2732    properties: 'Vec<RmrkTraitsThemeThemeProperty>',2733    inherit: 'bool'2734  },2735  /**2736   * Lookup316: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2737   **/2738  RmrkTraitsThemeThemeProperty: {2739    key: 'Bytes',2740    value: 'Bytes'2741  },2742  /**2743   * Lookup318: pallet_app_promotion::pallet::Call<T>2744   **/2745  PalletAppPromotionCall: {2746    _enum: {2747      set_admin_address: {2748        admin: 'PalletEvmAccountBasicCrossAccountIdRepr',2749      },2750      stake: {2751        amount: 'u128',2752      },2753      unstake: 'Null',2754      sponsor_collection: {2755        collectionId: 'u32',2756      },2757      stop_sponsoring_collection: {2758        collectionId: 'u32',2759      },2760      sponsor_contract: {2761        contractId: 'H160',2762      },2763      stop_sponsoring_contract: {2764        contractId: 'H160',2765      },2766      payout_stakers: {2767        stakersNumber: 'Option<u8>'2768      }2769    }2770  },2771  /**2772   * Lookup319: pallet_foreign_assets::module::Call<T>2773   **/2774  PalletForeignAssetsModuleCall: {2775    _enum: {2776      register_foreign_asset: {2777        owner: 'AccountId32',2778        location: 'XcmVersionedMultiLocation',2779        metadata: 'PalletForeignAssetsModuleAssetMetadata',2780      },2781      update_foreign_asset: {2782        foreignAssetId: 'u32',2783        location: 'XcmVersionedMultiLocation',2784        metadata: 'PalletForeignAssetsModuleAssetMetadata'2785      }2786    }2787  },2788  /**2789   * Lookup320: pallet_evm::pallet::Call<T>2790   **/2791  PalletEvmCall: {2792    _enum: {2793      withdraw: {2794        address: 'H160',2795        value: 'u128',2796      },2797      call: {2798        source: 'H160',2799        target: 'H160',2800        input: 'Bytes',2801        value: 'U256',2802        gasLimit: 'u64',2803        maxFeePerGas: 'U256',2804        maxPriorityFeePerGas: 'Option<U256>',2805        nonce: 'Option<U256>',2806        accessList: 'Vec<(H160,Vec<H256>)>',2807      },2808      create: {2809        source: 'H160',2810        init: 'Bytes',2811        value: 'U256',2812        gasLimit: 'u64',2813        maxFeePerGas: 'U256',2814        maxPriorityFeePerGas: 'Option<U256>',2815        nonce: 'Option<U256>',2816        accessList: 'Vec<(H160,Vec<H256>)>',2817      },2818      create2: {2819        source: 'H160',2820        init: 'Bytes',2821        salt: 'H256',2822        value: 'U256',2823        gasLimit: 'u64',2824        maxFeePerGas: 'U256',2825        maxPriorityFeePerGas: 'Option<U256>',2826        nonce: 'Option<U256>',2827        accessList: 'Vec<(H160,Vec<H256>)>'2828      }2829    }2830  },2831  /**2832   * Lookup326: pallet_ethereum::pallet::Call<T>2833   **/2834  PalletEthereumCall: {2835    _enum: {2836      transact: {2837        transaction: 'EthereumTransactionTransactionV2'2838      }2839    }2840  },2841  /**2842   * Lookup327: ethereum::transaction::TransactionV22843   **/2844  EthereumTransactionTransactionV2: {2845    _enum: {2846      Legacy: 'EthereumTransactionLegacyTransaction',2847      EIP2930: 'EthereumTransactionEip2930Transaction',2848      EIP1559: 'EthereumTransactionEip1559Transaction'2849    }2850  },2851  /**2852   * Lookup328: ethereum::transaction::LegacyTransaction2853   **/2854  EthereumTransactionLegacyTransaction: {2855    nonce: 'U256',2856    gasPrice: 'U256',2857    gasLimit: 'U256',2858    action: 'EthereumTransactionTransactionAction',2859    value: 'U256',2860    input: 'Bytes',2861    signature: 'EthereumTransactionTransactionSignature'2862  },2863  /**2864   * Lookup329: ethereum::transaction::TransactionAction2865   **/2866  EthereumTransactionTransactionAction: {2867    _enum: {2868      Call: 'H160',2869      Create: 'Null'2870    }2871  },2872  /**2873   * Lookup330: ethereum::transaction::TransactionSignature2874   **/2875  EthereumTransactionTransactionSignature: {2876    v: 'u64',2877    r: 'H256',2878    s: 'H256'2879  },2880  /**2881   * Lookup332: ethereum::transaction::EIP2930Transaction2882   **/2883  EthereumTransactionEip2930Transaction: {2884    chainId: 'u64',2885    nonce: 'U256',2886    gasPrice: 'U256',2887    gasLimit: 'U256',2888    action: 'EthereumTransactionTransactionAction',2889    value: 'U256',2890    input: 'Bytes',2891    accessList: 'Vec<EthereumTransactionAccessListItem>',2892    oddYParity: 'bool',2893    r: 'H256',2894    s: 'H256'2895  },2896  /**2897   * Lookup334: ethereum::transaction::AccessListItem2898   **/2899  EthereumTransactionAccessListItem: {2900    address: 'H160',2901    storageKeys: 'Vec<H256>'2902  },2903  /**2904   * Lookup335: ethereum::transaction::EIP1559Transaction2905   **/2906  EthereumTransactionEip1559Transaction: {2907    chainId: 'u64',2908    nonce: 'U256',2909    maxPriorityFeePerGas: 'U256',2910    maxFeePerGas: 'U256',2911    gasLimit: 'U256',2912    action: 'EthereumTransactionTransactionAction',2913    value: 'U256',2914    input: 'Bytes',2915    accessList: 'Vec<EthereumTransactionAccessListItem>',2916    oddYParity: 'bool',2917    r: 'H256',2918    s: 'H256'2919  },2920  /**2921   * Lookup336: pallet_evm_migration::pallet::Call<T>2922   **/2923  PalletEvmMigrationCall: {2924    _enum: {2925      begin: {2926        address: 'H160',2927      },2928      set_data: {2929        address: 'H160',2930        data: 'Vec<(H256,H256)>',2931      },2932      finish: {2933        address: 'H160',2934        code: 'Bytes',2935      },2936      insert_eth_logs: {2937        logs: 'Vec<EthereumLog>',2938      },2939      insert_events: {2940        events: 'Vec<Bytes>'2941      }2942    }2943  },2944  /**2945   * Lookup340: pallet_maintenance::pallet::Call<T>2946   **/2947  PalletMaintenanceCall: {2948    _enum: ['enable', 'disable']2949  },2950  /**2951   * Lookup341: pallet_test_utils::pallet::Call<T>2952   **/2953  PalletTestUtilsCall: {2954    _enum: {2955      enable: 'Null',2956      set_test_value: {2957        value: 'u32',2958      },2959      set_test_value_and_rollback: {2960        value: 'u32',2961      },2962      inc_test_value: 'Null',2963      self_canceling_inc: {2964        id: '[u8;32]',2965        maxTestValue: 'u32',2966      },2967      just_take_fee: 'Null',2968      batch_all: {2969        calls: 'Vec<Call>'2970      }2971    }2972  },2973  /**2974   * Lookup343: pallet_sudo::pallet::Error<T>2975   **/2976  PalletSudoError: {2977    _enum: ['RequireSudo']2978  },2979  /**2980   * Lookup345: orml_vesting::module::Error<T>2981   **/2982  OrmlVestingModuleError: {2983    _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2984  },2985  /**2986   * Lookup346: orml_xtokens::module::Error<T>2987   **/2988  OrmlXtokensModuleError: {2989    _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']2990  },2991  /**2992   * Lookup349: orml_tokens::BalanceLock<Balance>2993   **/2994  OrmlTokensBalanceLock: {2995    id: '[u8;8]',2996    amount: 'u128'2997  },2998  /**2999   * Lookup351: orml_tokens::AccountData<Balance>3000   **/3001  OrmlTokensAccountData: {3002    free: 'u128',3003    reserved: 'u128',3004    frozen: 'u128'3005  },3006  /**3007   * Lookup353: orml_tokens::ReserveData<ReserveIdentifier, Balance>3008   **/3009  OrmlTokensReserveData: {3010    id: 'Null',3011    amount: 'u128'3012  },3013  /**3014   * Lookup355: orml_tokens::module::Error<T>3015   **/3016  OrmlTokensModuleError: {3017    _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']3018  },3019  /**3020   * Lookup357: cumulus_pallet_xcmp_queue::InboundChannelDetails3021   **/3022  CumulusPalletXcmpQueueInboundChannelDetails: {3023    sender: 'u32',3024    state: 'CumulusPalletXcmpQueueInboundState',3025    messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'3026  },3027  /**3028   * Lookup358: cumulus_pallet_xcmp_queue::InboundState3029   **/3030  CumulusPalletXcmpQueueInboundState: {3031    _enum: ['Ok', 'Suspended']3032  },3033  /**3034   * Lookup361: polkadot_parachain::primitives::XcmpMessageFormat3035   **/3036  PolkadotParachainPrimitivesXcmpMessageFormat: {3037    _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']3038  },3039  /**3040   * Lookup364: cumulus_pallet_xcmp_queue::OutboundChannelDetails3041   **/3042  CumulusPalletXcmpQueueOutboundChannelDetails: {3043    recipient: 'u32',3044    state: 'CumulusPalletXcmpQueueOutboundState',3045    signalsExist: 'bool',3046    firstIndex: 'u16',3047    lastIndex: 'u16'3048  },3049  /**3050   * Lookup365: cumulus_pallet_xcmp_queue::OutboundState3051   **/3052  CumulusPalletXcmpQueueOutboundState: {3053    _enum: ['Ok', 'Suspended']3054  },3055  /**3056   * Lookup367: cumulus_pallet_xcmp_queue::QueueConfigData3057   **/3058  CumulusPalletXcmpQueueQueueConfigData: {3059    suspendThreshold: 'u32',3060    dropThreshold: 'u32',3061    resumeThreshold: 'u32',3062    thresholdWeight: 'Weight',3063    weightRestrictDecay: 'Weight',3064    xcmpMaxIndividualWeight: 'Weight'3065  },3066  /**3067   * Lookup369: cumulus_pallet_xcmp_queue::pallet::Error<T>3068   **/3069  CumulusPalletXcmpQueueError: {3070    _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3071  },3072  /**3073   * Lookup370: pallet_xcm::pallet::Error<T>3074   **/3075  PalletXcmError: {3076    _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3077  },3078  /**3079   * Lookup371: cumulus_pallet_xcm::pallet::Error<T>3080   **/3081  CumulusPalletXcmError: 'Null',3082  /**3083   * Lookup372: cumulus_pallet_dmp_queue::ConfigData3084   **/3085  CumulusPalletDmpQueueConfigData: {3086    maxIndividual: 'Weight'3087  },3088  /**3089   * Lookup373: cumulus_pallet_dmp_queue::PageIndexData3090   **/3091  CumulusPalletDmpQueuePageIndexData: {3092    beginUsed: 'u32',3093    endUsed: 'u32',3094    overweightCount: 'u64'3095  },3096  /**3097   * Lookup376: cumulus_pallet_dmp_queue::pallet::Error<T>3098   **/3099  CumulusPalletDmpQueueError: {3100    _enum: ['Unknown', 'OverLimit']3101  },3102  /**3103   * Lookup380: pallet_unique::Error<T>3104   **/3105  PalletUniqueError: {3106    _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3107  },3108  /**3109   * Lookup381: pallet_unique_scheduler_v2::BlockAgenda<T>3110   **/3111  PalletUniqueSchedulerV2BlockAgenda: {3112    agenda: 'Vec<Option<PalletUniqueSchedulerV2Scheduled>>',3113    freePlaces: 'u32'3114  },3115  /**3116   * Lookup384: pallet_unique_scheduler_v2::Scheduled<Name, pallet_unique_scheduler_v2::ScheduledCall<T>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>3117   **/3118  PalletUniqueSchedulerV2Scheduled: {3119    maybeId: 'Option<[u8;32]>',3120    priority: 'u8',3121    call: 'PalletUniqueSchedulerV2ScheduledCall',3122    maybePeriodic: 'Option<(u32,u32)>',3123    origin: 'OpalRuntimeOriginCaller'3124  },3125  /**3126   * Lookup385: pallet_unique_scheduler_v2::ScheduledCall<T>3127   **/3128  PalletUniqueSchedulerV2ScheduledCall: {3129    _enum: {3130      Inline: 'Bytes',3131      PreimageLookup: {3132        _alias: {3133          hash_: 'hash',3134        },3135        hash_: 'H256',3136        unboundedLen: 'u32'3137      }3138    }3139  },3140  /**3141   * Lookup387: opal_runtime::OriginCaller3142   **/3143  OpalRuntimeOriginCaller: {3144    _enum: {3145      system: 'FrameSupportDispatchRawOrigin',3146      __Unused1: 'Null',3147      __Unused2: 'Null',3148      __Unused3: 'Null',3149      Void: 'SpCoreVoid',3150      __Unused5: 'Null',3151      __Unused6: 'Null',3152      __Unused7: 'Null',3153      __Unused8: 'Null',3154      __Unused9: 'Null',3155      __Unused10: 'Null',3156      __Unused11: 'Null',3157      __Unused12: 'Null',3158      __Unused13: 'Null',3159      __Unused14: 'Null',3160      __Unused15: 'Null',3161      __Unused16: 'Null',3162      __Unused17: 'Null',3163      __Unused18: 'Null',3164      __Unused19: 'Null',3165      __Unused20: 'Null',3166      __Unused21: 'Null',3167      __Unused22: 'Null',3168      __Unused23: 'Null',3169      __Unused24: 'Null',3170      __Unused25: 'Null',3171      __Unused26: 'Null',3172      __Unused27: 'Null',3173      __Unused28: 'Null',3174      __Unused29: 'Null',3175      __Unused30: 'Null',3176      __Unused31: 'Null',3177      __Unused32: 'Null',3178      __Unused33: 'Null',3179      __Unused34: 'Null',3180      __Unused35: 'Null',3181      __Unused36: 'Null',3182      __Unused37: 'Null',3183      __Unused38: 'Null',3184      __Unused39: 'Null',3185      __Unused40: 'Null',3186      __Unused41: 'Null',3187      __Unused42: 'Null',3188      __Unused43: 'Null',3189      __Unused44: 'Null',3190      __Unused45: 'Null',3191      __Unused46: 'Null',3192      __Unused47: 'Null',3193      __Unused48: 'Null',3194      __Unused49: 'Null',3195      __Unused50: 'Null',3196      PolkadotXcm: 'PalletXcmOrigin',3197      CumulusXcm: 'CumulusPalletXcmOrigin',3198      __Unused53: 'Null',3199      __Unused54: 'Null',3200      __Unused55: 'Null',3201      __Unused56: 'Null',3202      __Unused57: 'Null',3203      __Unused58: 'Null',3204      __Unused59: 'Null',3205      __Unused60: 'Null',3206      __Unused61: 'Null',3207      __Unused62: 'Null',3208      __Unused63: 'Null',3209      __Unused64: 'Null',3210      __Unused65: 'Null',3211      __Unused66: 'Null',3212      __Unused67: 'Null',3213      __Unused68: 'Null',3214      __Unused69: 'Null',3215      __Unused70: 'Null',3216      __Unused71: 'Null',3217      __Unused72: 'Null',3218      __Unused73: 'Null',3219      __Unused74: 'Null',3220      __Unused75: 'Null',3221      __Unused76: 'Null',3222      __Unused77: 'Null',3223      __Unused78: 'Null',3224      __Unused79: 'Null',3225      __Unused80: 'Null',3226      __Unused81: 'Null',3227      __Unused82: 'Null',3228      __Unused83: 'Null',3229      __Unused84: 'Null',3230      __Unused85: 'Null',3231      __Unused86: 'Null',3232      __Unused87: 'Null',3233      __Unused88: 'Null',3234      __Unused89: 'Null',3235      __Unused90: 'Null',3236      __Unused91: 'Null',3237      __Unused92: 'Null',3238      __Unused93: 'Null',3239      __Unused94: 'Null',3240      __Unused95: 'Null',3241      __Unused96: 'Null',3242      __Unused97: 'Null',3243      __Unused98: 'Null',3244      __Unused99: 'Null',3245      __Unused100: 'Null',3246      Ethereum: 'PalletEthereumRawOrigin'3247    }3248  },3249  /**3250   * Lookup388: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>3251   **/3252  FrameSupportDispatchRawOrigin: {3253    _enum: {3254      Root: 'Null',3255      Signed: 'AccountId32',3256      None: 'Null'3257    }3258  },3259  /**3260   * Lookup389: pallet_xcm::pallet::Origin3261   **/3262  PalletXcmOrigin: {3263    _enum: {3264      Xcm: 'XcmV1MultiLocation',3265      Response: 'XcmV1MultiLocation'3266    }3267  },3268  /**3269   * Lookup390: cumulus_pallet_xcm::pallet::Origin3270   **/3271  CumulusPalletXcmOrigin: {3272    _enum: {3273      Relay: 'Null',3274      SiblingParachain: 'u32'3275    }3276  },3277  /**3278   * Lookup391: pallet_ethereum::RawOrigin3279   **/3280  PalletEthereumRawOrigin: {3281    _enum: {3282      EthereumTransaction: 'H160'3283    }3284  },3285  /**3286   * Lookup392: sp_core::Void3287   **/3288  SpCoreVoid: 'Null',3289  /**3290   * Lookup394: pallet_unique_scheduler_v2::pallet::Error<T>3291   **/3292  PalletUniqueSchedulerV2Error: {3293    _enum: ['FailedToSchedule', 'AgendaIsExhausted', 'ScheduledCallCorrupted', 'PreimageNotFound', 'TooBigScheduledCall', 'NotFound', 'TargetBlockNumberInPast', 'Named']3294  },3295  /**3296   * Lookup395: up_data_structs::Collection<sp_core::crypto::AccountId32>3297   **/3298  UpDataStructsCollection: {3299    owner: 'AccountId32',3300    mode: 'UpDataStructsCollectionMode',3301    name: 'Vec<u16>',3302    description: 'Vec<u16>',3303    tokenPrefix: 'Bytes',3304    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3305    limits: 'UpDataStructsCollectionLimits',3306    permissions: 'UpDataStructsCollectionPermissions',3307    flags: '[u8;1]'3308  },3309  /**3310   * Lookup396: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3311   **/3312  UpDataStructsSponsorshipStateAccountId32: {3313    _enum: {3314      Disabled: 'Null',3315      Unconfirmed: 'AccountId32',3316      Confirmed: 'AccountId32'3317    }3318  },3319  /**3320   * Lookup398: up_data_structs::Properties3321   **/3322  UpDataStructsProperties: {3323    map: 'UpDataStructsPropertiesMapBoundedVec',3324    consumedSpace: 'u32',3325    spaceLimit: 'u32'3326  },3327  /**3328   * Lookup399: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3329   **/3330  UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3331  /**3332   * Lookup404: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3333   **/3334  UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3335  /**3336   * Lookup411: up_data_structs::CollectionStats3337   **/3338  UpDataStructsCollectionStats: {3339    created: 'u32',3340    destroyed: 'u32',3341    alive: 'u32'3342  },3343  /**3344   * Lookup412: up_data_structs::TokenChild3345   **/3346  UpDataStructsTokenChild: {3347    token: 'u32',3348    collection: 'u32'3349  },3350  /**3351   * Lookup413: PhantomType::up_data_structs<T>3352   **/3353  PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3354  /**3355   * Lookup415: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3356   **/3357  UpDataStructsTokenData: {3358    properties: 'Vec<UpDataStructsProperty>',3359    owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3360    pieces: 'u128'3361  },3362  /**3363   * Lookup417: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3364   **/3365  UpDataStructsRpcCollection: {3366    owner: 'AccountId32',3367    mode: 'UpDataStructsCollectionMode',3368    name: 'Vec<u16>',3369    description: 'Vec<u16>',3370    tokenPrefix: 'Bytes',3371    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3372    limits: 'UpDataStructsCollectionLimits',3373    permissions: 'UpDataStructsCollectionPermissions',3374    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',3375    properties: 'Vec<UpDataStructsProperty>',3376    readOnly: 'bool',3377    flags: 'UpDataStructsRpcCollectionFlags'3378  },3379  /**3380   * Lookup418: up_data_structs::RpcCollectionFlags3381   **/3382  UpDataStructsRpcCollectionFlags: {3383    foreign: 'bool',3384    erc721metadata: 'bool'3385  },3386  /**3387   * Lookup419: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3388   **/3389  RmrkTraitsCollectionCollectionInfo: {3390    issuer: 'AccountId32',3391    metadata: 'Bytes',3392    max: 'Option<u32>',3393    symbol: 'Bytes',3394    nftsCount: 'u32'3395  },3396  /**3397   * Lookup420: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3398   **/3399  RmrkTraitsNftNftInfo: {3400    owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3401    royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3402    metadata: 'Bytes',3403    equipped: 'bool',3404    pending: 'bool'3405  },3406  /**3407   * Lookup422: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3408   **/3409  RmrkTraitsNftRoyaltyInfo: {3410    recipient: 'AccountId32',3411    amount: 'Permill'3412  },3413  /**3414   * Lookup423: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3415   **/3416  RmrkTraitsResourceResourceInfo: {3417    id: 'u32',3418    resource: 'RmrkTraitsResourceResourceTypes',3419    pending: 'bool',3420    pendingRemoval: 'bool'3421  },3422  /**3423   * Lookup424: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3424   **/3425  RmrkTraitsPropertyPropertyInfo: {3426    key: 'Bytes',3427    value: 'Bytes'3428  },3429  /**3430   * Lookup425: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3431   **/3432  RmrkTraitsBaseBaseInfo: {3433    issuer: 'AccountId32',3434    baseType: 'Bytes',3435    symbol: 'Bytes'3436  },3437  /**3438   * Lookup426: rmrk_traits::nft::NftChild3439   **/3440  RmrkTraitsNftNftChild: {3441    collectionId: 'u32',3442    nftId: 'u32'3443  },3444  /**3445   * Lookup428: pallet_common::pallet::Error<T>3446   **/3447  PalletCommonError: {3448    _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']3449  },3450  /**3451   * Lookup430: pallet_fungible::pallet::Error<T>3452   **/3453  PalletFungibleError: {3454    _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed', 'SettingApprovalForAllNotAllowed']3455  },3456  /**3457   * Lookup431: pallet_refungible::ItemData3458   **/3459  PalletRefungibleItemData: {3460    constData: 'Bytes'3461  },3462  /**3463   * Lookup436: pallet_refungible::pallet::Error<T>3464   **/3465  PalletRefungibleError: {3466    _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3467  },3468  /**3469   * Lookup437: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3470   **/3471  PalletNonfungibleItemData: {3472    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3473  },3474  /**3475   * Lookup439: up_data_structs::PropertyScope3476   **/3477  UpDataStructsPropertyScope: {3478    _enum: ['None', 'Rmrk']3479  },3480  /**3481   * Lookup441: pallet_nonfungible::pallet::Error<T>3482   **/3483  PalletNonfungibleError: {3484    _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3485  },3486  /**3487   * Lookup442: pallet_structure::pallet::Error<T>3488   **/3489  PalletStructureError: {3490    _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3491  },3492  /**3493   * Lookup443: pallet_rmrk_core::pallet::Error<T>3494   **/3495  PalletRmrkCoreError: {3496    _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3497  },3498  /**3499   * Lookup445: pallet_rmrk_equip::pallet::Error<T>3500   **/3501  PalletRmrkEquipError: {3502    _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3503  },3504  /**3505   * Lookup451: pallet_app_promotion::pallet::Error<T>3506   **/3507  PalletAppPromotionError: {3508    _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3509  },3510  /**3511   * Lookup452: pallet_foreign_assets::module::Error<T>3512   **/3513  PalletForeignAssetsModuleError: {3514    _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3515  },3516  /**3517   * Lookup454: pallet_evm::pallet::Error<T>3518   **/3519  PalletEvmError: {3520    _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy']3521  },3522  /**3523   * Lookup457: fp_rpc::TransactionStatus3524   **/3525  FpRpcTransactionStatus: {3526    transactionHash: 'H256',3527    transactionIndex: 'u32',3528    from: 'H160',3529    to: 'Option<H160>',3530    contractAddress: 'Option<H160>',3531    logs: 'Vec<EthereumLog>',3532    logsBloom: 'EthbloomBloom'3533  },3534  /**3535   * Lookup459: ethbloom::Bloom3536   **/3537  EthbloomBloom: '[u8;256]',3538  /**3539   * Lookup461: ethereum::receipt::ReceiptV33540   **/3541  EthereumReceiptReceiptV3: {3542    _enum: {3543      Legacy: 'EthereumReceiptEip658ReceiptData',3544      EIP2930: 'EthereumReceiptEip658ReceiptData',3545      EIP1559: 'EthereumReceiptEip658ReceiptData'3546    }3547  },3548  /**3549   * Lookup462: ethereum::receipt::EIP658ReceiptData3550   **/3551  EthereumReceiptEip658ReceiptData: {3552    statusCode: 'u8',3553    usedGas: 'U256',3554    logsBloom: 'EthbloomBloom',3555    logs: 'Vec<EthereumLog>'3556  },3557  /**3558   * Lookup463: ethereum::block::Block<ethereum::transaction::TransactionV2>3559   **/3560  EthereumBlock: {3561    header: 'EthereumHeader',3562    transactions: 'Vec<EthereumTransactionTransactionV2>',3563    ommers: 'Vec<EthereumHeader>'3564  },3565  /**3566   * Lookup464: ethereum::header::Header3567   **/3568  EthereumHeader: {3569    parentHash: 'H256',3570    ommersHash: 'H256',3571    beneficiary: 'H160',3572    stateRoot: 'H256',3573    transactionsRoot: 'H256',3574    receiptsRoot: 'H256',3575    logsBloom: 'EthbloomBloom',3576    difficulty: 'U256',3577    number: 'U256',3578    gasLimit: 'U256',3579    gasUsed: 'U256',3580    timestamp: 'u64',3581    extraData: 'Bytes',3582    mixHash: 'H256',3583    nonce: 'EthereumTypesHashH64'3584  },3585  /**3586   * Lookup465: ethereum_types::hash::H643587   **/3588  EthereumTypesHashH64: '[u8;8]',3589  /**3590   * Lookup470: pallet_ethereum::pallet::Error<T>3591   **/3592  PalletEthereumError: {3593    _enum: ['InvalidSignature', 'PreLogExists']3594  },3595  /**3596   * Lookup471: pallet_evm_coder_substrate::pallet::Error<T>3597   **/3598  PalletEvmCoderSubstrateError: {3599    _enum: ['OutOfGas', 'OutOfFund']3600  },3601  /**3602   * Lookup472: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3603   **/3604  UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3605    _enum: {3606      Disabled: 'Null',3607      Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3608      Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3609    }3610  },3611  /**3612   * Lookup473: pallet_evm_contract_helpers::SponsoringModeT3613   **/3614  PalletEvmContractHelpersSponsoringModeT: {3615    _enum: ['Disabled', 'Allowlisted', 'Generous']3616  },3617  /**3618   * Lookup479: pallet_evm_contract_helpers::pallet::Error<T>3619   **/3620  PalletEvmContractHelpersError: {3621    _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3622  },3623  /**3624   * Lookup480: pallet_evm_migration::pallet::Error<T>3625   **/3626  PalletEvmMigrationError: {3627    _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent']3628  },3629  /**3630   * Lookup481: pallet_maintenance::pallet::Error<T>3631   **/3632  PalletMaintenanceError: 'Null',3633  /**3634   * Lookup482: pallet_test_utils::pallet::Error<T>3635   **/3636  PalletTestUtilsError: {3637    _enum: ['TestPalletDisabled', 'TriggerRollback']3638  },3639  /**3640   * Lookup484: sp_runtime::MultiSignature3641   **/3642  SpRuntimeMultiSignature: {3643    _enum: {3644      Ed25519: 'SpCoreEd25519Signature',3645      Sr25519: 'SpCoreSr25519Signature',3646      Ecdsa: 'SpCoreEcdsaSignature'3647    }3648  },3649  /**3650   * Lookup485: sp_core::ed25519::Signature3651   **/3652  SpCoreEd25519Signature: '[u8;64]',3653  /**3654   * Lookup487: sp_core::sr25519::Signature3655   **/3656  SpCoreSr25519Signature: '[u8;64]',3657  /**3658   * Lookup488: sp_core::ecdsa::Signature3659   **/3660  SpCoreEcdsaSignature: '[u8;65]',3661  /**3662   * Lookup491: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3663   **/3664  FrameSystemExtensionsCheckSpecVersion: 'Null',3665  /**3666   * Lookup492: frame_system::extensions::check_tx_version::CheckTxVersion<T>3667   **/3668  FrameSystemExtensionsCheckTxVersion: 'Null',3669  /**3670   * Lookup493: frame_system::extensions::check_genesis::CheckGenesis<T>3671   **/3672  FrameSystemExtensionsCheckGenesis: 'Null',3673  /**3674   * Lookup496: frame_system::extensions::check_nonce::CheckNonce<T>3675   **/3676  FrameSystemExtensionsCheckNonce: 'Compact<u32>',3677  /**3678   * Lookup497: frame_system::extensions::check_weight::CheckWeight<T>3679   **/3680  FrameSystemExtensionsCheckWeight: 'Null',3681  /**3682   * Lookup498: opal_runtime::runtime_common::maintenance::CheckMaintenance3683   **/3684  OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',3685  /**3686   * Lookup499: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3687   **/3688  PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3689  /**3690   * Lookup500: opal_runtime::Runtime3691   **/3692  OpalRuntimeRuntime: 'Null',3693  /**3694   * Lookup501: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3695   **/3696  PalletEthereumFakeTransactionFinalizer: 'Null'3697};
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1182,6 +1182,8 @@
     readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
     readonly isApproved: boolean;
     readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
+    readonly isApprovedForAll: boolean;
+    readonly asApprovedForAll: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, bool]>;
     readonly isCollectionPropertySet: boolean;
     readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;
     readonly isCollectionPropertyDeleted: boolean;
@@ -1192,17 +1194,17 @@
     readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;
     readonly isPropertyPermissionSet: boolean;
     readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;
-    readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
+    readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'ApprovedForAll' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
   }
 
-  /** @name PalletStructureEvent (99) */
+  /** @name PalletStructureEvent (100) */
   interface PalletStructureEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
     readonly type: 'Executed';
   }
 
-  /** @name PalletRmrkCoreEvent (100) */
+  /** @name PalletRmrkCoreEvent (101) */
   interface PalletRmrkCoreEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: {
@@ -1292,7 +1294,7 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';
   }
 
-  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (101) */
+  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (102) */
   interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
     readonly isAccountId: boolean;
     readonly asAccountId: AccountId32;
@@ -2539,7 +2541,13 @@
       readonly tokenId: u32;
       readonly amount: u128;
     } & Struct;
-    readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';
+    readonly isSetApprovalForAll: boolean;
+    readonly asSetApprovalForAll: {
+      readonly collectionId: u32;
+      readonly operator: PalletEvmAccountBasicCrossAccountIdRepr;
+      readonly approve: bool;
+    } & Struct;
+    readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetApprovalForAll';
   }
 
   /** @name UpDataStructsCollectionMode (240) */
@@ -3655,7 +3663,8 @@
     readonly isFungibleItemsDontHaveData: boolean;
     readonly isFungibleDisallowsNesting: boolean;
     readonly isSettingPropertiesNotAllowed: boolean;
-    readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
+    readonly isSettingApprovalForAllNotAllowed: boolean;
+    readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed' | 'SettingApprovalForAllNotAllowed';
   }
 
   /** @name PalletRefungibleItemData (431) */
modifiedtests/src/interfaces/unique/definitions.tsdiffbeforeafterboth
--- a/tests/src/interfaces/unique/definitions.ts
+++ b/tests/src/interfaces/unique/definitions.ts
@@ -175,5 +175,10 @@
       [collectionParam, tokenParam], 
       'Option<u128>',
     ),
+    isApprovedForAll: fun(
+      'Tells whether an operator is approved by a given owner.', 
+      [collectionParam, crossAccountParam('owner'), crossAccountParam('operator')], 
+      'Option<bool>',
+    ),
   },
 };
modifiedtests/src/util/playgrounds/unique.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.ts
+++ b/tests/src/util/playgrounds/unique.ts
@@ -1413,6 +1413,32 @@
   getTokenObject(_collectionId: number, _tokenId: number): any {
     return null;
   }
+
+  /**
+   * Tells whether an operator is approved by a given owner.
+   * @param collectionId ID of collection
+   * @param owner owner address
+	 * @param operator operator addrees
+   * @returns true if operator is enabled
+   */
+  async isApprovedForAll(collectionId: number, owner: ICrossAccountId, operator: ICrossAccountId): Promise<boolean> {
+    return (await this.helper.callRpc('api.rpc.unique.isApprovedForAll', [collectionId, owner, operator])).toJSON();
+  }
+
+  /** Sets or unsets the approval of a given operator.
+	 *  An operator is allowed to transfer all tokens of the sender on their behalf.
+	 *  @param operator Operator
+	 *  @param approved Is operator enabled or disabled
+   *  @returns ```true``` if extrinsic success, otherwise ```false```
+   */
+  async setApprovalForAll(signer: TSigner, collectionId: number, operator: ICrossAccountId, approved: boolean): Promise<boolean> {
+    const result = await this.helper.executeExtrinsic(
+      signer,
+      'api.tx.unique.setApprovalForAll', [collectionId, operator, approved],
+      true,
+    );
+    return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'common', 'ApprovedForAll');
+  }
 }