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
before · pallets/nonfungible/src/stubs/UniqueNFT.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 NFT owner, or an authorized411	///  operator of the current owner.412	/// @param tokenId The NFT 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 NFT443	/// @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 NFT458	/// @param tokenUri Token URI that would be stored in the NFT 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 0xd74d154f488=======489<<<<<<< HEAD490=======491>>>>>>> misc: update stubs492// Selector: 780e9d63493contract ERC721Enumerable is Dummy, ERC165 {494	// @notice Enumerate valid NFTs495	// @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	// @dev 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 NFTs tracked by this contract523	// @return A count of valid NFTs 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: d74d154f535>>>>>>> misk: Update stubs536contract ERC721UniqueExtensions is Dummy, ERC165 {537	/// @notice Transfer ownership of an NFT538	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`539	///  is the zero address. Throws if `tokenId` is not a valid NFT.540	/// @param to The new owner541	/// @param tokenId The NFT to transfer542	/// @dev EVM selector for this function is: 0xa9059cbb,543	///  or in textual repr: transfer(address,uint256)544	function transfer(address to, uint256 tokenId) public {545		require(false, stub_error);546		to;547		tokenId;548		dummy = 0;549	}550551	/// @notice Burns a specific ERC721 token.552	/// @dev Throws unless `msg.sender` is the current owner or an authorized553	///  operator for this NFT. Throws if `from` is not the current owner. Throws554	///  if `to` is the zero address. Throws if `tokenId` is not a valid NFT.555	/// @param from The current owner of the NFT556	/// @param tokenId The NFT to transfer557	/// @dev EVM selector for this function is: 0x79cc6790,558	///  or in textual repr: burnFrom(address,uint256)559	function burnFrom(address from, uint256 tokenId) public {560		require(false, stub_error);561		from;562		tokenId;563		dummy = 0;564	}565566	/// @notice Returns next free NFT ID.567	/// @dev EVM selector for this function is: 0x75794a3c,568	///  or in textual repr: nextTokenId()569	function nextTokenId() public view returns (uint256) {570		require(false, stub_error);571		dummy;572		return 0;573	}574575	/// @notice Function to mint multiple tokens.576	/// @dev `tokenIds` should be an array of consecutive numbers and first number577	///  should be obtained with `nextTokenId` method578	/// @param to The new owner579	/// @param tokenIds IDs of the minted NFTs580	/// @dev EVM selector for this function is: 0x44a9945e,581	///  or in textual repr: mintBulk(address,uint256[])582	function mintBulk(address to, uint256[] memory tokenIds)583		public584		returns (bool)585	{586		require(false, stub_error);587		to;588		tokenIds;589		dummy = 0;590		return false;591	}592593	/// @notice Function to mint multiple tokens with the given tokenUris.594	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive595	///  numbers and first number should be obtained with `nextTokenId` method596	/// @param to The new owner597	/// @param tokens array of pairs of token ID and token URI for minted tokens598	/// @dev EVM selector for this function is: 0x36543006,599	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])600	function mintBulkWithTokenURI(address to, Tuple8[] memory tokens)601		public602		returns (bool)603	{604		require(false, stub_error);605		to;606		tokens;607		dummy = 0;608		return false;609	}610}611612<<<<<<< HEAD613<<<<<<< HEAD614/// @dev anonymous struct615struct Tuple8 {616	uint256 field_0;617	string field_1;618}619=======620// Selector: ffe4da23621=======622// Selector: 765e2fae623>>>>>>> misk: Update stubs624=======625// Selector: e54be640626>>>>>>> misc: update stubs627contract Collection is Dummy, ERC165 {628	// Set collection property.629	//630	// @param key Property key.631	// @param value Propery value.632	//633	// Selector: setCollectionProperty(string,bytes) 2f073f66634	function setCollectionProperty(string memory key, bytes memory value)635		public636	{637		require(false, stub_error);638		key;639		value;640		dummy = 0;641	}642>>>>>>> misk: Update stubs643644/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension645/// @dev See https://eips.ethereum.org/EIPS/eip-721646/// @dev the ERC-165 identifier for this interface is 0x780e9d63647contract ERC721Enumerable is Dummy, ERC165 {648	/// @notice Enumerate valid NFTs649	/// @param index A counter less than `totalSupply()`650	/// @return The token identifier for the `index`th NFT,651	///  (sort order not specified)652	/// @dev EVM selector for this function is: 0x4f6ccce7,653	///  or in textual repr: tokenByIndex(uint256)654	function tokenByIndex(uint256 index) public view returns (uint256) {655		require(false, stub_error);656		index;657		dummy;658		return 0;659	}660661	/// @dev Not implemented662	/// @dev EVM selector for this function is: 0x2f745c59,663	///  or in textual repr: tokenOfOwnerByIndex(address,uint256)664	function tokenOfOwnerByIndex(address owner, uint256 index)665		public666		view667		returns (uint256)668	{669		require(false, stub_error);670		owner;671		index;672		dummy;673<<<<<<< HEAD674		return 0;675=======676		return hex"";677	}678679	// Set the sponsor of the collection.680	//681	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.682	//683	// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.684	//685	// Selector: setCollectionSponsor(address) 7623402e686	function setCollectionSponsor(address sponsor) public {687		require(false, stub_error);688		sponsor;689		dummy = 0;690	}691692	// Set the substrate sponsor of the collection.693	//694	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.695	//696	// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.697	//698	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751699	function setCollectionSponsorSubstrate(uint256 sponsor) public {700		require(false, stub_error);701		sponsor;702		dummy = 0;703	}704705	// Selector: hasCollectionPendingSponsor() 058ac185706	function hasCollectionPendingSponsor() public view returns (bool) {707		require(false, stub_error);708		dummy;709		return false;710	}711712	// Collection sponsorship confirmation.713	//714	// @dev After setting the sponsor for the collection, it must be confirmed with this function.715	//716	// Selector: confirmCollectionSponsorship() 3c50e97a717	function confirmCollectionSponsorship() public {718		require(false, stub_error);719		dummy = 0;720	}721722	// Remove collection sponsor.723	//724	// Selector: removeCollectionSponsor() 6e0326a3725	function removeCollectionSponsor() public {726		require(false, stub_error);727		dummy = 0;728	}729730	// Get current sponsor.731	//732	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.733	//734	// Selector: getCollectionSponsor() b66bbc14735	function getCollectionSponsor() public view returns (Tuple1 memory) {736		require(false, stub_error);737		dummy;738		return Tuple1(0x0000000000000000000000000000000000000000, 0);739	}740741	// Set limits for the collection.742	// @dev Throws error if limit not found.743	// @param limit Name of the limit. Valid names:744	// 	"accountTokenOwnershipLimit",745	// 	"sponsoredDataSize",746	// 	"sponsoredDataRateLimit",747	// 	"tokenLimit",748	// 	"sponsorTransferTimeout",749	// 	"sponsorApproveTimeout"750	// @param value Value of the limit.751	//752	// Selector: setCollectionLimit(string,uint32) 6a3841db753	function setCollectionLimit(string memory limit, uint32 value) public {754		require(false, stub_error);755		limit;756		value;757		dummy = 0;758>>>>>>> misk: Update stubs759	}760761	/// @notice Count NFTs tracked by this contract762	/// @return A count of valid NFTs tracked by this contract, where each one of763	///  them has an assigned and queryable owner not equal to the zero address764	/// @dev EVM selector for this function is: 0x18160ddd,765	///  or in textual repr: totalSupply()766	function totalSupply() public view returns (uint256) {767		require(false, stub_error);768		dummy;769		return 0;770	}771}772773/// @title ERC-721 Non-Fungible Token Standard, optional metadata extension774/// @dev See https://eips.ethereum.org/EIPS/eip-721775/// @dev the ERC-165 identifier for this interface is 0x5b5e139f776contract ERC721Metadata is Dummy, ERC165 {777	/// @notice A descriptive name for a collection of NFTs in this contract778	/// @dev EVM selector for this function is: 0x06fdde03,779	///  or in textual repr: name()780	function name() public view returns (string memory) {781		require(false, stub_error);782		dummy;783		return "";784	}785786	/// @notice An abbreviated name for NFTs in this contract787	/// @dev EVM selector for this function is: 0x95d89b41,788	///  or in textual repr: symbol()789	function symbol() public view returns (string memory) {790		require(false, stub_error);791		dummy;792		return "";793	}794795	/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.796	///797	/// @dev If the token has a `url` property and it is not empty, it is returned.798	///  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`.799	///  If the collection property `baseURI` is empty or absent, return "" (empty string)800	///  otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix801	///  otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).802	///803	/// @return token's const_metadata804	/// @dev EVM selector for this function is: 0xc87b56dd,805	///  or in textual repr: tokenURI(uint256)806	function tokenURI(uint256 tokenId) public view returns (string memory) {807		require(false, stub_error);808		tokenId;809		dummy;810		return "";811	}812}813814/// @dev inlined interface815contract ERC721Events {816	event Transfer(817		address indexed from,818		address indexed to,819		uint256 indexed tokenId820	);821	event Approval(822		address indexed owner,823		address indexed approved,824		uint256 indexed tokenId825	);826	event ApprovalForAll(827		address indexed owner,828		address indexed operator,829		bool approved830	);831}832833/// @title ERC-721 Non-Fungible Token Standard834/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md835/// @dev the ERC-165 identifier for this interface is 0x80ac58cd836contract ERC721 is Dummy, ERC165, ERC721Events {837	/// @notice Count all NFTs assigned to an owner838	/// @dev NFTs assigned to the zero address are considered invalid, and this839	///  function throws for queries about the zero address.840	/// @param owner An address for whom to query the balance841	/// @return The number of NFTs owned by `owner`, possibly zero842	/// @dev EVM selector for this function is: 0x70a08231,843	///  or in textual repr: balanceOf(address)844	function balanceOf(address owner) public view returns (uint256) {845		require(false, stub_error);846		owner;847		dummy;848		return 0;849	}850851	/// @notice Find the owner of an NFT852	/// @dev NFTs assigned to zero address are considered invalid, and queries853	///  about them do throw.854	/// @param tokenId The identifier for an NFT855	/// @return The address of the owner of the NFT856	/// @dev EVM selector for this function is: 0x6352211e,857	///  or in textual repr: ownerOf(uint256)858	function ownerOf(uint256 tokenId) public view returns (address) {859		require(false, stub_error);860		tokenId;861		dummy;862		return 0x0000000000000000000000000000000000000000;863	}864865	/// @dev Not implemented866	/// @dev EVM selector for this function is: 0xb88d4fde,867	///  or in textual repr: safeTransferFrom(address,address,uint256,bytes)868	function safeTransferFrom(869		address from,870		address to,871		uint256 tokenId,872		bytes memory data873	) public {874		require(false, stub_error);875		from;876		to;877		tokenId;878		data;879		dummy = 0;880	}881882	/// @dev Not implemented883	/// @dev EVM selector for this function is: 0x42842e0e,884	///  or in textual repr: safeTransferFrom(address,address,uint256)885	function safeTransferFrom(886		address from,887		address to,888		uint256 tokenId889	) public {890		require(false, stub_error);891		from;892		to;893		tokenId;894		dummy = 0;895	}896897	/// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE898	///  TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE899	///  THEY MAY BE PERMANENTLY LOST900	/// @dev Throws unless `msg.sender` is the current owner or an authorized901	///  operator for this NFT. Throws if `from` is not the current owner. Throws902	///  if `to` is the zero address. Throws if `tokenId` is not a valid NFT.903	/// @param from The current owner of the NFT904	/// @param to The new owner905	/// @param tokenId The NFT to transfer906	/// @dev EVM selector for this function is: 0x23b872dd,907	///  or in textual repr: transferFrom(address,address,uint256)908	function transferFrom(909		address from,910		address to,911		uint256 tokenId912	) public {913		require(false, stub_error);914		from;915		to;916		tokenId;917		dummy = 0;918	}919920	/// @notice Set or reaffirm the approved address for an NFT921	/// @dev The zero address indicates there is no approved address.922	/// @dev Throws unless `msg.sender` is the current NFT owner, or an authorized923	///  operator of the current owner.924	/// @param approved The new approved NFT controller925	/// @param tokenId The NFT to approve926	/// @dev EVM selector for this function is: 0x095ea7b3,927	///  or in textual repr: approve(address,uint256)928	function approve(address approved, uint256 tokenId) public {929		require(false, stub_error);930		approved;931		tokenId;932		dummy = 0;933	}934935	/// @dev Not implemented936	/// @dev EVM selector for this function is: 0xa22cb465,937	///  or in textual repr: setApprovalForAll(address,bool)938	function setApprovalForAll(address operator, bool approved) public {939		require(false, stub_error);940		operator;941		approved;942		dummy = 0;943	}944945	/// @dev Not implemented946	/// @dev EVM selector for this function is: 0x081812fc,947	///  or in textual repr: getApproved(uint256)948	function getApproved(uint256 tokenId) public view returns (address) {949		require(false, stub_error);950		tokenId;951		dummy;952		return 0x0000000000000000000000000000000000000000;953	}954955	/// @dev Not implemented956	/// @dev EVM selector for this function is: 0xe985e9c5,957	///  or in textual repr: isApprovedForAll(address,address)958	function isApprovedForAll(address owner, address operator)959		public960		view961		returns (address)962	{963		require(false, stub_error);964		owner;965		operator;966		dummy;967		return 0x0000000000000000000000000000000000000000;968	}969}970971contract UniqueNFT is972	Dummy,973	ERC165,974	ERC721,975	ERC721Metadata,976	ERC721Enumerable,977	ERC721UniqueExtensions,978	ERC721Mintable,979	ERC721Burnable,980	Collection,981	TokenProperties982{}
after · pallets/nonfungible/src/stubs/UniqueNFT.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 NFT owner, or an authorized441	///  operator of the current owner.442	/// @param tokenId The NFT 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 NFT473	/// @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 NFT488	/// @param tokenUri Token URI that would be stored in the NFT 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 0xd74d154f516contract ERC721UniqueExtensions is Dummy, ERC165 {517	/// @notice Transfer ownership of an NFT518	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`519	///  is the zero address. Throws if `tokenId` is not a valid NFT.520	/// @param to The new owner521	/// @param tokenId The NFT to transfer522	/// @dev EVM selector for this function is: 0xa9059cbb,523	///  or in textual repr: transfer(address,uint256)524	function transfer(address to, uint256 tokenId) public {525		require(false, stub_error);526		to;527		tokenId;528		dummy = 0;529	}530531	/// @notice Burns a specific ERC721 token.532	/// @dev Throws unless `msg.sender` is the current owner or an authorized533	///  operator for this NFT. Throws if `from` is not the current owner. Throws534	///  if `to` is the zero address. Throws if `tokenId` is not a valid NFT.535	/// @param from The current owner of the NFT536	/// @param tokenId The NFT to transfer537	/// @dev EVM selector for this function is: 0x79cc6790,538	///  or in textual repr: burnFrom(address,uint256)539	function burnFrom(address from, uint256 tokenId) public {540		require(false, stub_error);541		from;542		tokenId;543		dummy = 0;544	}545546	/// @notice Returns next free NFT ID.547	/// @dev EVM selector for this function is: 0x75794a3c,548	///  or in textual repr: nextTokenId()549	function nextTokenId() public view returns (uint256) {550		require(false, stub_error);551		dummy;552		return 0;553	}554555	/// @notice Function to mint multiple tokens.556	/// @dev `tokenIds` should be an array of consecutive numbers and first number557	///  should be obtained with `nextTokenId` method558	/// @param to The new owner559	/// @param tokenIds IDs of the minted NFTs560	/// @dev EVM selector for this function is: 0x44a9945e,561	///  or in textual repr: mintBulk(address,uint256[])562	function mintBulk(address to, uint256[] memory tokenIds)563		public564		returns (bool)565	{566		require(false, stub_error);567		to;568		tokenIds;569		dummy = 0;570		return false;571	}572573	/// @notice Function to mint multiple tokens with the given tokenUris.574	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive575	///  numbers and first number should be obtained with `nextTokenId` method576	/// @param to The new owner577	/// @param tokens array of pairs of token ID and token URI for minted tokens578	/// @dev EVM selector for this function is: 0x36543006,579	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])580	function mintBulkWithTokenURI(address to, Tuple8[] memory tokens)581		public582		returns (bool)583	{584		require(false, stub_error);585		to;586		tokens;587		dummy = 0;588		return false;589	}590}591592/// @dev anonymous struct593struct Tuple8 {594	uint256 field_0;595	string field_1;596}597598/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension599/// @dev See https://eips.ethereum.org/EIPS/eip-721600/// @dev the ERC-165 identifier for this interface is 0x780e9d63601contract ERC721Enumerable is Dummy, ERC165 {602	/// @notice Enumerate valid NFTs603	/// @param index A counter less than `totalSupply()`604	/// @return The token identifier for the `index`th NFT,605	///  (sort order not specified)606	/// @dev EVM selector for this function is: 0x4f6ccce7,607	///  or in textual repr: tokenByIndex(uint256)608	function tokenByIndex(uint256 index) public view returns (uint256) {609		require(false, stub_error);610		index;611		dummy;612		return 0;613	}614615	/// @dev Not implemented616	/// @dev EVM selector for this function is: 0x2f745c59,617	///  or in textual repr: tokenOfOwnerByIndex(address,uint256)618	function tokenOfOwnerByIndex(address owner, uint256 index)619		public620		view621		returns (uint256)622	{623		require(false, stub_error);624		owner;625		index;626		dummy;627		return 0;628	}629630	/// @notice Count NFTs tracked by this contract631	/// @return A count of valid NFTs tracked by this contract, where each one of632	///  them has an assigned and queryable owner not equal to the zero address633	/// @dev EVM selector for this function is: 0x18160ddd,634	///  or in textual repr: totalSupply()635	function totalSupply() public view returns (uint256) {636		require(false, stub_error);637		dummy;638		return 0;639	}640}641642/// @title ERC-721 Non-Fungible Token Standard, optional metadata extension643/// @dev See https://eips.ethereum.org/EIPS/eip-721644/// @dev the ERC-165 identifier for this interface is 0x5b5e139f645contract ERC721Metadata is Dummy, ERC165 {646	/// @notice A descriptive name for a collection of NFTs in this contract647	/// @dev EVM selector for this function is: 0x06fdde03,648	///  or in textual repr: name()649	function name() public view returns (string memory) {650		require(false, stub_error);651		dummy;652		return "";653	}654655	/// @notice An abbreviated name for NFTs in this contract656	/// @dev EVM selector for this function is: 0x95d89b41,657	///  or in textual repr: symbol()658	function symbol() public view returns (string memory) {659		require(false, stub_error);660		dummy;661		return "";662	}663664	/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.665	///666	/// @dev If the token has a `url` property and it is not empty, it is returned.667	///  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`.668	///  If the collection property `baseURI` is empty or absent, return "" (empty string)669	///  otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix670	///  otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).671	///672	/// @return token's const_metadata673	/// @dev EVM selector for this function is: 0xc87b56dd,674	///  or in textual repr: tokenURI(uint256)675	function tokenURI(uint256 tokenId) public view returns (string memory) {676		require(false, stub_error);677		tokenId;678		dummy;679		return "";680	}681}682683/// @dev inlined interface684contract ERC721Events {685	event Transfer(686		address indexed from,687		address indexed to,688		uint256 indexed tokenId689	);690	event Approval(691		address indexed owner,692		address indexed approved,693		uint256 indexed tokenId694	);695	event ApprovalForAll(696		address indexed owner,697		address indexed operator,698		bool approved699	);700}701702/// @title ERC-721 Non-Fungible Token Standard703/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md704/// @dev the ERC-165 identifier for this interface is 0x80ac58cd705contract ERC721 is Dummy, ERC165, ERC721Events {706	/// @notice Count all NFTs assigned to an owner707	/// @dev NFTs assigned to the zero address are considered invalid, and this708	///  function throws for queries about the zero address.709	/// @param owner An address for whom to query the balance710	/// @return The number of NFTs owned by `owner`, possibly zero711	/// @dev EVM selector for this function is: 0x70a08231,712	///  or in textual repr: balanceOf(address)713	function balanceOf(address owner) public view returns (uint256) {714		require(false, stub_error);715		owner;716		dummy;717		return 0;718	}719720	/// @notice Find the owner of an NFT721	/// @dev NFTs assigned to zero address are considered invalid, and queries722	///  about them do throw.723	/// @param tokenId The identifier for an NFT724	/// @return The address of the owner of the NFT725	/// @dev EVM selector for this function is: 0x6352211e,726	///  or in textual repr: ownerOf(uint256)727	function ownerOf(uint256 tokenId) public view returns (address) {728		require(false, stub_error);729		tokenId;730		dummy;731		return 0x0000000000000000000000000000000000000000;732	}733734	/// @dev Not implemented735	/// @dev EVM selector for this function is: 0xb88d4fde,736	///  or in textual repr: safeTransferFrom(address,address,uint256,bytes)737	function safeTransferFrom(738		address from,739		address to,740		uint256 tokenId,741		bytes memory data742	) public {743		require(false, stub_error);744		from;745		to;746		tokenId;747		data;748		dummy = 0;749	}750751	/// @dev Not implemented752	/// @dev EVM selector for this function is: 0x42842e0e,753	///  or in textual repr: safeTransferFrom(address,address,uint256)754	function safeTransferFrom(755		address from,756		address to,757		uint256 tokenId758	) public {759		require(false, stub_error);760		from;761		to;762		tokenId;763		dummy = 0;764	}765766	/// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE767	///  TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE768	///  THEY MAY BE PERMANENTLY LOST769	/// @dev Throws unless `msg.sender` is the current owner or an authorized770	///  operator for this NFT. Throws if `from` is not the current owner. Throws771	///  if `to` is the zero address. Throws if `tokenId` is not a valid NFT.772	/// @param from The current owner of the NFT773	/// @param to The new owner774	/// @param tokenId The NFT to transfer775	/// @dev EVM selector for this function is: 0x23b872dd,776	///  or in textual repr: transferFrom(address,address,uint256)777	function transferFrom(778		address from,779		address to,780		uint256 tokenId781	) public {782		require(false, stub_error);783		from;784		to;785		tokenId;786		dummy = 0;787	}788789	/// @notice Set or reaffirm the approved address for an NFT790	/// @dev The zero address indicates there is no approved address.791	/// @dev Throws unless `msg.sender` is the current NFT owner, or an authorized792	///  operator of the current owner.793	/// @param approved The new approved NFT controller794	/// @param tokenId The NFT to approve795	/// @dev EVM selector for this function is: 0x095ea7b3,796	///  or in textual repr: approve(address,uint256)797	function approve(address approved, uint256 tokenId) public {798		require(false, stub_error);799		approved;800		tokenId;801		dummy = 0;802	}803804	/// @dev Not implemented805	/// @dev EVM selector for this function is: 0xa22cb465,806	///  or in textual repr: setApprovalForAll(address,bool)807	function setApprovalForAll(address operator, bool approved) public {808		require(false, stub_error);809		operator;810		approved;811		dummy = 0;812	}813814	/// @dev Not implemented815	/// @dev EVM selector for this function is: 0x081812fc,816	///  or in textual repr: getApproved(uint256)817	function getApproved(uint256 tokenId) public view returns (address) {818		require(false, stub_error);819		tokenId;820		dummy;821		return 0x0000000000000000000000000000000000000000;822	}823824	/// @dev Not implemented825	/// @dev EVM selector for this function is: 0xe985e9c5,826	///  or in textual repr: isApprovedForAll(address,address)827	function isApprovedForAll(address owner, address operator)828		public829		view830		returns (address)831	{832		require(false, stub_error);833		owner;834		operator;835		dummy;836		return 0x0000000000000000000000000000000000000000;837	}838}839840contract UniqueNFT is841	Dummy,842	ERC165,843	ERC721,844	ERC721Metadata,845	ERC721Enumerable,846	ERC721UniqueExtensions,847	ERC721Mintable,848	ERC721Burnable,849	Collection,850	TokenProperties851{}
modifiedpallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -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 0x7c3bef89
-=======
-<<<<<<< HEAD
-=======
->>>>>>> misc: update stubs
-// Selector: 780e9d63
-contract 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) public view returns (uint256) {
-		require(false, stub_error);
-		index;
-		dummy;
-		return 0;
-	}
-
-	// Not implemented
-	//
-	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
-	function tokenOfOwnerByIndex(address owner, uint256 index)
-		public
-		view
-		returns (uint256)
-	{
-		require(false, stub_error);
-		owner;
-		index;
-		dummy;
-		return 0;
-	}
-
-	// @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() public view returns (uint256) {
-		require(false, stub_error);
-		dummy;
-		return 0;
-	}
-}
-
-// Selector: 7c3bef89
->>>>>>> misk: Update stubs
 contract ERC721UniqueExtensions is Dummy, ERC165 {
 	/// @notice Transfer ownership of an RFT
 	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -623,37 +603,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
@@ -684,92 +638,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 RFTs tracked by this contract
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"
       }