git.delta.rocks / unique-network / refs/commits / 6b71957232bb

difftreelog

misc: update stubs

Trubnikov Sergey2022-08-25parent: #40371d4.patch.diff
in: master

14 files changed

modifiedpallets/evm-contract-helpers/src/stubs/ContractHelpers.soldiffbeforeafterboth
--- a/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol
+++ b/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol
@@ -21,20 +21,8 @@
 	}
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @title Magic contract, which allows users to reconfigure other contracts
 /// @dev the ERC-165 identifier for this interface is 0xd77fab70
-=======
-<<<<<<< HEAD
-// Selector: 6073d917
-=======
-// Selector: 06fc42e9
->>>>>>> path: add stubs
->>>>>>> path: add stubs
-=======
-// Selector: 6073d917
->>>>>>> misc: update stubs
 contract ContractHelpers is Dummy, ERC165 {
 	/// Get user, which deployed specified contract
 	/// @dev May return zero address in case if contract is deployed
@@ -56,24 +44,11 @@
 		return 0x0000000000000000000000000000000000000000;
 	}
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 	/// Set sponsor.
 	/// @param contractAddress Contract for which a sponsor is being established.
 	/// @param sponsor User address who set as pending sponsor.
 	/// @dev EVM selector for this function is: 0xf01fba93,
 	///  or in textual repr: setSponsor(address,address)
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-	// Set sponsor.
-	//
-	// @param contract_address Contract for which a sponsor is being established.
-	// @param sponsor User address who set as pending sponsor.
-	//
-	// Selector: setSponsor(address,address) f01fba93
->>>>>>> path: add stubs
 	function setSponsor(address contractAddress, address sponsor) public {
 		require(false, stub_error);
 		contractAddress;
@@ -81,46 +56,22 @@
 		dummy = 0;
 	}
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 	/// Set contract as self sponsored.
 	///
 	/// @param contractAddress Contract for which a self sponsoring is being enabled.
 	/// @dev EVM selector for this function is: 0x89f7d9ae,
 	///  or in textual repr: selfSponsoredEnable(address)
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-	// Set contract as self sponsored.
-	//
-	// @param contract_address Contract for which a self sponsoring is being enabled.
-	//
-	// Selector: selfSponsoredEnable(address) 89f7d9ae
->>>>>>> path: add stubs
 	function selfSponsoredEnable(address contractAddress) public {
 		require(false, stub_error);
 		contractAddress;
 		dummy = 0;
 	}
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 	/// Remove sponsor.
 	///
 	/// @param contractAddress Contract for which a sponsorship is being removed.
 	/// @dev EVM selector for this function is: 0xef784250,
 	///  or in textual repr: removeSponsor(address)
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-	// Remove sponsor.
-	//
-	// @param contract_address Contract for which a sponsorship is being removed.
-	//
-	// Selector: removeSponsor(address) ef784250
->>>>>>> path: add stubs
 	function removeSponsor(address contractAddress) public {
 		require(false, stub_error);
 		contractAddress;
@@ -170,25 +121,12 @@
 		return false;
 	}
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 	/// Check tat contract has pending sponsor.
 	///
 	/// @param contractAddress The contract for which the presence of a pending sponsor is checked.
 	/// @return **true** if contract has pending sponsor.
 	/// @dev EVM selector for this function is: 0x39b9b242,
 	///  or in textual repr: hasPendingSponsor(address)
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-	// Check tat contract has pending sponsor.
-	//
-	// @param contract_address The contract for which the presence of a pending sponsor is checked.
-	// @return **true** if contract has pending sponsor.
-	//
-	// Selector: hasPendingSponsor(address) 39b9b242
->>>>>>> path: add stubs
 	function hasPendingSponsor(address contractAddress)
 		public
 		view
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
@@ -3,17 +3,7 @@
 
 pragma solidity >=0.8.0 <0.9.0;
 
-<<<<<<< HEAD
 /// @dev common stubs holder
-=======
-// Anonymous struct
-struct Tuple0 {
-	address field_0;
-	uint256 field_1;
-}
-
-// Common stubs holder
->>>>>>> misk: Update stubs
 contract Dummy {
 	uint8 dummy;
 	string stub_error = "this contract is implemented in native";
@@ -31,125 +21,8 @@
 	}
 }
 
-<<<<<<< HEAD
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0xffe4da23
-=======
-// Inline
-contract ERC20Events {
-	event Transfer(address indexed from, address indexed to, uint256 value);
-	event Approval(
-		address indexed owner,
-		address indexed spender,
-		uint256 value
-	);
-}
-
-// Selector: 79cc6790
-contract ERC20UniqueExtensions is Dummy, ERC165 {
-	// Selector: burnFrom(address,uint256) 79cc6790
-	function burnFrom(address from, uint256 amount) public returns (bool) {
-		require(false, stub_error);
-		from;
-		amount;
-		dummy = 0;
-		return false;
-	}
-}
-
-// Selector: 942e8b22
-contract ERC20 is Dummy, ERC165, ERC20Events {
-	// Selector: name() 06fdde03
-	function name() public view returns (string memory) {
-		require(false, stub_error);
-		dummy;
-		return "";
-	}
-
-	// Selector: symbol() 95d89b41
-	function symbol() public view returns (string memory) {
-		require(false, stub_error);
-		dummy;
-		return "";
-	}
-
-	// Selector: totalSupply() 18160ddd
-	function totalSupply() public view returns (uint256) {
-		require(false, stub_error);
-		dummy;
-		return 0;
-	}
-
-	// Selector: decimals() 313ce567
-	function decimals() public view returns (uint8) {
-		require(false, stub_error);
-		dummy;
-		return 0;
-	}
-
-	// Selector: balanceOf(address) 70a08231
-	function balanceOf(address owner) public view returns (uint256) {
-		require(false, stub_error);
-		owner;
-		dummy;
-		return 0;
-	}
-
-	// Selector: transfer(address,uint256) a9059cbb
-	function transfer(address to, uint256 amount) public returns (bool) {
-		require(false, stub_error);
-		to;
-		amount;
-		dummy = 0;
-		return false;
-	}
-
-	// Selector: transferFrom(address,address,uint256) 23b872dd
-	function transferFrom(
-		address from,
-		address to,
-		uint256 amount
-	) public returns (bool) {
-		require(false, stub_error);
-		from;
-		to;
-		amount;
-		dummy = 0;
-		return false;
-	}
-
-	// Selector: approve(address,uint256) 095ea7b3
-	function approve(address spender, uint256 amount) public returns (bool) {
-		require(false, stub_error);
-		spender;
-		amount;
-		dummy = 0;
-		return false;
-	}
-
-	// Selector: allowance(address,address) dd62ed3e
-	function allowance(address owner, address spender)
-		public
-		view
-		returns (uint256)
-	{
-		require(false, stub_error);
-		owner;
-		spender;
-		dummy;
-		return 0;
-	}
-}
-
-<<<<<<< HEAD
-// Selector: ffe4da23
-=======
-// Selector: 765e2fae
->>>>>>> misk: Update stubs
->>>>>>> misk: Update stubs
-=======
-// Selector: e54be640
->>>>>>> misc: update stubs
+/// @dev the ERC-165 identifier for this interface is 0xe54be640
 contract Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -209,45 +82,56 @@
 		dummy = 0;
 	}
 
-<<<<<<< HEAD
-	/// Collection sponsorship confirmation.
+	/// Set the substrate sponsor of the collection.
+	///
+	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
 	///
-	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.
-	/// @dev EVM selector for this function is: 0x3c50e97a,
-	///  or in textual repr: confirmCollectionSponsorship()
-=======
-	// 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.
-	//
-	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751
+	/// @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;
 	}
 
-	// Selector: hasCollectionPendingSponsor() 058ac185
+	/// @dev EVM selector for this function is: 0x058ac185,
+	///  or in textual repr: hasCollectionPendingSponsor()
 	function hasCollectionPendingSponsor() public view returns (bool) {
 		require(false, stub_error);
 		dummy;
 		return false;
 	}
 
-	// Collection sponsorship confirmation.
-	//
-	// @dev After setting the sponsor for the collection, it must be confirmed with this function.
-	//
-	// Selector: confirmCollectionSponsorship() 3c50e97a
->>>>>>> misk: Update stubs
+	/// Collection sponsorship confirmation.
+	///
+	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.
+	/// @dev EVM selector for this function is: 0x3c50e97a,
+	///  or in textual repr: confirmCollectionSponsorship()
 	function confirmCollectionSponsorship() public {
 		require(false, stub_error);
 		dummy = 0;
 	}
 
-<<<<<<< HEAD
+	/// Remove collection sponsor.
+	/// @dev EVM selector for this function is: 0x6e0326a3,
+	///  or in textual repr: removeCollectionSponsor()
+	function removeCollectionSponsor() public {
+		require(false, stub_error);
+		dummy = 0;
+	}
+
+	/// Get current sponsor.
+	///
+	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
+	/// @dev EVM selector for this function is: 0xb66bbc14,
+	///  or in textual repr: getCollectionSponsor()
+	function getCollectionSponsor() public view returns (Tuple6 memory) {
+		require(false, stub_error);
+		dummy;
+		return Tuple6(0x0000000000000000000000000000000000000000, 0);
+	}
+
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
 	/// @param limit Name of the limit. Valid names:
@@ -260,39 +144,6 @@
 	/// @param value Value of the limit.
 	/// @dev EVM selector for this function is: 0x6a3841db,
 	///  or in textual repr: setCollectionLimit(string,uint32)
-=======
-	// Remove collection sponsor.
-	//
-	// Selector: removeCollectionSponsor() 6e0326a3
-	function removeCollectionSponsor() public {
-		require(false, stub_error);
-		dummy = 0;
-	}
-
-	// Get current sponsor.
-	//
-	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
-	//
-	// Selector: getCollectionSponsor() b66bbc14
-	function getCollectionSponsor() public view returns (Tuple0 memory) {
-		require(false, stub_error);
-		dummy;
-		return Tuple0(0x0000000000000000000000000000000000000000, 0);
-	}
-
-	// Set limits for the collection.
-	// @dev Throws error if limit not found.
-	// @param limit Name of the limit. Valid names:
-	// 	"accountTokenOwnershipLimit",
-	// 	"sponsoredDataSize",
-	// 	"sponsoredDataRateLimit",
-	// 	"tokenLimit",
-	// 	"sponsorTransferTimeout",
-	// 	"sponsorApproveTimeout"
-	// @param value Value of the limit.
-	//
-	// Selector: setCollectionLimit(string,uint32) 6a3841db
->>>>>>> misk: Update stubs
 	function setCollectionLimit(string memory limit, uint32 value) public {
 		require(false, stub_error);
 		limit;
@@ -499,6 +350,12 @@
 	}
 }
 
+/// @dev anonymous struct
+struct Tuple6 {
+	address field_0;
+	uint256 field_1;
+}
+
 /// @dev the ERC-165 identifier for this interface is 0x79cc6790
 contract ERC20UniqueExtensions is Dummy, ERC165 {
 	/// @dev EVM selector for this function is: 0x79cc6790,
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
@@ -3,23 +3,7 @@
 
 pragma solidity >=0.8.0 <0.9.0;
 
-<<<<<<< HEAD
 /// @dev common stubs holder
-=======
-// Anonymous struct
-struct Tuple0 {
-	uint256 field_0;
-	string field_1;
-}
-
-// Anonymous struct
-struct Tuple1 {
-	address field_0;
-	uint256 field_1;
-}
-
-// Common stubs holder
->>>>>>> misk: Update stubs
 contract Dummy {
 	uint8 dummy;
 	string stub_error = "this contract is implemented in native";
@@ -115,7 +99,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0xffe4da23
+/// @dev the ERC-165 identifier for this interface is 0xe54be640
 contract Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -175,6 +159,27 @@
 		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;
+	}
+
+	/// @dev EVM selector for this function is: 0x058ac185,
+	///  or in textual repr: hasCollectionPendingSponsor()
+	function hasCollectionPendingSponsor() public view returns (bool) {
+		require(false, stub_error);
+		dummy;
+		return false;
+	}
+
 	/// Collection sponsorship confirmation.
 	///
 	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.
@@ -185,6 +190,25 @@
 		dummy = 0;
 	}
 
+	/// Remove collection sponsor.
+	/// @dev EVM selector for this function is: 0x6e0326a3,
+	///  or in textual repr: removeCollectionSponsor()
+	function removeCollectionSponsor() public {
+		require(false, stub_error);
+		dummy = 0;
+	}
+
+	/// Get current sponsor.
+	///
+	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
+	/// @dev EVM selector for this function is: 0xb66bbc14,
+	///  or in textual repr: getCollectionSponsor()
+	function getCollectionSponsor() public view returns (Tuple17 memory) {
+		require(false, stub_error);
+		dummy;
+		return Tuple17(0x0000000000000000000000000000000000000000, 0);
+	}
+
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
 	/// @param limit Name of the limit. Valid names:
@@ -403,6 +427,12 @@
 	}
 }
 
+/// @dev anonymous struct
+struct Tuple17 {
+	address field_0;
+	uint256 field_1;
+}
+
 /// @title ERC721 Token that can be irreversibly burned (destroyed).
 /// @dev the ERC-165 identifier for this interface is 0x42966c68
 contract ERC721Burnable is Dummy, ERC165 {
@@ -481,58 +511,8 @@
 	}
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @title Unique extensions for ERC721.
 /// @dev the ERC-165 identifier for this interface is 0xd74d154f
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-// Selector: 780e9d63
-contract ERC721Enumerable is Dummy, ERC165 {
-	// @notice Enumerate valid NFTs
-	// @param index A counter less than `totalSupply()`
-	// @return The token identifier for the `index`th NFT,
-	//  (sort order not specified)
-	//
-	// Selector: tokenByIndex(uint256) 4f6ccce7
-	function tokenByIndex(uint256 index) public view returns (uint256) {
-		require(false, stub_error);
-		index;
-		dummy;
-		return 0;
-	}
-
-	// @dev Not implemented
-	//
-	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
-	function tokenOfOwnerByIndex(address owner, uint256 index)
-		public
-		view
-		returns (uint256)
-	{
-		require(false, stub_error);
-		owner;
-		index;
-		dummy;
-		return 0;
-	}
-
-	// @notice Count NFTs tracked by this contract
-	// @return A count of valid NFTs tracked by this contract, where each one of
-	//  them has an assigned and queryable owner not equal to the zero address
-	//
-	// Selector: totalSupply() 18160ddd
-	function totalSupply() public view returns (uint256) {
-		require(false, stub_error);
-		dummy;
-		return 0;
-	}
-}
-
-// Selector: d74d154f
->>>>>>> misk: Update stubs
 contract ERC721UniqueExtensions is Dummy, ERC165 {
 	/// @notice Transfer ownership of an NFT
 	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -609,37 +589,11 @@
 	}
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @dev anonymous struct
 struct Tuple8 {
 	uint256 field_0;
 	string field_1;
 }
-=======
-// Selector: ffe4da23
-=======
-// Selector: 765e2fae
->>>>>>> misk: Update stubs
-=======
-// Selector: e54be640
->>>>>>> misc: update stubs
-contract Collection is Dummy, ERC165 {
-	// Set collection property.
-	//
-	// @param key Property key.
-	// @param value Propery value.
-	//
-	// Selector: setCollectionProperty(string,bytes) 2f073f66
-	function setCollectionProperty(string memory key, bytes memory value)
-		public
-	{
-		require(false, stub_error);
-		key;
-		value;
-		dummy = 0;
-	}
->>>>>>> misk: Update stubs
 
 /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
 /// @dev See https://eips.ethereum.org/EIPS/eip-721
@@ -670,92 +624,7 @@
 		owner;
 		index;
 		dummy;
-<<<<<<< HEAD
 		return 0;
-=======
-		return hex"";
-	}
-
-	// Set the sponsor of the collection.
-	//
-	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	//
-	// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.
-	//
-	// Selector: setCollectionSponsor(address) 7623402e
-	function setCollectionSponsor(address sponsor) public {
-		require(false, stub_error);
-		sponsor;
-		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.
-	//
-	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751
-	function setCollectionSponsorSubstrate(uint256 sponsor) public {
-		require(false, stub_error);
-		sponsor;
-		dummy = 0;
-	}
-
-	// Selector: hasCollectionPendingSponsor() 058ac185
-	function hasCollectionPendingSponsor() public view returns (bool) {
-		require(false, stub_error);
-		dummy;
-		return false;
-	}
-
-	// Collection sponsorship confirmation.
-	//
-	// @dev After setting the sponsor for the collection, it must be confirmed with this function.
-	//
-	// Selector: confirmCollectionSponsorship() 3c50e97a
-	function confirmCollectionSponsorship() public {
-		require(false, stub_error);
-		dummy = 0;
-	}
-
-	// Remove collection sponsor.
-	//
-	// Selector: removeCollectionSponsor() 6e0326a3
-	function removeCollectionSponsor() public {
-		require(false, stub_error);
-		dummy = 0;
-	}
-
-	// Get current sponsor.
-	//
-	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
-	//
-	// Selector: getCollectionSponsor() b66bbc14
-	function getCollectionSponsor() public view returns (Tuple1 memory) {
-		require(false, stub_error);
-		dummy;
-		return Tuple1(0x0000000000000000000000000000000000000000, 0);
-	}
-
-	// Set limits for the collection.
-	// @dev Throws error if limit not found.
-	// @param limit Name of the limit. Valid names:
-	// 	"accountTokenOwnershipLimit",
-	// 	"sponsoredDataSize",
-	// 	"sponsoredDataRateLimit",
-	// 	"tokenLimit",
-	// 	"sponsorTransferTimeout",
-	// 	"sponsorApproveTimeout"
-	// @param value Value of the limit.
-	//
-	// Selector: setCollectionLimit(string,uint32) 6a3841db
-	function setCollectionLimit(string memory limit, uint32 value) public {
-		require(false, stub_error);
-		limit;
-		value;
-		dummy = 0;
->>>>>>> misk: Update stubs
 	}
 
 	/// @notice Count NFTs tracked by this contract
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<<<<<<< HEAD7/// @dev common stubs holder8=======9// Anonymous struct10struct Tuple0 {11	uint256 field_0;12	string field_1;13}1415// Anonymous struct16struct Tuple1 {17	address field_0;18	uint256 field_1;19}2021// Common stubs holder22>>>>>>> misk: Update stubs23contract Dummy {24	uint8 dummy;25	string stub_error = "this contract is implemented in native";26}2728contract ERC165 is Dummy {29	function supportsInterface(bytes4 interfaceID)30		external31		view32		returns (bool)33	{34		require(false, stub_error);35		interfaceID;36		return true;37	}38}3940/// @title A contract that allows to set and delete token properties and change token property permissions.41/// @dev the ERC-165 identifier for this interface is 0x4136937742contract TokenProperties is Dummy, ERC165 {43	/// @notice Set permissions for token property.44	/// @dev Throws error if `msg.sender` is not admin or owner of the collection.45	/// @param key Property key.46	/// @param isMutable Permission to mutate property.47	/// @param collectionAdmin Permission to mutate property by collection admin if property is mutable.48	/// @param tokenOwner Permission to mutate property by token owner if property is mutable.49	/// @dev EVM selector for this function is: 0x222d97fa,50	///  or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)51	function setTokenPropertyPermission(52		string memory key,53		bool isMutable,54		bool collectionAdmin,55		bool tokenOwner56	) public {57		require(false, stub_error);58		key;59		isMutable;60		collectionAdmin;61		tokenOwner;62		dummy = 0;63	}6465	/// @notice Set token property value.66	/// @dev Throws error if `msg.sender` has no permission to edit the property.67	/// @param tokenId ID of the token.68	/// @param key Property key.69	/// @param value Property value.70	/// @dev EVM selector for this function is: 0x1752d67b,71	///  or in textual repr: setProperty(uint256,string,bytes)72	function setProperty(73		uint256 tokenId,74		string memory key,75		bytes memory value76	) public {77		require(false, stub_error);78		tokenId;79		key;80		value;81		dummy = 0;82	}8384	/// @notice Delete token property value.85	/// @dev Throws error if `msg.sender` has no permission to edit the property.86	/// @param tokenId ID of the token.87	/// @param key Property key.88	/// @dev EVM selector for this function is: 0x066111d1,89	///  or in textual repr: deleteProperty(uint256,string)90	function deleteProperty(uint256 tokenId, string memory key) public {91		require(false, stub_error);92		tokenId;93		key;94		dummy = 0;95	}9697	/// @notice Get token property value.98	/// @dev Throws error if key not found99	/// @param tokenId ID of the token.100	/// @param key Property key.101	/// @return Property value bytes102	/// @dev EVM selector for this function is: 0x7228c327,103	///  or in textual repr: property(uint256,string)104	function property(uint256 tokenId, string memory key)105		public106		view107		returns (bytes memory)108	{109		require(false, stub_error);110		tokenId;111		key;112		dummy;113		return hex"";114	}115}116117/// @title A contract that allows you to work with collections.118/// @dev the ERC-165 identifier for this interface is 0xffe4da23119contract Collection is Dummy, ERC165 {120	/// Set collection property.121	///122	/// @param key Property key.123	/// @param value Propery value.124	/// @dev EVM selector for this function is: 0x2f073f66,125	///  or in textual repr: setCollectionProperty(string,bytes)126	function setCollectionProperty(string memory key, bytes memory value)127		public128	{129		require(false, stub_error);130		key;131		value;132		dummy = 0;133	}134135	/// Delete collection property.136	///137	/// @param key Property key.138	/// @dev EVM selector for this function is: 0x7b7debce,139	///  or in textual repr: deleteCollectionProperty(string)140	function deleteCollectionProperty(string memory key) public {141		require(false, stub_error);142		key;143		dummy = 0;144	}145146	/// Get collection property.147	///148	/// @dev Throws error if key not found.149	///150	/// @param key Property key.151	/// @return bytes The property corresponding to the key.152	/// @dev EVM selector for this function is: 0xcf24fd6d,153	///  or in textual repr: collectionProperty(string)154	function collectionProperty(string memory key)155		public156		view157		returns (bytes memory)158	{159		require(false, stub_error);160		key;161		dummy;162		return hex"";163	}164165	/// Set the sponsor of the collection.166	///167	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.168	///169	/// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.170	/// @dev EVM selector for this function is: 0x7623402e,171	///  or in textual repr: setCollectionSponsor(address)172	function setCollectionSponsor(address sponsor) public {173		require(false, stub_error);174		sponsor;175		dummy = 0;176	}177178	/// Collection sponsorship confirmation.179	///180	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.181	/// @dev EVM selector for this function is: 0x3c50e97a,182	///  or in textual repr: confirmCollectionSponsorship()183	function confirmCollectionSponsorship() public {184		require(false, stub_error);185		dummy = 0;186	}187188	/// Set limits for the collection.189	/// @dev Throws error if limit not found.190	/// @param limit Name of the limit. Valid names:191	/// 	"accountTokenOwnershipLimit",192	/// 	"sponsoredDataSize",193	/// 	"sponsoredDataRateLimit",194	/// 	"tokenLimit",195	/// 	"sponsorTransferTimeout",196	/// 	"sponsorApproveTimeout"197	/// @param value Value of the limit.198	/// @dev EVM selector for this function is: 0x6a3841db,199	///  or in textual repr: setCollectionLimit(string,uint32)200	function setCollectionLimit(string memory limit, uint32 value) public {201		require(false, stub_error);202		limit;203		value;204		dummy = 0;205	}206207	/// Set limits for the collection.208	/// @dev Throws error if limit not found.209	/// @param limit Name of the limit. Valid names:210	/// 	"ownerCanTransfer",211	/// 	"ownerCanDestroy",212	/// 	"transfersEnabled"213	/// @param value Value of the limit.214	/// @dev EVM selector for this function is: 0x993b7fba,215	///  or in textual repr: setCollectionLimit(string,bool)216	function setCollectionLimit(string memory limit, bool value) public {217		require(false, stub_error);218		limit;219		value;220		dummy = 0;221	}222223	/// Get contract address.224	/// @dev EVM selector for this function is: 0xf6b4dfb4,225	///  or in textual repr: contractAddress()226	function contractAddress() public view returns (address) {227		require(false, stub_error);228		dummy;229		return 0x0000000000000000000000000000000000000000;230	}231232	/// Add collection admin by substrate address.233	/// @param newAdmin Substrate administrator address.234	/// @dev EVM selector for this function is: 0x5730062b,235	///  or in textual repr: addCollectionAdminSubstrate(uint256)236	function addCollectionAdminSubstrate(uint256 newAdmin) public {237		require(false, stub_error);238		newAdmin;239		dummy = 0;240	}241242	/// Remove collection admin by substrate address.243	/// @param admin Substrate administrator address.244	/// @dev EVM selector for this function is: 0x4048fcf9,245	///  or in textual repr: removeCollectionAdminSubstrate(uint256)246	function removeCollectionAdminSubstrate(uint256 admin) public {247		require(false, stub_error);248		admin;249		dummy = 0;250	}251252	/// Add collection admin.253	/// @param newAdmin Address of the added administrator.254	/// @dev EVM selector for this function is: 0x92e462c7,255	///  or in textual repr: addCollectionAdmin(address)256	function addCollectionAdmin(address newAdmin) public {257		require(false, stub_error);258		newAdmin;259		dummy = 0;260	}261262	/// Remove collection admin.263	///264	/// @param admin Address of the removed administrator.265	/// @dev EVM selector for this function is: 0xfafd7b42,266	///  or in textual repr: removeCollectionAdmin(address)267	function removeCollectionAdmin(address admin) public {268		require(false, stub_error);269		admin;270		dummy = 0;271	}272273	/// Toggle accessibility of collection nesting.274	///275	/// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'276	/// @dev EVM selector for this function is: 0x112d4586,277	///  or in textual repr: setCollectionNesting(bool)278	function setCollectionNesting(bool enable) public {279		require(false, stub_error);280		enable;281		dummy = 0;282	}283284	/// Toggle accessibility of collection nesting.285	///286	/// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'287	/// @param collections Addresses of collections that will be available for nesting.288	/// @dev EVM selector for this function is: 0x64872396,289	///  or in textual repr: setCollectionNesting(bool,address[])290	function setCollectionNesting(bool enable, address[] memory collections)291		public292	{293		require(false, stub_error);294		enable;295		collections;296		dummy = 0;297	}298299	/// Set the collection access method.300	/// @param mode Access mode301	/// 	0 for Normal302	/// 	1 for AllowList303	/// @dev EVM selector for this function is: 0x41835d4c,304	///  or in textual repr: setCollectionAccess(uint8)305	function setCollectionAccess(uint8 mode) public {306		require(false, stub_error);307		mode;308		dummy = 0;309	}310311	/// Add the user to the allowed list.312	///313	/// @param user Address of a trusted user.314	/// @dev EVM selector for this function is: 0x67844fe6,315	///  or in textual repr: addToCollectionAllowList(address)316	function addToCollectionAllowList(address user) public {317		require(false, stub_error);318		user;319		dummy = 0;320	}321322	/// Remove the user from the allowed list.323	///324	/// @param user Address of a removed user.325	/// @dev EVM selector for this function is: 0x85c51acb,326	///  or in textual repr: removeFromCollectionAllowList(address)327	function removeFromCollectionAllowList(address user) public {328		require(false, stub_error);329		user;330		dummy = 0;331	}332333	/// Switch permission for minting.334	///335	/// @param mode Enable if "true".336	/// @dev EVM selector for this function is: 0x00018e84,337	///  or in textual repr: setCollectionMintMode(bool)338	function setCollectionMintMode(bool mode) public {339		require(false, stub_error);340		mode;341		dummy = 0;342	}343344	/// Check that account is the owner or admin of the collection345	///346	/// @param user account to verify347	/// @return "true" if account is the owner or admin348	/// @dev EVM selector for this function is: 0x9811b0c7,349	///  or in textual repr: isOwnerOrAdmin(address)350	function isOwnerOrAdmin(address user) public view returns (bool) {351		require(false, stub_error);352		user;353		dummy;354		return false;355	}356357	/// Check that substrate account is the owner or admin of the collection358	///359	/// @param user account to verify360	/// @return "true" if account is the owner or admin361	/// @dev EVM selector for this function is: 0x68910e00,362	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)363	function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {364		require(false, stub_error);365		user;366		dummy;367		return false;368	}369370	/// Returns collection type371	///372	/// @return `Fungible` or `NFT` or `ReFungible`373	/// @dev EVM selector for this function is: 0xd34b55b8,374	///  or in textual repr: uniqueCollectionType()375	function uniqueCollectionType() public returns (string memory) {376		require(false, stub_error);377		dummy = 0;378		return "";379	}380381	/// Changes collection owner to another account382	///383	/// @dev Owner can be changed only by current owner384	/// @param newOwner new owner account385	/// @dev EVM selector for this function is: 0x13af4035,386	///  or in textual repr: setOwner(address)387	function setOwner(address newOwner) public {388		require(false, stub_error);389		newOwner;390		dummy = 0;391	}392393	/// Changes collection owner to another substrate account394	///395	/// @dev Owner can be changed only by current owner396	/// @param newOwner new owner substrate account397	/// @dev EVM selector for this function is: 0xb212138f,398	///  or in textual repr: setOwnerSubstrate(uint256)399	function setOwnerSubstrate(uint256 newOwner) public {400		require(false, stub_error);401		newOwner;402		dummy = 0;403	}404}405406/// @title ERC721 Token that can be irreversibly burned (destroyed).407/// @dev the ERC-165 identifier for this interface is 0x42966c68408contract ERC721Burnable is Dummy, ERC165 {409	/// @notice Burns a specific ERC721 token.410	/// @dev Throws unless `msg.sender` is the current RFT owner, or an authorized411	///  operator of the current owner.412	/// @param tokenId The RFT to approve413	/// @dev EVM selector for this function is: 0x42966c68,414	///  or in textual repr: burn(uint256)415	function burn(uint256 tokenId) public {416		require(false, stub_error);417		tokenId;418		dummy = 0;419	}420}421422/// @dev inlined interface423contract ERC721MintableEvents {424	event MintingFinished();425}426427/// @title ERC721 minting logic.428/// @dev the ERC-165 identifier for this interface is 0x68ccfe89429contract ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {430	/// @dev EVM selector for this function is: 0x05d2035b,431	///  or in textual repr: mintingFinished()432	function mintingFinished() public view returns (bool) {433		require(false, stub_error);434		dummy;435		return false;436	}437438	/// @notice Function to mint token.439	/// @dev `tokenId` should be obtained with `nextTokenId` method,440	///  unlike standard, you can't specify it manually441	/// @param to The new owner442	/// @param tokenId ID of the minted RFT443	/// @dev EVM selector for this function is: 0x40c10f19,444	///  or in textual repr: mint(address,uint256)445	function mint(address to, uint256 tokenId) public returns (bool) {446		require(false, stub_error);447		to;448		tokenId;449		dummy = 0;450		return false;451	}452453	/// @notice Function to mint token with the given tokenUri.454	/// @dev `tokenId` should be obtained with `nextTokenId` method,455	///  unlike standard, you can't specify it manually456	/// @param to The new owner457	/// @param tokenId ID of the minted RFT458	/// @param tokenUri Token URI that would be stored in the RFT properties459	/// @dev EVM selector for this function is: 0x50bb4e7f,460	///  or in textual repr: mintWithTokenURI(address,uint256,string)461	function mintWithTokenURI(462		address to,463		uint256 tokenId,464		string memory tokenUri465	) public returns (bool) {466		require(false, stub_error);467		to;468		tokenId;469		tokenUri;470		dummy = 0;471		return false;472	}473474	/// @dev Not implemented475	/// @dev EVM selector for this function is: 0x7d64bcb4,476	///  or in textual repr: finishMinting()477	function finishMinting() public returns (bool) {478		require(false, stub_error);479		dummy = 0;480		return false;481	}482}483484<<<<<<< HEAD485<<<<<<< HEAD486/// @title Unique extensions for ERC721.487/// @dev the ERC-165 identifier for this interface is 0x7c3bef89488=======489<<<<<<< HEAD490=======491>>>>>>> misc: update stubs492// Selector: 780e9d63493contract ERC721Enumerable is Dummy, ERC165 {494	// @notice Enumerate valid RFTs495	// @param index A counter less than `totalSupply()`496	// @return The token identifier for the `index`th NFT,497	//  (sort order not specified)498	//499	// Selector: tokenByIndex(uint256) 4f6ccce7500	function tokenByIndex(uint256 index) public view returns (uint256) {501		require(false, stub_error);502		index;503		dummy;504		return 0;505	}506507	// Not implemented508	//509	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59510	function tokenOfOwnerByIndex(address owner, uint256 index)511		public512		view513		returns (uint256)514	{515		require(false, stub_error);516		owner;517		index;518		dummy;519		return 0;520	}521522	// @notice Count RFTs tracked by this contract523	// @return A count of valid RFTs tracked by this contract, where each one of524	//  them has an assigned and queryable owner not equal to the zero address525	//526	// Selector: totalSupply() 18160ddd527	function totalSupply() public view returns (uint256) {528		require(false, stub_error);529		dummy;530		return 0;531	}532}533534// Selector: 7c3bef89535>>>>>>> misk: Update stubs536contract ERC721UniqueExtensions is Dummy, ERC165 {537	/// @notice Transfer ownership of an RFT538	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`539	///  is the zero address. Throws if `tokenId` is not a valid RFT.540	///  Throws if RFT pieces have multiple owners.541	/// @param to The new owner542	/// @param tokenId The RFT to transfer543	/// @dev EVM selector for this function is: 0xa9059cbb,544	///  or in textual repr: transfer(address,uint256)545	function transfer(address to, uint256 tokenId) public {546		require(false, stub_error);547		to;548		tokenId;549		dummy = 0;550	}551552	/// @notice Burns a specific ERC721 token.553	/// @dev Throws unless `msg.sender` is the current owner or an authorized554	///  operator for this RFT. Throws if `from` is not the current owner. Throws555	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.556	///  Throws if RFT pieces have multiple owners.557	/// @param from The current owner of the RFT558	/// @param tokenId The RFT to transfer559	/// @dev EVM selector for this function is: 0x79cc6790,560	///  or in textual repr: burnFrom(address,uint256)561	function burnFrom(address from, uint256 tokenId) public {562		require(false, stub_error);563		from;564		tokenId;565		dummy = 0;566	}567568	/// @notice Returns next free RFT ID.569	/// @dev EVM selector for this function is: 0x75794a3c,570	///  or in textual repr: nextTokenId()571	function nextTokenId() public view returns (uint256) {572		require(false, stub_error);573		dummy;574		return 0;575	}576577	/// @notice Function to mint multiple tokens.578	/// @dev `tokenIds` should be an array of consecutive numbers and first number579	///  should be obtained with `nextTokenId` method580	/// @param to The new owner581	/// @param tokenIds IDs of the minted RFTs582	/// @dev EVM selector for this function is: 0x44a9945e,583	///  or in textual repr: mintBulk(address,uint256[])584	function mintBulk(address to, uint256[] memory tokenIds)585		public586		returns (bool)587	{588		require(false, stub_error);589		to;590		tokenIds;591		dummy = 0;592		return false;593	}594595	/// @notice Function to mint multiple tokens with the given tokenUris.596	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive597	///  numbers and first number should be obtained with `nextTokenId` method598	/// @param to The new owner599	/// @param tokens array of pairs of token ID and token URI for minted tokens600	/// @dev EVM selector for this function is: 0x36543006,601	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])602	function mintBulkWithTokenURI(address to, Tuple8[] memory tokens)603		public604		returns (bool)605	{606		require(false, stub_error);607		to;608		tokens;609		dummy = 0;610		return false;611	}612613	/// Returns EVM address for refungible token614	///615	/// @param token ID of the token616	/// @dev EVM selector for this function is: 0xab76fac6,617	///  or in textual repr: tokenContractAddress(uint256)618	function tokenContractAddress(uint256 token) public view returns (address) {619		require(false, stub_error);620		token;621		dummy;622		return 0x0000000000000000000000000000000000000000;623	}624}625626<<<<<<< HEAD627<<<<<<< HEAD628/// @dev anonymous struct629struct Tuple8 {630	uint256 field_0;631	string field_1;632}633=======634// Selector: ffe4da23635=======636// Selector: 765e2fae637>>>>>>> misk: Update stubs638=======639// Selector: e54be640640>>>>>>> misc: update stubs641contract Collection is Dummy, ERC165 {642	// Set collection property.643	//644	// @param key Property key.645	// @param value Propery value.646	//647	// Selector: setCollectionProperty(string,bytes) 2f073f66648	function setCollectionProperty(string memory key, bytes memory value)649		public650	{651		require(false, stub_error);652		key;653		value;654		dummy = 0;655	}656>>>>>>> misk: Update stubs657658/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension659/// @dev See https://eips.ethereum.org/EIPS/eip-721660/// @dev the ERC-165 identifier for this interface is 0x780e9d63661contract ERC721Enumerable is Dummy, ERC165 {662	/// @notice Enumerate valid RFTs663	/// @param index A counter less than `totalSupply()`664	/// @return The token identifier for the `index`th NFT,665	///  (sort order not specified)666	/// @dev EVM selector for this function is: 0x4f6ccce7,667	///  or in textual repr: tokenByIndex(uint256)668	function tokenByIndex(uint256 index) public view returns (uint256) {669		require(false, stub_error);670		index;671		dummy;672		return 0;673	}674675	/// Not implemented676	/// @dev EVM selector for this function is: 0x2f745c59,677	///  or in textual repr: tokenOfOwnerByIndex(address,uint256)678	function tokenOfOwnerByIndex(address owner, uint256 index)679		public680		view681		returns (uint256)682	{683		require(false, stub_error);684		owner;685		index;686		dummy;687<<<<<<< HEAD688		return 0;689=======690		return hex"";691	}692693	// Set the sponsor of the collection.694	//695	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.696	//697	// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.698	//699	// Selector: setCollectionSponsor(address) 7623402e700	function setCollectionSponsor(address sponsor) public {701		require(false, stub_error);702		sponsor;703		dummy = 0;704	}705706	// Set the substrate sponsor of the collection.707	//708	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.709	//710	// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.711	//712	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751713	function setCollectionSponsorSubstrate(uint256 sponsor) public {714		require(false, stub_error);715		sponsor;716		dummy = 0;717	}718719	// Selector: hasCollectionPendingSponsor() 058ac185720	function hasCollectionPendingSponsor() public view returns (bool) {721		require(false, stub_error);722		dummy;723		return false;724	}725726	// Collection sponsorship confirmation.727	//728	// @dev After setting the sponsor for the collection, it must be confirmed with this function.729	//730	// Selector: confirmCollectionSponsorship() 3c50e97a731	function confirmCollectionSponsorship() public {732		require(false, stub_error);733		dummy = 0;734	}735736	// Remove collection sponsor.737	//738	// Selector: removeCollectionSponsor() 6e0326a3739	function removeCollectionSponsor() public {740		require(false, stub_error);741		dummy = 0;742	}743744	// Get current sponsor.745	//746	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.747	//748	// Selector: getCollectionSponsor() b66bbc14749	function getCollectionSponsor() public view returns (Tuple1 memory) {750		require(false, stub_error);751		dummy;752		return Tuple1(0x0000000000000000000000000000000000000000, 0);753	}754755	// Set limits for the collection.756	// @dev Throws error if limit not found.757	// @param limit Name of the limit. Valid names:758	// 	"accountTokenOwnershipLimit",759	// 	"sponsoredDataSize",760	// 	"sponsoredDataRateLimit",761	// 	"tokenLimit",762	// 	"sponsorTransferTimeout",763	// 	"sponsorApproveTimeout"764	// @param value Value of the limit.765	//766	// Selector: setCollectionLimit(string,uint32) 6a3841db767	function setCollectionLimit(string memory limit, uint32 value) public {768		require(false, stub_error);769		limit;770		value;771		dummy = 0;772>>>>>>> misk: Update stubs773	}774775	/// @notice Count RFTs tracked by this contract776	/// @return A count of valid RFTs tracked by this contract, where each one of777	///  them has an assigned and queryable owner not equal to the zero address778	/// @dev EVM selector for this function is: 0x18160ddd,779	///  or in textual repr: totalSupply()780	function totalSupply() public view returns (uint256) {781		require(false, stub_error);782		dummy;783		return 0;784	}785}786787/// @dev the ERC-165 identifier for this interface is 0x5b5e139f788contract ERC721Metadata is Dummy, ERC165 {789	/// @notice A descriptive name for a collection of RFTs in this contract790	/// @dev EVM selector for this function is: 0x06fdde03,791	///  or in textual repr: name()792	function name() public view returns (string memory) {793		require(false, stub_error);794		dummy;795		return "";796	}797798	/// @notice An abbreviated name for RFTs in this contract799	/// @dev EVM selector for this function is: 0x95d89b41,800	///  or in textual repr: symbol()801	function symbol() public view returns (string memory) {802		require(false, stub_error);803		dummy;804		return "";805	}806807	/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.808	///809	/// @dev If the token has a `url` property and it is not empty, it is returned.810	///  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`.811	///  If the collection property `baseURI` is empty or absent, return "" (empty string)812	///  otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix813	///  otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).814	///815	/// @return token's const_metadata816	/// @dev EVM selector for this function is: 0xc87b56dd,817	///  or in textual repr: tokenURI(uint256)818	function tokenURI(uint256 tokenId) public view returns (string memory) {819		require(false, stub_error);820		tokenId;821		dummy;822		return "";823	}824}825826/// @dev inlined interface827contract ERC721Events {828	event Transfer(829		address indexed from,830		address indexed to,831		uint256 indexed tokenId832	);833	event Approval(834		address indexed owner,835		address indexed approved,836		uint256 indexed tokenId837	);838	event ApprovalForAll(839		address indexed owner,840		address indexed operator,841		bool approved842	);843}844845/// @title ERC-721 Non-Fungible Token Standard846/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md847/// @dev the ERC-165 identifier for this interface is 0x58800161848contract ERC721 is Dummy, ERC165, ERC721Events {849	/// @notice Count all RFTs assigned to an owner850	/// @dev RFTs assigned to the zero address are considered invalid, and this851	///  function throws for queries about the zero address.852	/// @param owner An address for whom to query the balance853	/// @return The number of RFTs owned by `owner`, possibly zero854	/// @dev EVM selector for this function is: 0x70a08231,855	///  or in textual repr: balanceOf(address)856	function balanceOf(address owner) public view returns (uint256) {857		require(false, stub_error);858		owner;859		dummy;860		return 0;861	}862863	/// @notice Find the owner of an RFT864	/// @dev RFTs assigned to zero address are considered invalid, and queries865	///  about them do throw.866	///  Returns special 0xffffffffffffffffffffffffffffffffffffffff address for867	///  the tokens that are partially owned.868	/// @param tokenId The identifier for an RFT869	/// @return The address of the owner of the RFT870	/// @dev EVM selector for this function is: 0x6352211e,871	///  or in textual repr: ownerOf(uint256)872	function ownerOf(uint256 tokenId) public view returns (address) {873		require(false, stub_error);874		tokenId;875		dummy;876		return 0x0000000000000000000000000000000000000000;877	}878879	/// @dev Not implemented880	/// @dev EVM selector for this function is: 0x60a11672,881	///  or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)882	function safeTransferFromWithData(883		address from,884		address to,885		uint256 tokenId,886		bytes memory data887	) public {888		require(false, stub_error);889		from;890		to;891		tokenId;892		data;893		dummy = 0;894	}895896	/// @dev Not implemented897	/// @dev EVM selector for this function is: 0x42842e0e,898	///  or in textual repr: safeTransferFrom(address,address,uint256)899	function safeTransferFrom(900		address from,901		address to,902		uint256 tokenId903	) public {904		require(false, stub_error);905		from;906		to;907		tokenId;908		dummy = 0;909	}910911	/// @notice Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE912	///  TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE913	///  THEY MAY BE PERMANENTLY LOST914	/// @dev Throws unless `msg.sender` is the current owner or an authorized915	///  operator for this RFT. Throws if `from` is not the current owner. Throws916	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.917	///  Throws if RFT pieces have multiple owners.918	/// @param from The current owner of the NFT919	/// @param to The new owner920	/// @param tokenId The NFT to transfer921	/// @dev EVM selector for this function is: 0x23b872dd,922	///  or in textual repr: transferFrom(address,address,uint256)923	function transferFrom(924		address from,925		address to,926		uint256 tokenId927	) public {928		require(false, stub_error);929		from;930		to;931		tokenId;932		dummy = 0;933	}934935	/// @dev Not implemented936	/// @dev EVM selector for this function is: 0x095ea7b3,937	///  or in textual repr: approve(address,uint256)938	function approve(address approved, uint256 tokenId) public {939		require(false, stub_error);940		approved;941		tokenId;942		dummy = 0;943	}944945	/// @dev Not implemented946	/// @dev EVM selector for this function is: 0xa22cb465,947	///  or in textual repr: setApprovalForAll(address,bool)948	function setApprovalForAll(address operator, bool approved) public {949		require(false, stub_error);950		operator;951		approved;952		dummy = 0;953	}954955	/// @dev Not implemented956	/// @dev EVM selector for this function is: 0x081812fc,957	///  or in textual repr: getApproved(uint256)958	function getApproved(uint256 tokenId) public view returns (address) {959		require(false, stub_error);960		tokenId;961		dummy;962		return 0x0000000000000000000000000000000000000000;963	}964965	/// @dev Not implemented966	/// @dev EVM selector for this function is: 0xe985e9c5,967	///  or in textual repr: isApprovedForAll(address,address)968	function isApprovedForAll(address owner, address operator)969		public970		view971		returns (address)972	{973		require(false, stub_error);974		owner;975		operator;976		dummy;977		return 0x0000000000000000000000000000000000000000;978	}979}980981contract UniqueRefungible is982	Dummy,983	ERC165,984	ERC721,985	ERC721Metadata,986	ERC721Enumerable,987	ERC721UniqueExtensions,988	ERC721Mintable,989	ERC721Burnable,990	Collection,991	TokenProperties992{}
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)14		external15		view16		returns (bool)17	{18		require(false, stub_error);19		interfaceID;20		return true;21	}22}2324/// @title A contract that allows to set and delete token properties and change token property permissions.25/// @dev the ERC-165 identifier for this interface is 0x4136937726contract TokenProperties is Dummy, ERC165 {27	/// @notice Set permissions for token property.28	/// @dev Throws error if `msg.sender` is not admin or owner of the collection.29	/// @param key Property key.30	/// @param isMutable Permission to mutate property.31	/// @param collectionAdmin Permission to mutate property by collection admin if property is mutable.32	/// @param tokenOwner Permission to mutate property by token owner if property is mutable.33	/// @dev EVM selector for this function is: 0x222d97fa,34	///  or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)35	function setTokenPropertyPermission(36		string memory key,37		bool isMutable,38		bool collectionAdmin,39		bool tokenOwner40	) public {41		require(false, stub_error);42		key;43		isMutable;44		collectionAdmin;45		tokenOwner;46		dummy = 0;47	}4849	/// @notice Set token property value.50	/// @dev Throws error if `msg.sender` has no permission to edit the property.51	/// @param tokenId ID of the token.52	/// @param key Property key.53	/// @param value Property value.54	/// @dev EVM selector for this function is: 0x1752d67b,55	///  or in textual repr: setProperty(uint256,string,bytes)56	function setProperty(57		uint256 tokenId,58		string memory key,59		bytes memory value60	) public {61		require(false, stub_error);62		tokenId;63		key;64		value;65		dummy = 0;66	}6768	/// @notice Delete token property value.69	/// @dev Throws error if `msg.sender` has no permission to edit the property.70	/// @param tokenId ID of the token.71	/// @param key Property key.72	/// @dev EVM selector for this function is: 0x066111d1,73	///  or in textual repr: deleteProperty(uint256,string)74	function deleteProperty(uint256 tokenId, string memory key) public {75		require(false, stub_error);76		tokenId;77		key;78		dummy = 0;79	}8081	/// @notice Get token property value.82	/// @dev Throws error if key not found83	/// @param tokenId ID of the token.84	/// @param key Property key.85	/// @return Property value bytes86	/// @dev EVM selector for this function is: 0x7228c327,87	///  or in textual repr: property(uint256,string)88	function property(uint256 tokenId, string memory key)89		public90		view91		returns (bytes memory)92	{93		require(false, stub_error);94		tokenId;95		key;96		dummy;97		return hex"";98	}99}100101/// @title A contract that allows you to work with collections.102/// @dev the ERC-165 identifier for this interface is 0xe54be640103contract Collection is Dummy, ERC165 {104	/// Set collection property.105	///106	/// @param key Property key.107	/// @param value Propery value.108	/// @dev EVM selector for this function is: 0x2f073f66,109	///  or in textual repr: setCollectionProperty(string,bytes)110	function setCollectionProperty(string memory key, bytes memory value)111		public112	{113		require(false, stub_error);114		key;115		value;116		dummy = 0;117	}118119	/// Delete collection property.120	///121	/// @param key Property key.122	/// @dev EVM selector for this function is: 0x7b7debce,123	///  or in textual repr: deleteCollectionProperty(string)124	function deleteCollectionProperty(string memory key) public {125		require(false, stub_error);126		key;127		dummy = 0;128	}129130	/// Get collection property.131	///132	/// @dev Throws error if key not found.133	///134	/// @param key Property key.135	/// @return bytes The property corresponding to the key.136	/// @dev EVM selector for this function is: 0xcf24fd6d,137	///  or in textual repr: collectionProperty(string)138	function collectionProperty(string memory key)139		public140		view141		returns (bytes memory)142	{143		require(false, stub_error);144		key;145		dummy;146		return hex"";147	}148149	/// Set the sponsor of the collection.150	///151	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.152	///153	/// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.154	/// @dev EVM selector for this function is: 0x7623402e,155	///  or in textual repr: setCollectionSponsor(address)156	function setCollectionSponsor(address sponsor) public {157		require(false, stub_error);158		sponsor;159		dummy = 0;160	}161162	/// Set the substrate sponsor of the collection.163	///164	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.165	///166	/// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.167	/// @dev EVM selector for this function is: 0xc74d6751,168	///  or in textual repr: setCollectionSponsorSubstrate(uint256)169	function setCollectionSponsorSubstrate(uint256 sponsor) public {170		require(false, stub_error);171		sponsor;172		dummy = 0;173	}174175	/// @dev EVM selector for this function is: 0x058ac185,176	///  or in textual repr: hasCollectionPendingSponsor()177	function hasCollectionPendingSponsor() public view returns (bool) {178		require(false, stub_error);179		dummy;180		return false;181	}182183	/// Collection sponsorship confirmation.184	///185	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.186	/// @dev EVM selector for this function is: 0x3c50e97a,187	///  or in textual repr: confirmCollectionSponsorship()188	function confirmCollectionSponsorship() public {189		require(false, stub_error);190		dummy = 0;191	}192193	/// Remove collection sponsor.194	/// @dev EVM selector for this function is: 0x6e0326a3,195	///  or in textual repr: removeCollectionSponsor()196	function removeCollectionSponsor() public {197		require(false, stub_error);198		dummy = 0;199	}200201	/// Get current sponsor.202	///203	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.204	/// @dev EVM selector for this function is: 0xb66bbc14,205	///  or in textual repr: getCollectionSponsor()206	function getCollectionSponsor() public view returns (Tuple17 memory) {207		require(false, stub_error);208		dummy;209		return Tuple17(0x0000000000000000000000000000000000000000, 0);210	}211212	/// Set limits for the collection.213	/// @dev Throws error if limit not found.214	/// @param limit Name of the limit. Valid names:215	/// 	"accountTokenOwnershipLimit",216	/// 	"sponsoredDataSize",217	/// 	"sponsoredDataRateLimit",218	/// 	"tokenLimit",219	/// 	"sponsorTransferTimeout",220	/// 	"sponsorApproveTimeout"221	/// @param value Value of the limit.222	/// @dev EVM selector for this function is: 0x6a3841db,223	///  or in textual repr: setCollectionLimit(string,uint32)224	function setCollectionLimit(string memory limit, uint32 value) public {225		require(false, stub_error);226		limit;227		value;228		dummy = 0;229	}230231	/// Set limits for the collection.232	/// @dev Throws error if limit not found.233	/// @param limit Name of the limit. Valid names:234	/// 	"ownerCanTransfer",235	/// 	"ownerCanDestroy",236	/// 	"transfersEnabled"237	/// @param value Value of the limit.238	/// @dev EVM selector for this function is: 0x993b7fba,239	///  or in textual repr: setCollectionLimit(string,bool)240	function setCollectionLimit(string memory limit, bool value) public {241		require(false, stub_error);242		limit;243		value;244		dummy = 0;245	}246247	/// Get contract address.248	/// @dev EVM selector for this function is: 0xf6b4dfb4,249	///  or in textual repr: contractAddress()250	function contractAddress() public view returns (address) {251		require(false, stub_error);252		dummy;253		return 0x0000000000000000000000000000000000000000;254	}255256	/// Add collection admin by substrate address.257	/// @param newAdmin Substrate administrator address.258	/// @dev EVM selector for this function is: 0x5730062b,259	///  or in textual repr: addCollectionAdminSubstrate(uint256)260	function addCollectionAdminSubstrate(uint256 newAdmin) public {261		require(false, stub_error);262		newAdmin;263		dummy = 0;264	}265266	/// Remove collection admin by substrate address.267	/// @param admin Substrate administrator address.268	/// @dev EVM selector for this function is: 0x4048fcf9,269	///  or in textual repr: removeCollectionAdminSubstrate(uint256)270	function removeCollectionAdminSubstrate(uint256 admin) public {271		require(false, stub_error);272		admin;273		dummy = 0;274	}275276	/// Add collection admin.277	/// @param newAdmin Address of the added administrator.278	/// @dev EVM selector for this function is: 0x92e462c7,279	///  or in textual repr: addCollectionAdmin(address)280	function addCollectionAdmin(address newAdmin) public {281		require(false, stub_error);282		newAdmin;283		dummy = 0;284	}285286	/// Remove collection admin.287	///288	/// @param admin Address of the removed administrator.289	/// @dev EVM selector for this function is: 0xfafd7b42,290	///  or in textual repr: removeCollectionAdmin(address)291	function removeCollectionAdmin(address admin) public {292		require(false, stub_error);293		admin;294		dummy = 0;295	}296297	/// Toggle accessibility of collection nesting.298	///299	/// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'300	/// @dev EVM selector for this function is: 0x112d4586,301	///  or in textual repr: setCollectionNesting(bool)302	function setCollectionNesting(bool enable) public {303		require(false, stub_error);304		enable;305		dummy = 0;306	}307308	/// Toggle accessibility of collection nesting.309	///310	/// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'311	/// @param collections Addresses of collections that will be available for nesting.312	/// @dev EVM selector for this function is: 0x64872396,313	///  or in textual repr: setCollectionNesting(bool,address[])314	function setCollectionNesting(bool enable, address[] memory collections)315		public316	{317		require(false, stub_error);318		enable;319		collections;320		dummy = 0;321	}322323	/// Set the collection access method.324	/// @param mode Access mode325	/// 	0 for Normal326	/// 	1 for AllowList327	/// @dev EVM selector for this function is: 0x41835d4c,328	///  or in textual repr: setCollectionAccess(uint8)329	function setCollectionAccess(uint8 mode) public {330		require(false, stub_error);331		mode;332		dummy = 0;333	}334335	/// Add the user to the allowed list.336	///337	/// @param user Address of a trusted user.338	/// @dev EVM selector for this function is: 0x67844fe6,339	///  or in textual repr: addToCollectionAllowList(address)340	function addToCollectionAllowList(address user) public {341		require(false, stub_error);342		user;343		dummy = 0;344	}345346	/// Remove the user from the allowed list.347	///348	/// @param user Address of a removed user.349	/// @dev EVM selector for this function is: 0x85c51acb,350	///  or in textual repr: removeFromCollectionAllowList(address)351	function removeFromCollectionAllowList(address user) public {352		require(false, stub_error);353		user;354		dummy = 0;355	}356357	/// Switch permission for minting.358	///359	/// @param mode Enable if "true".360	/// @dev EVM selector for this function is: 0x00018e84,361	///  or in textual repr: setCollectionMintMode(bool)362	function setCollectionMintMode(bool mode) public {363		require(false, stub_error);364		mode;365		dummy = 0;366	}367368	/// Check that account is the owner or admin of the collection369	///370	/// @param user account to verify371	/// @return "true" if account is the owner or admin372	/// @dev EVM selector for this function is: 0x9811b0c7,373	///  or in textual repr: isOwnerOrAdmin(address)374	function isOwnerOrAdmin(address user) public view returns (bool) {375		require(false, stub_error);376		user;377		dummy;378		return false;379	}380381	/// Check that substrate account is the owner or admin of the collection382	///383	/// @param user account to verify384	/// @return "true" if account is the owner or admin385	/// @dev EVM selector for this function is: 0x68910e00,386	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)387	function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {388		require(false, stub_error);389		user;390		dummy;391		return false;392	}393394	/// Returns collection type395	///396	/// @return `Fungible` or `NFT` or `ReFungible`397	/// @dev EVM selector for this function is: 0xd34b55b8,398	///  or in textual repr: uniqueCollectionType()399	function uniqueCollectionType() public returns (string memory) {400		require(false, stub_error);401		dummy = 0;402		return "";403	}404405	/// Changes collection owner to another account406	///407	/// @dev Owner can be changed only by current owner408	/// @param newOwner new owner account409	/// @dev EVM selector for this function is: 0x13af4035,410	///  or in textual repr: setOwner(address)411	function setOwner(address newOwner) public {412		require(false, stub_error);413		newOwner;414		dummy = 0;415	}416417	/// Changes collection owner to another substrate account418	///419	/// @dev Owner can be changed only by current owner420	/// @param newOwner new owner substrate account421	/// @dev EVM selector for this function is: 0xb212138f,422	///  or in textual repr: setOwnerSubstrate(uint256)423	function setOwnerSubstrate(uint256 newOwner) public {424		require(false, stub_error);425		newOwner;426		dummy = 0;427	}428}429430/// @dev anonymous struct431struct Tuple17 {432	address field_0;433	uint256 field_1;434}435436/// @title ERC721 Token that can be irreversibly burned (destroyed).437/// @dev the ERC-165 identifier for this interface is 0x42966c68438contract ERC721Burnable is Dummy, ERC165 {439	/// @notice Burns a specific ERC721 token.440	/// @dev Throws unless `msg.sender` is the current RFT owner, or an authorized441	///  operator of the current owner.442	/// @param tokenId The RFT to approve443	/// @dev EVM selector for this function is: 0x42966c68,444	///  or in textual repr: burn(uint256)445	function burn(uint256 tokenId) public {446		require(false, stub_error);447		tokenId;448		dummy = 0;449	}450}451452/// @dev inlined interface453contract ERC721MintableEvents {454	event MintingFinished();455}456457/// @title ERC721 minting logic.458/// @dev the ERC-165 identifier for this interface is 0x68ccfe89459contract ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {460	/// @dev EVM selector for this function is: 0x05d2035b,461	///  or in textual repr: mintingFinished()462	function mintingFinished() public view returns (bool) {463		require(false, stub_error);464		dummy;465		return false;466	}467468	/// @notice Function to mint token.469	/// @dev `tokenId` should be obtained with `nextTokenId` method,470	///  unlike standard, you can't specify it manually471	/// @param to The new owner472	/// @param tokenId ID of the minted RFT473	/// @dev EVM selector for this function is: 0x40c10f19,474	///  or in textual repr: mint(address,uint256)475	function mint(address to, uint256 tokenId) public returns (bool) {476		require(false, stub_error);477		to;478		tokenId;479		dummy = 0;480		return false;481	}482483	/// @notice Function to mint token with the given tokenUri.484	/// @dev `tokenId` should be obtained with `nextTokenId` method,485	///  unlike standard, you can't specify it manually486	/// @param to The new owner487	/// @param tokenId ID of the minted RFT488	/// @param tokenUri Token URI that would be stored in the RFT properties489	/// @dev EVM selector for this function is: 0x50bb4e7f,490	///  or in textual repr: mintWithTokenURI(address,uint256,string)491	function mintWithTokenURI(492		address to,493		uint256 tokenId,494		string memory tokenUri495	) public returns (bool) {496		require(false, stub_error);497		to;498		tokenId;499		tokenUri;500		dummy = 0;501		return false;502	}503504	/// @dev Not implemented505	/// @dev EVM selector for this function is: 0x7d64bcb4,506	///  or in textual repr: finishMinting()507	function finishMinting() public returns (bool) {508		require(false, stub_error);509		dummy = 0;510		return false;511	}512}513514/// @title Unique extensions for ERC721.515/// @dev the ERC-165 identifier for this interface is 0x7c3bef89516contract ERC721UniqueExtensions is Dummy, ERC165 {517	/// @notice Transfer ownership of an RFT518	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`519	///  is the zero address. Throws if `tokenId` is not a valid RFT.520	///  Throws if RFT pieces have multiple owners.521	/// @param to The new owner522	/// @param tokenId The RFT to transfer523	/// @dev EVM selector for this function is: 0xa9059cbb,524	///  or in textual repr: transfer(address,uint256)525	function transfer(address to, uint256 tokenId) public {526		require(false, stub_error);527		to;528		tokenId;529		dummy = 0;530	}531532	/// @notice Burns a specific ERC721 token.533	/// @dev Throws unless `msg.sender` is the current owner or an authorized534	///  operator for this RFT. Throws if `from` is not the current owner. Throws535	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.536	///  Throws if RFT pieces have multiple owners.537	/// @param from The current owner of the RFT538	/// @param tokenId The RFT to transfer539	/// @dev EVM selector for this function is: 0x79cc6790,540	///  or in textual repr: burnFrom(address,uint256)541	function burnFrom(address from, uint256 tokenId) public {542		require(false, stub_error);543		from;544		tokenId;545		dummy = 0;546	}547548	/// @notice Returns next free RFT ID.549	/// @dev EVM selector for this function is: 0x75794a3c,550	///  or in textual repr: nextTokenId()551	function nextTokenId() public view returns (uint256) {552		require(false, stub_error);553		dummy;554		return 0;555	}556557	/// @notice Function to mint multiple tokens.558	/// @dev `tokenIds` should be an array of consecutive numbers and first number559	///  should be obtained with `nextTokenId` method560	/// @param to The new owner561	/// @param tokenIds IDs of the minted RFTs562	/// @dev EVM selector for this function is: 0x44a9945e,563	///  or in textual repr: mintBulk(address,uint256[])564	function mintBulk(address to, uint256[] memory tokenIds)565		public566		returns (bool)567	{568		require(false, stub_error);569		to;570		tokenIds;571		dummy = 0;572		return false;573	}574575	/// @notice Function to mint multiple tokens with the given tokenUris.576	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive577	///  numbers and first number should be obtained with `nextTokenId` method578	/// @param to The new owner579	/// @param tokens array of pairs of token ID and token URI for minted tokens580	/// @dev EVM selector for this function is: 0x36543006,581	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])582	function mintBulkWithTokenURI(address to, Tuple8[] memory tokens)583		public584		returns (bool)585	{586		require(false, stub_error);587		to;588		tokens;589		dummy = 0;590		return false;591	}592593	/// Returns EVM address for refungible token594	///595	/// @param token ID of the token596	/// @dev EVM selector for this function is: 0xab76fac6,597	///  or in textual repr: tokenContractAddress(uint256)598	function tokenContractAddress(uint256 token) public view returns (address) {599		require(false, stub_error);600		token;601		dummy;602		return 0x0000000000000000000000000000000000000000;603	}604}605606/// @dev anonymous struct607struct Tuple8 {608	uint256 field_0;609	string field_1;610}611612/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension613/// @dev See https://eips.ethereum.org/EIPS/eip-721614/// @dev the ERC-165 identifier for this interface is 0x780e9d63615contract ERC721Enumerable is Dummy, ERC165 {616	/// @notice Enumerate valid RFTs617	/// @param index A counter less than `totalSupply()`618	/// @return The token identifier for the `index`th NFT,619	///  (sort order not specified)620	/// @dev EVM selector for this function is: 0x4f6ccce7,621	///  or in textual repr: tokenByIndex(uint256)622	function tokenByIndex(uint256 index) public view returns (uint256) {623		require(false, stub_error);624		index;625		dummy;626		return 0;627	}628629	/// Not implemented630	/// @dev EVM selector for this function is: 0x2f745c59,631	///  or in textual repr: tokenOfOwnerByIndex(address,uint256)632	function tokenOfOwnerByIndex(address owner, uint256 index)633		public634		view635		returns (uint256)636	{637		require(false, stub_error);638		owner;639		index;640		dummy;641		return 0;642	}643644	/// @notice Count RFTs tracked by this contract645	/// @return A count of valid RFTs tracked by this contract, where each one of646	///  them has an assigned and queryable owner not equal to the zero address647	/// @dev EVM selector for this function is: 0x18160ddd,648	///  or in textual repr: totalSupply()649	function totalSupply() public view returns (uint256) {650		require(false, stub_error);651		dummy;652		return 0;653	}654}655656/// @dev the ERC-165 identifier for this interface is 0x5b5e139f657contract ERC721Metadata is Dummy, ERC165 {658	/// @notice A descriptive name for a collection of RFTs in this contract659	/// @dev EVM selector for this function is: 0x06fdde03,660	///  or in textual repr: name()661	function name() public view returns (string memory) {662		require(false, stub_error);663		dummy;664		return "";665	}666667	/// @notice An abbreviated name for RFTs in this contract668	/// @dev EVM selector for this function is: 0x95d89b41,669	///  or in textual repr: symbol()670	function symbol() public view returns (string memory) {671		require(false, stub_error);672		dummy;673		return "";674	}675676	/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.677	///678	/// @dev If the token has a `url` property and it is not empty, it is returned.679	///  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`.680	///  If the collection property `baseURI` is empty or absent, return "" (empty string)681	///  otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix682	///  otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).683	///684	/// @return token's const_metadata685	/// @dev EVM selector for this function is: 0xc87b56dd,686	///  or in textual repr: tokenURI(uint256)687	function tokenURI(uint256 tokenId) public view returns (string memory) {688		require(false, stub_error);689		tokenId;690		dummy;691		return "";692	}693}694695/// @dev inlined interface696contract ERC721Events {697	event Transfer(698		address indexed from,699		address indexed to,700		uint256 indexed tokenId701	);702	event Approval(703		address indexed owner,704		address indexed approved,705		uint256 indexed tokenId706	);707	event ApprovalForAll(708		address indexed owner,709		address indexed operator,710		bool approved711	);712}713714/// @title ERC-721 Non-Fungible Token Standard715/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md716/// @dev the ERC-165 identifier for this interface is 0x58800161717contract ERC721 is Dummy, ERC165, ERC721Events {718	/// @notice Count all RFTs assigned to an owner719	/// @dev RFTs assigned to the zero address are considered invalid, and this720	///  function throws for queries about the zero address.721	/// @param owner An address for whom to query the balance722	/// @return The number of RFTs owned by `owner`, possibly zero723	/// @dev EVM selector for this function is: 0x70a08231,724	///  or in textual repr: balanceOf(address)725	function balanceOf(address owner) public view returns (uint256) {726		require(false, stub_error);727		owner;728		dummy;729		return 0;730	}731732	/// @notice Find the owner of an RFT733	/// @dev RFTs assigned to zero address are considered invalid, and queries734	///  about them do throw.735	///  Returns special 0xffffffffffffffffffffffffffffffffffffffff address for736	///  the tokens that are partially owned.737	/// @param tokenId The identifier for an RFT738	/// @return The address of the owner of the RFT739	/// @dev EVM selector for this function is: 0x6352211e,740	///  or in textual repr: ownerOf(uint256)741	function ownerOf(uint256 tokenId) public view returns (address) {742		require(false, stub_error);743		tokenId;744		dummy;745		return 0x0000000000000000000000000000000000000000;746	}747748	/// @dev Not implemented749	/// @dev EVM selector for this function is: 0x60a11672,750	///  or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)751	function safeTransferFromWithData(752		address from,753		address to,754		uint256 tokenId,755		bytes memory data756	) public {757		require(false, stub_error);758		from;759		to;760		tokenId;761		data;762		dummy = 0;763	}764765	/// @dev Not implemented766	/// @dev EVM selector for this function is: 0x42842e0e,767	///  or in textual repr: safeTransferFrom(address,address,uint256)768	function safeTransferFrom(769		address from,770		address to,771		uint256 tokenId772	) public {773		require(false, stub_error);774		from;775		to;776		tokenId;777		dummy = 0;778	}779780	/// @notice Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE781	///  TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE782	///  THEY MAY BE PERMANENTLY LOST783	/// @dev Throws unless `msg.sender` is the current owner or an authorized784	///  operator for this RFT. Throws if `from` is not the current owner. Throws785	///  if `to` is the zero address. Throws if `tokenId` is not a valid RFT.786	///  Throws if RFT pieces have multiple owners.787	/// @param from The current owner of the NFT788	/// @param to The new owner789	/// @param tokenId The NFT to transfer790	/// @dev EVM selector for this function is: 0x23b872dd,791	///  or in textual repr: transferFrom(address,address,uint256)792	function transferFrom(793		address from,794		address to,795		uint256 tokenId796	) public {797		require(false, stub_error);798		from;799		to;800		tokenId;801		dummy = 0;802	}803804	/// @dev Not implemented805	/// @dev EVM selector for this function is: 0x095ea7b3,806	///  or in textual repr: approve(address,uint256)807	function approve(address approved, uint256 tokenId) public {808		require(false, stub_error);809		approved;810		tokenId;811		dummy = 0;812	}813814	/// @dev Not implemented815	/// @dev EVM selector for this function is: 0xa22cb465,816	///  or in textual repr: setApprovalForAll(address,bool)817	function setApprovalForAll(address operator, bool approved) public {818		require(false, stub_error);819		operator;820		approved;821		dummy = 0;822	}823824	/// @dev Not implemented825	/// @dev EVM selector for this function is: 0x081812fc,826	///  or in textual repr: getApproved(uint256)827	function getApproved(uint256 tokenId) public view returns (address) {828		require(false, stub_error);829		tokenId;830		dummy;831		return 0x0000000000000000000000000000000000000000;832	}833834	/// @dev Not implemented835	/// @dev EVM selector for this function is: 0xe985e9c5,836	///  or in textual repr: isApprovedForAll(address,address)837	function isApprovedForAll(address owner, address operator)838		public839		view840		returns (address)841	{842		require(false, stub_error);843		owner;844		operator;845		dummy;846		return 0x0000000000000000000000000000000000000000;847	}848}849850contract UniqueRefungible is851	Dummy,852	ERC165,853	ERC721,854	ERC721Metadata,855	ERC721Enumerable,856	ERC721UniqueExtensions,857	ERC721Mintable,858	ERC721Burnable,859	Collection,860	TokenProperties861{}
modifiedtests/src/eth/api/ContractHelpers.soldiffbeforeafterboth
--- a/tests/src/eth/api/ContractHelpers.sol
+++ b/tests/src/eth/api/ContractHelpers.sol
@@ -12,20 +12,8 @@
 	function supportsInterface(bytes4 interfaceID) external view returns (bool);
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @title Magic contract, which allows users to reconfigure other contracts
 /// @dev the ERC-165 identifier for this interface is 0xd77fab70
-=======
-<<<<<<< HEAD
-// Selector: 6073d917
-=======
-// Selector: 06fc42e9
->>>>>>> path: add stubs
->>>>>>> path: add stubs
-=======
-// Selector: 6073d917
->>>>>>> misc: update stubs
 interface ContractHelpers is Dummy, ERC165 {
 	/// Get user, which deployed specified contract
 	/// @dev May return zero address in case if contract is deployed
@@ -41,24 +29,11 @@
 		view
 		returns (address);
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 	/// Set sponsor.
 	/// @param contractAddress Contract for which a sponsor is being established.
 	/// @param sponsor User address who set as pending sponsor.
 	/// @dev EVM selector for this function is: 0xf01fba93,
 	///  or in textual repr: setSponsor(address,address)
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-	// Set sponsor.
-	//
-	// @param contract_address Contract for which a sponsor is being established.
-	// @param sponsor User address who set as pending sponsor.
-	//
-	// Selector: setSponsor(address,address) f01fba93
->>>>>>> path: add stubs
 	function setSponsor(address contractAddress, address sponsor) external;
 
 	/// Set contract as self sponsored.
@@ -84,28 +59,17 @@
 	///  or in textual repr: confirmSponsorship(address)
 	function confirmSponsorship(address contractAddress) external;
 
-<<<<<<< HEAD
 	/// Get current sponsor.
 	///
 	/// @param contractAddress The contract for which a sponsor is requested.
 	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
 	/// @dev EVM selector for this function is: 0x743fc745,
 	///  or in textual repr: getSponsor(address)
-=======
-	// Get current sponsor.
-	//
-	// @param contract_address The contract for which a sponsor is requested.
-	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
-	//
-	// Selector: getSponsor(address) 743fc745
->>>>>>> path: add stubs
 	function getSponsor(address contractAddress)
 		external
 		view
 		returns (Tuple0 memory);
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 	/// Check tat contract has confirmed sponsor.
 	///
 	/// @param contractAddress The contract for which the presence of a confirmed sponsor is checked.
@@ -120,25 +84,6 @@
 	/// @return **true** if contract has pending sponsor.
 	/// @dev EVM selector for this function is: 0x39b9b242,
 	///  or in textual repr: hasPendingSponsor(address)
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-	// Check tat contract has confirmed sponsor.
-	//
-	// @param contract_address The contract for which the presence of a confirmed sponsor is checked.
-	// @return **true** if contract has confirmed sponsor.
-	//
-	// Selector: hasSponsor(address) 97418603
-	function hasSponsor(address contractAddress) external view returns (bool);
-
-	// Check tat contract has pending sponsor.
-	//
-	// @param contract_address The contract for which the presence of a pending sponsor is checked.
-	// @return **true** if contract has pending sponsor.
-	//
-	// Selector: hasPendingSponsor(address) 39b9b242
->>>>>>> path: add stubs
 	function hasPendingSponsor(address contractAddress)
 		external
 		view
modifiedtests/src/eth/api/UniqueFungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -3,17 +3,7 @@
 
 pragma solidity >=0.8.0 <0.9.0;
 
-<<<<<<< HEAD
 /// @dev common stubs holder
-=======
-// Anonymous struct
-struct Tuple0 {
-	address field_0;
-	uint256 field_1;
-}
-
-// Common stubs holder
->>>>>>> misk: Update stubs
 interface Dummy {
 
 }
@@ -22,72 +12,8 @@
 	function supportsInterface(bytes4 interfaceID) external view returns (bool);
 }
 
-<<<<<<< HEAD
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0xffe4da23
-=======
-// Inline
-interface ERC20Events {
-	event Transfer(address indexed from, address indexed to, uint256 value);
-	event Approval(
-		address indexed owner,
-		address indexed spender,
-		uint256 value
-	);
-}
-
-// Selector: 79cc6790
-interface ERC20UniqueExtensions is Dummy, ERC165 {
-	// Selector: burnFrom(address,uint256) 79cc6790
-	function burnFrom(address from, uint256 amount) external returns (bool);
-}
-
-// Selector: 942e8b22
-interface ERC20 is Dummy, ERC165, ERC20Events {
-	// Selector: name() 06fdde03
-	function name() external view returns (string memory);
-
-	// Selector: symbol() 95d89b41
-	function symbol() external view returns (string memory);
-
-	// Selector: totalSupply() 18160ddd
-	function totalSupply() external view returns (uint256);
-
-	// Selector: decimals() 313ce567
-	function decimals() external view returns (uint8);
-
-	// Selector: balanceOf(address) 70a08231
-	function balanceOf(address owner) external view returns (uint256);
-
-	// Selector: transfer(address,uint256) a9059cbb
-	function transfer(address to, uint256 amount) external returns (bool);
-
-	// Selector: transferFrom(address,address,uint256) 23b872dd
-	function transferFrom(
-		address from,
-		address to,
-		uint256 amount
-	) external returns (bool);
-
-	// Selector: approve(address,uint256) 095ea7b3
-	function approve(address spender, uint256 amount) external returns (bool);
-
-	// Selector: allowance(address,address) dd62ed3e
-	function allowance(address owner, address spender)
-		external
-		view
-		returns (uint256);
-}
-
-<<<<<<< HEAD
-// Selector: ffe4da23
-=======
-// Selector: 765e2fae
->>>>>>> misk: Update stubs
->>>>>>> misk: Update stubs
-=======
-// Selector: e54be640
->>>>>>> misc: update stubs
+/// @dev the ERC-165 identifier for this interface is 0xe54be640
 interface Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -127,7 +53,19 @@
 	///  or in textual repr: setCollectionSponsor(address)
 	function setCollectionSponsor(address sponsor) external;
 
-<<<<<<< HEAD
+	/// 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;
+
+	/// @dev EVM selector for this function is: 0x058ac185,
+	///  or in textual repr: hasCollectionPendingSponsor()
+	function hasCollectionPendingSponsor() external view returns (bool);
+
 	/// Collection sponsorship confirmation.
 	///
 	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.
@@ -135,6 +73,18 @@
 	///  or in textual repr: confirmCollectionSponsorship()
 	function confirmCollectionSponsorship() external;
 
+	/// Remove collection sponsor.
+	/// @dev EVM selector for this function is: 0x6e0326a3,
+	///  or in textual repr: removeCollectionSponsor()
+	function removeCollectionSponsor() external;
+
+	/// Get current sponsor.
+	///
+	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
+	/// @dev EVM selector for this function is: 0xb66bbc14,
+	///  or in textual repr: getCollectionSponsor()
+	function getCollectionSponsor() external view returns (Tuple6 memory);
+
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
 	/// @param limit Name of the limit. Valid names:
@@ -147,51 +97,6 @@
 	/// @param value Value of the limit.
 	/// @dev EVM selector for this function is: 0x6a3841db,
 	///  or in textual repr: setCollectionLimit(string,uint32)
-=======
-	// 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.
-	//
-	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751
-	function setCollectionSponsorSubstrate(uint256 sponsor) external;
-
-	// Selector: hasCollectionPendingSponsor() 058ac185
-	function hasCollectionPendingSponsor() external view returns (bool);
-
-	// Collection sponsorship confirmation.
-	//
-	// @dev After setting the sponsor for the collection, it must be confirmed with this function.
-	//
-	// Selector: confirmCollectionSponsorship() 3c50e97a
-	function confirmCollectionSponsorship() external;
-
-	// Remove collection sponsor.
-	//
-	// Selector: removeCollectionSponsor() 6e0326a3
-	function removeCollectionSponsor() external;
-
-	// Get current sponsor.
-	//
-	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
-	//
-	// Selector: getCollectionSponsor() b66bbc14
-	function getCollectionSponsor() external view returns (Tuple0 memory);
-
-	// Set limits for the collection.
-	// @dev Throws error if limit not found.
-	// @param limit Name of the limit. Valid names:
-	// 	"accountTokenOwnershipLimit",
-	// 	"sponsoredDataSize",
-	// 	"sponsoredDataRateLimit",
-	// 	"tokenLimit",
-	// 	"sponsorTransferTimeout",
-	// 	"sponsorApproveTimeout"
-	// @param value Value of the limit.
-	//
-	// Selector: setCollectionLimit(string,uint32) 6a3841db
->>>>>>> misk: Update stubs
 	function setCollectionLimit(string memory limit, uint32 value) external;
 
 	/// Set limits for the collection.
@@ -320,6 +225,12 @@
 	function setOwnerSubstrate(uint256 newOwner) external;
 }
 
+/// @dev anonymous struct
+struct Tuple6 {
+	address field_0;
+	uint256 field_1;
+}
+
 /// @dev the ERC-165 identifier for this interface is 0x79cc6790
 interface ERC20UniqueExtensions is Dummy, ERC165 {
 	/// @dev EVM selector for this function is: 0x79cc6790,
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -3,23 +3,7 @@
 
 pragma solidity >=0.8.0 <0.9.0;
 
-<<<<<<< HEAD
 /// @dev common stubs holder
-=======
-// Anonymous struct
-struct Tuple0 {
-	uint256 field_0;
-	string field_1;
-}
-
-// Anonymous struct
-struct Tuple1 {
-	address field_0;
-	uint256 field_1;
-}
-
-// Common stubs holder
->>>>>>> misk: Update stubs
 interface Dummy {
 
 }
@@ -81,7 +65,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0xffe4da23
+/// @dev the ERC-165 identifier for this interface is 0xe54be640
 interface Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -121,6 +105,19 @@
 	///  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;
+
+	/// @dev EVM selector for this function is: 0x058ac185,
+	///  or in textual repr: hasCollectionPendingSponsor()
+	function hasCollectionPendingSponsor() external view returns (bool);
+
 	/// Collection sponsorship confirmation.
 	///
 	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.
@@ -128,6 +125,18 @@
 	///  or in textual repr: confirmCollectionSponsorship()
 	function confirmCollectionSponsorship() external;
 
+	/// Remove collection sponsor.
+	/// @dev EVM selector for this function is: 0x6e0326a3,
+	///  or in textual repr: removeCollectionSponsor()
+	function removeCollectionSponsor() external;
+
+	/// Get current sponsor.
+	///
+	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
+	/// @dev EVM selector for this function is: 0xb66bbc14,
+	///  or in textual repr: getCollectionSponsor()
+	function getCollectionSponsor() external view returns (Tuple17 memory);
+
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
 	/// @param limit Name of the limit. Valid names:
@@ -268,6 +277,12 @@
 	function setOwnerSubstrate(uint256 newOwner) external;
 }
 
+/// @dev anonymous struct
+struct Tuple17 {
+	address field_0;
+	uint256 field_1;
+}
+
 /// @title ERC721 Token that can be irreversibly burned (destroyed).
 /// @dev the ERC-165 identifier for this interface is 0x42966c68
 interface ERC721Burnable is Dummy, ERC165 {
@@ -321,42 +336,8 @@
 	function finishMinting() external returns (bool);
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @title Unique extensions for ERC721.
 /// @dev the ERC-165 identifier for this interface is 0xd74d154f
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-// Selector: 780e9d63
-interface ERC721Enumerable is Dummy, ERC165 {
-	// @notice Enumerate valid NFTs
-	// @param index A counter less than `totalSupply()`
-	// @return The token identifier for the `index`th NFT,
-	//  (sort order not specified)
-	//
-	// Selector: tokenByIndex(uint256) 4f6ccce7
-	function tokenByIndex(uint256 index) external view returns (uint256);
-
-	// @dev Not implemented
-	//
-	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
-	function tokenOfOwnerByIndex(address owner, uint256 index)
-		external
-		view
-		returns (uint256);
-
-	// @notice Count NFTs tracked by this contract
-	// @return A count of valid NFTs tracked by this contract, where each one of
-	//  them has an assigned and queryable owner not equal to the zero address
-	//
-	// Selector: totalSupply() 18160ddd
-	function totalSupply() external view returns (uint256);
-}
-
-// Selector: d74d154f
->>>>>>> misk: Update stubs
 interface ERC721UniqueExtensions is Dummy, ERC165 {
 	/// @notice Transfer ownership of an NFT
 	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -405,31 +386,11 @@
 		returns (bool);
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @dev anonymous struct
 struct Tuple8 {
 	uint256 field_0;
 	string field_1;
 }
-=======
-// Selector: ffe4da23
-=======
-// Selector: 765e2fae
->>>>>>> misk: Update stubs
-=======
-// Selector: e54be640
->>>>>>> misc: update stubs
-interface Collection is Dummy, ERC165 {
-	// Set collection property.
-	//
-	// @param key Property key.
-	// @param value Propery value.
-	//
-	// Selector: setCollectionProperty(string,bytes) 2f073f66
-	function setCollectionProperty(string memory key, bytes memory value)
-		external;
->>>>>>> misk: Update stubs
 
 /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
 /// @dev See https://eips.ethereum.org/EIPS/eip-721
@@ -449,87 +410,7 @@
 	function tokenOfOwnerByIndex(address owner, uint256 index)
 		external
 		view
-<<<<<<< HEAD
 		returns (uint256);
-=======
-		returns (bytes memory);
-
-	// Set the sponsor of the collection.
-	//
-	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	//
-	// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.
-	//
-	// Selector: setCollectionSponsor(address) 7623402e
-	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.
-	//
-	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751
-	function setCollectionSponsorSubstrate(uint256 sponsor) external;
-
-	// Selector: hasCollectionPendingSponsor() 058ac185
-	function hasCollectionPendingSponsor() external view returns (bool);
-
-	// Collection sponsorship confirmation.
-	//
-	// @dev After setting the sponsor for the collection, it must be confirmed with this function.
-	//
-	// Selector: confirmCollectionSponsorship() 3c50e97a
-	function confirmCollectionSponsorship() external;
-
-	// Remove collection sponsor.
-	//
-	// Selector: removeCollectionSponsor() 6e0326a3
-	function removeCollectionSponsor() external;
-
-	// Get current sponsor.
-	//
-	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
-	//
-	// Selector: getCollectionSponsor() b66bbc14
-	function getCollectionSponsor() external view returns (Tuple1 memory);
-
-	// Set limits for the collection.
-	// @dev Throws error if limit not found.
-	// @param limit Name of the limit. Valid names:
-	// 	"accountTokenOwnershipLimit",
-	// 	"sponsoredDataSize",
-	// 	"sponsoredDataRateLimit",
-	// 	"tokenLimit",
-	// 	"sponsorTransferTimeout",
-	// 	"sponsorApproveTimeout"
-	// @param value Value of the limit.
-	//
-	// Selector: setCollectionLimit(string,uint32) 6a3841db
-	function setCollectionLimit(string memory limit, uint32 value) external;
-
-	// Set limits for the collection.
-	// @dev Throws error if limit not found.
-	// @param limit Name of the limit. Valid names:
-	// 	"ownerCanTransfer",
-	// 	"ownerCanDestroy",
-	// 	"transfersEnabled"
-	// @param value Value of the limit.
-	//
-	// Selector: setCollectionLimit(string,bool) 993b7fba
-	function setCollectionLimit(string memory limit, bool value) external;
-
-	// Get contract address.
-	//
-	// Selector: contractAddress() f6b4dfb4
-	function contractAddress() external view returns (address);
-
-	// Add collection admin by substrate address.
-	// @param new_admin Substrate administrator address.
-	//
-	// Selector: addCollectionAdminSubstrate(uint256) 5730062b
-	function addCollectionAdminSubstrate(uint256 newAdmin) external;
->>>>>>> misk: Update stubs
 
 	/// @notice Count NFTs tracked by this contract
 	/// @return A count of valid NFTs tracked by this contract, where each one of
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -3,23 +3,7 @@
 
 pragma solidity >=0.8.0 <0.9.0;
 
-<<<<<<< HEAD
 /// @dev common stubs holder
-=======
-// Anonymous struct
-struct Tuple0 {
-	uint256 field_0;
-	string field_1;
-}
-
-// Anonymous struct
-struct Tuple1 {
-	address field_0;
-	uint256 field_1;
-}
-
-// Common stubs holder
->>>>>>> misk: Update stubs
 interface Dummy {
 
 }
@@ -81,7 +65,7 @@
 }
 
 /// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0xffe4da23
+/// @dev the ERC-165 identifier for this interface is 0xe54be640
 interface Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -121,6 +105,19 @@
 	///  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;
+
+	/// @dev EVM selector for this function is: 0x058ac185,
+	///  or in textual repr: hasCollectionPendingSponsor()
+	function hasCollectionPendingSponsor() external view returns (bool);
+
 	/// Collection sponsorship confirmation.
 	///
 	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.
@@ -128,6 +125,18 @@
 	///  or in textual repr: confirmCollectionSponsorship()
 	function confirmCollectionSponsorship() external;
 
+	/// Remove collection sponsor.
+	/// @dev EVM selector for this function is: 0x6e0326a3,
+	///  or in textual repr: removeCollectionSponsor()
+	function removeCollectionSponsor() external;
+
+	/// Get current sponsor.
+	///
+	/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
+	/// @dev EVM selector for this function is: 0xb66bbc14,
+	///  or in textual repr: getCollectionSponsor()
+	function getCollectionSponsor() external view returns (Tuple17 memory);
+
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
 	/// @param limit Name of the limit. Valid names:
@@ -268,6 +277,12 @@
 	function setOwnerSubstrate(uint256 newOwner) external;
 }
 
+/// @dev anonymous struct
+struct Tuple17 {
+	address field_0;
+	uint256 field_1;
+}
+
 /// @title ERC721 Token that can be irreversibly burned (destroyed).
 /// @dev the ERC-165 identifier for this interface is 0x42966c68
 interface ERC721Burnable is Dummy, ERC165 {
@@ -321,42 +336,8 @@
 	function finishMinting() external returns (bool);
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @title Unique extensions for ERC721.
 /// @dev the ERC-165 identifier for this interface is 0x7c3bef89
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-// Selector: 780e9d63
-interface ERC721Enumerable is Dummy, ERC165 {
-	// @notice Enumerate valid RFTs
-	// @param index A counter less than `totalSupply()`
-	// @return The token identifier for the `index`th NFT,
-	//  (sort order not specified)
-	//
-	// Selector: tokenByIndex(uint256) 4f6ccce7
-	function tokenByIndex(uint256 index) external view returns (uint256);
-
-	// Not implemented
-	//
-	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
-	function tokenOfOwnerByIndex(address owner, uint256 index)
-		external
-		view
-		returns (uint256);
-
-	// @notice Count RFTs tracked by this contract
-	// @return A count of valid RFTs tracked by this contract, where each one of
-	//  them has an assigned and queryable owner not equal to the zero address
-	//
-	// Selector: totalSupply() 18160ddd
-	function totalSupply() external view returns (uint256);
-}
-
-// Selector: 7c3bef89
->>>>>>> misk: Update stubs
 interface ERC721UniqueExtensions is Dummy, ERC165 {
 	/// @notice Transfer ownership of an RFT
 	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -417,31 +398,11 @@
 		returns (address);
 }
 
-<<<<<<< HEAD
-<<<<<<< HEAD
 /// @dev anonymous struct
 struct Tuple8 {
 	uint256 field_0;
 	string field_1;
 }
-=======
-// Selector: ffe4da23
-=======
-// Selector: 765e2fae
->>>>>>> misk: Update stubs
-=======
-// Selector: e54be640
->>>>>>> misc: update stubs
-interface Collection is Dummy, ERC165 {
-	// Set collection property.
-	//
-	// @param key Property key.
-	// @param value Propery value.
-	//
-	// Selector: setCollectionProperty(string,bytes) 2f073f66
-	function setCollectionProperty(string memory key, bytes memory value)
-		external;
->>>>>>> misk: Update stubs
 
 /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
 /// @dev See https://eips.ethereum.org/EIPS/eip-721
@@ -461,87 +422,7 @@
 	function tokenOfOwnerByIndex(address owner, uint256 index)
 		external
 		view
-<<<<<<< HEAD
 		returns (uint256);
-=======
-		returns (bytes memory);
-
-	// Set the sponsor of the collection.
-	//
-	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
-	//
-	// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.
-	//
-	// Selector: setCollectionSponsor(address) 7623402e
-	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.
-	//
-	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751
-	function setCollectionSponsorSubstrate(uint256 sponsor) external;
-
-	// Selector: hasCollectionPendingSponsor() 058ac185
-	function hasCollectionPendingSponsor() external view returns (bool);
-
-	// Collection sponsorship confirmation.
-	//
-	// @dev After setting the sponsor for the collection, it must be confirmed with this function.
-	//
-	// Selector: confirmCollectionSponsorship() 3c50e97a
-	function confirmCollectionSponsorship() external;
-
-	// Remove collection sponsor.
-	//
-	// Selector: removeCollectionSponsor() 6e0326a3
-	function removeCollectionSponsor() external;
-
-	// Get current sponsor.
-	//
-	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
-	//
-	// Selector: getCollectionSponsor() b66bbc14
-	function getCollectionSponsor() external view returns (Tuple1 memory);
-
-	// Set limits for the collection.
-	// @dev Throws error if limit not found.
-	// @param limit Name of the limit. Valid names:
-	// 	"accountTokenOwnershipLimit",
-	// 	"sponsoredDataSize",
-	// 	"sponsoredDataRateLimit",
-	// 	"tokenLimit",
-	// 	"sponsorTransferTimeout",
-	// 	"sponsorApproveTimeout"
-	// @param value Value of the limit.
-	//
-	// Selector: setCollectionLimit(string,uint32) 6a3841db
-	function setCollectionLimit(string memory limit, uint32 value) external;
-
-	// Set limits for the collection.
-	// @dev Throws error if limit not found.
-	// @param limit Name of the limit. Valid names:
-	// 	"ownerCanTransfer",
-	// 	"ownerCanDestroy",
-	// 	"transfersEnabled"
-	// @param value Value of the limit.
-	//
-	// Selector: setCollectionLimit(string,bool) 993b7fba
-	function setCollectionLimit(string memory limit, bool value) external;
-
-	// Get contract address.
-	//
-	// Selector: contractAddress() f6b4dfb4
-	function contractAddress() external view returns (address);
-
-	// Add collection admin by substrate address.
-	// @param new_admin Substrate administrator address.
-	//
-	// Selector: addCollectionAdminSubstrate(uint256) 5730062b
-	function addCollectionAdminSubstrate(uint256 newAdmin) external;
->>>>>>> misk: Update stubs
 
 	/// @notice Count RFTs tracked by this contract
 	/// @return A count of valid RFTs tracked by this contract, where each one of
modifiedtests/src/eth/fungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/fungibleAbi.json
+++ b/tests/src/eth/fungibleAbi.json
@@ -159,7 +159,7 @@
           { "internalType": "address", "name": "field_0", "type": "address" },
           { "internalType": "uint256", "name": "field_1", "type": "uint256" }
         ],
-        "internalType": "struct Tuple0",
+        "internalType": "struct Tuple6",
         "name": "",
         "type": "tuple"
       }
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -208,7 +208,7 @@
           { "internalType": "address", "name": "field_0", "type": "address" },
           { "internalType": "uint256", "name": "field_1", "type": "uint256" }
         ],
-        "internalType": "struct Tuple1",
+        "internalType": "struct Tuple17",
         "name": "",
         "type": "tuple"
       }
modifiedtests/src/eth/reFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/reFungibleAbi.json
+++ b/tests/src/eth/reFungibleAbi.json
@@ -208,7 +208,7 @@
           { "internalType": "address", "name": "field_0", "type": "address" },
           { "internalType": "uint256", "name": "field_1", "type": "uint256" }
         ],
-        "internalType": "struct Tuple1",
+        "internalType": "struct Tuple17",
         "name": "",
         "type": "tuple"
       }