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

difftreelog

Merge pull request #368 from UniqueNetwork/feature/CORE-386_1

bugrazoid2022-06-10parents: #3151280 #0aa9474.patch.diff
in: master
Feature/core 386 1

27 files changed

modifiedpallets/common/src/erc.rsdiffbeforeafterboth
--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -22,7 +22,9 @@
 pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId};
 use pallet_evm_coder_substrate::dispatch_to_evm;
 use sp_std::vec::Vec;
-use up_data_structs::{Property, SponsoringRateLimit, OwnerRestrictedSet, AccessMode};
+use up_data_structs::{
+	Property, SponsoringRateLimit, OwnerRestrictedSet, AccessMode, CollectionPermissions,
+};
 use alloc::format;
 
 use crate::{Pallet, CollectionHandle, Config, CollectionProperties};
@@ -47,10 +49,15 @@
 
 #[solidity_interface(name = "Collection")]
 impl<T: Config> CollectionHandle<T>
-// where
-// 	T::AccountId: From<H256>
+where
+	T::AccountId: From<[u8; 32]>,
 {
-	fn set_collection_property(&mut self, caller: caller, key: string, value: bytes) -> Result<()> {
+	fn set_collection_property(
+		&mut self,
+		caller: caller,
+		key: string,
+		value: bytes,
+	) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
 		let key = <Vec<u8>>::from(key)
 			.try_into()
@@ -83,7 +90,7 @@
 	}
 
 	fn set_collection_sponsor(&mut self, caller: caller, sponsor: address) -> Result<void> {
-		check_is_owner(caller, self)?;
+		check_is_owner_or_admin(caller, self)?;
 
 		let sponsor = T::CrossAccountId::from_eth(sponsor);
 		self.set_sponsor(sponsor.as_sub().clone())
@@ -97,14 +104,14 @@
 			.confirm_sponsorship(caller.as_sub())
 			.map_err(dispatch_to_evm::<T>)?
 		{
-			return Err(Error::Revert("Caller is not set as sponsor".into()));
+			return Err("caller is not set as sponsor".into());
 		}
 		save(self)
 	}
 
 	#[solidity(rename_selector = "setCollectionLimit")]
 	fn set_int_limit(&mut self, caller: caller, limit: string, value: uint32) -> Result<void> {
-		check_is_owner(caller, self)?;
+		check_is_owner_or_admin(caller, self)?;
 		let mut limits = self.limits.clone();
 
 		match limit.as_str() {
@@ -128,7 +135,7 @@
 			}
 			_ => {
 				return Err(Error::Revert(format!(
-					"Unknown integer limit \"{}\"",
+					"unknown integer limit \"{}\"",
 					limit
 				)))
 			}
@@ -140,7 +147,7 @@
 
 	#[solidity(rename_selector = "setCollectionLimit")]
 	fn set_bool_limit(&mut self, caller: caller, limit: string, value: bool) -> Result<void> {
-		check_is_owner(caller, self)?;
+		check_is_owner_or_admin(caller, self)?;
 		let mut limits = self.limits.clone();
 
 		match limit.as_str() {
@@ -155,7 +162,7 @@
 			}
 			_ => {
 				return Err(Error::Revert(format!(
-					"Unknown boolean limit \"{}\"",
+					"unknown boolean limit \"{}\"",
 					limit
 				)))
 			}
@@ -169,52 +176,48 @@
 		Ok(crate::eth::collection_id_to_address(self.id))
 	}
 
-	// fn add_admin_substrate(&self, caller: caller, new_admin: uint256) -> Result<void> {
-	// 	let mut new_admin_h256 = H256::default();
-	// 	new_admin.to_little_endian(&mut new_admin_h256.0);
-	// 	let account_id = T::AccountId::from(new_admin_h256);
-	// 	let caller = T::CrossAccountId::from_eth(caller);
-	// 	let new_admin = T::CrossAccountId::from_sub(account_id);
-	// 	<Pallet<T>>::toggle_admin(&self, &caller, &new_admin, true)
-	// 		.map_err(dispatch_to_evm::<T>)?;
-	// 	Ok(())
-	// }
+	fn add_collection_admin_substrate(&self, caller: caller, new_admin: uint256) -> Result<void> {
+		let caller = T::CrossAccountId::from_eth(caller);
+		let mut new_admin_arr: [u8; 32] = Default::default();
+		new_admin.to_big_endian(&mut new_admin_arr);
+		let account_id = T::AccountId::from(new_admin_arr);
+		let new_admin = T::CrossAccountId::from_sub(account_id);
+		<Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;
+		Ok(())
+	}
 
-	// fn remove_admin_substrate(&self, caller: caller, new_admin: uint256) -> Result<void> {
-	// 	let mut new_admin_h256 = H256::default();
-	// 	new_admin.to_little_endian(&mut new_admin_h256.0);
-	// 	let account_id = T::AccountId::from(new_admin_h256);
-	// 	let caller = T::CrossAccountId::from_eth(caller);
-	// 	let new_admin = T::CrossAccountId::from_sub(account_id);
-	// 	<Pallet<T>>::toggle_admin(&self, &caller, &new_admin, false)
-	// 		.map_err(dispatch_to_evm::<T>)?;
-	// 	Ok(())
-	// }
+	fn remove_collection_admin_substrate(
+		&self,
+		caller: caller,
+		new_admin: uint256,
+	) -> Result<void> {
+		let caller = T::CrossAccountId::from_eth(caller);
+		let mut new_admin_arr: [u8; 32] = Default::default();
+		new_admin.to_big_endian(&mut new_admin_arr);
+		let account_id = T::AccountId::from(new_admin_arr);
+		let new_admin = T::CrossAccountId::from_sub(account_id);
+		<Pallet<T>>::toggle_admin(self, &caller, &new_admin, false)
+			.map_err(dispatch_to_evm::<T>)?;
+		Ok(())
+	}
 
 	fn add_collection_admin(&self, caller: caller, new_admin: address) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
-		self.check_is_owner_or_admin(&caller)
-			.map_err(dispatch_to_evm::<T>)?;
 		let new_admin = T::CrossAccountId::from_eth(new_admin);
-		<Pallet<T>>::toggle_admin(&self, &caller, &new_admin, true)
-			.map_err(dispatch_to_evm::<T>)?;
+		<Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;
 		Ok(())
 	}
 
 	fn remove_collection_admin(&self, caller: caller, admin: address) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
-		self.check_is_owner_or_admin(&caller)
-			.map_err(dispatch_to_evm::<T>)?;
 		let admin = T::CrossAccountId::from_eth(admin);
-		<Pallet<T>>::toggle_admin(&self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;
+		<Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;
 		Ok(())
 	}
 
 	#[solidity(rename_selector = "setCollectionNesting")]
 	fn set_nesting_bool(&mut self, caller: caller, enable: bool) -> Result<void> {
-		let caller = T::CrossAccountId::from_eth(caller);
-		self.check_is_owner_or_admin(&caller)
-			.map_err(dispatch_to_evm::<T>)?;
+		check_is_owner_or_admin(caller, self)?;
 
 		let mut permissions = self.collection.permissions.clone();
 		let mut nesting = permissions.nesting().clone();
@@ -240,11 +243,9 @@
 		collections: Vec<address>,
 	) -> Result<void> {
 		if collections.is_empty() {
-			return Err("No addresses provided".into());
+			return Err("no addresses provided".into());
 		}
-		let caller = T::CrossAccountId::from_eth(caller);
-		self.check_is_owner_or_admin(&caller)
-			.map_err(dispatch_to_evm::<T>)?;
+		check_is_owner_or_admin(caller, self)?;
 
 		let mut permissions = self.collection.permissions.clone();
 		match enable {
@@ -280,27 +281,34 @@
 	}
 
 	fn set_collection_access(&mut self, caller: caller, mode: uint8) -> Result<void> {
-		let caller = T::CrossAccountId::from_eth(caller);
-		self.check_is_owner_or_admin(&caller)
-			.map_err(dispatch_to_evm::<T>)?;
-		self.collection.permissions.access = Some(match mode {
-			0 => AccessMode::Normal,
-			1 => AccessMode::AllowList,
-			_ => return Err("Not supported access mode".into()),
-		});
-		save(self)?;
-		Ok(())
+		check_is_owner_or_admin(caller, self)?;
+		let permissions = CollectionPermissions {
+			access: Some(match mode {
+				0 => AccessMode::Normal,
+				1 => AccessMode::AllowList,
+				_ => return Err("not supported access mode".into()),
+			}),
+			..Default::default()
+		};
+		self.collection.permissions = <Pallet<T>>::clamp_permissions(
+			self.collection.mode.clone(),
+			&self.collection.permissions,
+			permissions,
+		)
+		.map_err(dispatch_to_evm::<T>)?;
+
+		save(self)
 	}
 
 	fn add_to_collection_allow_list(&self, caller: caller, user: address) -> Result<void> {
-		let caller = check_is_owner_or_admin(caller, self)?;
+		let caller = T::CrossAccountId::from_eth(caller);
 		let user = T::CrossAccountId::from_eth(user);
 		<Pallet<T>>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;
 		Ok(())
 	}
 
 	fn remove_from_collection_allow_list(&self, caller: caller, user: address) -> Result<void> {
-		let caller = check_is_owner_or_admin(caller, self)?;
+		let caller = T::CrossAccountId::from_eth(caller);
 		let user = T::CrossAccountId::from_eth(user);
 		<Pallet<T>>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;
 		Ok(())
@@ -308,18 +316,19 @@
 
 	fn set_collection_mint_mode(&mut self, caller: caller, mode: bool) -> Result<void> {
 		check_is_owner_or_admin(caller, self)?;
-		self.collection.permissions.mint_mode = Some(mode);
-		save(self)?;
-		Ok(())
-	}
-}
+		let permissions = CollectionPermissions {
+			mint_mode: Some(mode),
+			..Default::default()
+		};
+		self.collection.permissions = <Pallet<T>>::clamp_permissions(
+			self.collection.mode.clone(),
+			&self.collection.permissions,
+			permissions,
+		)
+		.map_err(dispatch_to_evm::<T>)?;
 
-fn check_is_owner<T: Config>(caller: caller, collection: &CollectionHandle<T>) -> Result<void> {
-	let caller = T::CrossAccountId::from_eth(caller);
-	collection
-		.check_is_owner(&caller)
-		.map_err(pallet_evm_coder_substrate::dispatch_to_evm::<T>)?;
-	Ok(())
+		save(self)
+	}
 }
 
 fn check_is_owner_or_admin<T: Config>(
modifiedpallets/common/src/lib.rsdiffbeforeafterboth
--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -148,7 +148,7 @@
 					.saturating_mul(writes),
 			))
 	}
-	pub fn save(self) -> Result<(), DispatchError> {
+	pub fn save(self) -> DispatchResult {
 		<CollectionById<T>>::insert(self.id, self.collection);
 		Ok(())
 	}
modifiedpallets/fungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/fungible/src/erc.rs
+++ b/pallets/fungible/src/erc.rs
@@ -152,12 +152,15 @@
 		via("CollectionHandle<T>", common_mut, Collection)
 	)
 )]
-impl<T: Config> FungibleHandle<T> {}
+impl<T: Config> FungibleHandle<T> where T::AccountId: From<[u8; 32]> {}
 
 generate_stubgen!(gen_impl, UniqueFungibleCall<()>, true);
 generate_stubgen!(gen_iface, UniqueFungibleCall<()>, false);
 
-impl<T: Config> CommonEvmHandler for FungibleHandle<T> {
+impl<T: Config> CommonEvmHandler for FungibleHandle<T>
+where
+	T::AccountId: From<[u8; 32]>,
+{
 	const CODE: &'static [u8] = include_bytes!("./stubs/UniqueFungible.raw");
 
 	fn call(self, handle: &mut impl PrecompileHandle) -> Option<PrecompileResult> {
modifiedpallets/nonfungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -583,13 +583,16 @@
 		TokenProperties,
 	)
 )]
-impl<T: Config> NonfungibleHandle<T> {}
+impl<T: Config> NonfungibleHandle<T> where T::AccountId: From<[u8; 32]> {}
 
 // Not a tests, but code generators
 generate_stubgen!(gen_impl, UniqueNFTCall<()>, true);
 generate_stubgen!(gen_iface, UniqueNFTCall<()>, false);
 
-impl<T: Config> CommonEvmHandler for NonfungibleHandle<T> {
+impl<T: Config> CommonEvmHandler for NonfungibleHandle<T>
+where
+	T::AccountId: From<[u8; 32]>,
+{
 	const CODE: &'static [u8] = include_bytes!("./stubs/UniqueNFT.raw");
 
 	fn call(self, handle: &mut impl PrecompileHandle) -> Option<PrecompileResult> {
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
@@ -297,7 +297,40 @@
 	}
 }
 
-// Selector: 6aea9834
+// Selector: 780e9d63
+contract ERC721Enumerable is Dummy, ERC165 {
+	// Selector: tokenByIndex(uint256) 4f6ccce7
+	function tokenByIndex(uint256 index) public view returns (uint256) {
+		require(false, stub_error);
+		index;
+		dummy;
+		return 0;
+	}
+
+	// Not implemented
+	//
+	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+	function tokenOfOwnerByIndex(address owner, uint256 index)
+		public
+		view
+		returns (uint256)
+	{
+		require(false, stub_error);
+		owner;
+		index;
+		dummy;
+		return 0;
+	}
+
+	// Selector: totalSupply() 18160ddd
+	function totalSupply() public view returns (uint256) {
+		require(false, stub_error);
+		dummy;
+		return 0;
+	}
+}
+
+// Selector: 7d9262e6
 contract Collection is Dummy, ERC165 {
 	// Selector: setCollectionProperty(string,bytes) 2f073f66
 	function setCollectionProperty(string memory key, bytes memory value)
@@ -366,6 +399,20 @@
 		return 0x0000000000000000000000000000000000000000;
 	}
 
+	// Selector: addCollectionAdminSubstrate(uint256) 5730062b
+	function addCollectionAdminSubstrate(uint256 newAdmin) public view {
+		require(false, stub_error);
+		newAdmin;
+		dummy;
+	}
+
+	// Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9
+	function removeCollectionAdminSubstrate(uint256 newAdmin) public view {
+		require(false, stub_error);
+		newAdmin;
+		dummy;
+	}
+
 	// Selector: addCollectionAdmin(address) 92e462c7
 	function addCollectionAdmin(address newAdmin) public view {
 		require(false, stub_error);
@@ -423,39 +470,6 @@
 		require(false, stub_error);
 		mode;
 		dummy = 0;
-	}
-}
-
-// Selector: 780e9d63
-contract ERC721Enumerable is Dummy, ERC165 {
-	// Selector: tokenByIndex(uint256) 4f6ccce7
-	function tokenByIndex(uint256 index) public view returns (uint256) {
-		require(false, stub_error);
-		index;
-		dummy;
-		return 0;
-	}
-
-	// Not implemented
-	//
-	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
-	function tokenOfOwnerByIndex(address owner, uint256 index)
-		public
-		view
-		returns (uint256)
-	{
-		require(false, stub_error);
-		owner;
-		index;
-		dummy;
-		return 0;
-	}
-
-	// Selector: totalSupply() 18160ddd
-	function totalSupply() public view returns (uint256) {
-		require(false, stub_error);
-		dummy;
-		return 0;
 	}
 }
 
modifiedpallets/unique/src/lib.rsdiffbeforeafterboth
--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -491,7 +491,7 @@
 			let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
 
 			let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
-			target_collection.check_is_owner(&sender)?;
+			target_collection.check_is_owner_or_admin(&sender)?;
 			target_collection.check_is_internal()?;
 
 			target_collection.set_sponsor(new_sponsor.clone())?;
@@ -867,7 +867,7 @@
 			let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
 			let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
 			target_collection.check_is_internal()?;
-			target_collection.check_is_owner(&sender)?;
+			target_collection.check_is_owner_or_admin(&sender)?;
 			let old_limit = &target_collection.limits;
 
 			target_collection.limits = <PalletCommon<T>>::clamp_limits(target_collection.mode.clone(), &old_limit, new_limit)?;
@@ -889,7 +889,7 @@
 			let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
 			let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
 			target_collection.check_is_internal()?;
-			target_collection.check_is_owner(&sender)?;
+			target_collection.check_is_owner_or_admin(&sender)?;
 			let old_limit = &target_collection.permissions;
 
 			target_collection.permissions = <PalletCommon<T>>::clamp_permissions(target_collection.mode.clone(), &old_limit, new_limit)?;
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -812,7 +812,7 @@
 		for byte in key.as_slice().iter() {
 			let byte = *byte;
 
-			if !byte.is_ascii_alphanumeric() && byte != b'_' && byte != b'-' {
+			if !byte.is_ascii_alphanumeric() && byte != b'_' && byte != b'-' && byte != b'.' {
 				return Err(PropertiesError::InvalidCharacterInPropertyKey);
 			}
 		}
modifiedruntime/common/src/dispatch.rsdiffbeforeafterboth
--- a/runtime/common/src/dispatch.rs
+++ b/runtime/common/src/dispatch.rs
@@ -112,6 +112,7 @@
 		+ pallet_fungible::Config
 		+ pallet_nonfungible::Config
 		+ pallet_refungible::Config,
+	T::AccountId: From<[u8; 32]>,
 {
 	fn is_reserved(target: &H160) -> bool {
 		map_eth_to_id(target).is_some()
modifiedruntime/tests/src/tests.rsdiffbeforeafterboth
--- a/runtime/tests/src/tests.rs
+++ b/runtime/tests/src/tests.rs
@@ -1264,7 +1264,6 @@
 		let collection1_id =
 			create_test_collection_for_owner(&CollectionMode::NFT, 1, CollectionId(1));
 		let origin1 = Origin::signed(1);
-		let origin2 = Origin::signed(2);
 
 		// Add collection admins 2 and 3
 		assert_ok!(Unique::add_collection_admin(
@@ -1273,7 +1272,7 @@
 			account(2)
 		));
 		assert_ok!(Unique::add_collection_admin(
-			origin1,
+			origin1.clone(),
 			collection1_id,
 			account(3)
 		));
@@ -1289,7 +1288,7 @@
 
 		// remove admin 3
 		assert_ok!(Unique::remove_collection_admin(
-			origin2,
+			origin1,
 			CollectionId(1),
 			account(3)
 		));
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -174,7 +174,24 @@
 	function finishMinting() external returns (bool);
 }
 
-// Selector: 6aea9834
+// Selector: 780e9d63
+interface ERC721Enumerable is Dummy, ERC165 {
+	// Selector: tokenByIndex(uint256) 4f6ccce7
+	function tokenByIndex(uint256 index) external view returns (uint256);
+
+	// Not implemented
+	//
+	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+	function tokenOfOwnerByIndex(address owner, uint256 index)
+		external
+		view
+		returns (uint256);
+
+	// Selector: totalSupply() 18160ddd
+	function totalSupply() external view returns (uint256);
+}
+
+// Selector: 7d9262e6
 interface Collection is Dummy, ERC165 {
 	// Selector: setCollectionProperty(string,bytes) 2f073f66
 	function setCollectionProperty(string memory key, bytes memory value)
@@ -206,6 +223,12 @@
 	// Selector: contractAddress() f6b4dfb4
 	function contractAddress() external view returns (address);
 
+	// Selector: addCollectionAdminSubstrate(uint256) 5730062b
+	function addCollectionAdminSubstrate(uint256 newAdmin) external view;
+
+	// Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9
+	function removeCollectionAdminSubstrate(uint256 newAdmin) external view;
+
 	// Selector: addCollectionAdmin(address) 92e462c7
 	function addCollectionAdmin(address newAdmin) external view;
 
@@ -230,23 +253,6 @@
 
 	// Selector: setCollectionMintMode(bool) 00018e84
 	function setCollectionMintMode(bool mode) external;
-}
-
-// Selector: 780e9d63
-interface ERC721Enumerable is Dummy, ERC165 {
-	// Selector: tokenByIndex(uint256) 4f6ccce7
-	function tokenByIndex(uint256 index) external view returns (uint256);
-
-	// Not implemented
-	//
-	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
-	function tokenOfOwnerByIndex(address owner, uint256 index)
-		external
-		view
-		returns (uint256);
-
-	// Selector: totalSupply() 18160ddd
-	function totalSupply() external view returns (uint256);
 }
 
 // Selector: d74d154f
addedtests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/eth/collectionAdmin.test.ts
@@ -0,0 +1,296 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import {expect} from 'chai';
+import privateKey from '../substrate/privateKey';
+import {
+  createEthAccount,
+  createEthAccountWithBalance, 
+  evmCollection, 
+  evmCollectionHelpers, 
+  getCollectionAddressFromResult, 
+  itWeb3,
+} from './util/helpers';
+
+describe('Add collection admins', () => {
+  itWeb3('Add admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const newAdmin = await createEthAccount(web3);
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdmin(newAdmin).send();
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList[0].asEthereum.toString().toLocaleLowerCase())
+      .to.be.eq(newAdmin.toLocaleLowerCase());
+  });
+
+  itWeb3('Add substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const newAdmin = privateKey('//Alice');
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdminSubstrate(newAdmin.addressRaw).send();
+
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
+      .to.be.eq(newAdmin.address.toLocaleLowerCase());
+  });
+
+  itWeb3('(!negative tests!) Add admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdmin(admin).send();
+    
+    const user = await createEthAccount(web3);
+    await expect(collectionEvm.methods.addCollectionAdmin(user).call({from: admin}))
+      .to.be.rejectedWith('NoPermission');
+
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(1);
+    expect(adminList[0].asEthereum.toString().toLocaleLowerCase())
+      .to.be.eq(admin.toLocaleLowerCase());
+  });
+
+  itWeb3('(!negative tests!) Add admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const notAdmin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    
+    const user = await createEthAccount(web3);
+    await expect(collectionEvm.methods.addCollectionAdmin(user).call({from: notAdmin}))
+      .to.be.rejectedWith('NoPermission');
+
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(0);
+  });
+
+  itWeb3('(!negative tests!) Add substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdmin(admin).send();
+
+    const notAdmin = privateKey('//Alice');
+    await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin.addressRaw).call({from: admin}))
+      .to.be.rejectedWith('NoPermission');
+
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(1);
+    expect(adminList[0].asEthereum.toString().toLocaleLowerCase())
+      .to.be.eq(admin.toLocaleLowerCase());
+  });
+  
+  itWeb3('(!negative tests!) Add substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const notAdmin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    const notAdmin1 = privateKey('//Alice');
+    await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin1.addressRaw).call({from: notAdmin0}))
+      .to.be.rejectedWith('NoPermission');
+
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(0);
+  });
+});
+
+describe('Remove collection admins', () => {
+  itWeb3('Remove admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const newAdmin = await createEthAccount(web3);
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdmin(newAdmin).send();
+    {
+      const adminList = await api.rpc.unique.adminlist(collectionId);
+      expect(adminList.length).to.be.eq(1);
+      expect(adminList[0].asEthereum.toString().toLocaleLowerCase())
+        .to.be.eq(newAdmin.toLocaleLowerCase());
+    }
+
+    await collectionEvm.methods.removeCollectionAdmin(newAdmin).send();
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(0);
+  });
+
+  itWeb3('Remove substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const newAdmin = privateKey('//Alice');
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdminSubstrate(newAdmin.addressRaw).send();
+    {
+      const adminList = await api.rpc.unique.adminlist(collectionId);
+      expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
+        .to.be.eq(newAdmin.address.toLocaleLowerCase());
+    }
+    
+    await collectionEvm.methods.removeCollectionAdminSubstrate(newAdmin.addressRaw).send();
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(0);
+  });
+
+  itWeb3('(!negative tests!) Remove admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+
+    const admin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    await collectionEvm.methods.addCollectionAdmin(admin0).send();
+    const admin1 = await createEthAccount(web3);
+    await collectionEvm.methods.addCollectionAdmin(admin1).send();
+
+    await expect(collectionEvm.methods.removeCollectionAdmin(admin1).call({from: admin0}))
+      .to.be.rejectedWith('NoPermission');
+    {
+      const adminList = await api.rpc.unique.adminlist(collectionId);
+      expect(adminList.length).to.be.eq(2);
+      expect(adminList.toString().toLocaleLowerCase())
+        .to.be.deep.contains(admin0.toLocaleLowerCase())
+        .to.be.deep.contains(admin1.toLocaleLowerCase());
+    }
+  });
+
+  itWeb3('(!negative tests!) Remove admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+
+    const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    await collectionEvm.methods.addCollectionAdmin(admin).send();
+    const notAdmin = await createEthAccount(web3);
+
+    await expect(collectionEvm.methods.removeCollectionAdmin(admin).call({from: notAdmin}))
+      .to.be.rejectedWith('NoPermission');
+    {
+      const adminList = await api.rpc.unique.adminlist(collectionId);
+      expect(adminList[0].asEthereum.toString().toLocaleLowerCase())
+        .to.be.eq(admin.toLocaleLowerCase());
+      expect(adminList.length).to.be.eq(1);
+    }
+  });
+
+  itWeb3('(!negative tests!) Remove substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const adminSub = privateKey('//Alice');
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
+    const adminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    await collectionEvm.methods.addCollectionAdmin(adminEth).send();
+
+    await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: adminEth}))
+      .to.be.rejectedWith('NoPermission');
+
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(2);
+    expect(adminList.toString().toLocaleLowerCase())
+      .to.be.deep.contains(adminSub.address.toLocaleLowerCase())
+      .to.be.deep.contains(adminEth.toLocaleLowerCase());
+  });
+
+  itWeb3('(!negative tests!) Remove substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+    const collectionHelper = evmCollectionHelpers(web3, owner);
+        
+    const result = await collectionHelper.methods
+      .createNonfungibleCollection('A', 'B', 'C')
+      .send();
+    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+
+    const adminSub = privateKey('//Alice');
+    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+    await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
+    const notAdminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+    await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: notAdminEth}))
+      .to.be.rejectedWith('NoPermission');
+
+    const adminList = await api.rpc.unique.adminlist(collectionId);
+    expect(adminList.length).to.be.eq(1);
+    expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
+      .to.be.eq(adminSub.address.toLocaleLowerCase());
+  });
+});
\ No newline at end of file
modifiedtests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth
--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -233,7 +233,7 @@
     const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;
     expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
     expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));
-    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
+    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');
 
     await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});
     collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
@@ -241,14 +241,13 @@
     expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));
 
     const user = createEthAccount(web3);
-    let nextTokenId = await collectionEvm.methods.nextTokenId().call();
+    const nextTokenId = await collectionEvm.methods.nextTokenId().call();
     expect(nextTokenId).to.be.equal('1');
 
     const oldPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();
     expect(oldPermissions.mintMode).to.be.false;
     expect(oldPermissions.access).to.be.equal('Normal');
 
-    //TODO: change value, when enum generated
     await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});
     await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});
     await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});
@@ -260,34 +259,35 @@
     const ownerBalanceBefore = await ethBalanceViaSub(api, owner);
     const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);
 
-    nextTokenId = await collectionEvm.methods.nextTokenId().call({from: user});
-    expect(nextTokenId).to.be.equal('1');
-    result = await collectionEvm.methods.mintWithTokenURI(
-      user,
-      nextTokenId,
-      'Test URI',
-    ).send({from: user});
-    const events = normalizeEvents(result.events);
-    events[0].address = events[0].address.toLocaleLowerCase();
+    {
+      const nextTokenId = await collectionEvm.methods.nextTokenId().call();
+      expect(nextTokenId).to.be.equal('1');
+      const result = await collectionEvm.methods.mintWithTokenURI(
+        user,
+        nextTokenId,
+        'Test URI',
+      ).send({from: user});
+      const events = normalizeEvents(result.events);
 
-    expect(events).to.be.deep.equal([
-      {
-        address: collectionIdAddress.toLocaleLowerCase(),
-        event: 'Transfer',
-        args: {
-          from: '0x0000000000000000000000000000000000000000',
-          to: user,
-          tokenId: nextTokenId,
+      expect(events).to.be.deep.equal([
+        {
+          address: collectionIdAddress,
+          event: 'Transfer',
+          args: {
+            from: '0x0000000000000000000000000000000000000000',
+            to: user,
+            tokenId: nextTokenId,
+          },
         },
-      },
-    ]);
+      ]);
 
-    expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
+      const ownerBalanceAfter = await ethBalanceViaSub(api, owner);
+      const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);
 
-    const ownerBalanceAfter = await ethBalanceViaSub(api, owner);
-    expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);
-    const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);
-    expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;
+      expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
+      expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);
+      expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;
+    }
   });
 
   itWeb3('Check that transaction via EVM spend money from sponsor address', async ({api, web3, privateKeyWrapper}) => {
@@ -302,7 +302,7 @@
     const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;
     expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
     expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));
-    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
+    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');
     const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
     await sponsorCollection.methods.confirmCollectionSponsorship().send();
     collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
@@ -314,6 +314,7 @@
     
     const ownerBalanceBefore = await ethBalanceViaSub(api, owner);
     const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);
+    
   
     const userCollectionEvm = evmCollection(web3, user, collectionIdAddress);
     const nextTokenId = await userCollectionEvm.methods.nextTokenId().call();
modifiedtests/src/eth/createCollection.test.tsdiffbeforeafterboth
--- a/tests/src/eth/createCollection.test.ts
+++ b/tests/src/eth/createCollection.test.ts
@@ -80,7 +80,7 @@
     expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
     const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;
     expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));
-    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
+    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');
     const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
     await sponsorCollection.methods.confirmCollectionSponsorship().send();
     collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
@@ -208,7 +208,7 @@
       const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
       await expect(sponsorCollection.methods
         .confirmCollectionSponsorship()
-        .call()).to.be.rejectedWith('Caller is not set as sponsor');
+        .call()).to.be.rejectedWith('caller is not set as sponsor');
     }
     {
       await expect(contractEvmFromNotOwner.methods
@@ -225,6 +225,6 @@
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     await expect(collectionEvm.methods
       .setCollectionLimit('badLimit', 'true')
-      .call()).to.be.rejectedWith('Unknown boolean limit "badLimit"');
+      .call()).to.be.rejectedWith('unknown boolean limit "badLimit"');
   });
 });
\ No newline at end of file
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -91,6 +91,15 @@
   },
   {
     "inputs": [
+      { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
+    ],
+    "name": "addCollectionAdminSubstrate",
+    "outputs": [],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "addToCollectionAllowList",
@@ -300,6 +309,15 @@
   },
   {
     "inputs": [
+      { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
+    ],
+    "name": "removeCollectionAdminSubstrate",
+    "outputs": [],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "removeFromCollectionAllowList",
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -5,7 +5,7 @@
 import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';
 import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUnqSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsTokenChild } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsTokenChild } from '@polkadot/types/lookup';
 import type { Observable } from '@polkadot/types/types';
 
 declare module '@polkadot/api-base/types/storage' {
@@ -436,7 +436,7 @@
       /**
        * Items to be executed, indexed by the block number that they should be executed on.
        **/
-      agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUnqSchedulerScheduledV3>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+      agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUniqueSchedulerScheduledV3>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
       /**
        * Lookup from identity to the block number and index of the task.
        **/
modifiedtests/src/interfaces/augment-types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
 import type { Data, StorageKey } from '@polkadot/types';
 import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
 import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -819,10 +819,10 @@
     PalletUniqueCall: PalletUniqueCall;
     PalletUniqueError: PalletUniqueError;
     PalletUniqueRawEvent: PalletUniqueRawEvent;
-    PalletUnqSchedulerCall: PalletUnqSchedulerCall;
-    PalletUnqSchedulerError: PalletUnqSchedulerError;
-    PalletUnqSchedulerEvent: PalletUnqSchedulerEvent;
-    PalletUnqSchedulerScheduledV3: PalletUnqSchedulerScheduledV3;
+    PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;
+    PalletUniqueSchedulerError: PalletUniqueSchedulerError;
+    PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;
+    PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;
     PalletVersion: PalletVersion;
     PalletXcmCall: PalletXcmCall;
     PalletXcmError: PalletXcmError;
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -1784,8 +1784,8 @@
   readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';
 }
 
-/** @name PalletUnqSchedulerCall */
-export interface PalletUnqSchedulerCall extends Enum {
+/** @name PalletUniqueSchedulerCall */
+export interface PalletUniqueSchedulerCall extends Enum {
   readonly isScheduleNamed: boolean;
   readonly asScheduleNamed: {
     readonly id: U8aFixed;
@@ -1809,8 +1809,8 @@
   readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';
 }
 
-/** @name PalletUnqSchedulerError */
-export interface PalletUnqSchedulerError extends Enum {
+/** @name PalletUniqueSchedulerError */
+export interface PalletUniqueSchedulerError extends Enum {
   readonly isFailedToSchedule: boolean;
   readonly isNotFound: boolean;
   readonly isTargetBlockNumberInPast: boolean;
@@ -1818,8 +1818,8 @@
   readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
 }
 
-/** @name PalletUnqSchedulerEvent */
-export interface PalletUnqSchedulerEvent extends Enum {
+/** @name PalletUniqueSchedulerEvent */
+export interface PalletUniqueSchedulerEvent extends Enum {
   readonly isScheduled: boolean;
   readonly asScheduled: {
     readonly when: u32;
@@ -1845,8 +1845,8 @@
   readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';
 }
 
-/** @name PalletUnqSchedulerScheduledV3 */
-export interface PalletUnqSchedulerScheduledV3 extends Struct {
+/** @name PalletUniqueSchedulerScheduledV3 */
+export interface PalletUniqueSchedulerScheduledV3 extends Struct {
   readonly maybeId: Option<U8aFixed>;
   readonly priority: u8;
   readonly call: FrameSupportScheduleMaybeHashed;
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1526,9 +1526,9 @@
     users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>'
   },
   /**
-   * Lookup206: pallet_unq_scheduler::pallet::Call<T>
+   * Lookup206: pallet_unique_scheduler::pallet::Call<T>
    **/
-  PalletUnqSchedulerCall: {
+  PalletUniqueSchedulerCall: {
     _enum: {
       schedule_named: {
         id: '[u8;16]',
@@ -2181,9 +2181,9 @@
     }
   },
   /**
-   * Lookup283: pallet_unq_scheduler::pallet::Event<T>
+   * Lookup283: pallet_unique_scheduler::pallet::Event<T>
    **/
-  PalletUnqSchedulerEvent: {
+  PalletUniqueSchedulerEvent: {
     _enum: {
       Scheduled: {
         when: 'u32',
@@ -2589,9 +2589,9 @@
     _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument']
   },
   /**
-   * Lookup344: pallet_unq_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
+   * Lookup344: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
    **/
-  PalletUnqSchedulerScheduledV3: {
+  PalletUniqueSchedulerScheduledV3: {
     maybeId: 'Option<[u8;16]>',
     priority: 'u8',
     call: 'FrameSupportScheduleMaybeHashed',
@@ -2748,9 +2748,9 @@
    **/
   SpCoreVoid: 'Null',
   /**
-   * Lookup351: pallet_unq_scheduler::pallet::Error<T>
+   * Lookup351: pallet_unique_scheduler::pallet::Error<T>
    **/
-  PalletUnqSchedulerError: {
+  PalletUniqueSchedulerError: {
     _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
   },
   /**
modifiedtests/src/interfaces/registry.tsdiffbeforeafterboth
--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 declare module '@polkadot/types/types/registry' {
   export interface InterfaceTypes {
@@ -133,10 +133,10 @@
     PalletUniqueCall: PalletUniqueCall;
     PalletUniqueError: PalletUniqueError;
     PalletUniqueRawEvent: PalletUniqueRawEvent;
-    PalletUnqSchedulerCall: PalletUnqSchedulerCall;
-    PalletUnqSchedulerError: PalletUnqSchedulerError;
-    PalletUnqSchedulerEvent: PalletUnqSchedulerEvent;
-    PalletUnqSchedulerScheduledV3: PalletUnqSchedulerScheduledV3;
+    PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;
+    PalletUniqueSchedulerError: PalletUniqueSchedulerError;
+    PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;
+    PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;
     PalletXcmCall: PalletXcmCall;
     PalletXcmError: PalletXcmError;
     PalletXcmEvent: PalletXcmEvent;
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
before · tests/src/interfaces/types-lookup.ts
1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34declare module '@polkadot/types/lookup' {5  import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6  import type { ITuple } from '@polkadot/types-codec/types';7  import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8  import type { Event } from '@polkadot/types/interfaces/system';910  /** @name PolkadotPrimitivesV2PersistedValidationData (2) */11  export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {12    readonly parentHead: Bytes;13    readonly relayParentNumber: u32;14    readonly relayParentStorageRoot: H256;15    readonly maxPovSize: u32;16  }1718  /** @name PolkadotPrimitivesV2UpgradeRestriction (9) */19  export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {20    readonly isPresent: boolean;21    readonly type: 'Present';22  }2324  /** @name SpTrieStorageProof (10) */25  export interface SpTrieStorageProof extends Struct {26    readonly trieNodes: BTreeSet<Bytes>;27  }2829  /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (13) */30  export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {31    readonly dmqMqcHead: H256;32    readonly relayDispatchQueueSize: ITuple<[u32, u32]>;33    readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;34    readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;35  }3637  /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (18) */38  export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {39    readonly maxCapacity: u32;40    readonly maxTotalSize: u32;41    readonly maxMessageSize: u32;42    readonly msgCount: u32;43    readonly totalSize: u32;44    readonly mqcHead: Option<H256>;45  }4647  /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (20) */48  export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {49    readonly maxCodeSize: u32;50    readonly maxHeadDataSize: u32;51    readonly maxUpwardQueueCount: u32;52    readonly maxUpwardQueueSize: u32;53    readonly maxUpwardMessageSize: u32;54    readonly maxUpwardMessageNumPerCandidate: u32;55    readonly hrmpMaxMessageNumPerCandidate: u32;56    readonly validationUpgradeCooldown: u32;57    readonly validationUpgradeDelay: u32;58  }5960  /** @name PolkadotCorePrimitivesOutboundHrmpMessage (26) */61  export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {62    readonly recipient: u32;63    readonly data: Bytes;64  }6566  /** @name CumulusPalletParachainSystemCall (28) */67  export interface CumulusPalletParachainSystemCall extends Enum {68    readonly isSetValidationData: boolean;69    readonly asSetValidationData: {70      readonly data: CumulusPrimitivesParachainInherentParachainInherentData;71    } & Struct;72    readonly isSudoSendUpwardMessage: boolean;73    readonly asSudoSendUpwardMessage: {74      readonly message: Bytes;75    } & Struct;76    readonly isAuthorizeUpgrade: boolean;77    readonly asAuthorizeUpgrade: {78      readonly codeHash: H256;79    } & Struct;80    readonly isEnactAuthorizedUpgrade: boolean;81    readonly asEnactAuthorizedUpgrade: {82      readonly code: Bytes;83    } & Struct;84    readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';85  }8687  /** @name CumulusPrimitivesParachainInherentParachainInherentData (29) */88  export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {89    readonly validationData: PolkadotPrimitivesV2PersistedValidationData;90    readonly relayChainState: SpTrieStorageProof;91    readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;92    readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;93  }9495  /** @name PolkadotCorePrimitivesInboundDownwardMessage (31) */96  export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {97    readonly sentAt: u32;98    readonly msg: Bytes;99  }100101  /** @name PolkadotCorePrimitivesInboundHrmpMessage (34) */102  export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {103    readonly sentAt: u32;104    readonly data: Bytes;105  }106107  /** @name CumulusPalletParachainSystemEvent (37) */108  export interface CumulusPalletParachainSystemEvent extends Enum {109    readonly isValidationFunctionStored: boolean;110    readonly isValidationFunctionApplied: boolean;111    readonly asValidationFunctionApplied: u32;112    readonly isValidationFunctionDiscarded: boolean;113    readonly isUpgradeAuthorized: boolean;114    readonly asUpgradeAuthorized: H256;115    readonly isDownwardMessagesReceived: boolean;116    readonly asDownwardMessagesReceived: u32;117    readonly isDownwardMessagesProcessed: boolean;118    readonly asDownwardMessagesProcessed: ITuple<[u64, H256]>;119    readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';120  }121122  /** @name CumulusPalletParachainSystemError (38) */123  export interface CumulusPalletParachainSystemError extends Enum {124    readonly isOverlappingUpgrades: boolean;125    readonly isProhibitedByPolkadot: boolean;126    readonly isTooBig: boolean;127    readonly isValidationDataNotAvailable: boolean;128    readonly isHostConfigurationNotAvailable: boolean;129    readonly isNotScheduled: boolean;130    readonly isNothingAuthorized: boolean;131    readonly isUnauthorized: boolean;132    readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';133  }134135  /** @name PalletBalancesAccountData (41) */136  export interface PalletBalancesAccountData extends Struct {137    readonly free: u128;138    readonly reserved: u128;139    readonly miscFrozen: u128;140    readonly feeFrozen: u128;141  }142143  /** @name PalletBalancesBalanceLock (43) */144  export interface PalletBalancesBalanceLock extends Struct {145    readonly id: U8aFixed;146    readonly amount: u128;147    readonly reasons: PalletBalancesReasons;148  }149150  /** @name PalletBalancesReasons (45) */151  export interface PalletBalancesReasons extends Enum {152    readonly isFee: boolean;153    readonly isMisc: boolean;154    readonly isAll: boolean;155    readonly type: 'Fee' | 'Misc' | 'All';156  }157158  /** @name PalletBalancesReserveData (48) */159  export interface PalletBalancesReserveData extends Struct {160    readonly id: U8aFixed;161    readonly amount: u128;162  }163164  /** @name PalletBalancesReleases (51) */165  export interface PalletBalancesReleases extends Enum {166    readonly isV100: boolean;167    readonly isV200: boolean;168    readonly type: 'V100' | 'V200';169  }170171  /** @name PalletBalancesCall (52) */172  export interface PalletBalancesCall extends Enum {173    readonly isTransfer: boolean;174    readonly asTransfer: {175      readonly dest: MultiAddress;176      readonly value: Compact<u128>;177    } & Struct;178    readonly isSetBalance: boolean;179    readonly asSetBalance: {180      readonly who: MultiAddress;181      readonly newFree: Compact<u128>;182      readonly newReserved: Compact<u128>;183    } & Struct;184    readonly isForceTransfer: boolean;185    readonly asForceTransfer: {186      readonly source: MultiAddress;187      readonly dest: MultiAddress;188      readonly value: Compact<u128>;189    } & Struct;190    readonly isTransferKeepAlive: boolean;191    readonly asTransferKeepAlive: {192      readonly dest: MultiAddress;193      readonly value: Compact<u128>;194    } & Struct;195    readonly isTransferAll: boolean;196    readonly asTransferAll: {197      readonly dest: MultiAddress;198      readonly keepAlive: bool;199    } & Struct;200    readonly isForceUnreserve: boolean;201    readonly asForceUnreserve: {202      readonly who: MultiAddress;203      readonly amount: u128;204    } & Struct;205    readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';206  }207208  /** @name PalletBalancesEvent (58) */209  export interface PalletBalancesEvent extends Enum {210    readonly isEndowed: boolean;211    readonly asEndowed: {212      readonly account: AccountId32;213      readonly freeBalance: u128;214    } & Struct;215    readonly isDustLost: boolean;216    readonly asDustLost: {217      readonly account: AccountId32;218      readonly amount: u128;219    } & Struct;220    readonly isTransfer: boolean;221    readonly asTransfer: {222      readonly from: AccountId32;223      readonly to: AccountId32;224      readonly amount: u128;225    } & Struct;226    readonly isBalanceSet: boolean;227    readonly asBalanceSet: {228      readonly who: AccountId32;229      readonly free: u128;230      readonly reserved: u128;231    } & Struct;232    readonly isReserved: boolean;233    readonly asReserved: {234      readonly who: AccountId32;235      readonly amount: u128;236    } & Struct;237    readonly isUnreserved: boolean;238    readonly asUnreserved: {239      readonly who: AccountId32;240      readonly amount: u128;241    } & Struct;242    readonly isReserveRepatriated: boolean;243    readonly asReserveRepatriated: {244      readonly from: AccountId32;245      readonly to: AccountId32;246      readonly amount: u128;247      readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;248    } & Struct;249    readonly isDeposit: boolean;250    readonly asDeposit: {251      readonly who: AccountId32;252      readonly amount: u128;253    } & Struct;254    readonly isWithdraw: boolean;255    readonly asWithdraw: {256      readonly who: AccountId32;257      readonly amount: u128;258    } & Struct;259    readonly isSlashed: boolean;260    readonly asSlashed: {261      readonly who: AccountId32;262      readonly amount: u128;263    } & Struct;264    readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';265  }266267  /** @name FrameSupportTokensMiscBalanceStatus (59) */268  export interface FrameSupportTokensMiscBalanceStatus extends Enum {269    readonly isFree: boolean;270    readonly isReserved: boolean;271    readonly type: 'Free' | 'Reserved';272  }273274  /** @name PalletBalancesError (60) */275  export interface PalletBalancesError extends Enum {276    readonly isVestingBalance: boolean;277    readonly isLiquidityRestrictions: boolean;278    readonly isInsufficientBalance: boolean;279    readonly isExistentialDeposit: boolean;280    readonly isKeepAlive: boolean;281    readonly isExistingVestingSchedule: boolean;282    readonly isDeadAccount: boolean;283    readonly isTooManyReserves: boolean;284    readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';285  }286287  /** @name PalletTimestampCall (63) */288  export interface PalletTimestampCall extends Enum {289    readonly isSet: boolean;290    readonly asSet: {291      readonly now: Compact<u64>;292    } & Struct;293    readonly type: 'Set';294  }295296  /** @name PalletTransactionPaymentReleases (66) */297  export interface PalletTransactionPaymentReleases extends Enum {298    readonly isV1Ancient: boolean;299    readonly isV2: boolean;300    readonly type: 'V1Ancient' | 'V2';301  }302303  /** @name FrameSupportWeightsWeightToFeeCoefficient (68) */304  export interface FrameSupportWeightsWeightToFeeCoefficient extends Struct {305    readonly coeffInteger: u128;306    readonly coeffFrac: Perbill;307    readonly negative: bool;308    readonly degree: u8;309  }310311  /** @name PalletTreasuryProposal (70) */312  export interface PalletTreasuryProposal extends Struct {313    readonly proposer: AccountId32;314    readonly value: u128;315    readonly beneficiary: AccountId32;316    readonly bond: u128;317  }318319  /** @name PalletTreasuryCall (73) */320  export interface PalletTreasuryCall extends Enum {321    readonly isProposeSpend: boolean;322    readonly asProposeSpend: {323      readonly value: Compact<u128>;324      readonly beneficiary: MultiAddress;325    } & Struct;326    readonly isRejectProposal: boolean;327    readonly asRejectProposal: {328      readonly proposalId: Compact<u32>;329    } & Struct;330    readonly isApproveProposal: boolean;331    readonly asApproveProposal: {332      readonly proposalId: Compact<u32>;333    } & Struct;334    readonly isRemoveApproval: boolean;335    readonly asRemoveApproval: {336      readonly proposalId: Compact<u32>;337    } & Struct;338    readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'RemoveApproval';339  }340341  /** @name PalletTreasuryEvent (75) */342  export interface PalletTreasuryEvent extends Enum {343    readonly isProposed: boolean;344    readonly asProposed: {345      readonly proposalIndex: u32;346    } & Struct;347    readonly isSpending: boolean;348    readonly asSpending: {349      readonly budgetRemaining: u128;350    } & Struct;351    readonly isAwarded: boolean;352    readonly asAwarded: {353      readonly proposalIndex: u32;354      readonly award: u128;355      readonly account: AccountId32;356    } & Struct;357    readonly isRejected: boolean;358    readonly asRejected: {359      readonly proposalIndex: u32;360      readonly slashed: u128;361    } & Struct;362    readonly isBurnt: boolean;363    readonly asBurnt: {364      readonly burntFunds: u128;365    } & Struct;366    readonly isRollover: boolean;367    readonly asRollover: {368      readonly rolloverBalance: u128;369    } & Struct;370    readonly isDeposit: boolean;371    readonly asDeposit: {372      readonly value: u128;373    } & Struct;374    readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';375  }376377  /** @name FrameSupportPalletId (78) */378  export interface FrameSupportPalletId extends U8aFixed {}379380  /** @name PalletTreasuryError (79) */381  export interface PalletTreasuryError extends Enum {382    readonly isInsufficientProposersBalance: boolean;383    readonly isInvalidIndex: boolean;384    readonly isTooManyApprovals: boolean;385    readonly isProposalNotApproved: boolean;386    readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'ProposalNotApproved';387  }388389  /** @name PalletSudoCall (80) */390  export interface PalletSudoCall extends Enum {391    readonly isSudo: boolean;392    readonly asSudo: {393      readonly call: Call;394    } & Struct;395    readonly isSudoUncheckedWeight: boolean;396    readonly asSudoUncheckedWeight: {397      readonly call: Call;398      readonly weight: u64;399    } & Struct;400    readonly isSetKey: boolean;401    readonly asSetKey: {402      readonly new_: MultiAddress;403    } & Struct;404    readonly isSudoAs: boolean;405    readonly asSudoAs: {406      readonly who: MultiAddress;407      readonly call: Call;408    } & Struct;409    readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';410  }411412  /** @name FrameSystemCall (82) */413  export interface FrameSystemCall extends Enum {414    readonly isFillBlock: boolean;415    readonly asFillBlock: {416      readonly ratio: Perbill;417    } & Struct;418    readonly isRemark: boolean;419    readonly asRemark: {420      readonly remark: Bytes;421    } & Struct;422    readonly isSetHeapPages: boolean;423    readonly asSetHeapPages: {424      readonly pages: u64;425    } & Struct;426    readonly isSetCode: boolean;427    readonly asSetCode: {428      readonly code: Bytes;429    } & Struct;430    readonly isSetCodeWithoutChecks: boolean;431    readonly asSetCodeWithoutChecks: {432      readonly code: Bytes;433    } & Struct;434    readonly isSetStorage: boolean;435    readonly asSetStorage: {436      readonly items: Vec<ITuple<[Bytes, Bytes]>>;437    } & Struct;438    readonly isKillStorage: boolean;439    readonly asKillStorage: {440      readonly keys_: Vec<Bytes>;441    } & Struct;442    readonly isKillPrefix: boolean;443    readonly asKillPrefix: {444      readonly prefix: Bytes;445      readonly subkeys: u32;446    } & Struct;447    readonly isRemarkWithEvent: boolean;448    readonly asRemarkWithEvent: {449      readonly remark: Bytes;450    } & Struct;451    readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';452  }453454  /** @name OrmlVestingModuleCall (85) */455  export interface OrmlVestingModuleCall extends Enum {456    readonly isClaim: boolean;457    readonly isVestedTransfer: boolean;458    readonly asVestedTransfer: {459      readonly dest: MultiAddress;460      readonly schedule: OrmlVestingVestingSchedule;461    } & Struct;462    readonly isUpdateVestingSchedules: boolean;463    readonly asUpdateVestingSchedules: {464      readonly who: MultiAddress;465      readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;466    } & Struct;467    readonly isClaimFor: boolean;468    readonly asClaimFor: {469      readonly dest: MultiAddress;470    } & Struct;471    readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';472  }473474  /** @name OrmlVestingVestingSchedule (86) */475  export interface OrmlVestingVestingSchedule extends Struct {476    readonly start: u32;477    readonly period: u32;478    readonly periodCount: u32;479    readonly perPeriod: Compact<u128>;480  }481482  /** @name CumulusPalletXcmpQueueCall (88) */483  export interface CumulusPalletXcmpQueueCall extends Enum {484    readonly isServiceOverweight: boolean;485    readonly asServiceOverweight: {486      readonly index: u64;487      readonly weightLimit: u64;488    } & Struct;489    readonly isSuspendXcmExecution: boolean;490    readonly isResumeXcmExecution: boolean;491    readonly isUpdateSuspendThreshold: boolean;492    readonly asUpdateSuspendThreshold: {493      readonly new_: u32;494    } & Struct;495    readonly isUpdateDropThreshold: boolean;496    readonly asUpdateDropThreshold: {497      readonly new_: u32;498    } & Struct;499    readonly isUpdateResumeThreshold: boolean;500    readonly asUpdateResumeThreshold: {501      readonly new_: u32;502    } & Struct;503    readonly isUpdateThresholdWeight: boolean;504    readonly asUpdateThresholdWeight: {505      readonly new_: u64;506    } & Struct;507    readonly isUpdateWeightRestrictDecay: boolean;508    readonly asUpdateWeightRestrictDecay: {509      readonly new_: u64;510    } & Struct;511    readonly isUpdateXcmpMaxIndividualWeight: boolean;512    readonly asUpdateXcmpMaxIndividualWeight: {513      readonly new_: u64;514    } & Struct;515    readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';516  }517518  /** @name PalletXcmCall (89) */519  export interface PalletXcmCall extends Enum {520    readonly isSend: boolean;521    readonly asSend: {522      readonly dest: XcmVersionedMultiLocation;523      readonly message: XcmVersionedXcm;524    } & Struct;525    readonly isTeleportAssets: boolean;526    readonly asTeleportAssets: {527      readonly dest: XcmVersionedMultiLocation;528      readonly beneficiary: XcmVersionedMultiLocation;529      readonly assets: XcmVersionedMultiAssets;530      readonly feeAssetItem: u32;531    } & Struct;532    readonly isReserveTransferAssets: boolean;533    readonly asReserveTransferAssets: {534      readonly dest: XcmVersionedMultiLocation;535      readonly beneficiary: XcmVersionedMultiLocation;536      readonly assets: XcmVersionedMultiAssets;537      readonly feeAssetItem: u32;538    } & Struct;539    readonly isExecute: boolean;540    readonly asExecute: {541      readonly message: XcmVersionedXcm;542      readonly maxWeight: u64;543    } & Struct;544    readonly isForceXcmVersion: boolean;545    readonly asForceXcmVersion: {546      readonly location: XcmV1MultiLocation;547      readonly xcmVersion: u32;548    } & Struct;549    readonly isForceDefaultXcmVersion: boolean;550    readonly asForceDefaultXcmVersion: {551      readonly maybeXcmVersion: Option<u32>;552    } & Struct;553    readonly isForceSubscribeVersionNotify: boolean;554    readonly asForceSubscribeVersionNotify: {555      readonly location: XcmVersionedMultiLocation;556    } & Struct;557    readonly isForceUnsubscribeVersionNotify: boolean;558    readonly asForceUnsubscribeVersionNotify: {559      readonly location: XcmVersionedMultiLocation;560    } & Struct;561    readonly isLimitedReserveTransferAssets: boolean;562    readonly asLimitedReserveTransferAssets: {563      readonly dest: XcmVersionedMultiLocation;564      readonly beneficiary: XcmVersionedMultiLocation;565      readonly assets: XcmVersionedMultiAssets;566      readonly feeAssetItem: u32;567      readonly weightLimit: XcmV2WeightLimit;568    } & Struct;569    readonly isLimitedTeleportAssets: boolean;570    readonly asLimitedTeleportAssets: {571      readonly dest: XcmVersionedMultiLocation;572      readonly beneficiary: XcmVersionedMultiLocation;573      readonly assets: XcmVersionedMultiAssets;574      readonly feeAssetItem: u32;575      readonly weightLimit: XcmV2WeightLimit;576    } & Struct;577    readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';578  }579580  /** @name XcmVersionedMultiLocation (90) */581  export interface XcmVersionedMultiLocation extends Enum {582    readonly isV0: boolean;583    readonly asV0: XcmV0MultiLocation;584    readonly isV1: boolean;585    readonly asV1: XcmV1MultiLocation;586    readonly type: 'V0' | 'V1';587  }588589  /** @name XcmV0MultiLocation (91) */590  export interface XcmV0MultiLocation extends Enum {591    readonly isNull: boolean;592    readonly isX1: boolean;593    readonly asX1: XcmV0Junction;594    readonly isX2: boolean;595    readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;596    readonly isX3: boolean;597    readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;598    readonly isX4: boolean;599    readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;600    readonly isX5: boolean;601    readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;602    readonly isX6: boolean;603    readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;604    readonly isX7: boolean;605    readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;606    readonly isX8: boolean;607    readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;608    readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';609  }610611  /** @name XcmV0Junction (92) */612  export interface XcmV0Junction extends Enum {613    readonly isParent: boolean;614    readonly isParachain: boolean;615    readonly asParachain: Compact<u32>;616    readonly isAccountId32: boolean;617    readonly asAccountId32: {618      readonly network: XcmV0JunctionNetworkId;619      readonly id: U8aFixed;620    } & Struct;621    readonly isAccountIndex64: boolean;622    readonly asAccountIndex64: {623      readonly network: XcmV0JunctionNetworkId;624      readonly index: Compact<u64>;625    } & Struct;626    readonly isAccountKey20: boolean;627    readonly asAccountKey20: {628      readonly network: XcmV0JunctionNetworkId;629      readonly key: U8aFixed;630    } & Struct;631    readonly isPalletInstance: boolean;632    readonly asPalletInstance: u8;633    readonly isGeneralIndex: boolean;634    readonly asGeneralIndex: Compact<u128>;635    readonly isGeneralKey: boolean;636    readonly asGeneralKey: Bytes;637    readonly isOnlyChild: boolean;638    readonly isPlurality: boolean;639    readonly asPlurality: {640      readonly id: XcmV0JunctionBodyId;641      readonly part: XcmV0JunctionBodyPart;642    } & Struct;643    readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';644  }645646  /** @name XcmV0JunctionNetworkId (93) */647  export interface XcmV0JunctionNetworkId extends Enum {648    readonly isAny: boolean;649    readonly isNamed: boolean;650    readonly asNamed: Bytes;651    readonly isPolkadot: boolean;652    readonly isKusama: boolean;653    readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';654  }655656  /** @name XcmV0JunctionBodyId (94) */657  export interface XcmV0JunctionBodyId extends Enum {658    readonly isUnit: boolean;659    readonly isNamed: boolean;660    readonly asNamed: Bytes;661    readonly isIndex: boolean;662    readonly asIndex: Compact<u32>;663    readonly isExecutive: boolean;664    readonly isTechnical: boolean;665    readonly isLegislative: boolean;666    readonly isJudicial: boolean;667    readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';668  }669670  /** @name XcmV0JunctionBodyPart (95) */671  export interface XcmV0JunctionBodyPart extends Enum {672    readonly isVoice: boolean;673    readonly isMembers: boolean;674    readonly asMembers: {675      readonly count: Compact<u32>;676    } & Struct;677    readonly isFraction: boolean;678    readonly asFraction: {679      readonly nom: Compact<u32>;680      readonly denom: Compact<u32>;681    } & Struct;682    readonly isAtLeastProportion: boolean;683    readonly asAtLeastProportion: {684      readonly nom: Compact<u32>;685      readonly denom: Compact<u32>;686    } & Struct;687    readonly isMoreThanProportion: boolean;688    readonly asMoreThanProportion: {689      readonly nom: Compact<u32>;690      readonly denom: Compact<u32>;691    } & Struct;692    readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';693  }694695  /** @name XcmV1MultiLocation (96) */696  export interface XcmV1MultiLocation extends Struct {697    readonly parents: u8;698    readonly interior: XcmV1MultilocationJunctions;699  }700701  /** @name XcmV1MultilocationJunctions (97) */702  export interface XcmV1MultilocationJunctions extends Enum {703    readonly isHere: boolean;704    readonly isX1: boolean;705    readonly asX1: XcmV1Junction;706    readonly isX2: boolean;707    readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;708    readonly isX3: boolean;709    readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;710    readonly isX4: boolean;711    readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;712    readonly isX5: boolean;713    readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;714    readonly isX6: boolean;715    readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;716    readonly isX7: boolean;717    readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;718    readonly isX8: boolean;719    readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;720    readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';721  }722723  /** @name XcmV1Junction (98) */724  export interface XcmV1Junction extends Enum {725    readonly isParachain: boolean;726    readonly asParachain: Compact<u32>;727    readonly isAccountId32: boolean;728    readonly asAccountId32: {729      readonly network: XcmV0JunctionNetworkId;730      readonly id: U8aFixed;731    } & Struct;732    readonly isAccountIndex64: boolean;733    readonly asAccountIndex64: {734      readonly network: XcmV0JunctionNetworkId;735      readonly index: Compact<u64>;736    } & Struct;737    readonly isAccountKey20: boolean;738    readonly asAccountKey20: {739      readonly network: XcmV0JunctionNetworkId;740      readonly key: U8aFixed;741    } & Struct;742    readonly isPalletInstance: boolean;743    readonly asPalletInstance: u8;744    readonly isGeneralIndex: boolean;745    readonly asGeneralIndex: Compact<u128>;746    readonly isGeneralKey: boolean;747    readonly asGeneralKey: Bytes;748    readonly isOnlyChild: boolean;749    readonly isPlurality: boolean;750    readonly asPlurality: {751      readonly id: XcmV0JunctionBodyId;752      readonly part: XcmV0JunctionBodyPart;753    } & Struct;754    readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';755  }756757  /** @name XcmVersionedXcm (99) */758  export interface XcmVersionedXcm extends Enum {759    readonly isV0: boolean;760    readonly asV0: XcmV0Xcm;761    readonly isV1: boolean;762    readonly asV1: XcmV1Xcm;763    readonly isV2: boolean;764    readonly asV2: XcmV2Xcm;765    readonly type: 'V0' | 'V1' | 'V2';766  }767768  /** @name XcmV0Xcm (100) */769  export interface XcmV0Xcm extends Enum {770    readonly isWithdrawAsset: boolean;771    readonly asWithdrawAsset: {772      readonly assets: Vec<XcmV0MultiAsset>;773      readonly effects: Vec<XcmV0Order>;774    } & Struct;775    readonly isReserveAssetDeposit: boolean;776    readonly asReserveAssetDeposit: {777      readonly assets: Vec<XcmV0MultiAsset>;778      readonly effects: Vec<XcmV0Order>;779    } & Struct;780    readonly isTeleportAsset: boolean;781    readonly asTeleportAsset: {782      readonly assets: Vec<XcmV0MultiAsset>;783      readonly effects: Vec<XcmV0Order>;784    } & Struct;785    readonly isQueryResponse: boolean;786    readonly asQueryResponse: {787      readonly queryId: Compact<u64>;788      readonly response: XcmV0Response;789    } & Struct;790    readonly isTransferAsset: boolean;791    readonly asTransferAsset: {792      readonly assets: Vec<XcmV0MultiAsset>;793      readonly dest: XcmV0MultiLocation;794    } & Struct;795    readonly isTransferReserveAsset: boolean;796    readonly asTransferReserveAsset: {797      readonly assets: Vec<XcmV0MultiAsset>;798      readonly dest: XcmV0MultiLocation;799      readonly effects: Vec<XcmV0Order>;800    } & Struct;801    readonly isTransact: boolean;802    readonly asTransact: {803      readonly originType: XcmV0OriginKind;804      readonly requireWeightAtMost: u64;805      readonly call: XcmDoubleEncoded;806    } & Struct;807    readonly isHrmpNewChannelOpenRequest: boolean;808    readonly asHrmpNewChannelOpenRequest: {809      readonly sender: Compact<u32>;810      readonly maxMessageSize: Compact<u32>;811      readonly maxCapacity: Compact<u32>;812    } & Struct;813    readonly isHrmpChannelAccepted: boolean;814    readonly asHrmpChannelAccepted: {815      readonly recipient: Compact<u32>;816    } & Struct;817    readonly isHrmpChannelClosing: boolean;818    readonly asHrmpChannelClosing: {819      readonly initiator: Compact<u32>;820      readonly sender: Compact<u32>;821      readonly recipient: Compact<u32>;822    } & Struct;823    readonly isRelayedFrom: boolean;824    readonly asRelayedFrom: {825      readonly who: XcmV0MultiLocation;826      readonly message: XcmV0Xcm;827    } & Struct;828    readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';829  }830831  /** @name XcmV0MultiAsset (102) */832  export interface XcmV0MultiAsset extends Enum {833    readonly isNone: boolean;834    readonly isAll: boolean;835    readonly isAllFungible: boolean;836    readonly isAllNonFungible: boolean;837    readonly isAllAbstractFungible: boolean;838    readonly asAllAbstractFungible: {839      readonly id: Bytes;840    } & Struct;841    readonly isAllAbstractNonFungible: boolean;842    readonly asAllAbstractNonFungible: {843      readonly class: Bytes;844    } & Struct;845    readonly isAllConcreteFungible: boolean;846    readonly asAllConcreteFungible: {847      readonly id: XcmV0MultiLocation;848    } & Struct;849    readonly isAllConcreteNonFungible: boolean;850    readonly asAllConcreteNonFungible: {851      readonly class: XcmV0MultiLocation;852    } & Struct;853    readonly isAbstractFungible: boolean;854    readonly asAbstractFungible: {855      readonly id: Bytes;856      readonly amount: Compact<u128>;857    } & Struct;858    readonly isAbstractNonFungible: boolean;859    readonly asAbstractNonFungible: {860      readonly class: Bytes;861      readonly instance: XcmV1MultiassetAssetInstance;862    } & Struct;863    readonly isConcreteFungible: boolean;864    readonly asConcreteFungible: {865      readonly id: XcmV0MultiLocation;866      readonly amount: Compact<u128>;867    } & Struct;868    readonly isConcreteNonFungible: boolean;869    readonly asConcreteNonFungible: {870      readonly class: XcmV0MultiLocation;871      readonly instance: XcmV1MultiassetAssetInstance;872    } & Struct;873    readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';874  }875876  /** @name XcmV1MultiassetAssetInstance (103) */877  export interface XcmV1MultiassetAssetInstance extends Enum {878    readonly isUndefined: boolean;879    readonly isIndex: boolean;880    readonly asIndex: Compact<u128>;881    readonly isArray4: boolean;882    readonly asArray4: U8aFixed;883    readonly isArray8: boolean;884    readonly asArray8: U8aFixed;885    readonly isArray16: boolean;886    readonly asArray16: U8aFixed;887    readonly isArray32: boolean;888    readonly asArray32: U8aFixed;889    readonly isBlob: boolean;890    readonly asBlob: Bytes;891    readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';892  }893894  /** @name XcmV0Order (106) */895  export interface XcmV0Order extends Enum {896    readonly isNull: boolean;897    readonly isDepositAsset: boolean;898    readonly asDepositAsset: {899      readonly assets: Vec<XcmV0MultiAsset>;900      readonly dest: XcmV0MultiLocation;901    } & Struct;902    readonly isDepositReserveAsset: boolean;903    readonly asDepositReserveAsset: {904      readonly assets: Vec<XcmV0MultiAsset>;905      readonly dest: XcmV0MultiLocation;906      readonly effects: Vec<XcmV0Order>;907    } & Struct;908    readonly isExchangeAsset: boolean;909    readonly asExchangeAsset: {910      readonly give: Vec<XcmV0MultiAsset>;911      readonly receive: Vec<XcmV0MultiAsset>;912    } & Struct;913    readonly isInitiateReserveWithdraw: boolean;914    readonly asInitiateReserveWithdraw: {915      readonly assets: Vec<XcmV0MultiAsset>;916      readonly reserve: XcmV0MultiLocation;917      readonly effects: Vec<XcmV0Order>;918    } & Struct;919    readonly isInitiateTeleport: boolean;920    readonly asInitiateTeleport: {921      readonly assets: Vec<XcmV0MultiAsset>;922      readonly dest: XcmV0MultiLocation;923      readonly effects: Vec<XcmV0Order>;924    } & Struct;925    readonly isQueryHolding: boolean;926    readonly asQueryHolding: {927      readonly queryId: Compact<u64>;928      readonly dest: XcmV0MultiLocation;929      readonly assets: Vec<XcmV0MultiAsset>;930    } & Struct;931    readonly isBuyExecution: boolean;932    readonly asBuyExecution: {933      readonly fees: XcmV0MultiAsset;934      readonly weight: u64;935      readonly debt: u64;936      readonly haltOnError: bool;937      readonly xcm: Vec<XcmV0Xcm>;938    } & Struct;939    readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';940  }941942  /** @name XcmV0Response (108) */943  export interface XcmV0Response extends Enum {944    readonly isAssets: boolean;945    readonly asAssets: Vec<XcmV0MultiAsset>;946    readonly type: 'Assets';947  }948949  /** @name XcmV0OriginKind (109) */950  export interface XcmV0OriginKind extends Enum {951    readonly isNative: boolean;952    readonly isSovereignAccount: boolean;953    readonly isSuperuser: boolean;954    readonly isXcm: boolean;955    readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';956  }957958  /** @name XcmDoubleEncoded (110) */959  export interface XcmDoubleEncoded extends Struct {960    readonly encoded: Bytes;961  }962963  /** @name XcmV1Xcm (111) */964  export interface XcmV1Xcm extends Enum {965    readonly isWithdrawAsset: boolean;966    readonly asWithdrawAsset: {967      readonly assets: XcmV1MultiassetMultiAssets;968      readonly effects: Vec<XcmV1Order>;969    } & Struct;970    readonly isReserveAssetDeposited: boolean;971    readonly asReserveAssetDeposited: {972      readonly assets: XcmV1MultiassetMultiAssets;973      readonly effects: Vec<XcmV1Order>;974    } & Struct;975    readonly isReceiveTeleportedAsset: boolean;976    readonly asReceiveTeleportedAsset: {977      readonly assets: XcmV1MultiassetMultiAssets;978      readonly effects: Vec<XcmV1Order>;979    } & Struct;980    readonly isQueryResponse: boolean;981    readonly asQueryResponse: {982      readonly queryId: Compact<u64>;983      readonly response: XcmV1Response;984    } & Struct;985    readonly isTransferAsset: boolean;986    readonly asTransferAsset: {987      readonly assets: XcmV1MultiassetMultiAssets;988      readonly beneficiary: XcmV1MultiLocation;989    } & Struct;990    readonly isTransferReserveAsset: boolean;991    readonly asTransferReserveAsset: {992      readonly assets: XcmV1MultiassetMultiAssets;993      readonly dest: XcmV1MultiLocation;994      readonly effects: Vec<XcmV1Order>;995    } & Struct;996    readonly isTransact: boolean;997    readonly asTransact: {998      readonly originType: XcmV0OriginKind;999      readonly requireWeightAtMost: u64;1000      readonly call: XcmDoubleEncoded;1001    } & Struct;1002    readonly isHrmpNewChannelOpenRequest: boolean;1003    readonly asHrmpNewChannelOpenRequest: {1004      readonly sender: Compact<u32>;1005      readonly maxMessageSize: Compact<u32>;1006      readonly maxCapacity: Compact<u32>;1007    } & Struct;1008    readonly isHrmpChannelAccepted: boolean;1009    readonly asHrmpChannelAccepted: {1010      readonly recipient: Compact<u32>;1011    } & Struct;1012    readonly isHrmpChannelClosing: boolean;1013    readonly asHrmpChannelClosing: {1014      readonly initiator: Compact<u32>;1015      readonly sender: Compact<u32>;1016      readonly recipient: Compact<u32>;1017    } & Struct;1018    readonly isRelayedFrom: boolean;1019    readonly asRelayedFrom: {1020      readonly who: XcmV1MultilocationJunctions;1021      readonly message: XcmV1Xcm;1022    } & Struct;1023    readonly isSubscribeVersion: boolean;1024    readonly asSubscribeVersion: {1025      readonly queryId: Compact<u64>;1026      readonly maxResponseWeight: Compact<u64>;1027    } & Struct;1028    readonly isUnsubscribeVersion: boolean;1029    readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';1030  }10311032  /** @name XcmV1MultiassetMultiAssets (112) */1033  export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}10341035  /** @name XcmV1MultiAsset (114) */1036  export interface XcmV1MultiAsset extends Struct {1037    readonly id: XcmV1MultiassetAssetId;1038    readonly fun: XcmV1MultiassetFungibility;1039  }10401041  /** @name XcmV1MultiassetAssetId (115) */1042  export interface XcmV1MultiassetAssetId extends Enum {1043    readonly isConcrete: boolean;1044    readonly asConcrete: XcmV1MultiLocation;1045    readonly isAbstract: boolean;1046    readonly asAbstract: Bytes;1047    readonly type: 'Concrete' | 'Abstract';1048  }10491050  /** @name XcmV1MultiassetFungibility (116) */1051  export interface XcmV1MultiassetFungibility extends Enum {1052    readonly isFungible: boolean;1053    readonly asFungible: Compact<u128>;1054    readonly isNonFungible: boolean;1055    readonly asNonFungible: XcmV1MultiassetAssetInstance;1056    readonly type: 'Fungible' | 'NonFungible';1057  }10581059  /** @name XcmV1Order (118) */1060  export interface XcmV1Order extends Enum {1061    readonly isNoop: boolean;1062    readonly isDepositAsset: boolean;1063    readonly asDepositAsset: {1064      readonly assets: XcmV1MultiassetMultiAssetFilter;1065      readonly maxAssets: u32;1066      readonly beneficiary: XcmV1MultiLocation;1067    } & Struct;1068    readonly isDepositReserveAsset: boolean;1069    readonly asDepositReserveAsset: {1070      readonly assets: XcmV1MultiassetMultiAssetFilter;1071      readonly maxAssets: u32;1072      readonly dest: XcmV1MultiLocation;1073      readonly effects: Vec<XcmV1Order>;1074    } & Struct;1075    readonly isExchangeAsset: boolean;1076    readonly asExchangeAsset: {1077      readonly give: XcmV1MultiassetMultiAssetFilter;1078      readonly receive: XcmV1MultiassetMultiAssets;1079    } & Struct;1080    readonly isInitiateReserveWithdraw: boolean;1081    readonly asInitiateReserveWithdraw: {1082      readonly assets: XcmV1MultiassetMultiAssetFilter;1083      readonly reserve: XcmV1MultiLocation;1084      readonly effects: Vec<XcmV1Order>;1085    } & Struct;1086    readonly isInitiateTeleport: boolean;1087    readonly asInitiateTeleport: {1088      readonly assets: XcmV1MultiassetMultiAssetFilter;1089      readonly dest: XcmV1MultiLocation;1090      readonly effects: Vec<XcmV1Order>;1091    } & Struct;1092    readonly isQueryHolding: boolean;1093    readonly asQueryHolding: {1094      readonly queryId: Compact<u64>;1095      readonly dest: XcmV1MultiLocation;1096      readonly assets: XcmV1MultiassetMultiAssetFilter;1097    } & Struct;1098    readonly isBuyExecution: boolean;1099    readonly asBuyExecution: {1100      readonly fees: XcmV1MultiAsset;1101      readonly weight: u64;1102      readonly debt: u64;1103      readonly haltOnError: bool;1104      readonly instructions: Vec<XcmV1Xcm>;1105    } & Struct;1106    readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';1107  }11081109  /** @name XcmV1MultiassetMultiAssetFilter (119) */1110  export interface XcmV1MultiassetMultiAssetFilter extends Enum {1111    readonly isDefinite: boolean;1112    readonly asDefinite: XcmV1MultiassetMultiAssets;1113    readonly isWild: boolean;1114    readonly asWild: XcmV1MultiassetWildMultiAsset;1115    readonly type: 'Definite' | 'Wild';1116  }11171118  /** @name XcmV1MultiassetWildMultiAsset (120) */1119  export interface XcmV1MultiassetWildMultiAsset extends Enum {1120    readonly isAll: boolean;1121    readonly isAllOf: boolean;1122    readonly asAllOf: {1123      readonly id: XcmV1MultiassetAssetId;1124      readonly fun: XcmV1MultiassetWildFungibility;1125    } & Struct;1126    readonly type: 'All' | 'AllOf';1127  }11281129  /** @name XcmV1MultiassetWildFungibility (121) */1130  export interface XcmV1MultiassetWildFungibility extends Enum {1131    readonly isFungible: boolean;1132    readonly isNonFungible: boolean;1133    readonly type: 'Fungible' | 'NonFungible';1134  }11351136  /** @name XcmV1Response (123) */1137  export interface XcmV1Response extends Enum {1138    readonly isAssets: boolean;1139    readonly asAssets: XcmV1MultiassetMultiAssets;1140    readonly isVersion: boolean;1141    readonly asVersion: u32;1142    readonly type: 'Assets' | 'Version';1143  }11441145  /** @name XcmV2Xcm (124) */1146  export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}11471148  /** @name XcmV2Instruction (126) */1149  export interface XcmV2Instruction extends Enum {1150    readonly isWithdrawAsset: boolean;1151    readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;1152    readonly isReserveAssetDeposited: boolean;1153    readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;1154    readonly isReceiveTeleportedAsset: boolean;1155    readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;1156    readonly isQueryResponse: boolean;1157    readonly asQueryResponse: {1158      readonly queryId: Compact<u64>;1159      readonly response: XcmV2Response;1160      readonly maxWeight: Compact<u64>;1161    } & Struct;1162    readonly isTransferAsset: boolean;1163    readonly asTransferAsset: {1164      readonly assets: XcmV1MultiassetMultiAssets;1165      readonly beneficiary: XcmV1MultiLocation;1166    } & Struct;1167    readonly isTransferReserveAsset: boolean;1168    readonly asTransferReserveAsset: {1169      readonly assets: XcmV1MultiassetMultiAssets;1170      readonly dest: XcmV1MultiLocation;1171      readonly xcm: XcmV2Xcm;1172    } & Struct;1173    readonly isTransact: boolean;1174    readonly asTransact: {1175      readonly originType: XcmV0OriginKind;1176      readonly requireWeightAtMost: Compact<u64>;1177      readonly call: XcmDoubleEncoded;1178    } & Struct;1179    readonly isHrmpNewChannelOpenRequest: boolean;1180    readonly asHrmpNewChannelOpenRequest: {1181      readonly sender: Compact<u32>;1182      readonly maxMessageSize: Compact<u32>;1183      readonly maxCapacity: Compact<u32>;1184    } & Struct;1185    readonly isHrmpChannelAccepted: boolean;1186    readonly asHrmpChannelAccepted: {1187      readonly recipient: Compact<u32>;1188    } & Struct;1189    readonly isHrmpChannelClosing: boolean;1190    readonly asHrmpChannelClosing: {1191      readonly initiator: Compact<u32>;1192      readonly sender: Compact<u32>;1193      readonly recipient: Compact<u32>;1194    } & Struct;1195    readonly isClearOrigin: boolean;1196    readonly isDescendOrigin: boolean;1197    readonly asDescendOrigin: XcmV1MultilocationJunctions;1198    readonly isReportError: boolean;1199    readonly asReportError: {1200      readonly queryId: Compact<u64>;1201      readonly dest: XcmV1MultiLocation;1202      readonly maxResponseWeight: Compact<u64>;1203    } & Struct;1204    readonly isDepositAsset: boolean;1205    readonly asDepositAsset: {1206      readonly assets: XcmV1MultiassetMultiAssetFilter;1207      readonly maxAssets: Compact<u32>;1208      readonly beneficiary: XcmV1MultiLocation;1209    } & Struct;1210    readonly isDepositReserveAsset: boolean;1211    readonly asDepositReserveAsset: {1212      readonly assets: XcmV1MultiassetMultiAssetFilter;1213      readonly maxAssets: Compact<u32>;1214      readonly dest: XcmV1MultiLocation;1215      readonly xcm: XcmV2Xcm;1216    } & Struct;1217    readonly isExchangeAsset: boolean;1218    readonly asExchangeAsset: {1219      readonly give: XcmV1MultiassetMultiAssetFilter;1220      readonly receive: XcmV1MultiassetMultiAssets;1221    } & Struct;1222    readonly isInitiateReserveWithdraw: boolean;1223    readonly asInitiateReserveWithdraw: {1224      readonly assets: XcmV1MultiassetMultiAssetFilter;1225      readonly reserve: XcmV1MultiLocation;1226      readonly xcm: XcmV2Xcm;1227    } & Struct;1228    readonly isInitiateTeleport: boolean;1229    readonly asInitiateTeleport: {1230      readonly assets: XcmV1MultiassetMultiAssetFilter;1231      readonly dest: XcmV1MultiLocation;1232      readonly xcm: XcmV2Xcm;1233    } & Struct;1234    readonly isQueryHolding: boolean;1235    readonly asQueryHolding: {1236      readonly queryId: Compact<u64>;1237      readonly dest: XcmV1MultiLocation;1238      readonly assets: XcmV1MultiassetMultiAssetFilter;1239      readonly maxResponseWeight: Compact<u64>;1240    } & Struct;1241    readonly isBuyExecution: boolean;1242    readonly asBuyExecution: {1243      readonly fees: XcmV1MultiAsset;1244      readonly weightLimit: XcmV2WeightLimit;1245    } & Struct;1246    readonly isRefundSurplus: boolean;1247    readonly isSetErrorHandler: boolean;1248    readonly asSetErrorHandler: XcmV2Xcm;1249    readonly isSetAppendix: boolean;1250    readonly asSetAppendix: XcmV2Xcm;1251    readonly isClearError: boolean;1252    readonly isClaimAsset: boolean;1253    readonly asClaimAsset: {1254      readonly assets: XcmV1MultiassetMultiAssets;1255      readonly ticket: XcmV1MultiLocation;1256    } & Struct;1257    readonly isTrap: boolean;1258    readonly asTrap: Compact<u64>;1259    readonly isSubscribeVersion: boolean;1260    readonly asSubscribeVersion: {1261      readonly queryId: Compact<u64>;1262      readonly maxResponseWeight: Compact<u64>;1263    } & Struct;1264    readonly isUnsubscribeVersion: boolean;1265    readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';1266  }12671268  /** @name XcmV2Response (127) */1269  export interface XcmV2Response extends Enum {1270    readonly isNull: boolean;1271    readonly isAssets: boolean;1272    readonly asAssets: XcmV1MultiassetMultiAssets;1273    readonly isExecutionResult: boolean;1274    readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;1275    readonly isVersion: boolean;1276    readonly asVersion: u32;1277    readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';1278  }12791280  /** @name XcmV2TraitsError (130) */1281  export interface XcmV2TraitsError extends Enum {1282    readonly isOverflow: boolean;1283    readonly isUnimplemented: boolean;1284    readonly isUntrustedReserveLocation: boolean;1285    readonly isUntrustedTeleportLocation: boolean;1286    readonly isMultiLocationFull: boolean;1287    readonly isMultiLocationNotInvertible: boolean;1288    readonly isBadOrigin: boolean;1289    readonly isInvalidLocation: boolean;1290    readonly isAssetNotFound: boolean;1291    readonly isFailedToTransactAsset: boolean;1292    readonly isNotWithdrawable: boolean;1293    readonly isLocationCannotHold: boolean;1294    readonly isExceedsMaxMessageSize: boolean;1295    readonly isDestinationUnsupported: boolean;1296    readonly isTransport: boolean;1297    readonly isUnroutable: boolean;1298    readonly isUnknownClaim: boolean;1299    readonly isFailedToDecode: boolean;1300    readonly isMaxWeightInvalid: boolean;1301    readonly isNotHoldingFees: boolean;1302    readonly isTooExpensive: boolean;1303    readonly isTrap: boolean;1304    readonly asTrap: u64;1305    readonly isUnhandledXcmVersion: boolean;1306    readonly isWeightLimitReached: boolean;1307    readonly asWeightLimitReached: u64;1308    readonly isBarrier: boolean;1309    readonly isWeightNotComputable: boolean;1310    readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';1311  }13121313  /** @name XcmV2WeightLimit (131) */1314  export interface XcmV2WeightLimit extends Enum {1315    readonly isUnlimited: boolean;1316    readonly isLimited: boolean;1317    readonly asLimited: Compact<u64>;1318    readonly type: 'Unlimited' | 'Limited';1319  }13201321  /** @name XcmVersionedMultiAssets (132) */1322  export interface XcmVersionedMultiAssets extends Enum {1323    readonly isV0: boolean;1324    readonly asV0: Vec<XcmV0MultiAsset>;1325    readonly isV1: boolean;1326    readonly asV1: XcmV1MultiassetMultiAssets;1327    readonly type: 'V0' | 'V1';1328  }13291330  /** @name CumulusPalletXcmCall (147) */1331  export type CumulusPalletXcmCall = Null;13321333  /** @name CumulusPalletDmpQueueCall (148) */1334  export interface CumulusPalletDmpQueueCall extends Enum {1335    readonly isServiceOverweight: boolean;1336    readonly asServiceOverweight: {1337      readonly index: u64;1338      readonly weightLimit: u64;1339    } & Struct;1340    readonly type: 'ServiceOverweight';1341  }13421343  /** @name PalletInflationCall (149) */1344  export interface PalletInflationCall extends Enum {1345    readonly isStartInflation: boolean;1346    readonly asStartInflation: {1347      readonly inflationStartRelayBlock: u32;1348    } & Struct;1349    readonly type: 'StartInflation';1350  }13511352  /** @name PalletUniqueCall (150) */1353  export interface PalletUniqueCall extends Enum {1354    readonly isCreateCollection: boolean;1355    readonly asCreateCollection: {1356      readonly collectionName: Vec<u16>;1357      readonly collectionDescription: Vec<u16>;1358      readonly tokenPrefix: Bytes;1359      readonly mode: UpDataStructsCollectionMode;1360    } & Struct;1361    readonly isCreateCollectionEx: boolean;1362    readonly asCreateCollectionEx: {1363      readonly data: UpDataStructsCreateCollectionData;1364    } & Struct;1365    readonly isDestroyCollection: boolean;1366    readonly asDestroyCollection: {1367      readonly collectionId: u32;1368    } & Struct;1369    readonly isAddToAllowList: boolean;1370    readonly asAddToAllowList: {1371      readonly collectionId: u32;1372      readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1373    } & Struct;1374    readonly isRemoveFromAllowList: boolean;1375    readonly asRemoveFromAllowList: {1376      readonly collectionId: u32;1377      readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1378    } & Struct;1379    readonly isChangeCollectionOwner: boolean;1380    readonly asChangeCollectionOwner: {1381      readonly collectionId: u32;1382      readonly newOwner: AccountId32;1383    } & Struct;1384    readonly isAddCollectionAdmin: boolean;1385    readonly asAddCollectionAdmin: {1386      readonly collectionId: u32;1387      readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;1388    } & Struct;1389    readonly isRemoveCollectionAdmin: boolean;1390    readonly asRemoveCollectionAdmin: {1391      readonly collectionId: u32;1392      readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1393    } & Struct;1394    readonly isSetCollectionSponsor: boolean;1395    readonly asSetCollectionSponsor: {1396      readonly collectionId: u32;1397      readonly newSponsor: AccountId32;1398    } & Struct;1399    readonly isConfirmSponsorship: boolean;1400    readonly asConfirmSponsorship: {1401      readonly collectionId: u32;1402    } & Struct;1403    readonly isRemoveCollectionSponsor: boolean;1404    readonly asRemoveCollectionSponsor: {1405      readonly collectionId: u32;1406    } & Struct;1407    readonly isCreateItem: boolean;1408    readonly asCreateItem: {1409      readonly collectionId: u32;1410      readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1411      readonly data: UpDataStructsCreateItemData;1412    } & Struct;1413    readonly isCreateMultipleItems: boolean;1414    readonly asCreateMultipleItems: {1415      readonly collectionId: u32;1416      readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1417      readonly itemsData: Vec<UpDataStructsCreateItemData>;1418    } & Struct;1419    readonly isSetCollectionProperties: boolean;1420    readonly asSetCollectionProperties: {1421      readonly collectionId: u32;1422      readonly properties: Vec<UpDataStructsProperty>;1423    } & Struct;1424    readonly isDeleteCollectionProperties: boolean;1425    readonly asDeleteCollectionProperties: {1426      readonly collectionId: u32;1427      readonly propertyKeys: Vec<Bytes>;1428    } & Struct;1429    readonly isSetTokenProperties: boolean;1430    readonly asSetTokenProperties: {1431      readonly collectionId: u32;1432      readonly tokenId: u32;1433      readonly properties: Vec<UpDataStructsProperty>;1434    } & Struct;1435    readonly isDeleteTokenProperties: boolean;1436    readonly asDeleteTokenProperties: {1437      readonly collectionId: u32;1438      readonly tokenId: u32;1439      readonly propertyKeys: Vec<Bytes>;1440    } & Struct;1441    readonly isSetPropertyPermissions: boolean;1442    readonly asSetPropertyPermissions: {1443      readonly collectionId: u32;1444      readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1445    } & Struct;1446    readonly isCreateMultipleItemsEx: boolean;1447    readonly asCreateMultipleItemsEx: {1448      readonly collectionId: u32;1449      readonly data: UpDataStructsCreateItemExData;1450    } & Struct;1451    readonly isSetTransfersEnabledFlag: boolean;1452    readonly asSetTransfersEnabledFlag: {1453      readonly collectionId: u32;1454      readonly value: bool;1455    } & Struct;1456    readonly isBurnItem: boolean;1457    readonly asBurnItem: {1458      readonly collectionId: u32;1459      readonly itemId: u32;1460      readonly value: u128;1461    } & Struct;1462    readonly isBurnFrom: boolean;1463    readonly asBurnFrom: {1464      readonly collectionId: u32;1465      readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1466      readonly itemId: u32;1467      readonly value: u128;1468    } & Struct;1469    readonly isTransfer: boolean;1470    readonly asTransfer: {1471      readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1472      readonly collectionId: u32;1473      readonly itemId: u32;1474      readonly value: u128;1475    } & Struct;1476    readonly isApprove: boolean;1477    readonly asApprove: {1478      readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1479      readonly collectionId: u32;1480      readonly itemId: u32;1481      readonly amount: u128;1482    } & Struct;1483    readonly isTransferFrom: boolean;1484    readonly asTransferFrom: {1485      readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1486      readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1487      readonly collectionId: u32;1488      readonly itemId: u32;1489      readonly value: u128;1490    } & Struct;1491    readonly isSetCollectionLimits: boolean;1492    readonly asSetCollectionLimits: {1493      readonly collectionId: u32;1494      readonly newLimit: UpDataStructsCollectionLimits;1495    } & Struct;1496    readonly isSetCollectionPermissions: boolean;1497    readonly asSetCollectionPermissions: {1498      readonly collectionId: u32;1499      readonly newLimit: UpDataStructsCollectionPermissions;1500    } & Struct;1501    readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions';1502  }15031504  /** @name UpDataStructsCollectionMode (156) */1505  export interface UpDataStructsCollectionMode extends Enum {1506    readonly isNft: boolean;1507    readonly isFungible: boolean;1508    readonly asFungible: u8;1509    readonly isReFungible: boolean;1510    readonly type: 'Nft' | 'Fungible' | 'ReFungible';1511  }15121513  /** @name UpDataStructsCreateCollectionData (157) */1514  export interface UpDataStructsCreateCollectionData extends Struct {1515    readonly mode: UpDataStructsCollectionMode;1516    readonly access: Option<UpDataStructsAccessMode>;1517    readonly name: Vec<u16>;1518    readonly description: Vec<u16>;1519    readonly tokenPrefix: Bytes;1520    readonly pendingSponsor: Option<AccountId32>;1521    readonly limits: Option<UpDataStructsCollectionLimits>;1522    readonly permissions: Option<UpDataStructsCollectionPermissions>;1523    readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1524    readonly properties: Vec<UpDataStructsProperty>;1525  }15261527  /** @name UpDataStructsAccessMode (159) */1528  export interface UpDataStructsAccessMode extends Enum {1529    readonly isNormal: boolean;1530    readonly isAllowList: boolean;1531    readonly type: 'Normal' | 'AllowList';1532  }15331534  /** @name UpDataStructsCollectionLimits (162) */1535  export interface UpDataStructsCollectionLimits extends Struct {1536    readonly accountTokenOwnershipLimit: Option<u32>;1537    readonly sponsoredDataSize: Option<u32>;1538    readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;1539    readonly tokenLimit: Option<u32>;1540    readonly sponsorTransferTimeout: Option<u32>;1541    readonly sponsorApproveTimeout: Option<u32>;1542    readonly ownerCanTransfer: Option<bool>;1543    readonly ownerCanDestroy: Option<bool>;1544    readonly transfersEnabled: Option<bool>;1545  }15461547  /** @name UpDataStructsSponsoringRateLimit (164) */1548  export interface UpDataStructsSponsoringRateLimit extends Enum {1549    readonly isSponsoringDisabled: boolean;1550    readonly isBlocks: boolean;1551    readonly asBlocks: u32;1552    readonly type: 'SponsoringDisabled' | 'Blocks';1553  }15541555  /** @name UpDataStructsCollectionPermissions (167) */1556  export interface UpDataStructsCollectionPermissions extends Struct {1557    readonly access: Option<UpDataStructsAccessMode>;1558    readonly mintMode: Option<bool>;1559    readonly nesting: Option<UpDataStructsNestingPermissions>;1560  }15611562  /** @name UpDataStructsNestingPermissions (169) */1563  export interface UpDataStructsNestingPermissions extends Struct {1564    readonly tokenOwner: bool;1565    readonly admin: bool;1566    readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;1567    readonly permissive: bool;1568  }15691570  /** @name UpDataStructsOwnerRestrictedSet (171) */1571  export interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}15721573  /** @name UpDataStructsPropertyKeyPermission (177) */1574  export interface UpDataStructsPropertyKeyPermission extends Struct {1575    readonly key: Bytes;1576    readonly permission: UpDataStructsPropertyPermission;1577  }15781579  /** @name UpDataStructsPropertyPermission (179) */1580  export interface UpDataStructsPropertyPermission extends Struct {1581    readonly mutable: bool;1582    readonly collectionAdmin: bool;1583    readonly tokenOwner: bool;1584  }15851586  /** @name UpDataStructsProperty (182) */1587  export interface UpDataStructsProperty extends Struct {1588    readonly key: Bytes;1589    readonly value: Bytes;1590  }15911592  /** @name PalletEvmAccountBasicCrossAccountIdRepr (185) */1593  export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1594    readonly isSubstrate: boolean;1595    readonly asSubstrate: AccountId32;1596    readonly isEthereum: boolean;1597    readonly asEthereum: H160;1598    readonly type: 'Substrate' | 'Ethereum';1599  }16001601  /** @name UpDataStructsCreateItemData (187) */1602  export interface UpDataStructsCreateItemData extends Enum {1603    readonly isNft: boolean;1604    readonly asNft: UpDataStructsCreateNftData;1605    readonly isFungible: boolean;1606    readonly asFungible: UpDataStructsCreateFungibleData;1607    readonly isReFungible: boolean;1608    readonly asReFungible: UpDataStructsCreateReFungibleData;1609    readonly type: 'Nft' | 'Fungible' | 'ReFungible';1610  }16111612  /** @name UpDataStructsCreateNftData (188) */1613  export interface UpDataStructsCreateNftData extends Struct {1614    readonly properties: Vec<UpDataStructsProperty>;1615  }16161617  /** @name UpDataStructsCreateFungibleData (189) */1618  export interface UpDataStructsCreateFungibleData extends Struct {1619    readonly value: u128;1620  }16211622  /** @name UpDataStructsCreateReFungibleData (190) */1623  export interface UpDataStructsCreateReFungibleData extends Struct {1624    readonly constData: Bytes;1625    readonly pieces: u128;1626  }16271628  /** @name UpDataStructsCreateItemExData (195) */1629  export interface UpDataStructsCreateItemExData extends Enum {1630    readonly isNft: boolean;1631    readonly asNft: Vec<UpDataStructsCreateNftExData>;1632    readonly isFungible: boolean;1633    readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1634    readonly isRefungibleMultipleItems: boolean;1635    readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExData>;1636    readonly isRefungibleMultipleOwners: boolean;1637    readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExData;1638    readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';1639  }16401641  /** @name UpDataStructsCreateNftExData (197) */1642  export interface UpDataStructsCreateNftExData extends Struct {1643    readonly properties: Vec<UpDataStructsProperty>;1644    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1645  }16461647  /** @name UpDataStructsCreateRefungibleExData (204) */1648  export interface UpDataStructsCreateRefungibleExData extends Struct {1649    readonly constData: Bytes;1650    readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1651  }16521653  /** @name PalletUnqSchedulerCall (206) */1654  export interface PalletUnqSchedulerCall extends Enum {1655    readonly isScheduleNamed: boolean;1656    readonly asScheduleNamed: {1657      readonly id: U8aFixed;1658      readonly when: u32;1659      readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1660      readonly priority: u8;1661      readonly call: FrameSupportScheduleMaybeHashed;1662    } & Struct;1663    readonly isCancelNamed: boolean;1664    readonly asCancelNamed: {1665      readonly id: U8aFixed;1666    } & Struct;1667    readonly isScheduleNamedAfter: boolean;1668    readonly asScheduleNamedAfter: {1669      readonly id: U8aFixed;1670      readonly after: u32;1671      readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1672      readonly priority: u8;1673      readonly call: FrameSupportScheduleMaybeHashed;1674    } & Struct;1675    readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';1676  }16771678  /** @name FrameSupportScheduleMaybeHashed (208) */1679  export interface FrameSupportScheduleMaybeHashed extends Enum {1680    readonly isValue: boolean;1681    readonly asValue: Call;1682    readonly isHash: boolean;1683    readonly asHash: H256;1684    readonly type: 'Value' | 'Hash';1685  }16861687  /** @name PalletTemplateTransactionPaymentCall (209) */1688  export type PalletTemplateTransactionPaymentCall = Null;16891690  /** @name PalletStructureCall (210) */1691  export type PalletStructureCall = Null;16921693  /** @name PalletRmrkCoreCall (211) */1694  export interface PalletRmrkCoreCall extends Enum {1695    readonly isCreateCollection: boolean;1696    readonly asCreateCollection: {1697      readonly metadata: Bytes;1698      readonly max: Option<u32>;1699      readonly symbol: Bytes;1700    } & Struct;1701    readonly isDestroyCollection: boolean;1702    readonly asDestroyCollection: {1703      readonly collectionId: u32;1704    } & Struct;1705    readonly isChangeCollectionIssuer: boolean;1706    readonly asChangeCollectionIssuer: {1707      readonly collectionId: u32;1708      readonly newIssuer: MultiAddress;1709    } & Struct;1710    readonly isLockCollection: boolean;1711    readonly asLockCollection: {1712      readonly collectionId: u32;1713    } & Struct;1714    readonly isMintNft: boolean;1715    readonly asMintNft: {1716      readonly owner: AccountId32;1717      readonly collectionId: u32;1718      readonly recipient: Option<AccountId32>;1719      readonly royaltyAmount: Option<Permill>;1720      readonly metadata: Bytes;1721      readonly transferable: bool;1722    } & Struct;1723    readonly isBurnNft: boolean;1724    readonly asBurnNft: {1725      readonly collectionId: u32;1726      readonly nftId: u32;1727    } & Struct;1728    readonly isSend: boolean;1729    readonly asSend: {1730      readonly rmrkCollectionId: u32;1731      readonly rmrkNftId: u32;1732      readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1733    } & Struct;1734    readonly isAcceptNft: boolean;1735    readonly asAcceptNft: {1736      readonly rmrkCollectionId: u32;1737      readonly rmrkNftId: u32;1738      readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1739    } & Struct;1740    readonly isRejectNft: boolean;1741    readonly asRejectNft: {1742      readonly rmrkCollectionId: u32;1743      readonly rmrkNftId: u32;1744    } & Struct;1745    readonly isAcceptResource: boolean;1746    readonly asAcceptResource: {1747      readonly rmrkCollectionId: u32;1748      readonly rmrkNftId: u32;1749      readonly rmrkResourceId: u32;1750    } & Struct;1751    readonly isAcceptResourceRemoval: boolean;1752    readonly asAcceptResourceRemoval: {1753      readonly rmrkCollectionId: u32;1754      readonly rmrkNftId: u32;1755      readonly rmrkResourceId: u32;1756    } & Struct;1757    readonly isSetProperty: boolean;1758    readonly asSetProperty: {1759      readonly rmrkCollectionId: Compact<u32>;1760      readonly maybeNftId: Option<u32>;1761      readonly key: Bytes;1762      readonly value: Bytes;1763    } & Struct;1764    readonly isSetPriority: boolean;1765    readonly asSetPriority: {1766      readonly rmrkCollectionId: u32;1767      readonly rmrkNftId: u32;1768      readonly priorities: Vec<u32>;1769    } & Struct;1770    readonly isAddBasicResource: boolean;1771    readonly asAddBasicResource: {1772      readonly rmrkCollectionId: u32;1773      readonly nftId: u32;1774      readonly resource: RmrkTraitsResourceBasicResource;1775    } & Struct;1776    readonly isAddComposableResource: boolean;1777    readonly asAddComposableResource: {1778      readonly rmrkCollectionId: u32;1779      readonly nftId: u32;1780      readonly resourceId: Bytes;1781      readonly resource: RmrkTraitsResourceComposableResource;1782    } & Struct;1783    readonly isAddSlotResource: boolean;1784    readonly asAddSlotResource: {1785      readonly rmrkCollectionId: u32;1786      readonly nftId: u32;1787      readonly resource: RmrkTraitsResourceSlotResource;1788    } & Struct;1789    readonly isRemoveResource: boolean;1790    readonly asRemoveResource: {1791      readonly rmrkCollectionId: u32;1792      readonly nftId: u32;1793      readonly resourceId: u32;1794    } & Struct;1795    readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';1796  }17971798  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (215) */1799  export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1800    readonly isAccountId: boolean;1801    readonly asAccountId: AccountId32;1802    readonly isCollectionAndNftTuple: boolean;1803    readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;1804    readonly type: 'AccountId' | 'CollectionAndNftTuple';1805  }18061807  /** @name RmrkTraitsResourceBasicResource (219) */1808  export interface RmrkTraitsResourceBasicResource extends Struct {1809    readonly src: Option<Bytes>;1810    readonly metadata: Option<Bytes>;1811    readonly license: Option<Bytes>;1812    readonly thumb: Option<Bytes>;1813  }18141815  /** @name RmrkTraitsResourceComposableResource (222) */1816  export interface RmrkTraitsResourceComposableResource extends Struct {1817    readonly parts: Vec<u32>;1818    readonly base: u32;1819    readonly src: Option<Bytes>;1820    readonly metadata: Option<Bytes>;1821    readonly license: Option<Bytes>;1822    readonly thumb: Option<Bytes>;1823  }18241825  /** @name RmrkTraitsResourceSlotResource (224) */1826  export interface RmrkTraitsResourceSlotResource extends Struct {1827    readonly base: u32;1828    readonly src: Option<Bytes>;1829    readonly metadata: Option<Bytes>;1830    readonly slot: u32;1831    readonly license: Option<Bytes>;1832    readonly thumb: Option<Bytes>;1833  }18341835  /** @name PalletRmrkEquipCall (225) */1836  export interface PalletRmrkEquipCall extends Enum {1837    readonly isCreateBase: boolean;1838    readonly asCreateBase: {1839      readonly baseType: Bytes;1840      readonly symbol: Bytes;1841      readonly parts: Vec<RmrkTraitsPartPartType>;1842    } & Struct;1843    readonly isThemeAdd: boolean;1844    readonly asThemeAdd: {1845      readonly baseId: u32;1846      readonly theme: RmrkTraitsTheme;1847    } & Struct;1848    readonly type: 'CreateBase' | 'ThemeAdd';1849  }18501851  /** @name RmrkTraitsPartPartType (227) */1852  export interface RmrkTraitsPartPartType extends Enum {1853    readonly isFixedPart: boolean;1854    readonly asFixedPart: RmrkTraitsPartFixedPart;1855    readonly isSlotPart: boolean;1856    readonly asSlotPart: RmrkTraitsPartSlotPart;1857    readonly type: 'FixedPart' | 'SlotPart';1858  }18591860  /** @name RmrkTraitsPartFixedPart (229) */1861  export interface RmrkTraitsPartFixedPart extends Struct {1862    readonly id: u32;1863    readonly z: u32;1864    readonly src: Bytes;1865  }18661867  /** @name RmrkTraitsPartSlotPart (230) */1868  export interface RmrkTraitsPartSlotPart extends Struct {1869    readonly id: u32;1870    readonly equippable: RmrkTraitsPartEquippableList;1871    readonly src: Bytes;1872    readonly z: u32;1873  }18741875  /** @name RmrkTraitsPartEquippableList (231) */1876  export interface RmrkTraitsPartEquippableList extends Enum {1877    readonly isAll: boolean;1878    readonly isEmpty: boolean;1879    readonly isCustom: boolean;1880    readonly asCustom: Vec<u32>;1881    readonly type: 'All' | 'Empty' | 'Custom';1882  }18831884  /** @name RmrkTraitsTheme (233) */1885  export interface RmrkTraitsTheme extends Struct {1886    readonly name: Bytes;1887    readonly properties: Vec<RmrkTraitsThemeThemeProperty>;1888    readonly inherit: bool;1889  }18901891  /** @name RmrkTraitsThemeThemeProperty (235) */1892  export interface RmrkTraitsThemeThemeProperty extends Struct {1893    readonly key: Bytes;1894    readonly value: Bytes;1895  }18961897  /** @name PalletEvmCall (236) */1898  export interface PalletEvmCall extends Enum {1899    readonly isWithdraw: boolean;1900    readonly asWithdraw: {1901      readonly address: H160;1902      readonly value: u128;1903    } & Struct;1904    readonly isCall: boolean;1905    readonly asCall: {1906      readonly source: H160;1907      readonly target: H160;1908      readonly input: Bytes;1909      readonly value: U256;1910      readonly gasLimit: u64;1911      readonly maxFeePerGas: U256;1912      readonly maxPriorityFeePerGas: Option<U256>;1913      readonly nonce: Option<U256>;1914      readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1915    } & Struct;1916    readonly isCreate: boolean;1917    readonly asCreate: {1918      readonly source: H160;1919      readonly init: Bytes;1920      readonly value: U256;1921      readonly gasLimit: u64;1922      readonly maxFeePerGas: U256;1923      readonly maxPriorityFeePerGas: Option<U256>;1924      readonly nonce: Option<U256>;1925      readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1926    } & Struct;1927    readonly isCreate2: boolean;1928    readonly asCreate2: {1929      readonly source: H160;1930      readonly init: Bytes;1931      readonly salt: H256;1932      readonly value: U256;1933      readonly gasLimit: u64;1934      readonly maxFeePerGas: U256;1935      readonly maxPriorityFeePerGas: Option<U256>;1936      readonly nonce: Option<U256>;1937      readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1938    } & Struct;1939    readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1940  }19411942  /** @name PalletEthereumCall (242) */1943  export interface PalletEthereumCall extends Enum {1944    readonly isTransact: boolean;1945    readonly asTransact: {1946      readonly transaction: EthereumTransactionTransactionV2;1947    } & Struct;1948    readonly type: 'Transact';1949  }19501951  /** @name EthereumTransactionTransactionV2 (243) */1952  export interface EthereumTransactionTransactionV2 extends Enum {1953    readonly isLegacy: boolean;1954    readonly asLegacy: EthereumTransactionLegacyTransaction;1955    readonly isEip2930: boolean;1956    readonly asEip2930: EthereumTransactionEip2930Transaction;1957    readonly isEip1559: boolean;1958    readonly asEip1559: EthereumTransactionEip1559Transaction;1959    readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';1960  }19611962  /** @name EthereumTransactionLegacyTransaction (244) */1963  export interface EthereumTransactionLegacyTransaction extends Struct {1964    readonly nonce: U256;1965    readonly gasPrice: U256;1966    readonly gasLimit: U256;1967    readonly action: EthereumTransactionTransactionAction;1968    readonly value: U256;1969    readonly input: Bytes;1970    readonly signature: EthereumTransactionTransactionSignature;1971  }19721973  /** @name EthereumTransactionTransactionAction (245) */1974  export interface EthereumTransactionTransactionAction extends Enum {1975    readonly isCall: boolean;1976    readonly asCall: H160;1977    readonly isCreate: boolean;1978    readonly type: 'Call' | 'Create';1979  }19801981  /** @name EthereumTransactionTransactionSignature (246) */1982  export interface EthereumTransactionTransactionSignature extends Struct {1983    readonly v: u64;1984    readonly r: H256;1985    readonly s: H256;1986  }19871988  /** @name EthereumTransactionEip2930Transaction (248) */1989  export interface EthereumTransactionEip2930Transaction extends Struct {1990    readonly chainId: u64;1991    readonly nonce: U256;1992    readonly gasPrice: U256;1993    readonly gasLimit: U256;1994    readonly action: EthereumTransactionTransactionAction;1995    readonly value: U256;1996    readonly input: Bytes;1997    readonly accessList: Vec<EthereumTransactionAccessListItem>;1998    readonly oddYParity: bool;1999    readonly r: H256;2000    readonly s: H256;2001  }20022003  /** @name EthereumTransactionAccessListItem (250) */2004  export interface EthereumTransactionAccessListItem extends Struct {2005    readonly address: H160;2006    readonly storageKeys: Vec<H256>;2007  }20082009  /** @name EthereumTransactionEip1559Transaction (251) */2010  export interface EthereumTransactionEip1559Transaction extends Struct {2011    readonly chainId: u64;2012    readonly nonce: U256;2013    readonly maxPriorityFeePerGas: U256;2014    readonly maxFeePerGas: U256;2015    readonly gasLimit: U256;2016    readonly action: EthereumTransactionTransactionAction;2017    readonly value: U256;2018    readonly input: Bytes;2019    readonly accessList: Vec<EthereumTransactionAccessListItem>;2020    readonly oddYParity: bool;2021    readonly r: H256;2022    readonly s: H256;2023  }20242025  /** @name PalletEvmMigrationCall (252) */2026  export interface PalletEvmMigrationCall extends Enum {2027    readonly isBegin: boolean;2028    readonly asBegin: {2029      readonly address: H160;2030    } & Struct;2031    readonly isSetData: boolean;2032    readonly asSetData: {2033      readonly address: H160;2034      readonly data: Vec<ITuple<[H256, H256]>>;2035    } & Struct;2036    readonly isFinish: boolean;2037    readonly asFinish: {2038      readonly address: H160;2039      readonly code: Bytes;2040    } & Struct;2041    readonly type: 'Begin' | 'SetData' | 'Finish';2042  }20432044  /** @name PalletSudoEvent (255) */2045  export interface PalletSudoEvent extends Enum {2046    readonly isSudid: boolean;2047    readonly asSudid: {2048      readonly sudoResult: Result<Null, SpRuntimeDispatchError>;2049    } & Struct;2050    readonly isKeyChanged: boolean;2051    readonly asKeyChanged: {2052      readonly oldSudoer: Option<AccountId32>;2053    } & Struct;2054    readonly isSudoAsDone: boolean;2055    readonly asSudoAsDone: {2056      readonly sudoResult: Result<Null, SpRuntimeDispatchError>;2057    } & Struct;2058    readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';2059  }20602061  /** @name SpRuntimeDispatchError (257) */2062  export interface SpRuntimeDispatchError extends Enum {2063    readonly isOther: boolean;2064    readonly isCannotLookup: boolean;2065    readonly isBadOrigin: boolean;2066    readonly isModule: boolean;2067    readonly asModule: SpRuntimeModuleError;2068    readonly isConsumerRemaining: boolean;2069    readonly isNoProviders: boolean;2070    readonly isTooManyConsumers: boolean;2071    readonly isToken: boolean;2072    readonly asToken: SpRuntimeTokenError;2073    readonly isArithmetic: boolean;2074    readonly asArithmetic: SpRuntimeArithmeticError;2075    readonly isTransactional: boolean;2076    readonly asTransactional: SpRuntimeTransactionalError;2077    readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';2078  }20792080  /** @name SpRuntimeModuleError (258) */2081  export interface SpRuntimeModuleError extends Struct {2082    readonly index: u8;2083    readonly error: U8aFixed;2084  }20852086  /** @name SpRuntimeTokenError (259) */2087  export interface SpRuntimeTokenError extends Enum {2088    readonly isNoFunds: boolean;2089    readonly isWouldDie: boolean;2090    readonly isBelowMinimum: boolean;2091    readonly isCannotCreate: boolean;2092    readonly isUnknownAsset: boolean;2093    readonly isFrozen: boolean;2094    readonly isUnsupported: boolean;2095    readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';2096  }20972098  /** @name SpRuntimeArithmeticError (260) */2099  export interface SpRuntimeArithmeticError extends Enum {2100    readonly isUnderflow: boolean;2101    readonly isOverflow: boolean;2102    readonly isDivisionByZero: boolean;2103    readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';2104  }21052106  /** @name SpRuntimeTransactionalError (261) */2107  export interface SpRuntimeTransactionalError extends Enum {2108    readonly isLimitReached: boolean;2109    readonly isNoLayer: boolean;2110    readonly type: 'LimitReached' | 'NoLayer';2111  }21122113  /** @name PalletSudoError (262) */2114  export interface PalletSudoError extends Enum {2115    readonly isRequireSudo: boolean;2116    readonly type: 'RequireSudo';2117  }21182119  /** @name FrameSystemAccountInfo (263) */2120  export interface FrameSystemAccountInfo extends Struct {2121    readonly nonce: u32;2122    readonly consumers: u32;2123    readonly providers: u32;2124    readonly sufficients: u32;2125    readonly data: PalletBalancesAccountData;2126  }21272128  /** @name FrameSupportWeightsPerDispatchClassU64 (264) */2129  export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {2130    readonly normal: u64;2131    readonly operational: u64;2132    readonly mandatory: u64;2133  }21342135  /** @name SpRuntimeDigest (265) */2136  export interface SpRuntimeDigest extends Struct {2137    readonly logs: Vec<SpRuntimeDigestDigestItem>;2138  }21392140  /** @name SpRuntimeDigestDigestItem (267) */2141  export interface SpRuntimeDigestDigestItem extends Enum {2142    readonly isOther: boolean;2143    readonly asOther: Bytes;2144    readonly isConsensus: boolean;2145    readonly asConsensus: ITuple<[U8aFixed, Bytes]>;2146    readonly isSeal: boolean;2147    readonly asSeal: ITuple<[U8aFixed, Bytes]>;2148    readonly isPreRuntime: boolean;2149    readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;2150    readonly isRuntimeEnvironmentUpdated: boolean;2151    readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';2152  }21532154  /** @name FrameSystemEventRecord (269) */2155  export interface FrameSystemEventRecord extends Struct {2156    readonly phase: FrameSystemPhase;2157    readonly event: Event;2158    readonly topics: Vec<H256>;2159  }21602161  /** @name FrameSystemEvent (271) */2162  export interface FrameSystemEvent extends Enum {2163    readonly isExtrinsicSuccess: boolean;2164    readonly asExtrinsicSuccess: {2165      readonly dispatchInfo: FrameSupportWeightsDispatchInfo;2166    } & Struct;2167    readonly isExtrinsicFailed: boolean;2168    readonly asExtrinsicFailed: {2169      readonly dispatchError: SpRuntimeDispatchError;2170      readonly dispatchInfo: FrameSupportWeightsDispatchInfo;2171    } & Struct;2172    readonly isCodeUpdated: boolean;2173    readonly isNewAccount: boolean;2174    readonly asNewAccount: {2175      readonly account: AccountId32;2176    } & Struct;2177    readonly isKilledAccount: boolean;2178    readonly asKilledAccount: {2179      readonly account: AccountId32;2180    } & Struct;2181    readonly isRemarked: boolean;2182    readonly asRemarked: {2183      readonly sender: AccountId32;2184      readonly hash_: H256;2185    } & Struct;2186    readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';2187  }21882189  /** @name FrameSupportWeightsDispatchInfo (272) */2190  export interface FrameSupportWeightsDispatchInfo extends Struct {2191    readonly weight: u64;2192    readonly class: FrameSupportWeightsDispatchClass;2193    readonly paysFee: FrameSupportWeightsPays;2194  }21952196  /** @name FrameSupportWeightsDispatchClass (273) */2197  export interface FrameSupportWeightsDispatchClass extends Enum {2198    readonly isNormal: boolean;2199    readonly isOperational: boolean;2200    readonly isMandatory: boolean;2201    readonly type: 'Normal' | 'Operational' | 'Mandatory';2202  }22032204  /** @name FrameSupportWeightsPays (274) */2205  export interface FrameSupportWeightsPays extends Enum {2206    readonly isYes: boolean;2207    readonly isNo: boolean;2208    readonly type: 'Yes' | 'No';2209  }22102211  /** @name OrmlVestingModuleEvent (275) */2212  export interface OrmlVestingModuleEvent extends Enum {2213    readonly isVestingScheduleAdded: boolean;2214    readonly asVestingScheduleAdded: {2215      readonly from: AccountId32;2216      readonly to: AccountId32;2217      readonly vestingSchedule: OrmlVestingVestingSchedule;2218    } & Struct;2219    readonly isClaimed: boolean;2220    readonly asClaimed: {2221      readonly who: AccountId32;2222      readonly amount: u128;2223    } & Struct;2224    readonly isVestingSchedulesUpdated: boolean;2225    readonly asVestingSchedulesUpdated: {2226      readonly who: AccountId32;2227    } & Struct;2228    readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';2229  }22302231  /** @name CumulusPalletXcmpQueueEvent (276) */2232  export interface CumulusPalletXcmpQueueEvent extends Enum {2233    readonly isSuccess: boolean;2234    readonly asSuccess: Option<H256>;2235    readonly isFail: boolean;2236    readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;2237    readonly isBadVersion: boolean;2238    readonly asBadVersion: Option<H256>;2239    readonly isBadFormat: boolean;2240    readonly asBadFormat: Option<H256>;2241    readonly isUpwardMessageSent: boolean;2242    readonly asUpwardMessageSent: Option<H256>;2243    readonly isXcmpMessageSent: boolean;2244    readonly asXcmpMessageSent: Option<H256>;2245    readonly isOverweightEnqueued: boolean;2246    readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;2247    readonly isOverweightServiced: boolean;2248    readonly asOverweightServiced: ITuple<[u64, u64]>;2249    readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';2250  }22512252  /** @name PalletXcmEvent (277) */2253  export interface PalletXcmEvent extends Enum {2254    readonly isAttempted: boolean;2255    readonly asAttempted: XcmV2TraitsOutcome;2256    readonly isSent: boolean;2257    readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;2258    readonly isUnexpectedResponse: boolean;2259    readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;2260    readonly isResponseReady: boolean;2261    readonly asResponseReady: ITuple<[u64, XcmV2Response]>;2262    readonly isNotified: boolean;2263    readonly asNotified: ITuple<[u64, u8, u8]>;2264    readonly isNotifyOverweight: boolean;2265    readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;2266    readonly isNotifyDispatchError: boolean;2267    readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;2268    readonly isNotifyDecodeFailed: boolean;2269    readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;2270    readonly isInvalidResponder: boolean;2271    readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;2272    readonly isInvalidResponderVersion: boolean;2273    readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;2274    readonly isResponseTaken: boolean;2275    readonly asResponseTaken: u64;2276    readonly isAssetsTrapped: boolean;2277    readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;2278    readonly isVersionChangeNotified: boolean;2279    readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;2280    readonly isSupportedVersionChanged: boolean;2281    readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;2282    readonly isNotifyTargetSendFail: boolean;2283    readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;2284    readonly isNotifyTargetMigrationFail: boolean;2285    readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;2286    readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2287  }22882289  /** @name XcmV2TraitsOutcome (278) */2290  export interface XcmV2TraitsOutcome extends Enum {2291    readonly isComplete: boolean;2292    readonly asComplete: u64;2293    readonly isIncomplete: boolean;2294    readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;2295    readonly isError: boolean;2296    readonly asError: XcmV2TraitsError;2297    readonly type: 'Complete' | 'Incomplete' | 'Error';2298  }22992300  /** @name CumulusPalletXcmEvent (280) */2301  export interface CumulusPalletXcmEvent extends Enum {2302    readonly isInvalidFormat: boolean;2303    readonly asInvalidFormat: U8aFixed;2304    readonly isUnsupportedVersion: boolean;2305    readonly asUnsupportedVersion: U8aFixed;2306    readonly isExecutedDownward: boolean;2307    readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2308    readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';2309  }23102311  /** @name CumulusPalletDmpQueueEvent (281) */2312  export interface CumulusPalletDmpQueueEvent extends Enum {2313    readonly isInvalidFormat: boolean;2314    readonly asInvalidFormat: U8aFixed;2315    readonly isUnsupportedVersion: boolean;2316    readonly asUnsupportedVersion: U8aFixed;2317    readonly isExecutedDownward: boolean;2318    readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2319    readonly isWeightExhausted: boolean;2320    readonly asWeightExhausted: ITuple<[U8aFixed, u64, u64]>;2321    readonly isOverweightEnqueued: boolean;2322    readonly asOverweightEnqueued: ITuple<[U8aFixed, u64, u64]>;2323    readonly isOverweightServiced: boolean;2324    readonly asOverweightServiced: ITuple<[u64, u64]>;2325    readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';2326  }23272328  /** @name PalletUniqueRawEvent (282) */2329  export interface PalletUniqueRawEvent extends Enum {2330    readonly isCollectionSponsorRemoved: boolean;2331    readonly asCollectionSponsorRemoved: u32;2332    readonly isCollectionAdminAdded: boolean;2333    readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2334    readonly isCollectionOwnedChanged: boolean;2335    readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;2336    readonly isCollectionSponsorSet: boolean;2337    readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;2338    readonly isSponsorshipConfirmed: boolean;2339    readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;2340    readonly isCollectionAdminRemoved: boolean;2341    readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2342    readonly isAllowListAddressRemoved: boolean;2343    readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2344    readonly isAllowListAddressAdded: boolean;2345    readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2346    readonly isCollectionLimitSet: boolean;2347    readonly asCollectionLimitSet: u32;2348    readonly isCollectionPermissionSet: boolean;2349    readonly asCollectionPermissionSet: u32;2350    readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';2351  }23522353  /** @name PalletUnqSchedulerEvent (283) */2354  export interface PalletUnqSchedulerEvent extends Enum {2355    readonly isScheduled: boolean;2356    readonly asScheduled: {2357      readonly when: u32;2358      readonly index: u32;2359    } & Struct;2360    readonly isCanceled: boolean;2361    readonly asCanceled: {2362      readonly when: u32;2363      readonly index: u32;2364    } & Struct;2365    readonly isDispatched: boolean;2366    readonly asDispatched: {2367      readonly task: ITuple<[u32, u32]>;2368      readonly id: Option<U8aFixed>;2369      readonly result: Result<Null, SpRuntimeDispatchError>;2370    } & Struct;2371    readonly isCallLookupFailed: boolean;2372    readonly asCallLookupFailed: {2373      readonly task: ITuple<[u32, u32]>;2374      readonly id: Option<U8aFixed>;2375      readonly error: FrameSupportScheduleLookupError;2376    } & Struct;2377    readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';2378  }23792380  /** @name FrameSupportScheduleLookupError (285) */2381  export interface FrameSupportScheduleLookupError extends Enum {2382    readonly isUnknown: boolean;2383    readonly isBadFormat: boolean;2384    readonly type: 'Unknown' | 'BadFormat';2385  }23862387  /** @name PalletCommonEvent (286) */2388  export interface PalletCommonEvent extends Enum {2389    readonly isCollectionCreated: boolean;2390    readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;2391    readonly isCollectionDestroyed: boolean;2392    readonly asCollectionDestroyed: u32;2393    readonly isItemCreated: boolean;2394    readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2395    readonly isItemDestroyed: boolean;2396    readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2397    readonly isTransfer: boolean;2398    readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2399    readonly isApproved: boolean;2400    readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2401    readonly isCollectionPropertySet: boolean;2402    readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;2403    readonly isCollectionPropertyDeleted: boolean;2404    readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;2405    readonly isTokenPropertySet: boolean;2406    readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;2407    readonly isTokenPropertyDeleted: boolean;2408    readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;2409    readonly isPropertyPermissionSet: boolean;2410    readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;2411    readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';2412  }24132414  /** @name PalletStructureEvent (287) */2415  export interface PalletStructureEvent extends Enum {2416    readonly isExecuted: boolean;2417    readonly asExecuted: Result<Null, SpRuntimeDispatchError>;2418    readonly type: 'Executed';2419  }24202421  /** @name PalletRmrkCoreEvent (288) */2422  export interface PalletRmrkCoreEvent extends Enum {2423    readonly isCollectionCreated: boolean;2424    readonly asCollectionCreated: {2425      readonly issuer: AccountId32;2426      readonly collectionId: u32;2427    } & Struct;2428    readonly isCollectionDestroyed: boolean;2429    readonly asCollectionDestroyed: {2430      readonly issuer: AccountId32;2431      readonly collectionId: u32;2432    } & Struct;2433    readonly isIssuerChanged: boolean;2434    readonly asIssuerChanged: {2435      readonly oldIssuer: AccountId32;2436      readonly newIssuer: AccountId32;2437      readonly collectionId: u32;2438    } & Struct;2439    readonly isCollectionLocked: boolean;2440    readonly asCollectionLocked: {2441      readonly issuer: AccountId32;2442      readonly collectionId: u32;2443    } & Struct;2444    readonly isNftMinted: boolean;2445    readonly asNftMinted: {2446      readonly owner: AccountId32;2447      readonly collectionId: u32;2448      readonly nftId: u32;2449    } & Struct;2450    readonly isNftBurned: boolean;2451    readonly asNftBurned: {2452      readonly owner: AccountId32;2453      readonly nftId: u32;2454    } & Struct;2455    readonly isNftSent: boolean;2456    readonly asNftSent: {2457      readonly sender: AccountId32;2458      readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;2459      readonly collectionId: u32;2460      readonly nftId: u32;2461      readonly approvalRequired: bool;2462    } & Struct;2463    readonly isNftAccepted: boolean;2464    readonly asNftAccepted: {2465      readonly sender: AccountId32;2466      readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;2467      readonly collectionId: u32;2468      readonly nftId: u32;2469    } & Struct;2470    readonly isNftRejected: boolean;2471    readonly asNftRejected: {2472      readonly sender: AccountId32;2473      readonly collectionId: u32;2474      readonly nftId: u32;2475    } & Struct;2476    readonly isPropertySet: boolean;2477    readonly asPropertySet: {2478      readonly collectionId: u32;2479      readonly maybeNftId: Option<u32>;2480      readonly key: Bytes;2481      readonly value: Bytes;2482    } & Struct;2483    readonly isResourceAdded: boolean;2484    readonly asResourceAdded: {2485      readonly nftId: u32;2486      readonly resourceId: u32;2487    } & Struct;2488    readonly isResourceRemoval: boolean;2489    readonly asResourceRemoval: {2490      readonly nftId: u32;2491      readonly resourceId: u32;2492    } & Struct;2493    readonly isResourceAccepted: boolean;2494    readonly asResourceAccepted: {2495      readonly nftId: u32;2496      readonly resourceId: u32;2497    } & Struct;2498    readonly isResourceRemovalAccepted: boolean;2499    readonly asResourceRemovalAccepted: {2500      readonly nftId: u32;2501      readonly resourceId: u32;2502    } & Struct;2503    readonly isPrioritySet: boolean;2504    readonly asPrioritySet: {2505      readonly collectionId: u32;2506      readonly nftId: u32;2507    } & Struct;2508    readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';2509  }25102511  /** @name PalletRmrkEquipEvent (289) */2512  export interface PalletRmrkEquipEvent extends Enum {2513    readonly isBaseCreated: boolean;2514    readonly asBaseCreated: {2515      readonly issuer: AccountId32;2516      readonly baseId: u32;2517    } & Struct;2518    readonly type: 'BaseCreated';2519  }25202521  /** @name PalletEvmEvent (290) */2522  export interface PalletEvmEvent extends Enum {2523    readonly isLog: boolean;2524    readonly asLog: EthereumLog;2525    readonly isCreated: boolean;2526    readonly asCreated: H160;2527    readonly isCreatedFailed: boolean;2528    readonly asCreatedFailed: H160;2529    readonly isExecuted: boolean;2530    readonly asExecuted: H160;2531    readonly isExecutedFailed: boolean;2532    readonly asExecutedFailed: H160;2533    readonly isBalanceDeposit: boolean;2534    readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;2535    readonly isBalanceWithdraw: boolean;2536    readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;2537    readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';2538  }25392540  /** @name EthereumLog (291) */2541  export interface EthereumLog extends Struct {2542    readonly address: H160;2543    readonly topics: Vec<H256>;2544    readonly data: Bytes;2545  }25462547  /** @name PalletEthereumEvent (292) */2548  export interface PalletEthereumEvent extends Enum {2549    readonly isExecuted: boolean;2550    readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;2551    readonly type: 'Executed';2552  }25532554  /** @name EvmCoreErrorExitReason (293) */2555  export interface EvmCoreErrorExitReason extends Enum {2556    readonly isSucceed: boolean;2557    readonly asSucceed: EvmCoreErrorExitSucceed;2558    readonly isError: boolean;2559    readonly asError: EvmCoreErrorExitError;2560    readonly isRevert: boolean;2561    readonly asRevert: EvmCoreErrorExitRevert;2562    readonly isFatal: boolean;2563    readonly asFatal: EvmCoreErrorExitFatal;2564    readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';2565  }25662567  /** @name EvmCoreErrorExitSucceed (294) */2568  export interface EvmCoreErrorExitSucceed extends Enum {2569    readonly isStopped: boolean;2570    readonly isReturned: boolean;2571    readonly isSuicided: boolean;2572    readonly type: 'Stopped' | 'Returned' | 'Suicided';2573  }25742575  /** @name EvmCoreErrorExitError (295) */2576  export interface EvmCoreErrorExitError extends Enum {2577    readonly isStackUnderflow: boolean;2578    readonly isStackOverflow: boolean;2579    readonly isInvalidJump: boolean;2580    readonly isInvalidRange: boolean;2581    readonly isDesignatedInvalid: boolean;2582    readonly isCallTooDeep: boolean;2583    readonly isCreateCollision: boolean;2584    readonly isCreateContractLimit: boolean;2585    readonly isOutOfOffset: boolean;2586    readonly isOutOfGas: boolean;2587    readonly isOutOfFund: boolean;2588    readonly isPcUnderflow: boolean;2589    readonly isCreateEmpty: boolean;2590    readonly isOther: boolean;2591    readonly asOther: Text;2592    readonly isInvalidCode: boolean;2593    readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';2594  }25952596  /** @name EvmCoreErrorExitRevert (298) */2597  export interface EvmCoreErrorExitRevert extends Enum {2598    readonly isReverted: boolean;2599    readonly type: 'Reverted';2600  }26012602  /** @name EvmCoreErrorExitFatal (299) */2603  export interface EvmCoreErrorExitFatal extends Enum {2604    readonly isNotSupported: boolean;2605    readonly isUnhandledInterrupt: boolean;2606    readonly isCallErrorAsFatal: boolean;2607    readonly asCallErrorAsFatal: EvmCoreErrorExitError;2608    readonly isOther: boolean;2609    readonly asOther: Text;2610    readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';2611  }26122613  /** @name FrameSystemPhase (300) */2614  export interface FrameSystemPhase extends Enum {2615    readonly isApplyExtrinsic: boolean;2616    readonly asApplyExtrinsic: u32;2617    readonly isFinalization: boolean;2618    readonly isInitialization: boolean;2619    readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';2620  }26212622  /** @name FrameSystemLastRuntimeUpgradeInfo (302) */2623  export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {2624    readonly specVersion: Compact<u32>;2625    readonly specName: Text;2626  }26272628  /** @name FrameSystemLimitsBlockWeights (303) */2629  export interface FrameSystemLimitsBlockWeights extends Struct {2630    readonly baseBlock: u64;2631    readonly maxBlock: u64;2632    readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;2633  }26342635  /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (304) */2636  export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {2637    readonly normal: FrameSystemLimitsWeightsPerClass;2638    readonly operational: FrameSystemLimitsWeightsPerClass;2639    readonly mandatory: FrameSystemLimitsWeightsPerClass;2640  }26412642  /** @name FrameSystemLimitsWeightsPerClass (305) */2643  export interface FrameSystemLimitsWeightsPerClass extends Struct {2644    readonly baseExtrinsic: u64;2645    readonly maxExtrinsic: Option<u64>;2646    readonly maxTotal: Option<u64>;2647    readonly reserved: Option<u64>;2648  }26492650  /** @name FrameSystemLimitsBlockLength (307) */2651  export interface FrameSystemLimitsBlockLength extends Struct {2652    readonly max: FrameSupportWeightsPerDispatchClassU32;2653  }26542655  /** @name FrameSupportWeightsPerDispatchClassU32 (308) */2656  export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {2657    readonly normal: u32;2658    readonly operational: u32;2659    readonly mandatory: u32;2660  }26612662  /** @name FrameSupportWeightsRuntimeDbWeight (309) */2663  export interface FrameSupportWeightsRuntimeDbWeight extends Struct {2664    readonly read: u64;2665    readonly write: u64;2666  }26672668  /** @name SpVersionRuntimeVersion (310) */2669  export interface SpVersionRuntimeVersion extends Struct {2670    readonly specName: Text;2671    readonly implName: Text;2672    readonly authoringVersion: u32;2673    readonly specVersion: u32;2674    readonly implVersion: u32;2675    readonly apis: Vec<ITuple<[U8aFixed, u32]>>;2676    readonly transactionVersion: u32;2677    readonly stateVersion: u8;2678  }26792680  /** @name FrameSystemError (314) */2681  export interface FrameSystemError extends Enum {2682    readonly isInvalidSpecName: boolean;2683    readonly isSpecVersionNeedsToIncrease: boolean;2684    readonly isFailedToExtractRuntimeVersion: boolean;2685    readonly isNonDefaultComposite: boolean;2686    readonly isNonZeroRefCount: boolean;2687    readonly isCallFiltered: boolean;2688    readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';2689  }26902691  /** @name OrmlVestingModuleError (316) */2692  export interface OrmlVestingModuleError extends Enum {2693    readonly isZeroVestingPeriod: boolean;2694    readonly isZeroVestingPeriodCount: boolean;2695    readonly isInsufficientBalanceToLock: boolean;2696    readonly isTooManyVestingSchedules: boolean;2697    readonly isAmountLow: boolean;2698    readonly isMaxVestingSchedulesExceeded: boolean;2699    readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2700  }27012702  /** @name CumulusPalletXcmpQueueInboundChannelDetails (318) */2703  export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2704    readonly sender: u32;2705    readonly state: CumulusPalletXcmpQueueInboundState;2706    readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2707  }27082709  /** @name CumulusPalletXcmpQueueInboundState (319) */2710  export interface CumulusPalletXcmpQueueInboundState extends Enum {2711    readonly isOk: boolean;2712    readonly isSuspended: boolean;2713    readonly type: 'Ok' | 'Suspended';2714  }27152716  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (322) */2717  export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2718    readonly isConcatenatedVersionedXcm: boolean;2719    readonly isConcatenatedEncodedBlob: boolean;2720    readonly isSignals: boolean;2721    readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2722  }27232724  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (325) */2725  export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2726    readonly recipient: u32;2727    readonly state: CumulusPalletXcmpQueueOutboundState;2728    readonly signalsExist: bool;2729    readonly firstIndex: u16;2730    readonly lastIndex: u16;2731  }27322733  /** @name CumulusPalletXcmpQueueOutboundState (326) */2734  export interface CumulusPalletXcmpQueueOutboundState extends Enum {2735    readonly isOk: boolean;2736    readonly isSuspended: boolean;2737    readonly type: 'Ok' | 'Suspended';2738  }27392740  /** @name CumulusPalletXcmpQueueQueueConfigData (328) */2741  export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2742    readonly suspendThreshold: u32;2743    readonly dropThreshold: u32;2744    readonly resumeThreshold: u32;2745    readonly thresholdWeight: u64;2746    readonly weightRestrictDecay: u64;2747    readonly xcmpMaxIndividualWeight: u64;2748  }27492750  /** @name CumulusPalletXcmpQueueError (330) */2751  export interface CumulusPalletXcmpQueueError extends Enum {2752    readonly isFailedToSend: boolean;2753    readonly isBadXcmOrigin: boolean;2754    readonly isBadXcm: boolean;2755    readonly isBadOverweightIndex: boolean;2756    readonly isWeightOverLimit: boolean;2757    readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2758  }27592760  /** @name PalletXcmError (331) */2761  export interface PalletXcmError extends Enum {2762    readonly isUnreachable: boolean;2763    readonly isSendFailure: boolean;2764    readonly isFiltered: boolean;2765    readonly isUnweighableMessage: boolean;2766    readonly isDestinationNotInvertible: boolean;2767    readonly isEmpty: boolean;2768    readonly isCannotReanchor: boolean;2769    readonly isTooManyAssets: boolean;2770    readonly isInvalidOrigin: boolean;2771    readonly isBadVersion: boolean;2772    readonly isBadLocation: boolean;2773    readonly isNoSubscription: boolean;2774    readonly isAlreadySubscribed: boolean;2775    readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2776  }27772778  /** @name CumulusPalletXcmError (332) */2779  export type CumulusPalletXcmError = Null;27802781  /** @name CumulusPalletDmpQueueConfigData (333) */2782  export interface CumulusPalletDmpQueueConfigData extends Struct {2783    readonly maxIndividual: u64;2784  }27852786  /** @name CumulusPalletDmpQueuePageIndexData (334) */2787  export interface CumulusPalletDmpQueuePageIndexData extends Struct {2788    readonly beginUsed: u32;2789    readonly endUsed: u32;2790    readonly overweightCount: u64;2791  }27922793  /** @name CumulusPalletDmpQueueError (337) */2794  export interface CumulusPalletDmpQueueError extends Enum {2795    readonly isUnknown: boolean;2796    readonly isOverLimit: boolean;2797    readonly type: 'Unknown' | 'OverLimit';2798  }27992800  /** @name PalletUniqueError (341) */2801  export interface PalletUniqueError extends Enum {2802    readonly isCollectionDecimalPointLimitExceeded: boolean;2803    readonly isConfirmUnsetSponsorFail: boolean;2804    readonly isEmptyArgument: boolean;2805    readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';2806  }28072808  /** @name PalletUnqSchedulerScheduledV3 (344) */2809  export interface PalletUnqSchedulerScheduledV3 extends Struct {2810    readonly maybeId: Option<U8aFixed>;2811    readonly priority: u8;2812    readonly call: FrameSupportScheduleMaybeHashed;2813    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2814    readonly origin: OpalRuntimeOriginCaller;2815  }28162817  /** @name OpalRuntimeOriginCaller (345) */2818  export interface OpalRuntimeOriginCaller extends Enum {2819    readonly isVoid: boolean;2820    readonly isSystem: boolean;2821    readonly asSystem: FrameSupportDispatchRawOrigin;2822    readonly isPolkadotXcm: boolean;2823    readonly asPolkadotXcm: PalletXcmOrigin;2824    readonly isCumulusXcm: boolean;2825    readonly asCumulusXcm: CumulusPalletXcmOrigin;2826    readonly isEthereum: boolean;2827    readonly asEthereum: PalletEthereumRawOrigin;2828    readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';2829  }28302831  /** @name FrameSupportDispatchRawOrigin (346) */2832  export interface FrameSupportDispatchRawOrigin extends Enum {2833    readonly isRoot: boolean;2834    readonly isSigned: boolean;2835    readonly asSigned: AccountId32;2836    readonly isNone: boolean;2837    readonly type: 'Root' | 'Signed' | 'None';2838  }28392840  /** @name PalletXcmOrigin (347) */2841  export interface PalletXcmOrigin extends Enum {2842    readonly isXcm: boolean;2843    readonly asXcm: XcmV1MultiLocation;2844    readonly isResponse: boolean;2845    readonly asResponse: XcmV1MultiLocation;2846    readonly type: 'Xcm' | 'Response';2847  }28482849  /** @name CumulusPalletXcmOrigin (348) */2850  export interface CumulusPalletXcmOrigin extends Enum {2851    readonly isRelay: boolean;2852    readonly isSiblingParachain: boolean;2853    readonly asSiblingParachain: u32;2854    readonly type: 'Relay' | 'SiblingParachain';2855  }28562857  /** @name PalletEthereumRawOrigin (349) */2858  export interface PalletEthereumRawOrigin extends Enum {2859    readonly isEthereumTransaction: boolean;2860    readonly asEthereumTransaction: H160;2861    readonly type: 'EthereumTransaction';2862  }28632864  /** @name SpCoreVoid (350) */2865  export type SpCoreVoid = Null;28662867  /** @name PalletUnqSchedulerError (351) */2868  export interface PalletUnqSchedulerError extends Enum {2869    readonly isFailedToSchedule: boolean;2870    readonly isNotFound: boolean;2871    readonly isTargetBlockNumberInPast: boolean;2872    readonly isRescheduleNoChange: boolean;2873    readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';2874  }28752876  /** @name UpDataStructsCollection (352) */2877  export interface UpDataStructsCollection extends Struct {2878    readonly owner: AccountId32;2879    readonly mode: UpDataStructsCollectionMode;2880    readonly name: Vec<u16>;2881    readonly description: Vec<u16>;2882    readonly tokenPrefix: Bytes;2883    readonly sponsorship: UpDataStructsSponsorshipState;2884    readonly limits: UpDataStructsCollectionLimits;2885    readonly permissions: UpDataStructsCollectionPermissions;2886    readonly externalCollection: bool;2887  }28882889  /** @name UpDataStructsSponsorshipState (353) */2890  export interface UpDataStructsSponsorshipState extends Enum {2891    readonly isDisabled: boolean;2892    readonly isUnconfirmed: boolean;2893    readonly asUnconfirmed: AccountId32;2894    readonly isConfirmed: boolean;2895    readonly asConfirmed: AccountId32;2896    readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2897  }28982899  /** @name UpDataStructsProperties (354) */2900  export interface UpDataStructsProperties extends Struct {2901    readonly map: UpDataStructsPropertiesMapBoundedVec;2902    readonly consumedSpace: u32;2903    readonly spaceLimit: u32;2904  }29052906  /** @name UpDataStructsPropertiesMapBoundedVec (355) */2907  export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}29082909  /** @name UpDataStructsPropertiesMapPropertyPermission (360) */2910  export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}29112912  /** @name UpDataStructsCollectionStats (367) */2913  export interface UpDataStructsCollectionStats extends Struct {2914    readonly created: u32;2915    readonly destroyed: u32;2916    readonly alive: u32;2917  }29182919  /** @name UpDataStructsTokenChild (368) */2920  export interface UpDataStructsTokenChild extends Struct {2921    readonly token: u32;2922    readonly collection: u32;2923  }29242925  /** @name PhantomTypeUpDataStructs (369) */2926  export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}29272928  /** @name UpDataStructsTokenData (371) */2929  export interface UpDataStructsTokenData extends Struct {2930    readonly properties: Vec<UpDataStructsProperty>;2931    readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2932  }29332934  /** @name UpDataStructsRpcCollection (373) */2935  export interface UpDataStructsRpcCollection extends Struct {2936    readonly owner: AccountId32;2937    readonly mode: UpDataStructsCollectionMode;2938    readonly name: Vec<u16>;2939    readonly description: Vec<u16>;2940    readonly tokenPrefix: Bytes;2941    readonly sponsorship: UpDataStructsSponsorshipState;2942    readonly limits: UpDataStructsCollectionLimits;2943    readonly permissions: UpDataStructsCollectionPermissions;2944    readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2945    readonly properties: Vec<UpDataStructsProperty>;2946    readonly readOnly: bool;2947  }29482949  /** @name RmrkTraitsCollectionCollectionInfo (374) */2950  export interface RmrkTraitsCollectionCollectionInfo extends Struct {2951    readonly issuer: AccountId32;2952    readonly metadata: Bytes;2953    readonly max: Option<u32>;2954    readonly symbol: Bytes;2955    readonly nftsCount: u32;2956  }29572958  /** @name RmrkTraitsNftNftInfo (375) */2959  export interface RmrkTraitsNftNftInfo extends Struct {2960    readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;2961    readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;2962    readonly metadata: Bytes;2963    readonly equipped: bool;2964    readonly pending: bool;2965  }29662967  /** @name RmrkTraitsNftRoyaltyInfo (377) */2968  export interface RmrkTraitsNftRoyaltyInfo extends Struct {2969    readonly recipient: AccountId32;2970    readonly amount: Permill;2971  }29722973  /** @name RmrkTraitsResourceResourceInfo (378) */2974  export interface RmrkTraitsResourceResourceInfo extends Struct {2975    readonly id: u32;2976    readonly resource: RmrkTraitsResourceResourceTypes;2977    readonly pending: bool;2978    readonly pendingRemoval: bool;2979  }29802981  /** @name RmrkTraitsResourceResourceTypes (379) */2982  export interface RmrkTraitsResourceResourceTypes extends Enum {2983    readonly isBasic: boolean;2984    readonly asBasic: RmrkTraitsResourceBasicResource;2985    readonly isComposable: boolean;2986    readonly asComposable: RmrkTraitsResourceComposableResource;2987    readonly isSlot: boolean;2988    readonly asSlot: RmrkTraitsResourceSlotResource;2989    readonly type: 'Basic' | 'Composable' | 'Slot';2990  }29912992  /** @name RmrkTraitsPropertyPropertyInfo (380) */2993  export interface RmrkTraitsPropertyPropertyInfo extends Struct {2994    readonly key: Bytes;2995    readonly value: Bytes;2996  }29972998  /** @name RmrkTraitsBaseBaseInfo (381) */2999  export interface RmrkTraitsBaseBaseInfo extends Struct {3000    readonly issuer: AccountId32;3001    readonly baseType: Bytes;3002    readonly symbol: Bytes;3003  }30043005  /** @name RmrkTraitsNftNftChild (382) */3006  export interface RmrkTraitsNftNftChild extends Struct {3007    readonly collectionId: u32;3008    readonly nftId: u32;3009  }30103011  /** @name PalletCommonError (384) */3012  export interface PalletCommonError extends Enum {3013    readonly isCollectionNotFound: boolean;3014    readonly isMustBeTokenOwner: boolean;3015    readonly isNoPermission: boolean;3016    readonly isCantDestroyNotEmptyCollection: boolean;3017    readonly isPublicMintingNotAllowed: boolean;3018    readonly isAddressNotInAllowlist: boolean;3019    readonly isCollectionNameLimitExceeded: boolean;3020    readonly isCollectionDescriptionLimitExceeded: boolean;3021    readonly isCollectionTokenPrefixLimitExceeded: boolean;3022    readonly isTotalCollectionsLimitExceeded: boolean;3023    readonly isCollectionAdminCountExceeded: boolean;3024    readonly isCollectionLimitBoundsExceeded: boolean;3025    readonly isOwnerPermissionsCantBeReverted: boolean;3026    readonly isTransferNotAllowed: boolean;3027    readonly isAccountTokenLimitExceeded: boolean;3028    readonly isCollectionTokenLimitExceeded: boolean;3029    readonly isMetadataFlagFrozen: boolean;3030    readonly isTokenNotFound: boolean;3031    readonly isTokenValueTooLow: boolean;3032    readonly isApprovedValueTooLow: boolean;3033    readonly isCantApproveMoreThanOwned: boolean;3034    readonly isAddressIsZero: boolean;3035    readonly isUnsupportedOperation: boolean;3036    readonly isNotSufficientFounds: boolean;3037    readonly isUserIsNotAllowedToNest: boolean;3038    readonly isSourceCollectionIsNotAllowedToNest: boolean;3039    readonly isCollectionFieldSizeExceeded: boolean;3040    readonly isNoSpaceForProperty: boolean;3041    readonly isPropertyLimitReached: boolean;3042    readonly isPropertyKeyIsTooLong: boolean;3043    readonly isInvalidCharacterInPropertyKey: boolean;3044    readonly isEmptyPropertyKey: boolean;3045    readonly isCollectionIsExternal: boolean;3046    readonly isCollectionIsInternal: boolean;3047    readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';3048  }30493050  /** @name PalletFungibleError (386) */3051  export interface PalletFungibleError extends Enum {3052    readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3053    readonly isFungibleItemsHaveNoId: boolean;3054    readonly isFungibleItemsDontHaveData: boolean;3055    readonly isFungibleDisallowsNesting: boolean;3056    readonly isSettingPropertiesNotAllowed: boolean;3057    readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3058  }30593060  /** @name PalletRefungibleItemData (387) */3061  export interface PalletRefungibleItemData extends Struct {3062    readonly constData: Bytes;3063  }30643065  /** @name PalletRefungibleError (391) */3066  export interface PalletRefungibleError extends Enum {3067    readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3068    readonly isWrongRefungiblePieces: boolean;3069    readonly isRefungibleDisallowsNesting: boolean;3070    readonly isSettingPropertiesNotAllowed: boolean;3071    readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3072  }30733074  /** @name PalletNonfungibleItemData (392) */3075  export interface PalletNonfungibleItemData extends Struct {3076    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3077  }30783079  /** @name PalletNonfungibleError (394) */3080  export interface PalletNonfungibleError extends Enum {3081    readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3082    readonly isNonfungibleItemsHaveNoAmount: boolean;3083    readonly isCantBurnNftWithChildren: boolean;3084    readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3085  }30863087  /** @name PalletStructureError (395) */3088  export interface PalletStructureError extends Enum {3089    readonly isOuroborosDetected: boolean;3090    readonly isDepthLimit: boolean;3091    readonly isBreadthLimit: boolean;3092    readonly isTokenNotFound: boolean;3093    readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3094  }30953096  /** @name PalletRmrkCoreError (396) */3097  export interface PalletRmrkCoreError extends Enum {3098    readonly isCorruptedCollectionType: boolean;3099    readonly isNftTypeEncodeError: boolean;3100    readonly isRmrkPropertyKeyIsTooLong: boolean;3101    readonly isRmrkPropertyValueIsTooLong: boolean;3102    readonly isCollectionNotEmpty: boolean;3103    readonly isNoAvailableCollectionId: boolean;3104    readonly isNoAvailableNftId: boolean;3105    readonly isCollectionUnknown: boolean;3106    readonly isNoPermission: boolean;3107    readonly isNonTransferable: boolean;3108    readonly isCollectionFullOrLocked: boolean;3109    readonly isResourceDoesntExist: boolean;3110    readonly isCannotSendToDescendentOrSelf: boolean;3111    readonly isCannotAcceptNonOwnedNft: boolean;3112    readonly isCannotRejectNonOwnedNft: boolean;3113    readonly isResourceNotPending: boolean;3114    readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending';3115  }31163117  /** @name PalletRmrkEquipError (398) */3118  export interface PalletRmrkEquipError extends Enum {3119    readonly isPermissionError: boolean;3120    readonly isNoAvailableBaseId: boolean;3121    readonly isNoAvailablePartId: boolean;3122    readonly isBaseDoesntExist: boolean;3123    readonly isNeedsDefaultThemeFirst: boolean;3124    readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst';3125  }31263127  /** @name PalletEvmError (401) */3128  export interface PalletEvmError extends Enum {3129    readonly isBalanceLow: boolean;3130    readonly isFeeOverflow: boolean;3131    readonly isPaymentOverflow: boolean;3132    readonly isWithdrawFailed: boolean;3133    readonly isGasPriceTooLow: boolean;3134    readonly isInvalidNonce: boolean;3135    readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3136  }31373138  /** @name FpRpcTransactionStatus (404) */3139  export interface FpRpcTransactionStatus extends Struct {3140    readonly transactionHash: H256;3141    readonly transactionIndex: u32;3142    readonly from: H160;3143    readonly to: Option<H160>;3144    readonly contractAddress: Option<H160>;3145    readonly logs: Vec<EthereumLog>;3146    readonly logsBloom: EthbloomBloom;3147  }31483149  /** @name EthbloomBloom (406) */3150  export interface EthbloomBloom extends U8aFixed {}31513152  /** @name EthereumReceiptReceiptV3 (408) */3153  export interface EthereumReceiptReceiptV3 extends Enum {3154    readonly isLegacy: boolean;3155    readonly asLegacy: EthereumReceiptEip658ReceiptData;3156    readonly isEip2930: boolean;3157    readonly asEip2930: EthereumReceiptEip658ReceiptData;3158    readonly isEip1559: boolean;3159    readonly asEip1559: EthereumReceiptEip658ReceiptData;3160    readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3161  }31623163  /** @name EthereumReceiptEip658ReceiptData (409) */3164  export interface EthereumReceiptEip658ReceiptData extends Struct {3165    readonly statusCode: u8;3166    readonly usedGas: U256;3167    readonly logsBloom: EthbloomBloom;3168    readonly logs: Vec<EthereumLog>;3169  }31703171  /** @name EthereumBlock (410) */3172  export interface EthereumBlock extends Struct {3173    readonly header: EthereumHeader;3174    readonly transactions: Vec<EthereumTransactionTransactionV2>;3175    readonly ommers: Vec<EthereumHeader>;3176  }31773178  /** @name EthereumHeader (411) */3179  export interface EthereumHeader extends Struct {3180    readonly parentHash: H256;3181    readonly ommersHash: H256;3182    readonly beneficiary: H160;3183    readonly stateRoot: H256;3184    readonly transactionsRoot: H256;3185    readonly receiptsRoot: H256;3186    readonly logsBloom: EthbloomBloom;3187    readonly difficulty: U256;3188    readonly number: U256;3189    readonly gasLimit: U256;3190    readonly gasUsed: U256;3191    readonly timestamp: u64;3192    readonly extraData: Bytes;3193    readonly mixHash: H256;3194    readonly nonce: EthereumTypesHashH64;3195  }31963197  /** @name EthereumTypesHashH64 (412) */3198  export interface EthereumTypesHashH64 extends U8aFixed {}31993200  /** @name PalletEthereumError (417) */3201  export interface PalletEthereumError extends Enum {3202    readonly isInvalidSignature: boolean;3203    readonly isPreLogExists: boolean;3204    readonly type: 'InvalidSignature' | 'PreLogExists';3205  }32063207  /** @name PalletEvmCoderSubstrateError (418) */3208  export interface PalletEvmCoderSubstrateError extends Enum {3209    readonly isOutOfGas: boolean;3210    readonly isOutOfFund: boolean;3211    readonly type: 'OutOfGas' | 'OutOfFund';3212  }32133214  /** @name PalletEvmContractHelpersSponsoringModeT (419) */3215  export interface PalletEvmContractHelpersSponsoringModeT extends Enum {3216    readonly isDisabled: boolean;3217    readonly isAllowlisted: boolean;3218    readonly isGenerous: boolean;3219    readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3220  }32213222  /** @name PalletEvmContractHelpersError (421) */3223  export interface PalletEvmContractHelpersError extends Enum {3224    readonly isNoPermission: boolean;3225    readonly type: 'NoPermission';3226  }32273228  /** @name PalletEvmMigrationError (422) */3229  export interface PalletEvmMigrationError extends Enum {3230    readonly isAccountNotEmpty: boolean;3231    readonly isAccountIsNotMigrating: boolean;3232    readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3233  }32343235  /** @name SpRuntimeMultiSignature (424) */3236  export interface SpRuntimeMultiSignature extends Enum {3237    readonly isEd25519: boolean;3238    readonly asEd25519: SpCoreEd25519Signature;3239    readonly isSr25519: boolean;3240    readonly asSr25519: SpCoreSr25519Signature;3241    readonly isEcdsa: boolean;3242    readonly asEcdsa: SpCoreEcdsaSignature;3243    readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3244  }32453246  /** @name SpCoreEd25519Signature (425) */3247  export interface SpCoreEd25519Signature extends U8aFixed {}32483249  /** @name SpCoreSr25519Signature (427) */3250  export interface SpCoreSr25519Signature extends U8aFixed {}32513252  /** @name SpCoreEcdsaSignature (428) */3253  export interface SpCoreEcdsaSignature extends U8aFixed {}32543255  /** @name FrameSystemExtensionsCheckSpecVersion (431) */3256  export type FrameSystemExtensionsCheckSpecVersion = Null;32573258  /** @name FrameSystemExtensionsCheckGenesis (432) */3259  export type FrameSystemExtensionsCheckGenesis = Null;32603261  /** @name FrameSystemExtensionsCheckNonce (435) */3262  export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}32633264  /** @name FrameSystemExtensionsCheckWeight (436) */3265  export type FrameSystemExtensionsCheckWeight = Null;32663267  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (437) */3268  export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}32693270  /** @name OpalRuntimeRuntime (438) */3271  export type OpalRuntimeRuntime = Null;32723273  /** @name PalletEthereumFakeTransactionFinalizer (439) */3274  export type PalletEthereumFakeTransactionFinalizer = Null;32753276} // declare module
modifiedtests/src/nesting/properties.test.tsdiffbeforeafterboth
--- a/tests/src/nesting/properties.test.ts
+++ b/tests/src/nesting/properties.test.ts
@@ -106,6 +106,58 @@
     });
   });
 
+  it('Check valid names for collection properties keys', async () => {
+    await usingApi(async api => {
+      const events = await executeTransaction(api, bob, api.tx.unique.createCollectionEx({mode: 'NFT'}));
+      const {collectionId} = getCreateCollectionResult(events);
+
+      // alpha symbols
+      await expect(executeTransaction(
+        api, 
+        bob, 
+        api.tx.unique.setCollectionProperties(collectionId, [{key: 'alpha'}]), 
+      )).to.not.be.rejected;
+
+      // numeric symbols
+      await expect(executeTransaction(
+        api, 
+        bob, 
+        api.tx.unique.setCollectionProperties(collectionId, [{key: '123'}]), 
+      )).to.not.be.rejected;
+
+      // underscore symbol
+      await expect(executeTransaction(
+        api, 
+        bob, 
+        api.tx.unique.setCollectionProperties(collectionId, [{key: 'black_hole'}]), 
+      )).to.not.be.rejected;
+
+      // dash symbol
+      await expect(executeTransaction(
+        api, 
+        bob, 
+        api.tx.unique.setCollectionProperties(collectionId, [{key: 'semi-automatic'}]), 
+      )).to.not.be.rejected;
+
+      // underscore symbol
+      await expect(executeTransaction(
+        api, 
+        bob, 
+        api.tx.unique.setCollectionProperties(collectionId, [{key: 'build.rs'}]), 
+      )).to.not.be.rejected;
+
+      const propertyKeys = ['alpha', '123', 'black_hole', 'semi-automatic', 'build.rs'];
+      const properties = (await api.rpc.unique.collectionProperties(collectionId, propertyKeys)).toHuman();
+      expect(properties).to.be.deep.equal([
+        {key: 'alpha', value: ''},
+        {key: '123', value: ''},
+        {key: 'black_hole', value: ''},
+        {key: 'semi-automatic', value: ''},
+        {key: 'build.rs', value: ''},
+      ]);
+    });
+  });
+
   it('Changes properties of a collection', async () => {
     await usingApi(async api => {
       const collection = await createCollectionExpectSuccess();
@@ -241,7 +293,7 @@
 
       const invalidProperties = [
         [{key: 'electron', value: 'negative'}, {key: 'string theory', value: 'understandable'}],
-        [{key: 'Mr.Sandman', value: 'Bring me a gene'}],
+        [{key: 'Mr/Sandman', value: 'Bring me a gene'}],
         [{key: 'déjà vu', value: 'hmm...'}],
       ];
 
modifiedtests/src/removeCollectionAdmin.test.tsdiffbeforeafterboth
--- a/tests/src/removeCollectionAdmin.test.ts
+++ b/tests/src/removeCollectionAdmin.test.ts
@@ -118,11 +118,17 @@
       const bob = privateKeyWrapper('//Bob');
       const charlie = privateKeyWrapper('//Charlie');
 
+      const addBobAdminTx = api.tx.unique.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+      await submitTransactionAsync(alice, addBobAdminTx);
+      const addCharlieAdminTx = api.tx.unique.addCollectionAdmin(collectionId, normalizeAccountId(charlie.address));
+      await submitTransactionAsync(alice, addCharlieAdminTx);
+
       const adminListAfterAddAdmin = await getAdminList(api, collectionId);
       expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
+      expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(charlie.address));
 
       const removeAdminTx = api.tx.unique.removeCollectionAdmin(collectionId, normalizeAccountId(bob.address));
-      await expect(submitTransactionAsync(charlie, removeAdminTx)).to.be.rejected;
+      await expect(submitTransactionExpectFailAsync(charlie, removeAdminTx)).to.be.rejected;
 
       const adminListAfterRemoveAdmin = await getAdminList(api, collectionId);
       expect(adminListAfterRemoveAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
modifiedtests/src/setCollectionLimits.test.tsdiffbeforeafterboth
--- a/tests/src/setCollectionLimits.test.ts
+++ b/tests/src/setCollectionLimits.test.ts
@@ -46,6 +46,7 @@
   before(async () => {
     await usingApi(async (api, privateKeyWrapper) => {
       alice = privateKeyWrapper('//Alice');
+      bob = privateKeyWrapper('//Bob');
       collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}});
     });
   });
@@ -115,6 +116,21 @@
     });
   });
 
+  it('execute setCollectionLimits from admin collection', async () => {
+    await addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob.address);
+    await usingApi(async (api: ApiPromise) => {
+      tx = api.tx.unique.setCollectionLimits(
+        collectionIdForTesting,
+        {
+          accountTokenOwnershipLimit,
+          sponsoredDataSize,
+          // sponsoredMintSize,
+          tokenLimit,
+        },
+      );
+      await expect(submitTransactionAsync(bob, tx)).to.be.not.rejected;
+    });
+  });
 });
 
 describe('setCollectionLimits negative', () => {
@@ -143,21 +159,6 @@
     });
   });
   it('execute setCollectionLimits from user who is not owner of this collection', async () => {
-    await usingApi(async (api: ApiPromise) => {
-      tx = api.tx.unique.setCollectionLimits(
-        collectionIdForTesting,
-        {
-          accountTokenOwnershipLimit,
-          sponsoredDataSize,
-          // sponsoredMintSize,
-          tokenLimit,
-        },
-      );
-      await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;
-    });
-  });
-  it('execute setCollectionLimits from admin collection', async () => {
-    await addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob.address);
     await usingApi(async (api: ApiPromise) => {
       tx = api.tx.unique.setCollectionLimits(
         collectionIdForTesting,
modifiedtests/src/setCollectionSponsor.test.tsdiffbeforeafterboth
--- a/tests/src/setCollectionSponsor.test.ts
+++ b/tests/src/setCollectionSponsor.test.ts
@@ -65,6 +65,11 @@
     await setCollectionSponsorExpectSuccess(collectionId, bob.address);
     await setCollectionSponsorExpectSuccess(collectionId, charlie.address);
   });
+  it('Collection admin add sponsor', async () => {
+    const collectionId = await createCollectionExpectSuccess();
+    await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+    await setCollectionSponsorExpectSuccess(collectionId, charlie.address, '//Bob');
+  });
 });
 
 describe('(!negative test!) integration test: ext. setCollectionSponsor():', () => {
@@ -93,10 +98,5 @@
     const collectionId = await createCollectionExpectSuccess();
     await destroyCollectionExpectSuccess(collectionId);
     await setCollectionSponsorExpectFailure(collectionId, bob.address);
-  });
-  it('(!negative test!) Collection admin add sponsor', async () => {
-    const collectionId = await createCollectionExpectSuccess();
-    await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
-    await setCollectionSponsorExpectFailure(collectionId, charlie.address, '//Bob');
   });
 });
modifiedtests/src/setMintPermission.test.tsdiffbeforeafterboth
--- a/tests/src/setMintPermission.test.ts
+++ b/tests/src/setMintPermission.test.ts
@@ -67,6 +67,14 @@
       await setMintPermissionExpectSuccess(alice, collectionId, false);
     });
   });
+
+  it('Collection admin success on set', async () => {
+    await usingApi(async () => {
+      const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+      await setMintPermissionExpectSuccess(bob, collectionId, true);
+    });
+  });
 });
 
 describe('Negative Integration Test setMintPermission', () => {
@@ -100,14 +108,6 @@
     const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
     await enableAllowListExpectSuccess(alice, collectionId);
     await setMintPermissionExpectFailure(bob, collectionId, true);
-  });
-
-  it('Collection admin fails on set', async () => {
-    await usingApi(async () => {
-      const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
-      await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
-      await setMintPermissionExpectFailure(bob, collectionId, true);
-    });
   });
 
   it('ensure non-allow-listed non-privileged address can\'t mint tokens', async () => {
modifiedtests/src/setPublicAccessMode.test.tsdiffbeforeafterboth
--- a/tests/src/setPublicAccessMode.test.ts
+++ b/tests/src/setPublicAccessMode.test.ts
@@ -103,22 +103,23 @@
       await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;
     });
   });
-});
 
-describe('Negative Integration Test ext. collection admin setPublicAccessMode(): ', () => {
-  before(async () => {
-    await usingApi(async (api, privateKeyWrapper) => {
-      alice = privateKeyWrapper('//Alice');
-      bob = privateKeyWrapper('//Bob');
-    });
-  });
   it('setPublicAccessMode by collection admin', async () => {
     await usingApi(async (api: ApiPromise) => {
       // tslint:disable-next-line: no-bitwise
       const collectionId = await createCollectionExpectSuccess();
       await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
       const tx = api.tx.unique.setCollectionPermissions(collectionId, {access: 'AllowList'});
-      await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;
+      await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.not.rejected;
+    });
+  });
+});
+
+describe('Negative Integration Test ext. collection admin setPublicAccessMode(): ', () => {
+  before(async () => {
+    await usingApi(async (api, privateKeyWrapper) => {
+      alice = privateKeyWrapper('//Alice');
+      bob = privateKeyWrapper('//Bob');
     });
   });
 });