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

difftreelog

misk: Turn off eth metods for substrate addresses.

Trubnikov Sergey2022-09-26parent: #edc6ac8.patch.diff
in: master

16 files changed

modifiedpallets/common/src/erc.rsdiffbeforeafterboth
--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -139,25 +139,26 @@
 		save(self)
 	}
 
-	/// Set the substrate sponsor of the collection.
-	///
-	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	///
-	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
-	fn set_collection_sponsor_substrate(
-		&mut self,
-		caller: caller,
-		sponsor: uint256,
-	) -> Result<void> {
-		self.consume_store_reads_and_writes(1, 1)?;
+	// TODO: Temprorary off. Need refactor
+	// /// Set the substrate sponsor of the collection.
+	// ///
+	// /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
+	// ///
+	// /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
+	// fn set_collection_sponsor_substrate(
+	// 	&mut self,
+	// 	caller: caller,
+	// 	sponsor: uint256,
+	// ) -> Result<void> {
+	// 	self.consume_store_reads_and_writes(1, 1)?;
 
-		check_is_owner_or_admin(caller, self)?;
+	// 	check_is_owner_or_admin(caller, self)?;
 
-		let sponsor = convert_uint256_to_cross_account::<T>(sponsor);
-		self.set_sponsor(sponsor.as_sub().clone())
-			.map_err(dispatch_to_evm::<T>)?;
-		save(self)
-	}
+	// 	let sponsor = convert_uint256_to_cross_account::<T>(sponsor);
+	// 	self.set_sponsor(sponsor.as_sub().clone())
+	// 		.map_err(dispatch_to_evm::<T>)?;
+	// 	save(self)
+	// }
 
 	/// Whether there is a pending sponsor.
 	fn has_collection_pending_sponsor(&self) -> Result<bool> {
@@ -299,35 +300,37 @@
 		Ok(crate::eth::collection_id_to_address(self.id))
 	}
 
-	/// Add collection admin by substrate address.
-	/// @param newAdmin Substrate administrator address.
-	fn add_collection_admin_substrate(
-		&mut self,
-		caller: caller,
-		new_admin: uint256,
-	) -> Result<void> {
-		self.consume_store_writes(2)?;
+	// TODO: Temprorary off. Need refactor
+	// /// Add collection admin by substrate address.
+	// /// @param newAdmin Substrate administrator address.
+	// fn add_collection_admin_substrate(
+	// 	&mut self,
+	// 	caller: caller,
+	// 	new_admin: uint256,
+	// ) -> Result<void> {
+	// 	self.consume_store_writes(2)?;
 
-		let caller = T::CrossAccountId::from_eth(caller);
-		let new_admin = convert_uint256_to_cross_account::<T>(new_admin);
-		<Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;
-		Ok(())
-	}
+	// 	let caller = T::CrossAccountId::from_eth(caller);
+	// 	let new_admin = convert_uint256_to_cross_account::<T>(new_admin);
+	// 	<Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;
+	// 	Ok(())
+	// }
 
-	/// Remove collection admin by substrate address.
-	/// @param admin Substrate administrator address.
-	fn remove_collection_admin_substrate(
-		&mut self,
-		caller: caller,
-		admin: uint256,
-	) -> Result<void> {
-		self.consume_store_writes(2)?;
+	// TODO: Temprorary off. Need refactor
+	// /// Remove collection admin by substrate address.
+	// /// @param admin Substrate administrator address.
+	// fn remove_collection_admin_substrate(
+	// 	&mut self,
+	// 	caller: caller,
+	// 	admin: uint256,
+	// ) -> Result<void> {
+	// 	self.consume_store_writes(2)?;
 
-		let caller = T::CrossAccountId::from_eth(caller);
-		let admin = convert_uint256_to_cross_account::<T>(admin);
-		<Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;
-		Ok(())
-	}
+	// 	let caller = T::CrossAccountId::from_eth(caller);
+	// 	let admin = convert_uint256_to_cross_account::<T>(admin);
+	// 	<Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;
+	// 	Ok(())
+	// }
 
 	/// Add collection admin.
 	/// @param newAdmin Address of the added administrator.
@@ -476,21 +479,22 @@
 		Ok(())
 	}
 
-	/// Add substrate user to allowed list.
-	///
-	/// @param user User substrate address.
-	fn add_to_collection_allow_list_substrate(
-		&mut self,
-		caller: caller,
-		user: uint256,
-	) -> Result<void> {
-		self.consume_store_writes(1)?;
+	// TODO: Temprorary off. Need refactor
+	// /// Add substrate user to allowed list.
+	// ///
+	// /// @param user User substrate address.
+	// fn add_to_collection_allow_list_substrate(
+	// 	&mut self,
+	// 	caller: caller,
+	// 	user: uint256,
+	// ) -> Result<void> {
+	// 	self.consume_store_writes(1)?;
 
-		let caller = T::CrossAccountId::from_eth(caller);
-		let user = convert_uint256_to_cross_account::<T>(user);
-		Pallet::<T>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;
-		Ok(())
-	}
+	// 	let caller = T::CrossAccountId::from_eth(caller);
+	// 	let user = convert_uint256_to_cross_account::<T>(user);
+	// 	Pallet::<T>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;
+	// 	Ok(())
+	// }
 
 	/// Remove the user from the allowed list.
 	///
@@ -504,21 +508,22 @@
 		Ok(())
 	}
 
-	/// Remove substrate user from allowed list.
-	///
-	/// @param user User substrate address.
-	fn remove_from_collection_allow_list_substrate(
-		&mut self,
-		caller: caller,
-		user: uint256,
-	) -> Result<void> {
-		self.consume_store_writes(1)?;
+	// TODO: Temprorary off. Need refactor
+	// /// Remove substrate user from allowed list.
+	// ///
+	// /// @param user User substrate address.
+	// fn remove_from_collection_allow_list_substrate(
+	// 	&mut self,
+	// 	caller: caller,
+	// 	user: uint256,
+	// ) -> Result<void> {
+	// 	self.consume_store_writes(1)?;
 
-		let caller = T::CrossAccountId::from_eth(caller);
-		let user = convert_uint256_to_cross_account::<T>(user);
-		Pallet::<T>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;
-		Ok(())
-	}
+	// 	let caller = T::CrossAccountId::from_eth(caller);
+	// 	let user = convert_uint256_to_cross_account::<T>(user);
+	// 	Pallet::<T>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;
+	// 	Ok(())
+	// }
 
 	/// Switch permission for minting.
 	///
@@ -551,14 +556,15 @@
 		Ok(self.is_owner_or_admin(&user))
 	}
 
-	/// Check that substrate account is the owner or admin of the collection
-	///
-	/// @param user account to verify
-	/// @return "true" if account is the owner or admin
-	fn is_owner_or_admin_substrate(&self, user: uint256) -> Result<bool> {
-		let user = convert_uint256_to_cross_account::<T>(user);
-		Ok(self.is_owner_or_admin(&user))
-	}
+	// TODO: Temprorary off. Need refactor
+	// /// Check that substrate account is the owner or admin of the collection
+	// ///
+	// /// @param user account to verify
+	// /// @return "true" if account is the owner or admin
+	// fn is_owner_or_admin_substrate(&self, user: uint256) -> Result<bool> {
+	// 	let user = convert_uint256_to_cross_account::<T>(user);
+	// 	Ok(self.is_owner_or_admin(&user))
+	// }
 
 	/// Returns collection type
 	///
@@ -595,18 +601,19 @@
 			.map_err(dispatch_to_evm::<T>)
 	}
 
-	/// Changes collection owner to another substrate account
-	///
-	/// @dev Owner can be changed only by current owner
-	/// @param newOwner new owner substrate account
-	fn set_owner_substrate(&mut self, caller: caller, new_owner: uint256) -> Result<void> {
-		self.consume_store_writes(1)?;
+	// TODO: Temprorary off. Need refactor
+	// /// Changes collection owner to another substrate account
+	// ///
+	// /// @dev Owner can be changed only by current owner
+	// /// @param newOwner new owner substrate account
+	// fn set_owner_substrate(&mut self, caller: caller, new_owner: uint256) -> Result<void> {
+	// 	self.consume_store_writes(1)?;
 
-		let caller = T::CrossAccountId::from_eth(caller);
-		let new_owner = convert_uint256_to_cross_account::<T>(new_owner);
-		self.set_owner_internal(caller, new_owner)
-			.map_err(dispatch_to_evm::<T>)
-	}
+	// 	let caller = T::CrossAccountId::from_eth(caller);
+	// 	let new_owner = convert_uint256_to_cross_account::<T>(new_owner);
+	// 	self.set_owner_internal(caller, new_owner)
+	// 		.map_err(dispatch_to_evm::<T>)
+	// }
 
 	// TODO: need implement AbiWriter for &Vec<T>
 	// fn collection_admins(&self) -> Result<Vec<(address, uint256)>> {
modifiedpallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth
--- a/pallets/fungible/src/stubs/UniqueFungible.sol
+++ b/pallets/fungible/src/stubs/UniqueFungible.sol
@@ -18,7 +18,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
 contract Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -72,19 +72,6 @@
 		dummy = 0;
 	}
 
-	/// Set the substrate sponsor of the collection.
-	///
-	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	///
-	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
-	/// @dev EVM selector for this function is: 0xc74d6751,
-	///  or in textual repr: setCollectionSponsorSubstrate(uint256)
-	function setCollectionSponsorSubstrate(uint256 sponsor) public {
-		require(false, stub_error);
-		sponsor;
-		dummy = 0;
-	}
-
 	/// Whether there is a pending sponsor.
 	/// @dev EVM selector for this function is: 0x058ac185,
 	///  or in textual repr: hasCollectionPendingSponsor()
@@ -167,26 +154,6 @@
 		return 0x0000000000000000000000000000000000000000;
 	}
 
-	/// Add collection admin by substrate address.
-	/// @param newAdmin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x5730062b,
-	///  or in textual repr: addCollectionAdminSubstrate(uint256)
-	function addCollectionAdminSubstrate(uint256 newAdmin) public {
-		require(false, stub_error);
-		newAdmin;
-		dummy = 0;
-	}
-
-	/// Remove collection admin by substrate address.
-	/// @param admin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x4048fcf9,
-	///  or in textual repr: removeCollectionAdminSubstrate(uint256)
-	function removeCollectionAdminSubstrate(uint256 admin) public {
-		require(false, stub_error);
-		admin;
-		dummy = 0;
-	}
-
 	/// Add collection admin.
 	/// @param newAdmin Address of the added administrator.
 	/// @dev EVM selector for this function is: 0x92e462c7,
@@ -262,17 +229,6 @@
 	/// @dev EVM selector for this function is: 0x67844fe6,
 	///  or in textual repr: addToCollectionAllowList(address)
 	function addToCollectionAllowList(address user) public {
-		require(false, stub_error);
-		user;
-		dummy = 0;
-	}
-
-	/// Add substrate user to allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xd06ad267,
-	///  or in textual repr: addToCollectionAllowListSubstrate(uint256)
-	function addToCollectionAllowListSubstrate(uint256 user) public {
 		require(false, stub_error);
 		user;
 		dummy = 0;
@@ -289,17 +245,6 @@
 		dummy = 0;
 	}
 
-	/// Remove substrate user from allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xa31913ed,
-	///  or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
-	function removeFromCollectionAllowListSubstrate(uint256 user) public {
-		require(false, stub_error);
-		user;
-		dummy = 0;
-	}
-
 	/// Switch permission for minting.
 	///
 	/// @param mode Enable if "true".
@@ -324,19 +269,6 @@
 		return false;
 	}
 
-	/// Check that substrate account is the owner or admin of the collection
-	///
-	/// @param user account to verify
-	/// @return "true" if account is the owner or admin
-	/// @dev EVM selector for this function is: 0x68910e00,
-	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)
-	function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {
-		require(false, stub_error);
-		user;
-		dummy;
-		return false;
-	}
-
 	/// Returns collection type
 	///
 	/// @return `Fungible` or `NFT` or `ReFungible`
@@ -367,18 +299,6 @@
 	/// @dev EVM selector for this function is: 0x13af4035,
 	///  or in textual repr: setOwner(address)
 	function setOwner(address newOwner) public {
-		require(false, stub_error);
-		newOwner;
-		dummy = 0;
-	}
-
-	/// Changes collection owner to another substrate account
-	///
-	/// @dev Owner can be changed only by current owner
-	/// @param newOwner new owner substrate account
-	/// @dev EVM selector for this function is: 0xb212138f,
-	///  or in textual repr: setOwnerSubstrate(uint256)
-	function setOwnerSubstrate(uint256 newOwner) public {
 		require(false, stub_error);
 		newOwner;
 		dummy = 0;
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
@@ -91,7 +91,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
 contract Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -145,19 +145,6 @@
 		dummy = 0;
 	}
 
-	/// Set the substrate sponsor of the collection.
-	///
-	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	///
-	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
-	/// @dev EVM selector for this function is: 0xc74d6751,
-	///  or in textual repr: setCollectionSponsorSubstrate(uint256)
-	function setCollectionSponsorSubstrate(uint256 sponsor) public {
-		require(false, stub_error);
-		sponsor;
-		dummy = 0;
-	}
-
 	/// Whether there is a pending sponsor.
 	/// @dev EVM selector for this function is: 0x058ac185,
 	///  or in textual repr: hasCollectionPendingSponsor()
@@ -240,26 +227,6 @@
 		return 0x0000000000000000000000000000000000000000;
 	}
 
-	/// Add collection admin by substrate address.
-	/// @param newAdmin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x5730062b,
-	///  or in textual repr: addCollectionAdminSubstrate(uint256)
-	function addCollectionAdminSubstrate(uint256 newAdmin) public {
-		require(false, stub_error);
-		newAdmin;
-		dummy = 0;
-	}
-
-	/// Remove collection admin by substrate address.
-	/// @param admin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x4048fcf9,
-	///  or in textual repr: removeCollectionAdminSubstrate(uint256)
-	function removeCollectionAdminSubstrate(uint256 admin) public {
-		require(false, stub_error);
-		admin;
-		dummy = 0;
-	}
-
 	/// Add collection admin.
 	/// @param newAdmin Address of the added administrator.
 	/// @dev EVM selector for this function is: 0x92e462c7,
@@ -335,17 +302,6 @@
 	/// @dev EVM selector for this function is: 0x67844fe6,
 	///  or in textual repr: addToCollectionAllowList(address)
 	function addToCollectionAllowList(address user) public {
-		require(false, stub_error);
-		user;
-		dummy = 0;
-	}
-
-	/// Add substrate user to allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xd06ad267,
-	///  or in textual repr: addToCollectionAllowListSubstrate(uint256)
-	function addToCollectionAllowListSubstrate(uint256 user) public {
 		require(false, stub_error);
 		user;
 		dummy = 0;
@@ -362,17 +318,6 @@
 		dummy = 0;
 	}
 
-	/// Remove substrate user from allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xa31913ed,
-	///  or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
-	function removeFromCollectionAllowListSubstrate(uint256 user) public {
-		require(false, stub_error);
-		user;
-		dummy = 0;
-	}
-
 	/// Switch permission for minting.
 	///
 	/// @param mode Enable if "true".
@@ -397,19 +342,6 @@
 		return false;
 	}
 
-	/// Check that substrate account is the owner or admin of the collection
-	///
-	/// @param user account to verify
-	/// @return "true" if account is the owner or admin
-	/// @dev EVM selector for this function is: 0x68910e00,
-	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)
-	function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {
-		require(false, stub_error);
-		user;
-		dummy;
-		return false;
-	}
-
 	/// Returns collection type
 	///
 	/// @return `Fungible` or `NFT` or `ReFungible`
@@ -440,18 +372,6 @@
 	/// @dev EVM selector for this function is: 0x13af4035,
 	///  or in textual repr: setOwner(address)
 	function setOwner(address newOwner) public {
-		require(false, stub_error);
-		newOwner;
-		dummy = 0;
-	}
-
-	/// Changes collection owner to another substrate account
-	///
-	/// @dev Owner can be changed only by current owner
-	/// @param newOwner new owner substrate account
-	/// @dev EVM selector for this function is: 0xb212138f,
-	///  or in textual repr: setOwnerSubstrate(uint256)
-	function setOwnerSubstrate(uint256 newOwner) public {
 		require(false, stub_error);
 		newOwner;
 		dummy = 0;
modifiedpallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
before · pallets/refungible/src/stubs/UniqueRefungible.sol
1// SPDX-License-Identifier: OTHER2// This code is automatically generated34pragma solidity >=0.8.0 <0.9.0;56/// @dev common stubs holder7contract Dummy {8	uint8 dummy;9	string stub_error = "this contract is implemented in native";10}1112contract ERC165 is Dummy {13	function supportsInterface(bytes4 interfaceID) external view returns (bool) {14		require(false, stub_error);15		interfaceID;16		return true;17	}18}1920/// @title A contract that allows to set and delete token properties and change token property permissions.21/// @dev the ERC-165 identifier for this interface is 0x4136937722contract TokenProperties is Dummy, ERC165 {23	/// @notice Set permissions for token property.24	/// @dev Throws error if `msg.sender` is not admin or owner of the collection.25	/// @param key Property key.26	/// @param isMutable Permission to mutate property.27	/// @param collectionAdmin Permission to mutate property by collection admin if property is mutable.28	/// @param tokenOwner Permission to mutate property by token owner if property is mutable.29	/// @dev EVM selector for this function is: 0x222d97fa,30	///  or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)31	function setTokenPropertyPermission(32		string memory key,33		bool isMutable,34		bool collectionAdmin,35		bool tokenOwner36	) public {37		require(false, stub_error);38		key;39		isMutable;40		collectionAdmin;41		tokenOwner;42		dummy = 0;43	}4445	/// @notice Set token property value.46	/// @dev Throws error if `msg.sender` has no permission to edit the property.47	/// @param tokenId ID of the token.48	/// @param key Property key.49	/// @param value Property value.50	/// @dev EVM selector for this function is: 0x1752d67b,51	///  or in textual repr: setProperty(uint256,string,bytes)52	function setProperty(53		uint256 tokenId,54		string memory key,55		bytes memory value56	) public {57		require(false, stub_error);58		tokenId;59		key;60		value;61		dummy = 0;62	}6364	/// @notice Delete token property value.65	/// @dev Throws error if `msg.sender` has no permission to edit the property.66	/// @param tokenId ID of the token.67	/// @param key Property key.68	/// @dev EVM selector for this function is: 0x066111d1,69	///  or in textual repr: deleteProperty(uint256,string)70	function deleteProperty(uint256 tokenId, string memory key) public {71		require(false, stub_error);72		tokenId;73		key;74		dummy = 0;75	}7677	/// @notice Get token property value.78	/// @dev Throws error if key not found79	/// @param tokenId ID of the token.80	/// @param key Property key.81	/// @return Property value bytes82	/// @dev EVM selector for this function is: 0x7228c327,83	///  or in textual repr: property(uint256,string)84	function property(uint256 tokenId, string memory key) public view returns (bytes memory) {85		require(false, stub_error);86		tokenId;87		key;88		dummy;89		return hex"";90	}91}9293/// @title A contract that allows you to work with collections.94/// @dev the ERC-165 identifier for this interface is 0x47dbc10595contract Collection is Dummy, ERC165 {96	/// Set collection property.97	///98	/// @param key Property key.99	/// @param value Propery value.100	/// @dev EVM selector for this function is: 0x2f073f66,101	///  or in textual repr: setCollectionProperty(string,bytes)102	function setCollectionProperty(string memory key, bytes memory value) public {103		require(false, stub_error);104		key;105		value;106		dummy = 0;107	}108109	/// Delete collection property.110	///111	/// @param key Property key.112	/// @dev EVM selector for this function is: 0x7b7debce,113	///  or in textual repr: deleteCollectionProperty(string)114	function deleteCollectionProperty(string memory key) public {115		require(false, stub_error);116		key;117		dummy = 0;118	}119120	/// Get collection property.121	///122	/// @dev Throws error if key not found.123	///124	/// @param key Property key.125	/// @return bytes The property corresponding to the key.126	/// @dev EVM selector for this function is: 0xcf24fd6d,127	///  or in textual repr: collectionProperty(string)128	function collectionProperty(string memory key) public view returns (bytes memory) {129		require(false, stub_error);130		key;131		dummy;132		return hex"";133	}134135	/// Set the sponsor of the collection.136	///137	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.138	///139	/// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.140	/// @dev EVM selector for this function is: 0x7623402e,141	///  or in textual repr: setCollectionSponsor(address)142	function setCollectionSponsor(address sponsor) public {143		require(false, stub_error);144		sponsor;145		dummy = 0;146	}147148	/// Set the substrate sponsor of the collection.149	///150	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.151	///152	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.153	/// @dev EVM selector for this function is: 0xc74d6751,154	///  or in textual repr: setCollectionSponsorSubstrate(uint256)155	function setCollectionSponsorSubstrate(uint256 sponsor) public {156		require(false, stub_error);157		sponsor;158		dummy = 0;159	}160161	/// Whether there is a pending sponsor.162	/// @dev EVM selector for this function is: 0x058ac185,163	///  or in textual repr: hasCollectionPendingSponsor()164	function hasCollectionPendingSponsor() public view returns (bool) {165		require(false, stub_error);166		dummy;167		return false;168	}169170	/// Collection sponsorship confirmation.171	///172	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.173	/// @dev EVM selector for this function is: 0x3c50e97a,174	///  or in textual repr: confirmCollectionSponsorship()175	function confirmCollectionSponsorship() public {176		require(false, stub_error);177		dummy = 0;178	}179180	/// Remove collection sponsor.181	/// @dev EVM selector for this function is: 0x6e0326a3,182	///  or in textual repr: removeCollectionSponsor()183	function removeCollectionSponsor() public {184		require(false, stub_error);185		dummy = 0;186	}187188	/// Get current sponsor.189	///190	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.191	/// @dev EVM selector for this function is: 0x6ec0a9f1,192	///  or in textual repr: collectionSponsor()193	function collectionSponsor() public view returns (Tuple17 memory) {194		require(false, stub_error);195		dummy;196		return Tuple17(0x0000000000000000000000000000000000000000, 0);197	}198199	/// Set limits for the collection.200	/// @dev Throws error if limit not found.201	/// @param limit Name of the limit. Valid names:202	/// 	"accountTokenOwnershipLimit",203	/// 	"sponsoredDataSize",204	/// 	"sponsoredDataRateLimit",205	/// 	"tokenLimit",206	/// 	"sponsorTransferTimeout",207	/// 	"sponsorApproveTimeout"208	/// @param value Value of the limit.209	/// @dev EVM selector for this function is: 0x6a3841db,210	///  or in textual repr: setCollectionLimit(string,uint32)211	function setCollectionLimit(string memory limit, uint32 value) public {212		require(false, stub_error);213		limit;214		value;215		dummy = 0;216	}217218	/// Set limits for the collection.219	/// @dev Throws error if limit not found.220	/// @param limit Name of the limit. Valid names:221	/// 	"ownerCanTransfer",222	/// 	"ownerCanDestroy",223	/// 	"transfersEnabled"224	/// @param value Value of the limit.225	/// @dev EVM selector for this function is: 0x993b7fba,226	///  or in textual repr: setCollectionLimit(string,bool)227	function setCollectionLimit(string memory limit, bool value) public {228		require(false, stub_error);229		limit;230		value;231		dummy = 0;232	}233234	/// Get contract address.235	/// @dev EVM selector for this function is: 0xf6b4dfb4,236	///  or in textual repr: contractAddress()237	function contractAddress() public view returns (address) {238		require(false, stub_error);239		dummy;240		return 0x0000000000000000000000000000000000000000;241	}242243	/// Add collection admin by substrate address.244	/// @param newAdmin Substrate administrator address.245	/// @dev EVM selector for this function is: 0x5730062b,246	///  or in textual repr: addCollectionAdminSubstrate(uint256)247	function addCollectionAdminSubstrate(uint256 newAdmin) public {248		require(false, stub_error);249		newAdmin;250		dummy = 0;251	}252253	/// Remove collection admin by substrate address.254	/// @param admin Substrate administrator address.255	/// @dev EVM selector for this function is: 0x4048fcf9,256	///  or in textual repr: removeCollectionAdminSubstrate(uint256)257	function removeCollectionAdminSubstrate(uint256 admin) public {258		require(false, stub_error);259		admin;260		dummy = 0;261	}262263	/// Add collection admin.264	/// @param newAdmin Address of the added administrator.265	/// @dev EVM selector for this function is: 0x92e462c7,266	///  or in textual repr: addCollectionAdmin(address)267	function addCollectionAdmin(address newAdmin) public {268		require(false, stub_error);269		newAdmin;270		dummy = 0;271	}272273	/// Remove collection admin.274	///275	/// @param admin Address of the removed administrator.276	/// @dev EVM selector for this function is: 0xfafd7b42,277	///  or in textual repr: removeCollectionAdmin(address)278	function removeCollectionAdmin(address admin) public {279		require(false, stub_error);280		admin;281		dummy = 0;282	}283284	/// Toggle accessibility of collection nesting.285	///286	/// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'287	/// @dev EVM selector for this function is: 0x112d4586,288	///  or in textual repr: setCollectionNesting(bool)289	function setCollectionNesting(bool enable) public {290		require(false, stub_error);291		enable;292		dummy = 0;293	}294295	/// Toggle accessibility of collection nesting.296	///297	/// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'298	/// @param collections Addresses of collections that will be available for nesting.299	/// @dev EVM selector for this function is: 0x64872396,300	///  or in textual repr: setCollectionNesting(bool,address[])301	function setCollectionNesting(bool enable, address[] memory collections) public {302		require(false, stub_error);303		enable;304		collections;305		dummy = 0;306	}307308	/// Set the collection access method.309	/// @param mode Access mode310	/// 	0 for Normal311	/// 	1 for AllowList312	/// @dev EVM selector for this function is: 0x41835d4c,313	///  or in textual repr: setCollectionAccess(uint8)314	function setCollectionAccess(uint8 mode) public {315		require(false, stub_error);316		mode;317		dummy = 0;318	}319320	/// Checks that user allowed to operate with collection.321	///322	/// @param user User address to check.323	/// @dev EVM selector for this function is: 0xd63a8e11,324	///  or in textual repr: allowed(address)325	function allowed(address user) public view returns (bool) {326		require(false, stub_error);327		user;328		dummy;329		return false;330	}331332	/// Add the user to the allowed list.333	///334	/// @param user Address of a trusted user.335	/// @dev EVM selector for this function is: 0x67844fe6,336	///  or in textual repr: addToCollectionAllowList(address)337	function addToCollectionAllowList(address user) public {338		require(false, stub_error);339		user;340		dummy = 0;341	}342343	/// Add substrate user to allowed list.344	///345	/// @param user User substrate address.346	/// @dev EVM selector for this function is: 0xd06ad267,347	///  or in textual repr: addToCollectionAllowListSubstrate(uint256)348	function addToCollectionAllowListSubstrate(uint256 user) public {349		require(false, stub_error);350		user;351		dummy = 0;352	}353354	/// Remove the user from the allowed list.355	///356	/// @param user Address of a removed user.357	/// @dev EVM selector for this function is: 0x85c51acb,358	///  or in textual repr: removeFromCollectionAllowList(address)359	function removeFromCollectionAllowList(address user) public {360		require(false, stub_error);361		user;362		dummy = 0;363	}364365	/// Remove substrate user from allowed list.366	///367	/// @param user User substrate address.368	/// @dev EVM selector for this function is: 0xa31913ed,369	///  or in textual repr: removeFromCollectionAllowListSubstrate(uint256)370	function removeFromCollectionAllowListSubstrate(uint256 user) public {371		require(false, stub_error);372		user;373		dummy = 0;374	}375376	/// Switch permission for minting.377	///378	/// @param mode Enable if "true".379	/// @dev EVM selector for this function is: 0x00018e84,380	///  or in textual repr: setCollectionMintMode(bool)381	function setCollectionMintMode(bool mode) public {382		require(false, stub_error);383		mode;384		dummy = 0;385	}386387	/// Check that account is the owner or admin of the collection388	///389	/// @param user account to verify390	/// @return "true" if account is the owner or admin391	/// @dev EVM selector for this function is: 0x9811b0c7,392	///  or in textual repr: isOwnerOrAdmin(address)393	function isOwnerOrAdmin(address user) public view returns (bool) {394		require(false, stub_error);395		user;396		dummy;397		return false;398	}399400	/// Check that substrate account is the owner or admin of the collection401	///402	/// @param user account to verify403	/// @return "true" if account is the owner or admin404	/// @dev EVM selector for this function is: 0x68910e00,405	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)406	function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {407		require(false, stub_error);408		user;409		dummy;410		return false;411	}412413	/// Returns collection type414	///415	/// @return `Fungible` or `NFT` or `ReFungible`416	/// @dev EVM selector for this function is: 0xd34b55b8,417	///  or in textual repr: uniqueCollectionType()418	function uniqueCollectionType() public view returns (string memory) {419		require(false, stub_error);420		dummy;421		return "";422	}423424	/// Get collection owner.425	///426	/// @return Tuble with sponsor address and his substrate mirror.427	/// If address is canonical then substrate mirror is zero and vice versa.428	/// @dev EVM selector for this function is: 0xdf727d3b,429	///  or in textual repr: collectionOwner()430	function collectionOwner() public view returns (Tuple17 memory) {431		require(false, stub_error);432		dummy;433		return Tuple17(0x0000000000000000000000000000000000000000, 0);434	}435436	/// Changes collection owner to another account437	///438	/// @dev Owner can be changed only by current owner439	/// @param newOwner new owner account440	/// @dev EVM selector for this function is: 0x13af4035,441	///  or in textual repr: setOwner(address)442	function setOwner(address newOwner) public {443		require(false, stub_error);444		newOwner;445		dummy = 0;446	}447448	/// Changes collection owner to another substrate account449	///450	/// @dev Owner can be changed only by current owner451	/// @param newOwner new owner substrate account452	/// @dev EVM selector for this function is: 0xb212138f,453	///  or in textual repr: setOwnerSubstrate(uint256)454	function setOwnerSubstrate(uint256 newOwner) public {455		require(false, stub_error);456		newOwner;457		dummy = 0;458	}459}460461/// @dev anonymous struct462struct Tuple17 {463	address field_0;464	uint256 field_1;465}466467/// @title ERC721 Token that can be irreversibly burned (destroyed).468/// @dev the ERC-165 identifier for this interface is 0x42966c68469contract ERC721Burnable is Dummy, ERC165 {470	/// @notice Burns a specific ERC721 token.471	/// @dev Throws unless `msg.sender` is the current RFT owner, or an authorized472	///  operator of the current owner.473	/// @param tokenId The RFT to approve474	/// @dev EVM selector for this function is: 0x42966c68,475	///  or in textual repr: burn(uint256)476	function burn(uint256 tokenId) public {477		require(false, stub_error);478		tokenId;479		dummy = 0;480	}481}482483/// @dev inlined interface484contract ERC721MintableEvents {485	event MintingFinished();486}487488/// @title ERC721 minting logic.489/// @dev the ERC-165 identifier for this interface is 0x68ccfe89490contract ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {491	/// @dev EVM selector for this function is: 0x05d2035b,492	///  or in textual repr: mintingFinished()493	function mintingFinished() public view returns (bool) {494		require(false, stub_error);495		dummy;496		return false;497	}498499	/// @notice Function to mint token.500	/// @dev `tokenId` should be obtained with `nextTokenId` method,501	///  unlike standard, you can't specify it manually502	/// @param to The new owner503	/// @param tokenId ID of the minted RFT504	/// @dev EVM selector for this function is: 0x40c10f19,505	///  or in textual repr: mint(address,uint256)506	function mint(address to, uint256 tokenId) public returns (bool) {507		require(false, stub_error);508		to;509		tokenId;510		dummy = 0;511		return false;512	}513514	/// @notice Function to mint token with the given tokenUri.515	/// @dev `tokenId` should be obtained with `nextTokenId` method,516	///  unlike standard, you can't specify it manually517	/// @param to The new owner518	/// @param tokenId ID of the minted RFT519	/// @param tokenUri Token URI that would be stored in the RFT properties520	/// @dev EVM selector for this function is: 0x50bb4e7f,521	///  or in textual repr: mintWithTokenURI(address,uint256,string)522	function mintWithTokenURI(523		address to,524		uint256 tokenId,525		string memory tokenUri526	) public returns (bool) {527		require(false, stub_error);528		to;529		tokenId;530		tokenUri;531		dummy = 0;532		return false;533	}534535	/// @dev Not implemented536	/// @dev EVM selector for this function is: 0x7d64bcb4,537	///  or in textual repr: finishMinting()538	function finishMinting() public returns (bool) {539		require(false, stub_error);540		dummy = 0;541		return false;542	}543}544545/// @title Unique extensions for ERC721.546/// @dev the ERC-165 identifier for this interface is 0x7c3bef89547contract ERC721UniqueExtensions is Dummy, ERC165 {548	/// @notice Transfer ownership of an RFT549	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`550	///  is the zero address. Throws if `tokenId` is not a valid RFT.551	///  Throws if RFT pieces have multiple owners.552	/// @param to The new owner553	/// @param tokenId The RFT to transfer554	/// @dev EVM selector for this function is: 0xa9059cbb,555	///  or in textual repr: transfer(address,uint256)556	function transfer(address to, uint256 tokenId) public {557		require(false, stub_error);558		to;559		tokenId;560		dummy = 0;561	}562563	/// @notice Burns a specific ERC721 token.564	/// @dev Throws unless `msg.sender` is the current owner or an authorized565	///  operator for this RFT. Throws if `from` is not the current owner. Throws566	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.567	///  Throws if RFT pieces have multiple owners.568	/// @param from The current owner of the RFT569	/// @param tokenId The RFT to transfer570	/// @dev EVM selector for this function is: 0x79cc6790,571	///  or in textual repr: burnFrom(address,uint256)572	function burnFrom(address from, uint256 tokenId) public {573		require(false, stub_error);574		from;575		tokenId;576		dummy = 0;577	}578579	/// @notice Returns next free RFT ID.580	/// @dev EVM selector for this function is: 0x75794a3c,581	///  or in textual repr: nextTokenId()582	function nextTokenId() public view returns (uint256) {583		require(false, stub_error);584		dummy;585		return 0;586	}587588	/// @notice Function to mint multiple tokens.589	/// @dev `tokenIds` should be an array of consecutive numbers and first number590	///  should be obtained with `nextTokenId` method591	/// @param to The new owner592	/// @param tokenIds IDs of the minted RFTs593	/// @dev EVM selector for this function is: 0x44a9945e,594	///  or in textual repr: mintBulk(address,uint256[])595	function mintBulk(address to, uint256[] memory tokenIds) public returns (bool) {596		require(false, stub_error);597		to;598		tokenIds;599		dummy = 0;600		return false;601	}602603	/// @notice Function to mint multiple tokens with the given tokenUris.604	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive605	///  numbers and first number should be obtained with `nextTokenId` method606	/// @param to The new owner607	/// @param tokens array of pairs of token ID and token URI for minted tokens608	/// @dev EVM selector for this function is: 0x36543006,609	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])610	function mintBulkWithTokenURI(address to, Tuple8[] memory tokens) public returns (bool) {611		require(false, stub_error);612		to;613		tokens;614		dummy = 0;615		return false;616	}617618	/// Returns EVM address for refungible token619	///620	/// @param token ID of the token621	/// @dev EVM selector for this function is: 0xab76fac6,622	///  or in textual repr: tokenContractAddress(uint256)623	function tokenContractAddress(uint256 token) public view returns (address) {624		require(false, stub_error);625		token;626		dummy;627		return 0x0000000000000000000000000000000000000000;628	}629}630631/// @dev anonymous struct632struct Tuple8 {633	uint256 field_0;634	string field_1;635}636637/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension638/// @dev See https://eips.ethereum.org/EIPS/eip-721639/// @dev the ERC-165 identifier for this interface is 0x780e9d63640contract ERC721Enumerable is Dummy, ERC165 {641	/// @notice Enumerate valid RFTs642	/// @param index A counter less than `totalSupply()`643	/// @return The token identifier for the `index`th NFT,644	///  (sort order not specified)645	/// @dev EVM selector for this function is: 0x4f6ccce7,646	///  or in textual repr: tokenByIndex(uint256)647	function tokenByIndex(uint256 index) public view returns (uint256) {648		require(false, stub_error);649		index;650		dummy;651		return 0;652	}653654	/// Not implemented655	/// @dev EVM selector for this function is: 0x2f745c59,656	///  or in textual repr: tokenOfOwnerByIndex(address,uint256)657	function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {658		require(false, stub_error);659		owner;660		index;661		dummy;662		return 0;663	}664665	/// @notice Count RFTs tracked by this contract666	/// @return A count of valid RFTs tracked by this contract, where each one of667	///  them has an assigned and queryable owner not equal to the zero address668	/// @dev EVM selector for this function is: 0x18160ddd,669	///  or in textual repr: totalSupply()670	function totalSupply() public view returns (uint256) {671		require(false, stub_error);672		dummy;673		return 0;674	}675}676677/// @dev the ERC-165 identifier for this interface is 0x5b5e139f678contract ERC721Metadata is Dummy, ERC165 {679	/// @notice A descriptive name for a collection of RFTs in this contract680	/// @dev EVM selector for this function is: 0x06fdde03,681	///  or in textual repr: name()682	function name() public view returns (string memory) {683		require(false, stub_error);684		dummy;685		return "";686	}687688	/// @notice An abbreviated name for RFTs in this contract689	/// @dev EVM selector for this function is: 0x95d89b41,690	///  or in textual repr: symbol()691	function symbol() public view returns (string memory) {692		require(false, stub_error);693		dummy;694		return "";695	}696697	/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.698	///699	/// @dev If the token has a `url` property and it is not empty, it is returned.700	///  Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`.701	///  If the collection property `baseURI` is empty or absent, return "" (empty string)702	///  otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix703	///  otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).704	///705	/// @return token's const_metadata706	/// @dev EVM selector for this function is: 0xc87b56dd,707	///  or in textual repr: tokenURI(uint256)708	function tokenURI(uint256 tokenId) public view returns (string memory) {709		require(false, stub_error);710		tokenId;711		dummy;712		return "";713	}714}715716/// @dev inlined interface717contract ERC721Events {718	event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);719	event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);720	event ApprovalForAll(address indexed owner, address indexed operator, bool approved);721}722723/// @title ERC-721 Non-Fungible Token Standard724/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md725/// @dev the ERC-165 identifier for this interface is 0x58800161726contract ERC721 is Dummy, ERC165, ERC721Events {727	/// @notice Count all RFTs assigned to an owner728	/// @dev RFTs assigned to the zero address are considered invalid, and this729	///  function throws for queries about the zero address.730	/// @param owner An address for whom to query the balance731	/// @return The number of RFTs owned by `owner`, possibly zero732	/// @dev EVM selector for this function is: 0x70a08231,733	///  or in textual repr: balanceOf(address)734	function balanceOf(address owner) public view returns (uint256) {735		require(false, stub_error);736		owner;737		dummy;738		return 0;739	}740741	/// @notice Find the owner of an RFT742	/// @dev RFTs assigned to zero address are considered invalid, and queries743	///  about them do throw.744	///  Returns special 0xffffffffffffffffffffffffffffffffffffffff address for745	///  the tokens that are partially owned.746	/// @param tokenId The identifier for an RFT747	/// @return The address of the owner of the RFT748	/// @dev EVM selector for this function is: 0x6352211e,749	///  or in textual repr: ownerOf(uint256)750	function ownerOf(uint256 tokenId) public view returns (address) {751		require(false, stub_error);752		tokenId;753		dummy;754		return 0x0000000000000000000000000000000000000000;755	}756757	/// @dev Not implemented758	/// @dev EVM selector for this function is: 0x60a11672,759	///  or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)760	function safeTransferFromWithData(761		address from,762		address to,763		uint256 tokenId,764		bytes memory data765	) public {766		require(false, stub_error);767		from;768		to;769		tokenId;770		data;771		dummy = 0;772	}773774	/// @dev Not implemented775	/// @dev EVM selector for this function is: 0x42842e0e,776	///  or in textual repr: safeTransferFrom(address,address,uint256)777	function safeTransferFrom(778		address from,779		address to,780		uint256 tokenId781	) public {782		require(false, stub_error);783		from;784		to;785		tokenId;786		dummy = 0;787	}788789	/// @notice Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE790	///  TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE791	///  THEY MAY BE PERMANENTLY LOST792	/// @dev Throws unless `msg.sender` is the current owner or an authorized793	///  operator for this RFT. Throws if `from` is not the current owner. Throws794	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.795	///  Throws if RFT pieces have multiple owners.796	/// @param from The current owner of the NFT797	/// @param to The new owner798	/// @param tokenId The NFT to transfer799	/// @dev EVM selector for this function is: 0x23b872dd,800	///  or in textual repr: transferFrom(address,address,uint256)801	function transferFrom(802		address from,803		address to,804		uint256 tokenId805	) public {806		require(false, stub_error);807		from;808		to;809		tokenId;810		dummy = 0;811	}812813	/// @dev Not implemented814	/// @dev EVM selector for this function is: 0x095ea7b3,815	///  or in textual repr: approve(address,uint256)816	function approve(address approved, uint256 tokenId) public {817		require(false, stub_error);818		approved;819		tokenId;820		dummy = 0;821	}822823	/// @dev Not implemented824	/// @dev EVM selector for this function is: 0xa22cb465,825	///  or in textual repr: setApprovalForAll(address,bool)826	function setApprovalForAll(address operator, bool approved) public {827		require(false, stub_error);828		operator;829		approved;830		dummy = 0;831	}832833	/// @dev Not implemented834	/// @dev EVM selector for this function is: 0x081812fc,835	///  or in textual repr: getApproved(uint256)836	function getApproved(uint256 tokenId) public view returns (address) {837		require(false, stub_error);838		tokenId;839		dummy;840		return 0x0000000000000000000000000000000000000000;841	}842843	/// @dev Not implemented844	/// @dev EVM selector for this function is: 0xe985e9c5,845	///  or in textual repr: isApprovedForAll(address,address)846	function isApprovedForAll(address owner, address operator) public view returns (address) {847		require(false, stub_error);848		owner;849		operator;850		dummy;851		return 0x0000000000000000000000000000000000000000;852	}853}854855contract UniqueRefungible is856	Dummy,857	ERC165,858	ERC721,859	ERC721Metadata,860	ERC721Enumerable,861	ERC721UniqueExtensions,862	ERC721Mintable,863	ERC721Burnable,864	Collection,865	TokenProperties866{}
after · pallets/refungible/src/stubs/UniqueRefungible.sol
1// SPDX-License-Identifier: OTHER2// This code is automatically generated34pragma solidity >=0.8.0 <0.9.0;56/// @dev common stubs holder7contract Dummy {8	uint8 dummy;9	string stub_error = "this contract is implemented in native";10}1112contract ERC165 is Dummy {13	function supportsInterface(bytes4 interfaceID) external view returns (bool) {14		require(false, stub_error);15		interfaceID;16		return true;17	}18}1920/// @title A contract that allows to set and delete token properties and change token property permissions.21/// @dev the ERC-165 identifier for this interface is 0x4136937722contract TokenProperties is Dummy, ERC165 {23	/// @notice Set permissions for token property.24	/// @dev Throws error if `msg.sender` is not admin or owner of the collection.25	/// @param key Property key.26	/// @param isMutable Permission to mutate property.27	/// @param collectionAdmin Permission to mutate property by collection admin if property is mutable.28	/// @param tokenOwner Permission to mutate property by token owner if property is mutable.29	/// @dev EVM selector for this function is: 0x222d97fa,30	///  or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)31	function setTokenPropertyPermission(32		string memory key,33		bool isMutable,34		bool collectionAdmin,35		bool tokenOwner36	) public {37		require(false, stub_error);38		key;39		isMutable;40		collectionAdmin;41		tokenOwner;42		dummy = 0;43	}4445	/// @notice Set token property value.46	/// @dev Throws error if `msg.sender` has no permission to edit the property.47	/// @param tokenId ID of the token.48	/// @param key Property key.49	/// @param value Property value.50	/// @dev EVM selector for this function is: 0x1752d67b,51	///  or in textual repr: setProperty(uint256,string,bytes)52	function setProperty(53		uint256 tokenId,54		string memory key,55		bytes memory value56	) public {57		require(false, stub_error);58		tokenId;59		key;60		value;61		dummy = 0;62	}6364	/// @notice Delete token property value.65	/// @dev Throws error if `msg.sender` has no permission to edit the property.66	/// @param tokenId ID of the token.67	/// @param key Property key.68	/// @dev EVM selector for this function is: 0x066111d1,69	///  or in textual repr: deleteProperty(uint256,string)70	function deleteProperty(uint256 tokenId, string memory key) public {71		require(false, stub_error);72		tokenId;73		key;74		dummy = 0;75	}7677	/// @notice Get token property value.78	/// @dev Throws error if key not found79	/// @param tokenId ID of the token.80	/// @param key Property key.81	/// @return Property value bytes82	/// @dev EVM selector for this function is: 0x7228c327,83	///  or in textual repr: property(uint256,string)84	function property(uint256 tokenId, string memory key) public view returns (bytes memory) {85		require(false, stub_error);86		tokenId;87		key;88		dummy;89		return hex"";90	}91}9293/// @title A contract that allows you to work with collections.94/// @dev the ERC-165 identifier for this interface is 0x3e1e808395contract Collection is Dummy, ERC165 {96	/// Set collection property.97	///98	/// @param key Property key.99	/// @param value Propery value.100	/// @dev EVM selector for this function is: 0x2f073f66,101	///  or in textual repr: setCollectionProperty(string,bytes)102	function setCollectionProperty(string memory key, bytes memory value) public {103		require(false, stub_error);104		key;105		value;106		dummy = 0;107	}108109	/// Delete collection property.110	///111	/// @param key Property key.112	/// @dev EVM selector for this function is: 0x7b7debce,113	///  or in textual repr: deleteCollectionProperty(string)114	function deleteCollectionProperty(string memory key) public {115		require(false, stub_error);116		key;117		dummy = 0;118	}119120	/// Get collection property.121	///122	/// @dev Throws error if key not found.123	///124	/// @param key Property key.125	/// @return bytes The property corresponding to the key.126	/// @dev EVM selector for this function is: 0xcf24fd6d,127	///  or in textual repr: collectionProperty(string)128	function collectionProperty(string memory key) public view returns (bytes memory) {129		require(false, stub_error);130		key;131		dummy;132		return hex"";133	}134135	/// Set the sponsor of the collection.136	///137	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.138	///139	/// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.140	/// @dev EVM selector for this function is: 0x7623402e,141	///  or in textual repr: setCollectionSponsor(address)142	function setCollectionSponsor(address sponsor) public {143		require(false, stub_error);144		sponsor;145		dummy = 0;146	}147148	/// Whether there is a pending sponsor.149	/// @dev EVM selector for this function is: 0x058ac185,150	///  or in textual repr: hasCollectionPendingSponsor()151	function hasCollectionPendingSponsor() public view returns (bool) {152		require(false, stub_error);153		dummy;154		return false;155	}156157	/// Collection sponsorship confirmation.158	///159	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.160	/// @dev EVM selector for this function is: 0x3c50e97a,161	///  or in textual repr: confirmCollectionSponsorship()162	function confirmCollectionSponsorship() public {163		require(false, stub_error);164		dummy = 0;165	}166167	/// Remove collection sponsor.168	/// @dev EVM selector for this function is: 0x6e0326a3,169	///  or in textual repr: removeCollectionSponsor()170	function removeCollectionSponsor() public {171		require(false, stub_error);172		dummy = 0;173	}174175	/// Get current sponsor.176	///177	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.178	/// @dev EVM selector for this function is: 0x6ec0a9f1,179	///  or in textual repr: collectionSponsor()180	function collectionSponsor() public view returns (Tuple17 memory) {181		require(false, stub_error);182		dummy;183		return Tuple17(0x0000000000000000000000000000000000000000, 0);184	}185186	/// Set limits for the collection.187	/// @dev Throws error if limit not found.188	/// @param limit Name of the limit. Valid names:189	/// 	"accountTokenOwnershipLimit",190	/// 	"sponsoredDataSize",191	/// 	"sponsoredDataRateLimit",192	/// 	"tokenLimit",193	/// 	"sponsorTransferTimeout",194	/// 	"sponsorApproveTimeout"195	/// @param value Value of the limit.196	/// @dev EVM selector for this function is: 0x6a3841db,197	///  or in textual repr: setCollectionLimit(string,uint32)198	function setCollectionLimit(string memory limit, uint32 value) public {199		require(false, stub_error);200		limit;201		value;202		dummy = 0;203	}204205	/// Set limits for the collection.206	/// @dev Throws error if limit not found.207	/// @param limit Name of the limit. Valid names:208	/// 	"ownerCanTransfer",209	/// 	"ownerCanDestroy",210	/// 	"transfersEnabled"211	/// @param value Value of the limit.212	/// @dev EVM selector for this function is: 0x993b7fba,213	///  or in textual repr: setCollectionLimit(string,bool)214	function setCollectionLimit(string memory limit, bool value) public {215		require(false, stub_error);216		limit;217		value;218		dummy = 0;219	}220221	/// Get contract address.222	/// @dev EVM selector for this function is: 0xf6b4dfb4,223	///  or in textual repr: contractAddress()224	function contractAddress() public view returns (address) {225		require(false, stub_error);226		dummy;227		return 0x0000000000000000000000000000000000000000;228	}229230	/// Add collection admin.231	/// @param newAdmin Address of the added administrator.232	/// @dev EVM selector for this function is: 0x92e462c7,233	///  or in textual repr: addCollectionAdmin(address)234	function addCollectionAdmin(address newAdmin) public {235		require(false, stub_error);236		newAdmin;237		dummy = 0;238	}239240	/// Remove collection admin.241	///242	/// @param admin Address of the removed administrator.243	/// @dev EVM selector for this function is: 0xfafd7b42,244	///  or in textual repr: removeCollectionAdmin(address)245	function removeCollectionAdmin(address admin) public {246		require(false, stub_error);247		admin;248		dummy = 0;249	}250251	/// Toggle accessibility of collection nesting.252	///253	/// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'254	/// @dev EVM selector for this function is: 0x112d4586,255	///  or in textual repr: setCollectionNesting(bool)256	function setCollectionNesting(bool enable) public {257		require(false, stub_error);258		enable;259		dummy = 0;260	}261262	/// Toggle accessibility of collection nesting.263	///264	/// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'265	/// @param collections Addresses of collections that will be available for nesting.266	/// @dev EVM selector for this function is: 0x64872396,267	///  or in textual repr: setCollectionNesting(bool,address[])268	function setCollectionNesting(bool enable, address[] memory collections) public {269		require(false, stub_error);270		enable;271		collections;272		dummy = 0;273	}274275	/// Set the collection access method.276	/// @param mode Access mode277	/// 	0 for Normal278	/// 	1 for AllowList279	/// @dev EVM selector for this function is: 0x41835d4c,280	///  or in textual repr: setCollectionAccess(uint8)281	function setCollectionAccess(uint8 mode) public {282		require(false, stub_error);283		mode;284		dummy = 0;285	}286287	/// Checks that user allowed to operate with collection.288	///289	/// @param user User address to check.290	/// @dev EVM selector for this function is: 0xd63a8e11,291	///  or in textual repr: allowed(address)292	function allowed(address user) public view returns (bool) {293		require(false, stub_error);294		user;295		dummy;296		return false;297	}298299	/// Add the user to the allowed list.300	///301	/// @param user Address of a trusted user.302	/// @dev EVM selector for this function is: 0x67844fe6,303	///  or in textual repr: addToCollectionAllowList(address)304	function addToCollectionAllowList(address user) public {305		require(false, stub_error);306		user;307		dummy = 0;308	}309310	/// Remove the user from the allowed list.311	///312	/// @param user Address of a removed user.313	/// @dev EVM selector for this function is: 0x85c51acb,314	///  or in textual repr: removeFromCollectionAllowList(address)315	function removeFromCollectionAllowList(address user) public {316		require(false, stub_error);317		user;318		dummy = 0;319	}320321	/// Switch permission for minting.322	///323	/// @param mode Enable if "true".324	/// @dev EVM selector for this function is: 0x00018e84,325	///  or in textual repr: setCollectionMintMode(bool)326	function setCollectionMintMode(bool mode) public {327		require(false, stub_error);328		mode;329		dummy = 0;330	}331332	/// Check that account is the owner or admin of the collection333	///334	/// @param user account to verify335	/// @return "true" if account is the owner or admin336	/// @dev EVM selector for this function is: 0x9811b0c7,337	///  or in textual repr: isOwnerOrAdmin(address)338	function isOwnerOrAdmin(address user) public view returns (bool) {339		require(false, stub_error);340		user;341		dummy;342		return false;343	}344345	/// Returns collection type346	///347	/// @return `Fungible` or `NFT` or `ReFungible`348	/// @dev EVM selector for this function is: 0xd34b55b8,349	///  or in textual repr: uniqueCollectionType()350	function uniqueCollectionType() public view returns (string memory) {351		require(false, stub_error);352		dummy;353		return "";354	}355356	/// Get collection owner.357	///358	/// @return Tuble with sponsor address and his substrate mirror.359	/// If address is canonical then substrate mirror is zero and vice versa.360	/// @dev EVM selector for this function is: 0xdf727d3b,361	///  or in textual repr: collectionOwner()362	function collectionOwner() public view returns (Tuple17 memory) {363		require(false, stub_error);364		dummy;365		return Tuple17(0x0000000000000000000000000000000000000000, 0);366	}367368	/// Changes collection owner to another account369	///370	/// @dev Owner can be changed only by current owner371	/// @param newOwner new owner account372	/// @dev EVM selector for this function is: 0x13af4035,373	///  or in textual repr: setOwner(address)374	function setOwner(address newOwner) public {375		require(false, stub_error);376		newOwner;377		dummy = 0;378	}379}380381/// @dev anonymous struct382struct Tuple17 {383	address field_0;384	uint256 field_1;385}386387/// @title ERC721 Token that can be irreversibly burned (destroyed).388/// @dev the ERC-165 identifier for this interface is 0x42966c68389contract ERC721Burnable is Dummy, ERC165 {390	/// @notice Burns a specific ERC721 token.391	/// @dev Throws unless `msg.sender` is the current RFT owner, or an authorized392	///  operator of the current owner.393	/// @param tokenId The RFT to approve394	/// @dev EVM selector for this function is: 0x42966c68,395	///  or in textual repr: burn(uint256)396	function burn(uint256 tokenId) public {397		require(false, stub_error);398		tokenId;399		dummy = 0;400	}401}402403/// @dev inlined interface404contract ERC721MintableEvents {405	event MintingFinished();406}407408/// @title ERC721 minting logic.409/// @dev the ERC-165 identifier for this interface is 0x68ccfe89410contract ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {411	/// @dev EVM selector for this function is: 0x05d2035b,412	///  or in textual repr: mintingFinished()413	function mintingFinished() public view returns (bool) {414		require(false, stub_error);415		dummy;416		return false;417	}418419	/// @notice Function to mint token.420	/// @dev `tokenId` should be obtained with `nextTokenId` method,421	///  unlike standard, you can't specify it manually422	/// @param to The new owner423	/// @param tokenId ID of the minted RFT424	/// @dev EVM selector for this function is: 0x40c10f19,425	///  or in textual repr: mint(address,uint256)426	function mint(address to, uint256 tokenId) public returns (bool) {427		require(false, stub_error);428		to;429		tokenId;430		dummy = 0;431		return false;432	}433434	/// @notice Function to mint token with the given tokenUri.435	/// @dev `tokenId` should be obtained with `nextTokenId` method,436	///  unlike standard, you can't specify it manually437	/// @param to The new owner438	/// @param tokenId ID of the minted RFT439	/// @param tokenUri Token URI that would be stored in the RFT properties440	/// @dev EVM selector for this function is: 0x50bb4e7f,441	///  or in textual repr: mintWithTokenURI(address,uint256,string)442	function mintWithTokenURI(443		address to,444		uint256 tokenId,445		string memory tokenUri446	) public returns (bool) {447		require(false, stub_error);448		to;449		tokenId;450		tokenUri;451		dummy = 0;452		return false;453	}454455	/// @dev Not implemented456	/// @dev EVM selector for this function is: 0x7d64bcb4,457	///  or in textual repr: finishMinting()458	function finishMinting() public returns (bool) {459		require(false, stub_error);460		dummy = 0;461		return false;462	}463}464465/// @title Unique extensions for ERC721.466/// @dev the ERC-165 identifier for this interface is 0x7c3bef89467contract ERC721UniqueExtensions is Dummy, ERC165 {468	/// @notice Transfer ownership of an RFT469	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`470	///  is the zero address. Throws if `tokenId` is not a valid RFT.471	///  Throws if RFT pieces have multiple owners.472	/// @param to The new owner473	/// @param tokenId The RFT to transfer474	/// @dev EVM selector for this function is: 0xa9059cbb,475	///  or in textual repr: transfer(address,uint256)476	function transfer(address to, uint256 tokenId) public {477		require(false, stub_error);478		to;479		tokenId;480		dummy = 0;481	}482483	/// @notice Burns a specific ERC721 token.484	/// @dev Throws unless `msg.sender` is the current owner or an authorized485	///  operator for this RFT. Throws if `from` is not the current owner. Throws486	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.487	///  Throws if RFT pieces have multiple owners.488	/// @param from The current owner of the RFT489	/// @param tokenId The RFT to transfer490	/// @dev EVM selector for this function is: 0x79cc6790,491	///  or in textual repr: burnFrom(address,uint256)492	function burnFrom(address from, uint256 tokenId) public {493		require(false, stub_error);494		from;495		tokenId;496		dummy = 0;497	}498499	/// @notice Returns next free RFT ID.500	/// @dev EVM selector for this function is: 0x75794a3c,501	///  or in textual repr: nextTokenId()502	function nextTokenId() public view returns (uint256) {503		require(false, stub_error);504		dummy;505		return 0;506	}507508	/// @notice Function to mint multiple tokens.509	/// @dev `tokenIds` should be an array of consecutive numbers and first number510	///  should be obtained with `nextTokenId` method511	/// @param to The new owner512	/// @param tokenIds IDs of the minted RFTs513	/// @dev EVM selector for this function is: 0x44a9945e,514	///  or in textual repr: mintBulk(address,uint256[])515	function mintBulk(address to, uint256[] memory tokenIds) public returns (bool) {516		require(false, stub_error);517		to;518		tokenIds;519		dummy = 0;520		return false;521	}522523	/// @notice Function to mint multiple tokens with the given tokenUris.524	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive525	///  numbers and first number should be obtained with `nextTokenId` method526	/// @param to The new owner527	/// @param tokens array of pairs of token ID and token URI for minted tokens528	/// @dev EVM selector for this function is: 0x36543006,529	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])530	function mintBulkWithTokenURI(address to, Tuple8[] memory tokens) public returns (bool) {531		require(false, stub_error);532		to;533		tokens;534		dummy = 0;535		return false;536	}537538	/// Returns EVM address for refungible token539	///540	/// @param token ID of the token541	/// @dev EVM selector for this function is: 0xab76fac6,542	///  or in textual repr: tokenContractAddress(uint256)543	function tokenContractAddress(uint256 token) public view returns (address) {544		require(false, stub_error);545		token;546		dummy;547		return 0x0000000000000000000000000000000000000000;548	}549}550551/// @dev anonymous struct552struct Tuple8 {553	uint256 field_0;554	string field_1;555}556557/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension558/// @dev See https://eips.ethereum.org/EIPS/eip-721559/// @dev the ERC-165 identifier for this interface is 0x780e9d63560contract ERC721Enumerable is Dummy, ERC165 {561	/// @notice Enumerate valid RFTs562	/// @param index A counter less than `totalSupply()`563	/// @return The token identifier for the `index`th NFT,564	///  (sort order not specified)565	/// @dev EVM selector for this function is: 0x4f6ccce7,566	///  or in textual repr: tokenByIndex(uint256)567	function tokenByIndex(uint256 index) public view returns (uint256) {568		require(false, stub_error);569		index;570		dummy;571		return 0;572	}573574	/// Not implemented575	/// @dev EVM selector for this function is: 0x2f745c59,576	///  or in textual repr: tokenOfOwnerByIndex(address,uint256)577	function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {578		require(false, stub_error);579		owner;580		index;581		dummy;582		return 0;583	}584585	/// @notice Count RFTs tracked by this contract586	/// @return A count of valid RFTs tracked by this contract, where each one of587	///  them has an assigned and queryable owner not equal to the zero address588	/// @dev EVM selector for this function is: 0x18160ddd,589	///  or in textual repr: totalSupply()590	function totalSupply() public view returns (uint256) {591		require(false, stub_error);592		dummy;593		return 0;594	}595}596597/// @dev the ERC-165 identifier for this interface is 0x5b5e139f598contract ERC721Metadata is Dummy, ERC165 {599	/// @notice A descriptive name for a collection of RFTs in this contract600	/// @dev EVM selector for this function is: 0x06fdde03,601	///  or in textual repr: name()602	function name() public view returns (string memory) {603		require(false, stub_error);604		dummy;605		return "";606	}607608	/// @notice An abbreviated name for RFTs in this contract609	/// @dev EVM selector for this function is: 0x95d89b41,610	///  or in textual repr: symbol()611	function symbol() public view returns (string memory) {612		require(false, stub_error);613		dummy;614		return "";615	}616617	/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.618	///619	/// @dev If the token has a `url` property and it is not empty, it is returned.620	///  Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`.621	///  If the collection property `baseURI` is empty or absent, return "" (empty string)622	///  otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix623	///  otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).624	///625	/// @return token's const_metadata626	/// @dev EVM selector for this function is: 0xc87b56dd,627	///  or in textual repr: tokenURI(uint256)628	function tokenURI(uint256 tokenId) public view returns (string memory) {629		require(false, stub_error);630		tokenId;631		dummy;632		return "";633	}634}635636/// @dev inlined interface637contract ERC721Events {638	event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);639	event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);640	event ApprovalForAll(address indexed owner, address indexed operator, bool approved);641}642643/// @title ERC-721 Non-Fungible Token Standard644/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md645/// @dev the ERC-165 identifier for this interface is 0x58800161646contract ERC721 is Dummy, ERC165, ERC721Events {647	/// @notice Count all RFTs assigned to an owner648	/// @dev RFTs assigned to the zero address are considered invalid, and this649	///  function throws for queries about the zero address.650	/// @param owner An address for whom to query the balance651	/// @return The number of RFTs owned by `owner`, possibly zero652	/// @dev EVM selector for this function is: 0x70a08231,653	///  or in textual repr: balanceOf(address)654	function balanceOf(address owner) public view returns (uint256) {655		require(false, stub_error);656		owner;657		dummy;658		return 0;659	}660661	/// @notice Find the owner of an RFT662	/// @dev RFTs assigned to zero address are considered invalid, and queries663	///  about them do throw.664	///  Returns special 0xffffffffffffffffffffffffffffffffffffffff address for665	///  the tokens that are partially owned.666	/// @param tokenId The identifier for an RFT667	/// @return The address of the owner of the RFT668	/// @dev EVM selector for this function is: 0x6352211e,669	///  or in textual repr: ownerOf(uint256)670	function ownerOf(uint256 tokenId) public view returns (address) {671		require(false, stub_error);672		tokenId;673		dummy;674		return 0x0000000000000000000000000000000000000000;675	}676677	/// @dev Not implemented678	/// @dev EVM selector for this function is: 0x60a11672,679	///  or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)680	function safeTransferFromWithData(681		address from,682		address to,683		uint256 tokenId,684		bytes memory data685	) public {686		require(false, stub_error);687		from;688		to;689		tokenId;690		data;691		dummy = 0;692	}693694	/// @dev Not implemented695	/// @dev EVM selector for this function is: 0x42842e0e,696	///  or in textual repr: safeTransferFrom(address,address,uint256)697	function safeTransferFrom(698		address from,699		address to,700		uint256 tokenId701	) public {702		require(false, stub_error);703		from;704		to;705		tokenId;706		dummy = 0;707	}708709	/// @notice Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE710	///  TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE711	///  THEY MAY BE PERMANENTLY LOST712	/// @dev Throws unless `msg.sender` is the current owner or an authorized713	///  operator for this RFT. Throws if `from` is not the current owner. Throws714	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.715	///  Throws if RFT pieces have multiple owners.716	/// @param from The current owner of the NFT717	/// @param to The new owner718	/// @param tokenId The NFT to transfer719	/// @dev EVM selector for this function is: 0x23b872dd,720	///  or in textual repr: transferFrom(address,address,uint256)721	function transferFrom(722		address from,723		address to,724		uint256 tokenId725	) public {726		require(false, stub_error);727		from;728		to;729		tokenId;730		dummy = 0;731	}732733	/// @dev Not implemented734	/// @dev EVM selector for this function is: 0x095ea7b3,735	///  or in textual repr: approve(address,uint256)736	function approve(address approved, uint256 tokenId) public {737		require(false, stub_error);738		approved;739		tokenId;740		dummy = 0;741	}742743	/// @dev Not implemented744	/// @dev EVM selector for this function is: 0xa22cb465,745	///  or in textual repr: setApprovalForAll(address,bool)746	function setApprovalForAll(address operator, bool approved) public {747		require(false, stub_error);748		operator;749		approved;750		dummy = 0;751	}752753	/// @dev Not implemented754	/// @dev EVM selector for this function is: 0x081812fc,755	///  or in textual repr: getApproved(uint256)756	function getApproved(uint256 tokenId) public view returns (address) {757		require(false, stub_error);758		tokenId;759		dummy;760		return 0x0000000000000000000000000000000000000000;761	}762763	/// @dev Not implemented764	/// @dev EVM selector for this function is: 0xe985e9c5,765	///  or in textual repr: isApprovedForAll(address,address)766	function isApprovedForAll(address owner, address operator) public view returns (address) {767		require(false, stub_error);768		owner;769		operator;770		dummy;771		return 0x0000000000000000000000000000000000000000;772	}773}774775contract UniqueRefungible is776	Dummy,777	ERC165,778	ERC721,779	ERC721Metadata,780	ERC721Enumerable,781	ERC721UniqueExtensions,782	ERC721Mintable,783	ERC721Burnable,784	Collection,785	TokenProperties786{}
modifiedtests/src/eth/allowlist.test.tsdiffbeforeafterboth
--- a/tests/src/eth/allowlist.test.ts
+++ b/tests/src/eth/allowlist.test.ts
@@ -95,20 +95,21 @@
     expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;
   });
 
-  itEth('Collection allowlist can be added and removed by [sub] address', async ({helper}) => {
-    const owner = await helper.eth.createAccountWithBalance(donor);
-    const user = donor;
+  // TODO: Temprorary off. Need refactor
+  // itEth('Collection allowlist can be added and removed by [sub] address', async ({helper}) => {
+  //   const owner = await helper.eth.createAccountWithBalance(donor);
+  //   const user = donor;
     
-    const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
-    const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+  //   const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
+  //   const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
     
-    expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
-    await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
-    expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
+  //   expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+  //   await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
+  //   expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
     
-    await collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
-    expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
-  });
+  //   await collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
+  //   expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+  // });
 
   itEth('Collection allowlist can not be add and remove [eth] address by not owner', async ({helper}) => {
     const owner = await helper.eth.createAccountWithBalance(donor);
@@ -128,21 +129,22 @@
     expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;
   });
 
-  itEth('Collection allowlist can not be add and remove [sub] address by not owner', async ({helper}) => {
-    const owner = await helper.eth.createAccountWithBalance(donor);
-    const notOwner = await helper.eth.createAccountWithBalance(donor);
-    const user = donor;
+  // TODO: Temprorary off. Need refactor
+  // itEth('Collection allowlist can not be add and remove [sub] address by not owner', async ({helper}) => {
+  //   const owner = await helper.eth.createAccountWithBalance(donor);
+  //   const notOwner = await helper.eth.createAccountWithBalance(donor);
+  //   const user = donor;
     
-    const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
-    const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+  //   const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
+  //   const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
     
-    expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
-    await expect(collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
-    expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
-    await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
+  //   expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+  //   await expect(collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
+  //   expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+  //   await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
     
-    expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
-    await expect(collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
-    expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
-  });
+  //   expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
+  //   await expect(collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
+  //   expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
+  // });
 });
modifiedtests/src/eth/api/UniqueFungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -13,7 +13,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
 interface Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -48,15 +48,6 @@
 	/// @dev EVM selector for this function is: 0x7623402e,
 	///  or in textual repr: setCollectionSponsor(address)
 	function setCollectionSponsor(address sponsor) external;
-
-	/// Set the substrate sponsor of the collection.
-	///
-	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	///
-	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
-	/// @dev EVM selector for this function is: 0xc74d6751,
-	///  or in textual repr: setCollectionSponsorSubstrate(uint256)
-	function setCollectionSponsorSubstrate(uint256 sponsor) external;
 
 	/// Whether there is a pending sponsor.
 	/// @dev EVM selector for this function is: 0x058ac185,
@@ -112,18 +103,6 @@
 	///  or in textual repr: contractAddress()
 	function contractAddress() external view returns (address);
 
-	/// Add collection admin by substrate address.
-	/// @param newAdmin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x5730062b,
-	///  or in textual repr: addCollectionAdminSubstrate(uint256)
-	function addCollectionAdminSubstrate(uint256 newAdmin) external;
-
-	/// Remove collection admin by substrate address.
-	/// @param admin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x4048fcf9,
-	///  or in textual repr: removeCollectionAdminSubstrate(uint256)
-	function removeCollectionAdminSubstrate(uint256 admin) external;
-
 	/// Add collection admin.
 	/// @param newAdmin Address of the added administrator.
 	/// @dev EVM selector for this function is: 0x92e462c7,
@@ -174,13 +153,6 @@
 	///  or in textual repr: addToCollectionAllowList(address)
 	function addToCollectionAllowList(address user) external;
 
-	/// Add substrate user to allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xd06ad267,
-	///  or in textual repr: addToCollectionAllowListSubstrate(uint256)
-	function addToCollectionAllowListSubstrate(uint256 user) external;
-
 	/// Remove the user from the allowed list.
 	///
 	/// @param user Address of a removed user.
@@ -188,13 +160,6 @@
 	///  or in textual repr: removeFromCollectionAllowList(address)
 	function removeFromCollectionAllowList(address user) external;
 
-	/// Remove substrate user from allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xa31913ed,
-	///  or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
-	function removeFromCollectionAllowListSubstrate(uint256 user) external;
-
 	/// Switch permission for minting.
 	///
 	/// @param mode Enable if "true".
@@ -209,14 +174,6 @@
 	/// @dev EVM selector for this function is: 0x9811b0c7,
 	///  or in textual repr: isOwnerOrAdmin(address)
 	function isOwnerOrAdmin(address user) external view returns (bool);
-
-	/// Check that substrate account is the owner or admin of the collection
-	///
-	/// @param user account to verify
-	/// @return "true" if account is the owner or admin
-	/// @dev EVM selector for this function is: 0x68910e00,
-	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)
-	function isOwnerOrAdminSubstrate(uint256 user) external view returns (bool);
 
 	/// Returns collection type
 	///
@@ -240,14 +197,6 @@
 	/// @dev EVM selector for this function is: 0x13af4035,
 	///  or in textual repr: setOwner(address)
 	function setOwner(address newOwner) external;
-
-	/// Changes collection owner to another substrate account
-	///
-	/// @dev Owner can be changed only by current owner
-	/// @param newOwner new owner substrate account
-	/// @dev EVM selector for this function is: 0xb212138f,
-	///  or in textual repr: setOwnerSubstrate(uint256)
-	function setOwnerSubstrate(uint256 newOwner) external;
 }
 
 /// @dev the ERC-165 identifier for this interface is 0x63034ac5
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -62,7 +62,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
 interface Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -97,15 +97,6 @@
 	/// @dev EVM selector for this function is: 0x7623402e,
 	///  or in textual repr: setCollectionSponsor(address)
 	function setCollectionSponsor(address sponsor) external;
-
-	/// Set the substrate sponsor of the collection.
-	///
-	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	///
-	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
-	/// @dev EVM selector for this function is: 0xc74d6751,
-	///  or in textual repr: setCollectionSponsorSubstrate(uint256)
-	function setCollectionSponsorSubstrate(uint256 sponsor) external;
 
 	/// Whether there is a pending sponsor.
 	/// @dev EVM selector for this function is: 0x058ac185,
@@ -161,18 +152,6 @@
 	///  or in textual repr: contractAddress()
 	function contractAddress() external view returns (address);
 
-	/// Add collection admin by substrate address.
-	/// @param newAdmin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x5730062b,
-	///  or in textual repr: addCollectionAdminSubstrate(uint256)
-	function addCollectionAdminSubstrate(uint256 newAdmin) external;
-
-	/// Remove collection admin by substrate address.
-	/// @param admin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x4048fcf9,
-	///  or in textual repr: removeCollectionAdminSubstrate(uint256)
-	function removeCollectionAdminSubstrate(uint256 admin) external;
-
 	/// Add collection admin.
 	/// @param newAdmin Address of the added administrator.
 	/// @dev EVM selector for this function is: 0x92e462c7,
@@ -223,13 +202,6 @@
 	///  or in textual repr: addToCollectionAllowList(address)
 	function addToCollectionAllowList(address user) external;
 
-	/// Add substrate user to allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xd06ad267,
-	///  or in textual repr: addToCollectionAllowListSubstrate(uint256)
-	function addToCollectionAllowListSubstrate(uint256 user) external;
-
 	/// Remove the user from the allowed list.
 	///
 	/// @param user Address of a removed user.
@@ -237,13 +209,6 @@
 	///  or in textual repr: removeFromCollectionAllowList(address)
 	function removeFromCollectionAllowList(address user) external;
 
-	/// Remove substrate user from allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xa31913ed,
-	///  or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
-	function removeFromCollectionAllowListSubstrate(uint256 user) external;
-
 	/// Switch permission for minting.
 	///
 	/// @param mode Enable if "true".
@@ -258,14 +223,6 @@
 	/// @dev EVM selector for this function is: 0x9811b0c7,
 	///  or in textual repr: isOwnerOrAdmin(address)
 	function isOwnerOrAdmin(address user) external view returns (bool);
-
-	/// Check that substrate account is the owner or admin of the collection
-	///
-	/// @param user account to verify
-	/// @return "true" if account is the owner or admin
-	/// @dev EVM selector for this function is: 0x68910e00,
-	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)
-	function isOwnerOrAdminSubstrate(uint256 user) external view returns (bool);
 
 	/// Returns collection type
 	///
@@ -289,14 +246,6 @@
 	/// @dev EVM selector for this function is: 0x13af4035,
 	///  or in textual repr: setOwner(address)
 	function setOwner(address newOwner) external;
-
-	/// Changes collection owner to another substrate account
-	///
-	/// @dev Owner can be changed only by current owner
-	/// @param newOwner new owner substrate account
-	/// @dev EVM selector for this function is: 0xb212138f,
-	///  or in textual repr: setOwnerSubstrate(uint256)
-	function setOwnerSubstrate(uint256 newOwner) external;
 }
 
 /// @dev anonymous struct
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -62,7 +62,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
 interface Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -97,15 +97,6 @@
 	/// @dev EVM selector for this function is: 0x7623402e,
 	///  or in textual repr: setCollectionSponsor(address)
 	function setCollectionSponsor(address sponsor) external;
-
-	/// Set the substrate sponsor of the collection.
-	///
-	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	///
-	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
-	/// @dev EVM selector for this function is: 0xc74d6751,
-	///  or in textual repr: setCollectionSponsorSubstrate(uint256)
-	function setCollectionSponsorSubstrate(uint256 sponsor) external;
 
 	/// Whether there is a pending sponsor.
 	/// @dev EVM selector for this function is: 0x058ac185,
@@ -161,18 +152,6 @@
 	///  or in textual repr: contractAddress()
 	function contractAddress() external view returns (address);
 
-	/// Add collection admin by substrate address.
-	/// @param newAdmin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x5730062b,
-	///  or in textual repr: addCollectionAdminSubstrate(uint256)
-	function addCollectionAdminSubstrate(uint256 newAdmin) external;
-
-	/// Remove collection admin by substrate address.
-	/// @param admin Substrate administrator address.
-	/// @dev EVM selector for this function is: 0x4048fcf9,
-	///  or in textual repr: removeCollectionAdminSubstrate(uint256)
-	function removeCollectionAdminSubstrate(uint256 admin) external;
-
 	/// Add collection admin.
 	/// @param newAdmin Address of the added administrator.
 	/// @dev EVM selector for this function is: 0x92e462c7,
@@ -223,13 +202,6 @@
 	///  or in textual repr: addToCollectionAllowList(address)
 	function addToCollectionAllowList(address user) external;
 
-	/// Add substrate user to allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xd06ad267,
-	///  or in textual repr: addToCollectionAllowListSubstrate(uint256)
-	function addToCollectionAllowListSubstrate(uint256 user) external;
-
 	/// Remove the user from the allowed list.
 	///
 	/// @param user Address of a removed user.
@@ -237,13 +209,6 @@
 	///  or in textual repr: removeFromCollectionAllowList(address)
 	function removeFromCollectionAllowList(address user) external;
 
-	/// Remove substrate user from allowed list.
-	///
-	/// @param user User substrate address.
-	/// @dev EVM selector for this function is: 0xa31913ed,
-	///  or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
-	function removeFromCollectionAllowListSubstrate(uint256 user) external;
-
 	/// Switch permission for minting.
 	///
 	/// @param mode Enable if "true".
@@ -258,14 +223,6 @@
 	/// @dev EVM selector for this function is: 0x9811b0c7,
 	///  or in textual repr: isOwnerOrAdmin(address)
 	function isOwnerOrAdmin(address user) external view returns (bool);
-
-	/// Check that substrate account is the owner or admin of the collection
-	///
-	/// @param user account to verify
-	/// @return "true" if account is the owner or admin
-	/// @dev EVM selector for this function is: 0x68910e00,
-	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)
-	function isOwnerOrAdminSubstrate(uint256 user) external view returns (bool);
 
 	/// Returns collection type
 	///
@@ -289,14 +246,6 @@
 	/// @dev EVM selector for this function is: 0x13af4035,
 	///  or in textual repr: setOwner(address)
 	function setOwner(address newOwner) external;
-
-	/// Changes collection owner to another substrate account
-	///
-	/// @dev Owner can be changed only by current owner
-	/// @param newOwner new owner substrate account
-	/// @dev EVM selector for this function is: 0xb212138f,
-	///  or in textual repr: setOwnerSubstrate(uint256)
-	function setOwnerSubstrate(uint256 newOwner) external;
 }
 
 /// @dev anonymous struct
modifiedtests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth
--- a/tests/src/eth/collectionAdmin.test.ts
+++ b/tests/src/eth/collectionAdmin.test.ts
@@ -44,23 +44,24 @@
       .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);
+  // TODO: Temprorary off. Need refactor
+  // 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 result = await collectionHelper.methods
+  //     .createNonfungibleCollection('A', 'B', 'C')
+  //     .send();
+  //   const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const newAdmin = privateKeyWrapper('//Alice');
-    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
-    await collectionEvm.methods.addCollectionAdminSubstrate(newAdmin.addressRaw).send();
+  //   const newAdmin = privateKeyWrapper('//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());
-  });
+  //   const adminList = await api.rpc.unique.adminlist(collectionId);
+  //   expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
+  //     .to.be.eq(newAdmin.address.toLocaleLowerCase());
+  // });
   
   itWeb3('Verify owner or admin', async ({api, web3, privateKeyWrapper}) => {
     const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
@@ -121,47 +122,49 @@
     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);
+  // TODO: Temprorary off. Need refactor
+  // 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 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 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 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());
-  });
+  //   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);
+  // TODO: Temprorary off. Need refactor
+  // 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 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 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);
-  });
+  //   const adminList = await api.rpc.unique.adminlist(collectionId);
+  //   expect(adminList.length).to.be.eq(0);
+  // });
 });
 
 describe('Remove collection admins', () => {
@@ -189,28 +192,29 @@
     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);
+  // TODO: Temprorary off. Need refactor
+  // 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 result = await collectionHelper.methods
+  //     .createNonfungibleCollection('A', 'B', 'C')
+  //     .send();
+  //   const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const newAdmin = privateKeyWrapper('//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());
-    }
+  //   const newAdmin = privateKeyWrapper('//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);
-  });
+  //   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);
@@ -264,53 +268,55 @@
     }
   });
 
-  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);
+  // TODO: Temprorary off. Need refactor
+  // 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 result = await collectionHelper.methods
+  //     .createNonfungibleCollection('A', 'B', 'C')
+  //     .send();
+  //   const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const adminSub = privateKeyWrapper('//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();
+  //   const adminSub = privateKeyWrapper('//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');
+  //   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());
-  });
+  //   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);
+  // TODO: Temprorary off. Need refactor
+  // 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 result = await collectionHelper.methods
+  //     .createNonfungibleCollection('A', 'B', 'C')
+  //     .send();
+  //   const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const adminSub = privateKeyWrapper('//Alice');
-    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
-    await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
-    const notAdminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+  //   const adminSub = privateKeyWrapper('//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');
+  //   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());
-  });
+  //   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());
+  // });
 });
 
 describe('Change owner tests', () => {
@@ -361,52 +367,55 @@
 });
 
 describe('Change substrate owner tests', () => {
-  itWeb3('Change owner', async ({api, web3, privateKeyWrapper}) => {
-    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
-    const newOwner = privateKeyWrapper('//Alice');
-    const collectionHelper = evmCollectionHelpers(web3, owner);
-    const result = await collectionHelper.methods
-      .createNonfungibleCollection('A', 'B', 'C')
-      .send();
-    const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
-    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+  // TODO: Temprorary off. Need refactor
+  // itWeb3('Change owner', async ({api, web3, privateKeyWrapper}) => {
+  //   const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+  //   const newOwner = privateKeyWrapper('//Alice');
+  //   const collectionHelper = evmCollectionHelpers(web3, owner);
+  //   const result = await collectionHelper.methods
+  //     .createNonfungibleCollection('A', 'B', 'C')
+  //     .send();
+  //   const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+  //   const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
   
-    expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.true;
-    expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
+  //   expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.true;
+  //   expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
     
-    await collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send();
+  //   await collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send();
   
-    expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.false;
-    expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.true;
-  });
+  //   expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.false;
+  //   expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.true;
+  // });
 
-  itWeb3('change owner call fee', async ({web3, api, privateKeyWrapper}) => {
-    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
-    const newOwner = privateKeyWrapper('//Alice');
-    const collectionHelper = evmCollectionHelpers(web3, owner);
-    const result = await collectionHelper.methods
-      .createNonfungibleCollection('A', 'B', 'C')
-      .send();
-    const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
-    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+  // TODO: Temprorary off. Need refactor
+  // itWeb3('change owner call fee', async ({web3, api, privateKeyWrapper}) => {
+  //   const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+  //   const newOwner = privateKeyWrapper('//Alice');
+  //   const collectionHelper = evmCollectionHelpers(web3, owner);
+  //   const result = await collectionHelper.methods
+  //     .createNonfungibleCollection('A', 'B', 'C')
+  //     .send();
+  //   const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+  //   const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
 
-    const cost = await recordEthFee(api, owner, () => collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send());
-    expect(cost < BigInt(0.2 * Number(UNIQUE)));
-    expect(cost > 0);
-  });
+  //   const cost = await recordEthFee(api, owner, () => collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send());
+  //   expect(cost < BigInt(0.2 * Number(UNIQUE)));
+  //   expect(cost > 0);
+  // });
 
-  itWeb3('(!negative tests!) call setOwner by non owner', async ({api, web3, privateKeyWrapper}) => {
-    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
-    const otherReceiver = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
-    const newOwner = privateKeyWrapper('//Alice');
-    const collectionHelper = evmCollectionHelpers(web3, owner);
-    const result = await collectionHelper.methods
-      .createNonfungibleCollection('A', 'B', 'C')
-      .send();
-    const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
-    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+  // TODO: Temprorary off. Need refactor
+  // itWeb3('(!negative tests!) call setOwner by non owner', async ({api, web3, privateKeyWrapper}) => {
+  //   const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+  //   const otherReceiver = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+  //   const newOwner = privateKeyWrapper('//Alice');
+  //   const collectionHelper = evmCollectionHelpers(web3, owner);
+  //   const result = await collectionHelper.methods
+  //     .createNonfungibleCollection('A', 'B', 'C')
+  //     .send();
+  //   const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+  //   const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
   
-    await expect(collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send({from: otherReceiver})).to.be.rejected;
-    expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
-  });
+  //   await expect(collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send({from: otherReceiver})).to.be.rejected;
+  //   expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
+  // });
 });
\ No newline at end of file
modifiedtests/src/eth/collectionSponsoring.test.tsdiffbeforeafterboth
--- a/tests/src/eth/collectionSponsoring.test.ts
+++ b/tests/src/eth/collectionSponsoring.test.ts
@@ -40,25 +40,26 @@
     ]);
   });
 
-  itWeb3('Set substrate sponsor', async ({api, web3, privateKeyWrapper}) => {
-    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
-    const collectionHelpers = evmCollectionHelpers(web3, owner);
-    let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();
-    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
-    const sponsor = privateKeyWrapper('//Alice');
-    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+  // TODO: Temprorary off. Need refactor
+  // itWeb3('Set substrate sponsor', async ({api, web3, privateKeyWrapper}) => {
+  //   const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+  //   const collectionHelpers = evmCollectionHelpers(web3, owner);
+  //   let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();
+  //   const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+  //   const sponsor = privateKeyWrapper('//Alice');
+  //   const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
 
-    expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;
-    result = await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});
-    expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;
+  //   expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;
+  //   result = await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});
+  //   expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;
     
-    const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);
-    await submitTransactionAsync(sponsor, confirmTx);
-    expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;
+  //   const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);
+  //   await submitTransactionAsync(sponsor, confirmTx);
+  //   expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;
     
-    const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});
-    expect(bigIntToSub(api, BigInt(sponsorTuple[1]))).to.be.eq(sponsor.address);
-  });
+  //   const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});
+  //   expect(bigIntToSub(api, BigInt(sponsorTuple[1]))).to.be.eq(sponsor.address);
+  // });
 
   itWeb3('Remove sponsor', async ({api, web3, privateKeyWrapper}) => {
     const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
@@ -150,60 +151,61 @@
     }
   });
 
-  itWeb3('Sponsoring collection from substrate address via access list', async ({api, web3, privateKeyWrapper}) => {
-    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
-    const collectionHelpers = evmCollectionHelpers(web3, owner);
-    const result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();
-    const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
-    const sponsor = privateKeyWrapper('//Alice');
-    const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+  // TODO: Temprorary off. Need refactor
+  // itWeb3('Sponsoring collection from substrate address via access list', async ({api, web3, privateKeyWrapper}) => {
+  //   const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+  //   const collectionHelpers = evmCollectionHelpers(web3, owner);
+  //   const result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();
+  //   const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+  //   const sponsor = privateKeyWrapper('//Alice');
+  //   const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
 
-    await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});
+  //   await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});
     
-    const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);
-    await submitTransactionAsync(sponsor, confirmTx);
+  //   const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);
+  //   await submitTransactionAsync(sponsor, confirmTx);
     
-    const user = createEthAccount(web3);
-    const nextTokenId = await collectionEvm.methods.nextTokenId().call();
-    expect(nextTokenId).to.be.equal('1');
+  //   const user = createEthAccount(web3);
+  //   const nextTokenId = await collectionEvm.methods.nextTokenId().call();
+  //   expect(nextTokenId).to.be.equal('1');
 
-    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});
+  //   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});
 
-    const ownerBalanceBefore = await ethBalanceViaSub(api, owner);
-    const sponsorBalanceBefore = (await getBalance(api, [sponsor.address]))[0];
+  //   const ownerBalanceBefore = await ethBalanceViaSub(api, owner);
+  //   const sponsorBalanceBefore = (await getBalance(api, [sponsor.address]))[0];
 
-    {
-      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);
+  //   {
+  //     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,
-          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,
+  //         },
+  //       },
+  //     ]);
 
-      const ownerBalanceAfter = await ethBalanceViaSub(api, owner);
-      const sponsorBalanceAfter = (await getBalance(api, [sponsor.address]))[0];
+  //     const ownerBalanceAfter = await ethBalanceViaSub(api, owner);
+  //     const sponsorBalanceAfter = (await getBalance(api, [sponsor.address]))[0];
 
-      expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
-      expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);
-      expect(sponsorBalanceBefore > sponsorBalanceAfter).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}) => {
     const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
modifiedtests/src/eth/fungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/fungibleAbi.json
+++ b/tests/src/eth/fungibleAbi.json
@@ -60,27 +60,9 @@
   },
   {
     "inputs": [
-      { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
-    ],
-    "name": "addCollectionAdminSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "addToCollectionAllowList",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "addToCollectionAllowListSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
@@ -214,15 +196,6 @@
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "isOwnerOrAdmin",
-    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
-    "stateMutability": "view",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "isOwnerOrAdminSubstrate",
     "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
     "stateMutability": "view",
     "type": "function"
@@ -271,15 +244,6 @@
     "type": "function"
   },
   {
-    "inputs": [
-      { "internalType": "uint256", "name": "admin", "type": "uint256" }
-    ],
-    "name": "removeCollectionAdminSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
     "inputs": [],
     "name": "removeCollectionSponsor",
     "outputs": [],
@@ -291,15 +255,6 @@
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "removeFromCollectionAllowList",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "removeFromCollectionAllowListSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
@@ -380,27 +335,9 @@
   },
   {
     "inputs": [
-      { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
-    ],
-    "name": "setCollectionSponsorSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
       { "internalType": "address", "name": "newOwner", "type": "address" }
     ],
     "name": "setOwner",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
-    ],
-    "name": "setOwnerSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -91,27 +91,9 @@
   },
   {
     "inputs": [
-      { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
-    ],
-    "name": "addCollectionAdminSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "addToCollectionAllowList",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "addToCollectionAllowListSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
@@ -273,15 +255,6 @@
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "isOwnerOrAdmin",
-    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
-    "stateMutability": "view",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "isOwnerOrAdminSubstrate",
     "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
     "stateMutability": "view",
     "type": "function"
@@ -385,15 +358,6 @@
     "type": "function"
   },
   {
-    "inputs": [
-      { "internalType": "uint256", "name": "admin", "type": "uint256" }
-    ],
-    "name": "removeCollectionAdminSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
     "inputs": [],
     "name": "removeCollectionSponsor",
     "outputs": [],
@@ -405,15 +369,6 @@
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "removeFromCollectionAllowList",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "removeFromCollectionAllowListSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
@@ -527,27 +482,9 @@
   },
   {
     "inputs": [
-      { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
-    ],
-    "name": "setCollectionSponsorSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
       { "internalType": "address", "name": "newOwner", "type": "address" }
     ],
     "name": "setOwner",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
-    ],
-    "name": "setOwnerSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
modifiedtests/src/eth/reFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/reFungibleAbi.json
+++ b/tests/src/eth/reFungibleAbi.json
@@ -91,27 +91,9 @@
   },
   {
     "inputs": [
-      { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
-    ],
-    "name": "addCollectionAdminSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "addToCollectionAllowList",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "addToCollectionAllowListSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
@@ -273,15 +255,6 @@
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "isOwnerOrAdmin",
-    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
-    "stateMutability": "view",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "isOwnerOrAdminSubstrate",
     "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
     "stateMutability": "view",
     "type": "function"
@@ -385,15 +358,6 @@
     "type": "function"
   },
   {
-    "inputs": [
-      { "internalType": "uint256", "name": "admin", "type": "uint256" }
-    ],
-    "name": "removeCollectionAdminSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
     "inputs": [],
     "name": "removeCollectionSponsor",
     "outputs": [],
@@ -405,15 +369,6 @@
       { "internalType": "address", "name": "user", "type": "address" }
     ],
     "name": "removeFromCollectionAllowList",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "user", "type": "uint256" }
-    ],
-    "name": "removeFromCollectionAllowListSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
@@ -527,27 +482,9 @@
   },
   {
     "inputs": [
-      { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
-    ],
-    "name": "setCollectionSponsorSubstrate",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
       { "internalType": "address", "name": "newOwner", "type": "address" }
     ],
     "name": "setOwner",
-    "outputs": [],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
-    ],
-    "name": "setOwnerSubstrate",
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"