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
before · tests/src/interfaces/augment-types.ts
1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34import 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';5import type { Data, StorageKey } from '@polkadot/types';6import 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';7import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';8import type { BlockAttestations, IncludedBlocks, MoreAttestations } from '@polkadot/types/interfaces/attestations';9import type { RawAuraPreDigest } from '@polkadot/types/interfaces/aura';10import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';11import type { UncleEntryItem } from '@polkadot/types/interfaces/authorship';12import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeWeight, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@polkadot/types/interfaces/babe';13import type { AccountData, BalanceLock, BalanceLockTo212, BalanceStatus, Reasons, ReserveData, ReserveIdentifier, VestingSchedule, WithdrawReasons } from '@polkadot/types/interfaces/balances';14import type { BeefyCommitment, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefySignedCommitment, MmrRootHash, ValidatorSetId } from '@polkadot/types/interfaces/beefy';15import type { BridgeMessageId, BridgedBlockHash, BridgedBlockNumber, BridgedHeader, CallOrigin, ChainId, DeliveredMessages, DispatchFeePayment, InboundLaneData, InboundRelayer, InitializationData, LaneId, MessageData, MessageKey, MessageNonce, MessagesDeliveryProofOf, MessagesProofOf, OperatingMode, OutboundLaneData, OutboundMessageFee, OutboundPayload, Parameter, RelayerId, UnrewardedRelayer, UnrewardedRelayersState } from '@polkadot/types/interfaces/bridges';16import type { BlockHash } from '@polkadot/types/interfaces/chain';17import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';18import type { StatementKind } from '@polkadot/types/interfaces/claims';19import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective';20import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';21import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';22import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';23import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';24import type { ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';25import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy';26import type { BlockStats } from '@polkadot/types/interfaces/dev';27import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@polkadot/types/interfaces/elections';28import type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine';29import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth';30import type { EvmAccount, EvmLog, EvmVicinity, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@polkadot/types/interfaces/evm';31import type { AnySignature, EcdsaSignature, Ed25519Signature, Era, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, ExtrinsicSignature, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV4, ImmortalEra, MortalEra, MultiSignature, Signature, SignerPayload, Sr25519Signature } from '@polkadot/types/interfaces/extrinsics';32import type { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@polkadot/types/interfaces/genericAsset';33import type { ActiveGilt, ActiveGiltsTotal, ActiveIndex, GiltBid } from '@polkadot/types/interfaces/gilt';34import type { AuthorityIndex, AuthorityList, AuthoritySet, AuthoritySetChange, AuthoritySetChanges, AuthorityWeight, DelayKind, DelayKindBest, EncodedFinalityProofs, ForkTreePendingChange, ForkTreePendingChangeNode, GrandpaCommit, GrandpaEquivocation, GrandpaEquivocationProof, GrandpaEquivocationValue, GrandpaJustification, GrandpaPrecommit, GrandpaPrevote, GrandpaSignedPrecommit, JustificationNotification, KeyOwnerProof, NextAuthority, PendingChange, PendingPause, PendingResume, Precommits, Prevotes, ReportedRoundStates, RoundState, SetId, StoredPendingChange, StoredState } from '@polkadot/types/interfaces/grandpa';35import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityInfoTo198, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement, RegistrationTo198 } from '@polkadot/types/interfaces/identity';36import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline';37import type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery';38import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, PalletCallMetadataLatest, PalletCallMetadataV14, PalletConstantMetadataLatest, PalletConstantMetadataV14, PalletErrorMetadataLatest, PalletErrorMetadataV14, PalletEventMetadataLatest, PalletEventMetadataV14, PalletMetadataLatest, PalletMetadataV14, PalletStorageMetadataLatest, PalletStorageMetadataV14, PortableType, PortableTypeV14, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata';39import type { MmrLeafBatchProof, MmrLeafProof } from '@polkadot/types/interfaces/mmr';40import type { StorageKind } from '@polkadot/types/interfaces/offchain';41import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';42import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, Scheduling, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains';43import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';44import type { Approvals } from '@polkadot/types/interfaces/poll';45import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';46import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';47import type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';48import type { RpcMethods } from '@polkadot/types/interfaces/rpc';49import type { AccountId, AccountId20, AccountId32, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeDbWeight, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, StorageData, StorageProof, TransactionInfo, TransactionPriority, TransactionStorageProof, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';50import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, Si1Field, Si1LookupTypeId, Si1Path, Si1Type, Si1TypeDef, Si1TypeDefArray, Si1TypeDefBitSequence, Si1TypeDefCompact, Si1TypeDefComposite, Si1TypeDefPrimitive, Si1TypeDefSequence, Si1TypeDefTuple, Si1TypeDefVariant, Si1TypeParameter, Si1Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo';51import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@polkadot/types/interfaces/scheduler';52import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@polkadot/types/interfaces/session';53import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@polkadot/types/interfaces/society';54import type { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactAssignmentsTo265, CompactAssignmentsWith16, CompactAssignmentsWith24, CompactScore, CompactScoreCompact, ElectionCompute, ElectionPhase, ElectionResult, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, ExtendedBalance, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RawSolution, RawSolutionTo265, RawSolutionWith16, RawSolutionWith24, ReadySolution, RewardDestination, RewardPoint, RoundSnapshot, SeatHolder, SignedSubmission, SignedSubmissionOf, SignedSubmissionTo276, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SolutionOrSnapshotSize, SolutionSupport, SolutionSupports, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, SubmissionIndicesOf, Supports, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196, ValidatorPrefsWithBlocked, ValidatorPrefsWithCommission, VoteWeight, Voter } from '@polkadot/types/interfaces/staking';55import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, MigrationStatusResult, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@polkadot/types/interfaces/state';56import type { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support';57import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorModuleU8, DispatchErrorModuleU8a, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, TransactionalError, UnknownTransaction, WeightPerClass } from '@polkadot/types/interfaces/system';58import type { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@polkadot/types/interfaces/treasury';59import type { Multiplier } from '@polkadot/types/interfaces/txpayment';60import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques';61import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';62import type { VestingInfo } from '@polkadot/types/interfaces/vesting';63import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, BodyId, BodyPart, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, InboundStatus, InstructionV2, InteriorMultiLocation, Junction, JunctionV0, JunctionV1, JunctionV2, Junctions, JunctionsV1, JunctionsV2, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, NetworkId, OriginKindV0, OriginKindV1, OriginKindV2, OutboundStatus, Outcome, QueryId, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV2Result, VersionMigrationStage, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';6465declare module '@polkadot/types/types/registry' {66  export interface InterfaceTypes {67    AbridgedCandidateReceipt: AbridgedCandidateReceipt;68    AbridgedHostConfiguration: AbridgedHostConfiguration;69    AbridgedHrmpChannel: AbridgedHrmpChannel;70    AccountData: AccountData;71    AccountId: AccountId;72    AccountId20: AccountId20;73    AccountId32: AccountId32;74    AccountIdOf: AccountIdOf;75    AccountIndex: AccountIndex;76    AccountInfo: AccountInfo;77    AccountInfoWithDualRefCount: AccountInfoWithDualRefCount;78    AccountInfoWithProviders: AccountInfoWithProviders;79    AccountInfoWithRefCount: AccountInfoWithRefCount;80    AccountInfoWithRefCountU8: AccountInfoWithRefCountU8;81    AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount;82    AccountStatus: AccountStatus;83    AccountValidity: AccountValidity;84    AccountVote: AccountVote;85    AccountVoteSplit: AccountVoteSplit;86    AccountVoteStandard: AccountVoteStandard;87    ActiveEraInfo: ActiveEraInfo;88    ActiveGilt: ActiveGilt;89    ActiveGiltsTotal: ActiveGiltsTotal;90    ActiveIndex: ActiveIndex;91    ActiveRecovery: ActiveRecovery;92    Address: Address;93    AliveContractInfo: AliveContractInfo;94    AllowedSlots: AllowedSlots;95    AnySignature: AnySignature;96    ApiId: ApiId;97    ApplyExtrinsicResult: ApplyExtrinsicResult;98    ApprovalFlag: ApprovalFlag;99    Approvals: Approvals;100    ArithmeticError: ArithmeticError;101    AssetApproval: AssetApproval;102    AssetApprovalKey: AssetApprovalKey;103    AssetBalance: AssetBalance;104    AssetDestroyWitness: AssetDestroyWitness;105    AssetDetails: AssetDetails;106    AssetId: AssetId;107    AssetInstance: AssetInstance;108    AssetInstanceV0: AssetInstanceV0;109    AssetInstanceV1: AssetInstanceV1;110    AssetInstanceV2: AssetInstanceV2;111    AssetMetadata: AssetMetadata;112    AssetOptions: AssetOptions;113    AssignmentId: AssignmentId;114    AssignmentKind: AssignmentKind;115    AttestedCandidate: AttestedCandidate;116    AuctionIndex: AuctionIndex;117    AuthIndex: AuthIndex;118    AuthorityDiscoveryId: AuthorityDiscoveryId;119    AuthorityId: AuthorityId;120    AuthorityIndex: AuthorityIndex;121    AuthorityList: AuthorityList;122    AuthoritySet: AuthoritySet;123    AuthoritySetChange: AuthoritySetChange;124    AuthoritySetChanges: AuthoritySetChanges;125    AuthoritySignature: AuthoritySignature;126    AuthorityWeight: AuthorityWeight;127    AvailabilityBitfield: AvailabilityBitfield;128    AvailabilityBitfieldRecord: AvailabilityBitfieldRecord;129    BabeAuthorityWeight: BabeAuthorityWeight;130    BabeBlockWeight: BabeBlockWeight;131    BabeEpochConfiguration: BabeEpochConfiguration;132    BabeEquivocationProof: BabeEquivocationProof;133    BabeWeight: BabeWeight;134    BackedCandidate: BackedCandidate;135    Balance: Balance;136    BalanceLock: BalanceLock;137    BalanceLockTo212: BalanceLockTo212;138    BalanceOf: BalanceOf;139    BalanceStatus: BalanceStatus;140    BeefyCommitment: BeefyCommitment;141    BeefyId: BeefyId;142    BeefyKey: BeefyKey;143    BeefyNextAuthoritySet: BeefyNextAuthoritySet;144    BeefyPayload: BeefyPayload;145    BeefySignedCommitment: BeefySignedCommitment;146    Bid: Bid;147    Bidder: Bidder;148    BidKind: BidKind;149    BitVec: BitVec;150    Block: Block;151    BlockAttestations: BlockAttestations;152    BlockHash: BlockHash;153    BlockLength: BlockLength;154    BlockNumber: BlockNumber;155    BlockNumberFor: BlockNumberFor;156    BlockNumberOf: BlockNumberOf;157    BlockStats: BlockStats;158    BlockTrace: BlockTrace;159    BlockTraceEvent: BlockTraceEvent;160    BlockTraceEventData: BlockTraceEventData;161    BlockTraceSpan: BlockTraceSpan;162    BlockV0: BlockV0;163    BlockV1: BlockV1;164    BlockV2: BlockV2;165    BlockWeights: BlockWeights;166    BodyId: BodyId;167    BodyPart: BodyPart;168    bool: bool;169    Bool: Bool;170    Bounty: Bounty;171    BountyIndex: BountyIndex;172    BountyStatus: BountyStatus;173    BountyStatusActive: BountyStatusActive;174    BountyStatusCuratorProposed: BountyStatusCuratorProposed;175    BountyStatusPendingPayout: BountyStatusPendingPayout;176    BridgedBlockHash: BridgedBlockHash;177    BridgedBlockNumber: BridgedBlockNumber;178    BridgedHeader: BridgedHeader;179    BridgeMessageId: BridgeMessageId;180    BufferedSessionChange: BufferedSessionChange;181    Bytes: Bytes;182    Call: Call;183    CallHash: CallHash;184    CallHashOf: CallHashOf;185    CallIndex: CallIndex;186    CallOrigin: CallOrigin;187    CandidateCommitments: CandidateCommitments;188    CandidateDescriptor: CandidateDescriptor;189    CandidateHash: CandidateHash;190    CandidateInfo: CandidateInfo;191    CandidatePendingAvailability: CandidatePendingAvailability;192    CandidateReceipt: CandidateReceipt;193    ChainId: ChainId;194    ChainProperties: ChainProperties;195    ChainType: ChainType;196    ChangesTrieConfiguration: ChangesTrieConfiguration;197    ChangesTrieSignal: ChangesTrieSignal;198    ClassDetails: ClassDetails;199    ClassId: ClassId;200    ClassMetadata: ClassMetadata;201    CodecHash: CodecHash;202    CodeHash: CodeHash;203    CodeSource: CodeSource;204    CodeUploadRequest: CodeUploadRequest;205    CodeUploadResult: CodeUploadResult;206    CodeUploadResultValue: CodeUploadResultValue;207    CollatorId: CollatorId;208    CollatorSignature: CollatorSignature;209    CollectiveOrigin: CollectiveOrigin;210    CommittedCandidateReceipt: CommittedCandidateReceipt;211    CompactAssignments: CompactAssignments;212    CompactAssignmentsTo257: CompactAssignmentsTo257;213    CompactAssignmentsTo265: CompactAssignmentsTo265;214    CompactAssignmentsWith16: CompactAssignmentsWith16;215    CompactAssignmentsWith24: CompactAssignmentsWith24;216    CompactScore: CompactScore;217    CompactScoreCompact: CompactScoreCompact;218    ConfigData: ConfigData;219    Consensus: Consensus;220    ConsensusEngineId: ConsensusEngineId;221    ConsumedWeight: ConsumedWeight;222    ContractCallFlags: ContractCallFlags;223    ContractCallRequest: ContractCallRequest;224    ContractConstructorSpecLatest: ContractConstructorSpecLatest;225    ContractConstructorSpecV0: ContractConstructorSpecV0;226    ContractConstructorSpecV1: ContractConstructorSpecV1;227    ContractConstructorSpecV2: ContractConstructorSpecV2;228    ContractConstructorSpecV3: ContractConstructorSpecV3;229    ContractContractSpecV0: ContractContractSpecV0;230    ContractContractSpecV1: ContractContractSpecV1;231    ContractContractSpecV2: ContractContractSpecV2;232    ContractContractSpecV3: ContractContractSpecV3;233    ContractCryptoHasher: ContractCryptoHasher;234    ContractDiscriminant: ContractDiscriminant;235    ContractDisplayName: ContractDisplayName;236    ContractEventParamSpecLatest: ContractEventParamSpecLatest;237    ContractEventParamSpecV0: ContractEventParamSpecV0;238    ContractEventParamSpecV2: ContractEventParamSpecV2;239    ContractEventSpecLatest: ContractEventSpecLatest;240    ContractEventSpecV0: ContractEventSpecV0;241    ContractEventSpecV1: ContractEventSpecV1;242    ContractEventSpecV2: ContractEventSpecV2;243    ContractExecResult: ContractExecResult;244    ContractExecResultOk: ContractExecResultOk;245    ContractExecResultResult: ContractExecResultResult;246    ContractExecResultSuccessTo255: ContractExecResultSuccessTo255;247    ContractExecResultSuccessTo260: ContractExecResultSuccessTo260;248    ContractExecResultTo255: ContractExecResultTo255;249    ContractExecResultTo260: ContractExecResultTo260;250    ContractExecResultTo267: ContractExecResultTo267;251    ContractInfo: ContractInfo;252    ContractInstantiateResult: ContractInstantiateResult;253    ContractInstantiateResultTo267: ContractInstantiateResultTo267;254    ContractInstantiateResultTo299: ContractInstantiateResultTo299;255    ContractLayoutArray: ContractLayoutArray;256    ContractLayoutCell: ContractLayoutCell;257    ContractLayoutEnum: ContractLayoutEnum;258    ContractLayoutHash: ContractLayoutHash;259    ContractLayoutHashingStrategy: ContractLayoutHashingStrategy;260    ContractLayoutKey: ContractLayoutKey;261    ContractLayoutStruct: ContractLayoutStruct;262    ContractLayoutStructField: ContractLayoutStructField;263    ContractMessageParamSpecLatest: ContractMessageParamSpecLatest;264    ContractMessageParamSpecV0: ContractMessageParamSpecV0;265    ContractMessageParamSpecV2: ContractMessageParamSpecV2;266    ContractMessageSpecLatest: ContractMessageSpecLatest;267    ContractMessageSpecV0: ContractMessageSpecV0;268    ContractMessageSpecV1: ContractMessageSpecV1;269    ContractMessageSpecV2: ContractMessageSpecV2;270    ContractMetadata: ContractMetadata;271    ContractMetadataLatest: ContractMetadataLatest;272    ContractMetadataV0: ContractMetadataV0;273    ContractMetadataV1: ContractMetadataV1;274    ContractMetadataV2: ContractMetadataV2;275    ContractMetadataV3: ContractMetadataV3;276    ContractProject: ContractProject;277    ContractProjectContract: ContractProjectContract;278    ContractProjectInfo: ContractProjectInfo;279    ContractProjectSource: ContractProjectSource;280    ContractProjectV0: ContractProjectV0;281    ContractReturnFlags: ContractReturnFlags;282    ContractSelector: ContractSelector;283    ContractStorageKey: ContractStorageKey;284    ContractStorageLayout: ContractStorageLayout;285    ContractTypeSpec: ContractTypeSpec;286    Conviction: Conviction;287    CoreAssignment: CoreAssignment;288    CoreIndex: CoreIndex;289    CoreOccupied: CoreOccupied;290    CrateVersion: CrateVersion;291    CreatedBlock: CreatedBlock;292    CumulusPalletDmpQueueCall: CumulusPalletDmpQueueCall;293    CumulusPalletDmpQueueConfigData: CumulusPalletDmpQueueConfigData;294    CumulusPalletDmpQueueError: CumulusPalletDmpQueueError;295    CumulusPalletDmpQueueEvent: CumulusPalletDmpQueueEvent;296    CumulusPalletDmpQueuePageIndexData: CumulusPalletDmpQueuePageIndexData;297    CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall;298    CumulusPalletParachainSystemError: CumulusPalletParachainSystemError;299    CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent;300    CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot;301    CumulusPalletXcmCall: CumulusPalletXcmCall;302    CumulusPalletXcmError: CumulusPalletXcmError;303    CumulusPalletXcmEvent: CumulusPalletXcmEvent;304    CumulusPalletXcmOrigin: CumulusPalletXcmOrigin;305    CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall;306    CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError;307    CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent;308    CumulusPalletXcmpQueueInboundChannelDetails: CumulusPalletXcmpQueueInboundChannelDetails;309    CumulusPalletXcmpQueueInboundState: CumulusPalletXcmpQueueInboundState;310    CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails;311    CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState;312    CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData;313    CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData;314    Data: Data;315    DeferredOffenceOf: DeferredOffenceOf;316    DefunctVoter: DefunctVoter;317    DelayKind: DelayKind;318    DelayKindBest: DelayKindBest;319    Delegations: Delegations;320    DeletedContract: DeletedContract;321    DeliveredMessages: DeliveredMessages;322    DepositBalance: DepositBalance;323    DepositBalanceOf: DepositBalanceOf;324    DestroyWitness: DestroyWitness;325    Digest: Digest;326    DigestItem: DigestItem;327    DigestOf: DigestOf;328    DispatchClass: DispatchClass;329    DispatchError: DispatchError;330    DispatchErrorModule: DispatchErrorModule;331    DispatchErrorModuleU8: DispatchErrorModuleU8;332    DispatchErrorModuleU8a: DispatchErrorModuleU8a;333    DispatchErrorTo198: DispatchErrorTo198;334    DispatchFeePayment: DispatchFeePayment;335    DispatchInfo: DispatchInfo;336    DispatchInfoTo190: DispatchInfoTo190;337    DispatchInfoTo244: DispatchInfoTo244;338    DispatchOutcome: DispatchOutcome;339    DispatchResult: DispatchResult;340    DispatchResultOf: DispatchResultOf;341    DispatchResultTo198: DispatchResultTo198;342    DisputeLocation: DisputeLocation;343    DisputeResult: DisputeResult;344    DisputeState: DisputeState;345    DisputeStatement: DisputeStatement;346    DisputeStatementSet: DisputeStatementSet;347    DoubleEncodedCall: DoubleEncodedCall;348    DoubleVoteReport: DoubleVoteReport;349    DownwardMessage: DownwardMessage;350    EcdsaSignature: EcdsaSignature;351    Ed25519Signature: Ed25519Signature;352    EIP1559Transaction: EIP1559Transaction;353    EIP2930Transaction: EIP2930Transaction;354    ElectionCompute: ElectionCompute;355    ElectionPhase: ElectionPhase;356    ElectionResult: ElectionResult;357    ElectionScore: ElectionScore;358    ElectionSize: ElectionSize;359    ElectionStatus: ElectionStatus;360    EncodedFinalityProofs: EncodedFinalityProofs;361    EncodedJustification: EncodedJustification;362    EpochAuthorship: EpochAuthorship;363    Era: Era;364    EraIndex: EraIndex;365    EraPoints: EraPoints;366    EraRewardPoints: EraRewardPoints;367    EraRewards: EraRewards;368    ErrorMetadataLatest: ErrorMetadataLatest;369    ErrorMetadataV10: ErrorMetadataV10;370    ErrorMetadataV11: ErrorMetadataV11;371    ErrorMetadataV12: ErrorMetadataV12;372    ErrorMetadataV13: ErrorMetadataV13;373    ErrorMetadataV14: ErrorMetadataV14;374    ErrorMetadataV9: ErrorMetadataV9;375    EthAccessList: EthAccessList;376    EthAccessListItem: EthAccessListItem;377    EthAccount: EthAccount;378    EthAddress: EthAddress;379    EthBlock: EthBlock;380    EthBloom: EthBloom;381    EthbloomBloom: EthbloomBloom;382    EthCallRequest: EthCallRequest;383    EthereumAccountId: EthereumAccountId;384    EthereumAddress: EthereumAddress;385    EthereumBlock: EthereumBlock;386    EthereumHeader: EthereumHeader;387    EthereumLog: EthereumLog;388    EthereumLookupSource: EthereumLookupSource;389    EthereumReceiptEip658ReceiptData: EthereumReceiptEip658ReceiptData;390    EthereumReceiptReceiptV3: EthereumReceiptReceiptV3;391    EthereumSignature: EthereumSignature;392    EthereumTransactionAccessListItem: EthereumTransactionAccessListItem;393    EthereumTransactionEip1559Transaction: EthereumTransactionEip1559Transaction;394    EthereumTransactionEip2930Transaction: EthereumTransactionEip2930Transaction;395    EthereumTransactionLegacyTransaction: EthereumTransactionLegacyTransaction;396    EthereumTransactionTransactionAction: EthereumTransactionTransactionAction;397    EthereumTransactionTransactionSignature: EthereumTransactionTransactionSignature;398    EthereumTransactionTransactionV2: EthereumTransactionTransactionV2;399    EthereumTypesHashH64: EthereumTypesHashH64;400    EthFilter: EthFilter;401    EthFilterAddress: EthFilterAddress;402    EthFilterChanges: EthFilterChanges;403    EthFilterTopic: EthFilterTopic;404    EthFilterTopicEntry: EthFilterTopicEntry;405    EthFilterTopicInner: EthFilterTopicInner;406    EthHeader: EthHeader;407    EthLog: EthLog;408    EthReceipt: EthReceipt;409    EthRichBlock: EthRichBlock;410    EthRichHeader: EthRichHeader;411    EthStorageProof: EthStorageProof;412    EthSubKind: EthSubKind;413    EthSubParams: EthSubParams;414    EthSubResult: EthSubResult;415    EthSyncInfo: EthSyncInfo;416    EthSyncStatus: EthSyncStatus;417    EthTransaction: EthTransaction;418    EthTransactionAction: EthTransactionAction;419    EthTransactionCondition: EthTransactionCondition;420    EthTransactionRequest: EthTransactionRequest;421    EthTransactionSignature: EthTransactionSignature;422    EthTransactionStatus: EthTransactionStatus;423    EthWork: EthWork;424    Event: Event;425    EventId: EventId;426    EventIndex: EventIndex;427    EventMetadataLatest: EventMetadataLatest;428    EventMetadataV10: EventMetadataV10;429    EventMetadataV11: EventMetadataV11;430    EventMetadataV12: EventMetadataV12;431    EventMetadataV13: EventMetadataV13;432    EventMetadataV14: EventMetadataV14;433    EventMetadataV9: EventMetadataV9;434    EventRecord: EventRecord;435    EvmAccount: EvmAccount;436    EvmCoreErrorExitError: EvmCoreErrorExitError;437    EvmCoreErrorExitFatal: EvmCoreErrorExitFatal;438    EvmCoreErrorExitReason: EvmCoreErrorExitReason;439    EvmCoreErrorExitRevert: EvmCoreErrorExitRevert;440    EvmCoreErrorExitSucceed: EvmCoreErrorExitSucceed;441    EvmLog: EvmLog;442    EvmVicinity: EvmVicinity;443    ExecReturnValue: ExecReturnValue;444    ExitError: ExitError;445    ExitFatal: ExitFatal;446    ExitReason: ExitReason;447    ExitRevert: ExitRevert;448    ExitSucceed: ExitSucceed;449    ExplicitDisputeStatement: ExplicitDisputeStatement;450    Exposure: Exposure;451    ExtendedBalance: ExtendedBalance;452    Extrinsic: Extrinsic;453    ExtrinsicEra: ExtrinsicEra;454    ExtrinsicMetadataLatest: ExtrinsicMetadataLatest;455    ExtrinsicMetadataV11: ExtrinsicMetadataV11;456    ExtrinsicMetadataV12: ExtrinsicMetadataV12;457    ExtrinsicMetadataV13: ExtrinsicMetadataV13;458    ExtrinsicMetadataV14: ExtrinsicMetadataV14;459    ExtrinsicOrHash: ExtrinsicOrHash;460    ExtrinsicPayload: ExtrinsicPayload;461    ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown;462    ExtrinsicPayloadV4: ExtrinsicPayloadV4;463    ExtrinsicSignature: ExtrinsicSignature;464    ExtrinsicSignatureV4: ExtrinsicSignatureV4;465    ExtrinsicStatus: ExtrinsicStatus;466    ExtrinsicsWeight: ExtrinsicsWeight;467    ExtrinsicUnknown: ExtrinsicUnknown;468    ExtrinsicV4: ExtrinsicV4;469    FeeDetails: FeeDetails;470    Fixed128: Fixed128;471    Fixed64: Fixed64;472    FixedI128: FixedI128;473    FixedI64: FixedI64;474    FixedU128: FixedU128;475    FixedU64: FixedU64;476    Forcing: Forcing;477    ForkTreePendingChange: ForkTreePendingChange;478    ForkTreePendingChangeNode: ForkTreePendingChangeNode;479    FpRpcTransactionStatus: FpRpcTransactionStatus;480    FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;481    FrameSupportPalletId: FrameSupportPalletId;482    FrameSupportScheduleLookupError: FrameSupportScheduleLookupError;483    FrameSupportScheduleMaybeHashed: FrameSupportScheduleMaybeHashed;484    FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;485    FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass;486    FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo;487    FrameSupportWeightsPays: FrameSupportWeightsPays;488    FrameSupportWeightsPerDispatchClassU32: FrameSupportWeightsPerDispatchClassU32;489    FrameSupportWeightsPerDispatchClassU64: FrameSupportWeightsPerDispatchClassU64;490    FrameSupportWeightsPerDispatchClassWeightsPerClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;491    FrameSupportWeightsRuntimeDbWeight: FrameSupportWeightsRuntimeDbWeight;492    FrameSupportWeightsWeightToFeeCoefficient: FrameSupportWeightsWeightToFeeCoefficient;493    FrameSystemAccountInfo: FrameSystemAccountInfo;494    FrameSystemCall: FrameSystemCall;495    FrameSystemError: FrameSystemError;496    FrameSystemEvent: FrameSystemEvent;497    FrameSystemEventRecord: FrameSystemEventRecord;498    FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis;499    FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce;500    FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion;501    FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight;502    FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo;503    FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength;504    FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights;505    FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass;506    FrameSystemPhase: FrameSystemPhase;507    FullIdentification: FullIdentification;508    FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest;509    FunctionArgumentMetadataV10: FunctionArgumentMetadataV10;510    FunctionArgumentMetadataV11: FunctionArgumentMetadataV11;511    FunctionArgumentMetadataV12: FunctionArgumentMetadataV12;512    FunctionArgumentMetadataV13: FunctionArgumentMetadataV13;513    FunctionArgumentMetadataV14: FunctionArgumentMetadataV14;514    FunctionArgumentMetadataV9: FunctionArgumentMetadataV9;515    FunctionMetadataLatest: FunctionMetadataLatest;516    FunctionMetadataV10: FunctionMetadataV10;517    FunctionMetadataV11: FunctionMetadataV11;518    FunctionMetadataV12: FunctionMetadataV12;519    FunctionMetadataV13: FunctionMetadataV13;520    FunctionMetadataV14: FunctionMetadataV14;521    FunctionMetadataV9: FunctionMetadataV9;522    FundIndex: FundIndex;523    FundInfo: FundInfo;524    Fungibility: Fungibility;525    FungibilityV0: FungibilityV0;526    FungibilityV1: FungibilityV1;527    FungibilityV2: FungibilityV2;528    Gas: Gas;529    GiltBid: GiltBid;530    GlobalValidationData: GlobalValidationData;531    GlobalValidationSchedule: GlobalValidationSchedule;532    GrandpaCommit: GrandpaCommit;533    GrandpaEquivocation: GrandpaEquivocation;534    GrandpaEquivocationProof: GrandpaEquivocationProof;535    GrandpaEquivocationValue: GrandpaEquivocationValue;536    GrandpaJustification: GrandpaJustification;537    GrandpaPrecommit: GrandpaPrecommit;538    GrandpaPrevote: GrandpaPrevote;539    GrandpaSignedPrecommit: GrandpaSignedPrecommit;540    GroupIndex: GroupIndex;541    H1024: H1024;542    H128: H128;543    H160: H160;544    H2048: H2048;545    H256: H256;546    H32: H32;547    H512: H512;548    H64: H64;549    Hash: Hash;550    HeadData: HeadData;551    Header: Header;552    HeaderPartial: HeaderPartial;553    Health: Health;554    Heartbeat: Heartbeat;555    HeartbeatTo244: HeartbeatTo244;556    HostConfiguration: HostConfiguration;557    HostFnWeights: HostFnWeights;558    HostFnWeightsTo264: HostFnWeightsTo264;559    HrmpChannel: HrmpChannel;560    HrmpChannelId: HrmpChannelId;561    HrmpOpenChannelRequest: HrmpOpenChannelRequest;562    i128: i128;563    I128: I128;564    i16: i16;565    I16: I16;566    i256: i256;567    I256: I256;568    i32: i32;569    I32: I32;570    I32F32: I32F32;571    i64: i64;572    I64: I64;573    i8: i8;574    I8: I8;575    IdentificationTuple: IdentificationTuple;576    IdentityFields: IdentityFields;577    IdentityInfo: IdentityInfo;578    IdentityInfoAdditional: IdentityInfoAdditional;579    IdentityInfoTo198: IdentityInfoTo198;580    IdentityJudgement: IdentityJudgement;581    ImmortalEra: ImmortalEra;582    ImportedAux: ImportedAux;583    InboundDownwardMessage: InboundDownwardMessage;584    InboundHrmpMessage: InboundHrmpMessage;585    InboundHrmpMessages: InboundHrmpMessages;586    InboundLaneData: InboundLaneData;587    InboundRelayer: InboundRelayer;588    InboundStatus: InboundStatus;589    IncludedBlocks: IncludedBlocks;590    InclusionFee: InclusionFee;591    IncomingParachain: IncomingParachain;592    IncomingParachainDeploy: IncomingParachainDeploy;593    IncomingParachainFixed: IncomingParachainFixed;594    Index: Index;595    IndicesLookupSource: IndicesLookupSource;596    IndividualExposure: IndividualExposure;597    InitializationData: InitializationData;598    InstanceDetails: InstanceDetails;599    InstanceId: InstanceId;600    InstanceMetadata: InstanceMetadata;601    InstantiateRequest: InstantiateRequest;602    InstantiateRequestV1: InstantiateRequestV1;603    InstantiateRequestV2: InstantiateRequestV2;604    InstantiateReturnValue: InstantiateReturnValue;605    InstantiateReturnValueOk: InstantiateReturnValueOk;606    InstantiateReturnValueTo267: InstantiateReturnValueTo267;607    InstructionV2: InstructionV2;608    InstructionWeights: InstructionWeights;609    InteriorMultiLocation: InteriorMultiLocation;610    InvalidDisputeStatementKind: InvalidDisputeStatementKind;611    InvalidTransaction: InvalidTransaction;612    Json: Json;613    Junction: Junction;614    Junctions: Junctions;615    JunctionsV1: JunctionsV1;616    JunctionsV2: JunctionsV2;617    JunctionV0: JunctionV0;618    JunctionV1: JunctionV1;619    JunctionV2: JunctionV2;620    Justification: Justification;621    JustificationNotification: JustificationNotification;622    Justifications: Justifications;623    Key: Key;624    KeyOwnerProof: KeyOwnerProof;625    Keys: Keys;626    KeyType: KeyType;627    KeyTypeId: KeyTypeId;628    KeyValue: KeyValue;629    KeyValueOption: KeyValueOption;630    Kind: Kind;631    LaneId: LaneId;632    LastContribution: LastContribution;633    LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo;634    LeasePeriod: LeasePeriod;635    LeasePeriodOf: LeasePeriodOf;636    LegacyTransaction: LegacyTransaction;637    Limits: Limits;638    LimitsTo264: LimitsTo264;639    LocalValidationData: LocalValidationData;640    LockIdentifier: LockIdentifier;641    LookupSource: LookupSource;642    LookupTarget: LookupTarget;643    LotteryConfig: LotteryConfig;644    MaybeRandomness: MaybeRandomness;645    MaybeVrf: MaybeVrf;646    MemberCount: MemberCount;647    MembershipProof: MembershipProof;648    MessageData: MessageData;649    MessageId: MessageId;650    MessageIngestionType: MessageIngestionType;651    MessageKey: MessageKey;652    MessageNonce: MessageNonce;653    MessageQueueChain: MessageQueueChain;654    MessagesDeliveryProofOf: MessagesDeliveryProofOf;655    MessagesProofOf: MessagesProofOf;656    MessagingStateSnapshot: MessagingStateSnapshot;657    MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry;658    MetadataAll: MetadataAll;659    MetadataLatest: MetadataLatest;660    MetadataV10: MetadataV10;661    MetadataV11: MetadataV11;662    MetadataV12: MetadataV12;663    MetadataV13: MetadataV13;664    MetadataV14: MetadataV14;665    MetadataV9: MetadataV9;666    MigrationStatusResult: MigrationStatusResult;667    MmrLeafBatchProof: MmrLeafBatchProof;668    MmrLeafProof: MmrLeafProof;669    MmrRootHash: MmrRootHash;670    ModuleConstantMetadataV10: ModuleConstantMetadataV10;671    ModuleConstantMetadataV11: ModuleConstantMetadataV11;672    ModuleConstantMetadataV12: ModuleConstantMetadataV12;673    ModuleConstantMetadataV13: ModuleConstantMetadataV13;674    ModuleConstantMetadataV9: ModuleConstantMetadataV9;675    ModuleId: ModuleId;676    ModuleMetadataV10: ModuleMetadataV10;677    ModuleMetadataV11: ModuleMetadataV11;678    ModuleMetadataV12: ModuleMetadataV12;679    ModuleMetadataV13: ModuleMetadataV13;680    ModuleMetadataV9: ModuleMetadataV9;681    Moment: Moment;682    MomentOf: MomentOf;683    MoreAttestations: MoreAttestations;684    MortalEra: MortalEra;685    MultiAddress: MultiAddress;686    MultiAsset: MultiAsset;687    MultiAssetFilter: MultiAssetFilter;688    MultiAssetFilterV1: MultiAssetFilterV1;689    MultiAssetFilterV2: MultiAssetFilterV2;690    MultiAssets: MultiAssets;691    MultiAssetsV1: MultiAssetsV1;692    MultiAssetsV2: MultiAssetsV2;693    MultiAssetV0: MultiAssetV0;694    MultiAssetV1: MultiAssetV1;695    MultiAssetV2: MultiAssetV2;696    MultiDisputeStatementSet: MultiDisputeStatementSet;697    MultiLocation: MultiLocation;698    MultiLocationV0: MultiLocationV0;699    MultiLocationV1: MultiLocationV1;700    MultiLocationV2: MultiLocationV2;701    Multiplier: Multiplier;702    Multisig: Multisig;703    MultiSignature: MultiSignature;704    MultiSigner: MultiSigner;705    NetworkId: NetworkId;706    NetworkState: NetworkState;707    NetworkStatePeerset: NetworkStatePeerset;708    NetworkStatePeersetInfo: NetworkStatePeersetInfo;709    NewBidder: NewBidder;710    NextAuthority: NextAuthority;711    NextConfigDescriptor: NextConfigDescriptor;712    NextConfigDescriptorV1: NextConfigDescriptorV1;713    NodeRole: NodeRole;714    Nominations: Nominations;715    NominatorIndex: NominatorIndex;716    NominatorIndexCompact: NominatorIndexCompact;717    NotConnectedPeer: NotConnectedPeer;718    Null: Null;719    OffchainAccuracy: OffchainAccuracy;720    OffchainAccuracyCompact: OffchainAccuracyCompact;721    OffenceDetails: OffenceDetails;722    Offender: Offender;723    OpalRuntimeOriginCaller: OpalRuntimeOriginCaller;724    OpalRuntimeRuntime: OpalRuntimeRuntime;725    OpaqueCall: OpaqueCall;726    OpaqueMultiaddr: OpaqueMultiaddr;727    OpaqueNetworkState: OpaqueNetworkState;728    OpaquePeerId: OpaquePeerId;729    OpaqueTimeSlot: OpaqueTimeSlot;730    OpenTip: OpenTip;731    OpenTipFinderTo225: OpenTipFinderTo225;732    OpenTipTip: OpenTipTip;733    OpenTipTo225: OpenTipTo225;734    OperatingMode: OperatingMode;735    OptionBool: OptionBool;736    Origin: Origin;737    OriginCaller: OriginCaller;738    OriginKindV0: OriginKindV0;739    OriginKindV1: OriginKindV1;740    OriginKindV2: OriginKindV2;741    OrmlVestingModuleCall: OrmlVestingModuleCall;742    OrmlVestingModuleError: OrmlVestingModuleError;743    OrmlVestingModuleEvent: OrmlVestingModuleEvent;744    OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;745    OutboundHrmpMessage: OutboundHrmpMessage;746    OutboundLaneData: OutboundLaneData;747    OutboundMessageFee: OutboundMessageFee;748    OutboundPayload: OutboundPayload;749    OutboundStatus: OutboundStatus;750    Outcome: Outcome;751    OverweightIndex: OverweightIndex;752    Owner: Owner;753    PageCounter: PageCounter;754    PageIndexData: PageIndexData;755    PalletBalancesAccountData: PalletBalancesAccountData;756    PalletBalancesBalanceLock: PalletBalancesBalanceLock;757    PalletBalancesCall: PalletBalancesCall;758    PalletBalancesError: PalletBalancesError;759    PalletBalancesEvent: PalletBalancesEvent;760    PalletBalancesReasons: PalletBalancesReasons;761    PalletBalancesReleases: PalletBalancesReleases;762    PalletBalancesReserveData: PalletBalancesReserveData;763    PalletCallMetadataLatest: PalletCallMetadataLatest;764    PalletCallMetadataV14: PalletCallMetadataV14;765    PalletCommonError: PalletCommonError;766    PalletCommonEvent: PalletCommonEvent;767    PalletConstantMetadataLatest: PalletConstantMetadataLatest;768    PalletConstantMetadataV14: PalletConstantMetadataV14;769    PalletErrorMetadataLatest: PalletErrorMetadataLatest;770    PalletErrorMetadataV14: PalletErrorMetadataV14;771    PalletEthereumCall: PalletEthereumCall;772    PalletEthereumError: PalletEthereumError;773    PalletEthereumEvent: PalletEthereumEvent;774    PalletEthereumFakeTransactionFinalizer: PalletEthereumFakeTransactionFinalizer;775    PalletEthereumRawOrigin: PalletEthereumRawOrigin;776    PalletEventMetadataLatest: PalletEventMetadataLatest;777    PalletEventMetadataV14: PalletEventMetadataV14;778    PalletEvmAccountBasicCrossAccountIdRepr: PalletEvmAccountBasicCrossAccountIdRepr;779    PalletEvmCall: PalletEvmCall;780    PalletEvmCoderSubstrateError: PalletEvmCoderSubstrateError;781    PalletEvmContractHelpersError: PalletEvmContractHelpersError;782    PalletEvmContractHelpersSponsoringModeT: PalletEvmContractHelpersSponsoringModeT;783    PalletEvmError: PalletEvmError;784    PalletEvmEvent: PalletEvmEvent;785    PalletEvmMigrationCall: PalletEvmMigrationCall;786    PalletEvmMigrationError: PalletEvmMigrationError;787    PalletFungibleError: PalletFungibleError;788    PalletId: PalletId;789    PalletInflationCall: PalletInflationCall;790    PalletMetadataLatest: PalletMetadataLatest;791    PalletMetadataV14: PalletMetadataV14;792    PalletNonfungibleError: PalletNonfungibleError;793    PalletNonfungibleItemData: PalletNonfungibleItemData;794    PalletRefungibleError: PalletRefungibleError;795    PalletRefungibleItemData: PalletRefungibleItemData;796    PalletRmrkCoreCall: PalletRmrkCoreCall;797    PalletRmrkCoreError: PalletRmrkCoreError;798    PalletRmrkCoreEvent: PalletRmrkCoreEvent;799    PalletRmrkEquipCall: PalletRmrkEquipCall;800    PalletRmrkEquipError: PalletRmrkEquipError;801    PalletRmrkEquipEvent: PalletRmrkEquipEvent;802    PalletsOrigin: PalletsOrigin;803    PalletStorageMetadataLatest: PalletStorageMetadataLatest;804    PalletStorageMetadataV14: PalletStorageMetadataV14;805    PalletStructureCall: PalletStructureCall;806    PalletStructureError: PalletStructureError;807    PalletStructureEvent: PalletStructureEvent;808    PalletSudoCall: PalletSudoCall;809    PalletSudoError: PalletSudoError;810    PalletSudoEvent: PalletSudoEvent;811    PalletTemplateTransactionPaymentCall: PalletTemplateTransactionPaymentCall;812    PalletTemplateTransactionPaymentChargeTransactionPayment: PalletTemplateTransactionPaymentChargeTransactionPayment;813    PalletTimestampCall: PalletTimestampCall;814    PalletTransactionPaymentReleases: PalletTransactionPaymentReleases;815    PalletTreasuryCall: PalletTreasuryCall;816    PalletTreasuryError: PalletTreasuryError;817    PalletTreasuryEvent: PalletTreasuryEvent;818    PalletTreasuryProposal: PalletTreasuryProposal;819    PalletUniqueCall: PalletUniqueCall;820    PalletUniqueError: PalletUniqueError;821    PalletUniqueRawEvent: PalletUniqueRawEvent;822    PalletUnqSchedulerCall: PalletUnqSchedulerCall;823    PalletUnqSchedulerError: PalletUnqSchedulerError;824    PalletUnqSchedulerEvent: PalletUnqSchedulerEvent;825    PalletUnqSchedulerScheduledV3: PalletUnqSchedulerScheduledV3;826    PalletVersion: PalletVersion;827    PalletXcmCall: PalletXcmCall;828    PalletXcmError: PalletXcmError;829    PalletXcmEvent: PalletXcmEvent;830    PalletXcmOrigin: PalletXcmOrigin;831    ParachainDispatchOrigin: ParachainDispatchOrigin;832    ParachainInherentData: ParachainInherentData;833    ParachainProposal: ParachainProposal;834    ParachainsInherentData: ParachainsInherentData;835    ParaGenesisArgs: ParaGenesisArgs;836    ParaId: ParaId;837    ParaInfo: ParaInfo;838    ParaLifecycle: ParaLifecycle;839    Parameter: Parameter;840    ParaPastCodeMeta: ParaPastCodeMeta;841    ParaScheduling: ParaScheduling;842    ParathreadClaim: ParathreadClaim;843    ParathreadClaimQueue: ParathreadClaimQueue;844    ParathreadEntry: ParathreadEntry;845    ParaValidatorIndex: ParaValidatorIndex;846    Pays: Pays;847    Peer: Peer;848    PeerEndpoint: PeerEndpoint;849    PeerEndpointAddr: PeerEndpointAddr;850    PeerInfo: PeerInfo;851    PeerPing: PeerPing;852    PendingChange: PendingChange;853    PendingPause: PendingPause;854    PendingResume: PendingResume;855    Perbill: Perbill;856    Percent: Percent;857    PerDispatchClassU32: PerDispatchClassU32;858    PerDispatchClassWeight: PerDispatchClassWeight;859    PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass;860    Period: Period;861    Permill: Permill;862    PermissionLatest: PermissionLatest;863    PermissionsV1: PermissionsV1;864    PermissionVersions: PermissionVersions;865    Perquintill: Perquintill;866    PersistedValidationData: PersistedValidationData;867    PerU16: PerU16;868    Phantom: Phantom;869    PhantomData: PhantomData;870    PhantomTypeUpDataStructs: PhantomTypeUpDataStructs;871    Phase: Phase;872    PhragmenScore: PhragmenScore;873    Points: Points;874    PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage;875    PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage;876    PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage;877    PolkadotParachainPrimitivesXcmpMessageFormat: PolkadotParachainPrimitivesXcmpMessageFormat;878    PolkadotPrimitivesV2AbridgedHostConfiguration: PolkadotPrimitivesV2AbridgedHostConfiguration;879    PolkadotPrimitivesV2AbridgedHrmpChannel: PolkadotPrimitivesV2AbridgedHrmpChannel;880    PolkadotPrimitivesV2PersistedValidationData: PolkadotPrimitivesV2PersistedValidationData;881    PolkadotPrimitivesV2UpgradeRestriction: PolkadotPrimitivesV2UpgradeRestriction;882    PortableType: PortableType;883    PortableTypeV14: PortableTypeV14;884    Precommits: Precommits;885    PrefabWasmModule: PrefabWasmModule;886    PrefixedStorageKey: PrefixedStorageKey;887    PreimageStatus: PreimageStatus;888    PreimageStatusAvailable: PreimageStatusAvailable;889    PreRuntime: PreRuntime;890    Prevotes: Prevotes;891    Priority: Priority;892    PriorLock: PriorLock;893    PropIndex: PropIndex;894    Proposal: Proposal;895    ProposalIndex: ProposalIndex;896    ProxyAnnouncement: ProxyAnnouncement;897    ProxyDefinition: ProxyDefinition;898    ProxyState: ProxyState;899    ProxyType: ProxyType;900    QueryId: QueryId;901    QueryStatus: QueryStatus;902    QueueConfigData: QueueConfigData;903    QueuedParathread: QueuedParathread;904    Randomness: Randomness;905    Raw: Raw;906    RawAuraPreDigest: RawAuraPreDigest;907    RawBabePreDigest: RawBabePreDigest;908    RawBabePreDigestCompat: RawBabePreDigestCompat;909    RawBabePreDigestPrimary: RawBabePreDigestPrimary;910    RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159;911    RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain;912    RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159;913    RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF;914    RawBabePreDigestTo159: RawBabePreDigestTo159;915    RawOrigin: RawOrigin;916    RawSolution: RawSolution;917    RawSolutionTo265: RawSolutionTo265;918    RawSolutionWith16: RawSolutionWith16;919    RawSolutionWith24: RawSolutionWith24;920    RawVRFOutput: RawVRFOutput;921    ReadProof: ReadProof;922    ReadySolution: ReadySolution;923    Reasons: Reasons;924    RecoveryConfig: RecoveryConfig;925    RefCount: RefCount;926    RefCountTo259: RefCountTo259;927    ReferendumIndex: ReferendumIndex;928    ReferendumInfo: ReferendumInfo;929    ReferendumInfoFinished: ReferendumInfoFinished;930    ReferendumInfoTo239: ReferendumInfoTo239;931    ReferendumStatus: ReferendumStatus;932    RegisteredParachainInfo: RegisteredParachainInfo;933    RegistrarIndex: RegistrarIndex;934    RegistrarInfo: RegistrarInfo;935    Registration: Registration;936    RegistrationJudgement: RegistrationJudgement;937    RegistrationTo198: RegistrationTo198;938    RelayBlockNumber: RelayBlockNumber;939    RelayChainBlockNumber: RelayChainBlockNumber;940    RelayChainHash: RelayChainHash;941    RelayerId: RelayerId;942    RelayHash: RelayHash;943    Releases: Releases;944    Remark: Remark;945    Renouncing: Renouncing;946    RentProjection: RentProjection;947    ReplacementTimes: ReplacementTimes;948    ReportedRoundStates: ReportedRoundStates;949    Reporter: Reporter;950    ReportIdOf: ReportIdOf;951    ReserveData: ReserveData;952    ReserveIdentifier: ReserveIdentifier;953    Response: Response;954    ResponseV0: ResponseV0;955    ResponseV1: ResponseV1;956    ResponseV2: ResponseV2;957    ResponseV2Error: ResponseV2Error;958    ResponseV2Result: ResponseV2Result;959    Retriable: Retriable;960    RewardDestination: RewardDestination;961    RewardPoint: RewardPoint;962    RmrkTraitsBaseBaseInfo: RmrkTraitsBaseBaseInfo;963    RmrkTraitsCollectionCollectionInfo: RmrkTraitsCollectionCollectionInfo;964    RmrkTraitsNftAccountIdOrCollectionNftTuple: RmrkTraitsNftAccountIdOrCollectionNftTuple;965    RmrkTraitsNftNftChild: RmrkTraitsNftNftChild;966    RmrkTraitsNftNftInfo: RmrkTraitsNftNftInfo;967    RmrkTraitsNftRoyaltyInfo: RmrkTraitsNftRoyaltyInfo;968    RmrkTraitsPartEquippableList: RmrkTraitsPartEquippableList;969    RmrkTraitsPartFixedPart: RmrkTraitsPartFixedPart;970    RmrkTraitsPartPartType: RmrkTraitsPartPartType;971    RmrkTraitsPartSlotPart: RmrkTraitsPartSlotPart;972    RmrkTraitsPropertyPropertyInfo: RmrkTraitsPropertyPropertyInfo;973    RmrkTraitsResourceBasicResource: RmrkTraitsResourceBasicResource;974    RmrkTraitsResourceComposableResource: RmrkTraitsResourceComposableResource;975    RmrkTraitsResourceResourceInfo: RmrkTraitsResourceResourceInfo;976    RmrkTraitsResourceResourceTypes: RmrkTraitsResourceResourceTypes;977    RmrkTraitsResourceSlotResource: RmrkTraitsResourceSlotResource;978    RmrkTraitsTheme: RmrkTraitsTheme;979    RmrkTraitsThemeThemeProperty: RmrkTraitsThemeThemeProperty;980    RoundSnapshot: RoundSnapshot;981    RoundState: RoundState;982    RpcMethods: RpcMethods;983    RuntimeDbWeight: RuntimeDbWeight;984    RuntimeDispatchInfo: RuntimeDispatchInfo;985    RuntimeVersion: RuntimeVersion;986    RuntimeVersionApi: RuntimeVersionApi;987    RuntimeVersionPartial: RuntimeVersionPartial;988    Schedule: Schedule;989    Scheduled: Scheduled;990    ScheduledTo254: ScheduledTo254;991    SchedulePeriod: SchedulePeriod;992    SchedulePriority: SchedulePriority;993    ScheduleTo212: ScheduleTo212;994    ScheduleTo258: ScheduleTo258;995    ScheduleTo264: ScheduleTo264;996    Scheduling: Scheduling;997    Seal: Seal;998    SealV0: SealV0;999    SeatHolder: SeatHolder;1000    SeedOf: SeedOf;1001    ServiceQuality: ServiceQuality;1002    SessionIndex: SessionIndex;1003    SessionInfo: SessionInfo;1004    SessionInfoValidatorGroup: SessionInfoValidatorGroup;1005    SessionKeys1: SessionKeys1;1006    SessionKeys10: SessionKeys10;1007    SessionKeys10B: SessionKeys10B;1008    SessionKeys2: SessionKeys2;1009    SessionKeys3: SessionKeys3;1010    SessionKeys4: SessionKeys4;1011    SessionKeys5: SessionKeys5;1012    SessionKeys6: SessionKeys6;1013    SessionKeys6B: SessionKeys6B;1014    SessionKeys7: SessionKeys7;1015    SessionKeys7B: SessionKeys7B;1016    SessionKeys8: SessionKeys8;1017    SessionKeys8B: SessionKeys8B;1018    SessionKeys9: SessionKeys9;1019    SessionKeys9B: SessionKeys9B;1020    SetId: SetId;1021    SetIndex: SetIndex;1022    Si0Field: Si0Field;1023    Si0LookupTypeId: Si0LookupTypeId;1024    Si0Path: Si0Path;1025    Si0Type: Si0Type;1026    Si0TypeDef: Si0TypeDef;1027    Si0TypeDefArray: Si0TypeDefArray;1028    Si0TypeDefBitSequence: Si0TypeDefBitSequence;1029    Si0TypeDefCompact: Si0TypeDefCompact;1030    Si0TypeDefComposite: Si0TypeDefComposite;1031    Si0TypeDefPhantom: Si0TypeDefPhantom;1032    Si0TypeDefPrimitive: Si0TypeDefPrimitive;1033    Si0TypeDefSequence: Si0TypeDefSequence;1034    Si0TypeDefTuple: Si0TypeDefTuple;1035    Si0TypeDefVariant: Si0TypeDefVariant;1036    Si0TypeParameter: Si0TypeParameter;1037    Si0Variant: Si0Variant;1038    Si1Field: Si1Field;1039    Si1LookupTypeId: Si1LookupTypeId;1040    Si1Path: Si1Path;1041    Si1Type: Si1Type;1042    Si1TypeDef: Si1TypeDef;1043    Si1TypeDefArray: Si1TypeDefArray;1044    Si1TypeDefBitSequence: Si1TypeDefBitSequence;1045    Si1TypeDefCompact: Si1TypeDefCompact;1046    Si1TypeDefComposite: Si1TypeDefComposite;1047    Si1TypeDefPrimitive: Si1TypeDefPrimitive;1048    Si1TypeDefSequence: Si1TypeDefSequence;1049    Si1TypeDefTuple: Si1TypeDefTuple;1050    Si1TypeDefVariant: Si1TypeDefVariant;1051    Si1TypeParameter: Si1TypeParameter;1052    Si1Variant: Si1Variant;1053    SiField: SiField;1054    Signature: Signature;1055    SignedAvailabilityBitfield: SignedAvailabilityBitfield;1056    SignedAvailabilityBitfields: SignedAvailabilityBitfields;1057    SignedBlock: SignedBlock;1058    SignedBlockWithJustification: SignedBlockWithJustification;1059    SignedBlockWithJustifications: SignedBlockWithJustifications;1060    SignedExtensionMetadataLatest: SignedExtensionMetadataLatest;1061    SignedExtensionMetadataV14: SignedExtensionMetadataV14;1062    SignedSubmission: SignedSubmission;1063    SignedSubmissionOf: SignedSubmissionOf;1064    SignedSubmissionTo276: SignedSubmissionTo276;1065    SignerPayload: SignerPayload;1066    SigningContext: SigningContext;1067    SiLookupTypeId: SiLookupTypeId;1068    SiPath: SiPath;1069    SiType: SiType;1070    SiTypeDef: SiTypeDef;1071    SiTypeDefArray: SiTypeDefArray;1072    SiTypeDefBitSequence: SiTypeDefBitSequence;1073    SiTypeDefCompact: SiTypeDefCompact;1074    SiTypeDefComposite: SiTypeDefComposite;1075    SiTypeDefPrimitive: SiTypeDefPrimitive;1076    SiTypeDefSequence: SiTypeDefSequence;1077    SiTypeDefTuple: SiTypeDefTuple;1078    SiTypeDefVariant: SiTypeDefVariant;1079    SiTypeParameter: SiTypeParameter;1080    SiVariant: SiVariant;1081    SlashingSpans: SlashingSpans;1082    SlashingSpansTo204: SlashingSpansTo204;1083    SlashJournalEntry: SlashJournalEntry;1084    Slot: Slot;1085    SlotNumber: SlotNumber;1086    SlotRange: SlotRange;1087    SlotRange10: SlotRange10;1088    SocietyJudgement: SocietyJudgement;1089    SocietyVote: SocietyVote;1090    SolutionOrSnapshotSize: SolutionOrSnapshotSize;1091    SolutionSupport: SolutionSupport;1092    SolutionSupports: SolutionSupports;1093    SpanIndex: SpanIndex;1094    SpanRecord: SpanRecord;1095    SpCoreEcdsaSignature: SpCoreEcdsaSignature;1096    SpCoreEd25519Signature: SpCoreEd25519Signature;1097    SpCoreSr25519Signature: SpCoreSr25519Signature;1098    SpCoreVoid: SpCoreVoid;1099    SpecVersion: SpecVersion;1100    SpRuntimeArithmeticError: SpRuntimeArithmeticError;1101    SpRuntimeDigest: SpRuntimeDigest;1102    SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem;1103    SpRuntimeDispatchError: SpRuntimeDispatchError;1104    SpRuntimeModuleError: SpRuntimeModuleError;1105    SpRuntimeMultiSignature: SpRuntimeMultiSignature;1106    SpRuntimeTokenError: SpRuntimeTokenError;1107    SpRuntimeTransactionalError: SpRuntimeTransactionalError;1108    SpTrieStorageProof: SpTrieStorageProof;1109    SpVersionRuntimeVersion: SpVersionRuntimeVersion;1110    Sr25519Signature: Sr25519Signature;1111    StakingLedger: StakingLedger;1112    StakingLedgerTo223: StakingLedgerTo223;1113    StakingLedgerTo240: StakingLedgerTo240;1114    Statement: Statement;1115    StatementKind: StatementKind;1116    StorageChangeSet: StorageChangeSet;1117    StorageData: StorageData;1118    StorageDeposit: StorageDeposit;1119    StorageEntryMetadataLatest: StorageEntryMetadataLatest;1120    StorageEntryMetadataV10: StorageEntryMetadataV10;1121    StorageEntryMetadataV11: StorageEntryMetadataV11;1122    StorageEntryMetadataV12: StorageEntryMetadataV12;1123    StorageEntryMetadataV13: StorageEntryMetadataV13;1124    StorageEntryMetadataV14: StorageEntryMetadataV14;1125    StorageEntryMetadataV9: StorageEntryMetadataV9;1126    StorageEntryModifierLatest: StorageEntryModifierLatest;1127    StorageEntryModifierV10: StorageEntryModifierV10;1128    StorageEntryModifierV11: StorageEntryModifierV11;1129    StorageEntryModifierV12: StorageEntryModifierV12;1130    StorageEntryModifierV13: StorageEntryModifierV13;1131    StorageEntryModifierV14: StorageEntryModifierV14;1132    StorageEntryModifierV9: StorageEntryModifierV9;1133    StorageEntryTypeLatest: StorageEntryTypeLatest;1134    StorageEntryTypeV10: StorageEntryTypeV10;1135    StorageEntryTypeV11: StorageEntryTypeV11;1136    StorageEntryTypeV12: StorageEntryTypeV12;1137    StorageEntryTypeV13: StorageEntryTypeV13;1138    StorageEntryTypeV14: StorageEntryTypeV14;1139    StorageEntryTypeV9: StorageEntryTypeV9;1140    StorageHasher: StorageHasher;1141    StorageHasherV10: StorageHasherV10;1142    StorageHasherV11: StorageHasherV11;1143    StorageHasherV12: StorageHasherV12;1144    StorageHasherV13: StorageHasherV13;1145    StorageHasherV14: StorageHasherV14;1146    StorageHasherV9: StorageHasherV9;1147    StorageKey: StorageKey;1148    StorageKind: StorageKind;1149    StorageMetadataV10: StorageMetadataV10;1150    StorageMetadataV11: StorageMetadataV11;1151    StorageMetadataV12: StorageMetadataV12;1152    StorageMetadataV13: StorageMetadataV13;1153    StorageMetadataV9: StorageMetadataV9;1154    StorageProof: StorageProof;1155    StoredPendingChange: StoredPendingChange;1156    StoredState: StoredState;1157    StrikeCount: StrikeCount;1158    SubId: SubId;1159    SubmissionIndicesOf: SubmissionIndicesOf;1160    Supports: Supports;1161    SyncState: SyncState;1162    SystemInherentData: SystemInherentData;1163    SystemOrigin: SystemOrigin;1164    Tally: Tally;1165    TaskAddress: TaskAddress;1166    TAssetBalance: TAssetBalance;1167    TAssetDepositBalance: TAssetDepositBalance;1168    Text: Text;1169    Timepoint: Timepoint;1170    TokenError: TokenError;1171    TombstoneContractInfo: TombstoneContractInfo;1172    TraceBlockResponse: TraceBlockResponse;1173    TraceError: TraceError;1174    TransactionalError: TransactionalError;1175    TransactionInfo: TransactionInfo;1176    TransactionPriority: TransactionPriority;1177    TransactionStorageProof: TransactionStorageProof;1178    TransactionV0: TransactionV0;1179    TransactionV1: TransactionV1;1180    TransactionV2: TransactionV2;1181    TransactionValidityError: TransactionValidityError;1182    TransientValidationData: TransientValidationData;1183    TreasuryProposal: TreasuryProposal;1184    TrieId: TrieId;1185    TrieIndex: TrieIndex;1186    Type: Type;1187    u128: u128;1188    U128: U128;1189    u16: u16;1190    U16: U16;1191    u256: u256;1192    U256: U256;1193    u32: u32;1194    U32: U32;1195    U32F32: U32F32;1196    u64: u64;1197    U64: U64;1198    u8: u8;1199    U8: U8;1200    UnappliedSlash: UnappliedSlash;1201    UnappliedSlashOther: UnappliedSlashOther;1202    UncleEntryItem: UncleEntryItem;1203    UnknownTransaction: UnknownTransaction;1204    UnlockChunk: UnlockChunk;1205    UnrewardedRelayer: UnrewardedRelayer;1206    UnrewardedRelayersState: UnrewardedRelayersState;1207    UpDataStructsAccessMode: UpDataStructsAccessMode;1208    UpDataStructsCollection: UpDataStructsCollection;1209    UpDataStructsCollectionLimits: UpDataStructsCollectionLimits;1210    UpDataStructsCollectionMode: UpDataStructsCollectionMode;1211    UpDataStructsCollectionPermissions: UpDataStructsCollectionPermissions;1212    UpDataStructsCollectionStats: UpDataStructsCollectionStats;1213    UpDataStructsCreateCollectionData: UpDataStructsCreateCollectionData;1214    UpDataStructsCreateFungibleData: UpDataStructsCreateFungibleData;1215    UpDataStructsCreateItemData: UpDataStructsCreateItemData;1216    UpDataStructsCreateItemExData: UpDataStructsCreateItemExData;1217    UpDataStructsCreateNftData: UpDataStructsCreateNftData;1218    UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;1219    UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;1220    UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;1221    UpDataStructsNestingPermissions: UpDataStructsNestingPermissions;1222    UpDataStructsOwnerRestrictedSet: UpDataStructsOwnerRestrictedSet;1223    UpDataStructsProperties: UpDataStructsProperties;1224    UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;1225    UpDataStructsPropertiesMapPropertyPermission: UpDataStructsPropertiesMapPropertyPermission;1226    UpDataStructsProperty: UpDataStructsProperty;1227    UpDataStructsPropertyKeyPermission: UpDataStructsPropertyKeyPermission;1228    UpDataStructsPropertyPermission: UpDataStructsPropertyPermission;1229    UpDataStructsRpcCollection: UpDataStructsRpcCollection;1230    UpDataStructsSponsoringRateLimit: UpDataStructsSponsoringRateLimit;1231    UpDataStructsSponsorshipState: UpDataStructsSponsorshipState;1232    UpDataStructsTokenChild: UpDataStructsTokenChild;1233    UpDataStructsTokenData: UpDataStructsTokenData;1234    UpgradeGoAhead: UpgradeGoAhead;1235    UpgradeRestriction: UpgradeRestriction;1236    UpwardMessage: UpwardMessage;1237    usize: usize;1238    USize: USize;1239    ValidationCode: ValidationCode;1240    ValidationCodeHash: ValidationCodeHash;1241    ValidationData: ValidationData;1242    ValidationDataType: ValidationDataType;1243    ValidationFunctionParams: ValidationFunctionParams;1244    ValidatorCount: ValidatorCount;1245    ValidatorId: ValidatorId;1246    ValidatorIdOf: ValidatorIdOf;1247    ValidatorIndex: ValidatorIndex;1248    ValidatorIndexCompact: ValidatorIndexCompact;1249    ValidatorPrefs: ValidatorPrefs;1250    ValidatorPrefsTo145: ValidatorPrefsTo145;1251    ValidatorPrefsTo196: ValidatorPrefsTo196;1252    ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked;1253    ValidatorPrefsWithCommission: ValidatorPrefsWithCommission;1254    ValidatorSetId: ValidatorSetId;1255    ValidatorSignature: ValidatorSignature;1256    ValidDisputeStatementKind: ValidDisputeStatementKind;1257    ValidityAttestation: ValidityAttestation;1258    VecInboundHrmpMessage: VecInboundHrmpMessage;1259    VersionedMultiAsset: VersionedMultiAsset;1260    VersionedMultiAssets: VersionedMultiAssets;1261    VersionedMultiLocation: VersionedMultiLocation;1262    VersionedResponse: VersionedResponse;1263    VersionedXcm: VersionedXcm;1264    VersionMigrationStage: VersionMigrationStage;1265    VestingInfo: VestingInfo;1266    VestingSchedule: VestingSchedule;1267    Vote: Vote;1268    VoteIndex: VoteIndex;1269    Voter: Voter;1270    VoterInfo: VoterInfo;1271    Votes: Votes;1272    VotesTo230: VotesTo230;1273    VoteThreshold: VoteThreshold;1274    VoteWeight: VoteWeight;1275    Voting: Voting;1276    VotingDelegating: VotingDelegating;1277    VotingDirect: VotingDirect;1278    VotingDirectVote: VotingDirectVote;1279    VouchingStatus: VouchingStatus;1280    VrfData: VrfData;1281    VrfOutput: VrfOutput;1282    VrfProof: VrfProof;1283    Weight: Weight;1284    WeightLimitV2: WeightLimitV2;1285    WeightMultiplier: WeightMultiplier;1286    WeightPerClass: WeightPerClass;1287    WeightToFeeCoefficient: WeightToFeeCoefficient;1288    WildFungibility: WildFungibility;1289    WildFungibilityV0: WildFungibilityV0;1290    WildFungibilityV1: WildFungibilityV1;1291    WildFungibilityV2: WildFungibilityV2;1292    WildMultiAsset: WildMultiAsset;1293    WildMultiAssetV1: WildMultiAssetV1;1294    WildMultiAssetV2: WildMultiAssetV2;1295    WinnersData: WinnersData;1296    WinnersData10: WinnersData10;1297    WinnersDataTuple: WinnersDataTuple;1298    WinnersDataTuple10: WinnersDataTuple10;1299    WinningData: WinningData;1300    WinningData10: WinningData10;1301    WinningDataEntry: WinningDataEntry;1302    WithdrawReasons: WithdrawReasons;1303    Xcm: Xcm;1304    XcmAssetId: XcmAssetId;1305    XcmDoubleEncoded: XcmDoubleEncoded;1306    XcmError: XcmError;1307    XcmErrorV0: XcmErrorV0;1308    XcmErrorV1: XcmErrorV1;1309    XcmErrorV2: XcmErrorV2;1310    XcmOrder: XcmOrder;1311    XcmOrderV0: XcmOrderV0;1312    XcmOrderV1: XcmOrderV1;1313    XcmOrderV2: XcmOrderV2;1314    XcmOrigin: XcmOrigin;1315    XcmOriginKind: XcmOriginKind;1316    XcmpMessageFormat: XcmpMessageFormat;1317    XcmV0: XcmV0;1318    XcmV0Junction: XcmV0Junction;1319    XcmV0JunctionBodyId: XcmV0JunctionBodyId;1320    XcmV0JunctionBodyPart: XcmV0JunctionBodyPart;1321    XcmV0JunctionNetworkId: XcmV0JunctionNetworkId;1322    XcmV0MultiAsset: XcmV0MultiAsset;1323    XcmV0MultiLocation: XcmV0MultiLocation;1324    XcmV0Order: XcmV0Order;1325    XcmV0OriginKind: XcmV0OriginKind;1326    XcmV0Response: XcmV0Response;1327    XcmV0Xcm: XcmV0Xcm;1328    XcmV1: XcmV1;1329    XcmV1Junction: XcmV1Junction;1330    XcmV1MultiAsset: XcmV1MultiAsset;1331    XcmV1MultiassetAssetId: XcmV1MultiassetAssetId;1332    XcmV1MultiassetAssetInstance: XcmV1MultiassetAssetInstance;1333    XcmV1MultiassetFungibility: XcmV1MultiassetFungibility;1334    XcmV1MultiassetMultiAssetFilter: XcmV1MultiassetMultiAssetFilter;1335    XcmV1MultiassetMultiAssets: XcmV1MultiassetMultiAssets;1336    XcmV1MultiassetWildFungibility: XcmV1MultiassetWildFungibility;1337    XcmV1MultiassetWildMultiAsset: XcmV1MultiassetWildMultiAsset;1338    XcmV1MultiLocation: XcmV1MultiLocation;1339    XcmV1MultilocationJunctions: XcmV1MultilocationJunctions;1340    XcmV1Order: XcmV1Order;1341    XcmV1Response: XcmV1Response;1342    XcmV1Xcm: XcmV1Xcm;1343    XcmV2: XcmV2;1344    XcmV2Instruction: XcmV2Instruction;1345    XcmV2Response: XcmV2Response;1346    XcmV2TraitsError: XcmV2TraitsError;1347    XcmV2TraitsOutcome: XcmV2TraitsOutcome;1348    XcmV2WeightLimit: XcmV2WeightLimit;1349    XcmV2Xcm: XcmV2Xcm;1350    XcmVersion: XcmVersion;1351    XcmVersionedMultiAssets: XcmVersionedMultiAssets;1352    XcmVersionedMultiLocation: XcmVersionedMultiLocation;1353    XcmVersionedXcm: XcmVersionedXcm;1354  } // InterfaceTypes1355} // declare module
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
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1650,8 +1650,8 @@
     readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
   }
 
-  /** @name PalletUnqSchedulerCall (206) */
-  export interface PalletUnqSchedulerCall extends Enum {
+  /** @name PalletUniqueSchedulerCall (206) */
+  export interface PalletUniqueSchedulerCall extends Enum {
     readonly isScheduleNamed: boolean;
     readonly asScheduleNamed: {
       readonly id: U8aFixed;
@@ -2350,8 +2350,8 @@
     readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';
   }
 
-  /** @name PalletUnqSchedulerEvent (283) */
-  export interface PalletUnqSchedulerEvent extends Enum {
+  /** @name PalletUniqueSchedulerEvent (283) */
+  export interface PalletUniqueSchedulerEvent extends Enum {
     readonly isScheduled: boolean;
     readonly asScheduled: {
       readonly when: u32;
@@ -2805,8 +2805,8 @@
     readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';
   }
 
-  /** @name PalletUnqSchedulerScheduledV3 (344) */
-  export interface PalletUnqSchedulerScheduledV3 extends Struct {
+  /** @name PalletUniqueSchedulerScheduledV3 (344) */
+  export interface PalletUniqueSchedulerScheduledV3 extends Struct {
     readonly maybeId: Option<U8aFixed>;
     readonly priority: u8;
     readonly call: FrameSupportScheduleMaybeHashed;
@@ -2864,8 +2864,8 @@
   /** @name SpCoreVoid (350) */
   export type SpCoreVoid = Null;
 
-  /** @name PalletUnqSchedulerError (351) */
-  export interface PalletUnqSchedulerError extends Enum {
+  /** @name PalletUniqueSchedulerError (351) */
+  export interface PalletUniqueSchedulerError extends Enum {
     readonly isFailedToSchedule: boolean;
     readonly isNotFound: boolean;
     readonly isTargetBlockNumberInPast: boolean;
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');
     });
   });
 });