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

difftreelog

misk: Update stubs

Trubnikov Sergey2022-08-24parent: #83de2b0.patch.diff
in: master

9 files changed

modifiedpallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth
--- a/pallets/fungible/src/stubs/UniqueFungible.sol
+++ b/pallets/fungible/src/stubs/UniqueFungible.sol
@@ -3,7 +3,17 @@
 
 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";
@@ -21,8 +31,122 @@
 	}
 }
 
+<<<<<<< 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
+	);
+}
+
+<<<<<<< HEAD
+// 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;
+	}
+}
+
+// Selector: ffe4da23
+=======
+// Selector: 765e2fae
+>>>>>>> misk: Update stubs
+>>>>>>> misk: Update stubs
 contract Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -82,16 +206,45 @@
 		dummy = 0;
 	}
 
+<<<<<<< HEAD
 	/// 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()
+=======
+	// 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
+>>>>>>> misk: Update stubs
 	function confirmCollectionSponsorship() public {
 		require(false, stub_error);
 		dummy = 0;
 	}
 
+<<<<<<< HEAD
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
 	/// @param limit Name of the limit. Valid names:
@@ -104,6 +257,39 @@
 	/// @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;
modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -3,7 +3,23 @@
 
 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";
@@ -465,8 +481,55 @@
 	}
 }
 
+<<<<<<< HEAD
 /// @title Unique extensions for ERC721.
 /// @dev the ERC-165 identifier for this interface is 0xd74d154f
+=======
+<<<<<<< HEAD
+// Selector: 780e9d63
+contract ERC721Enumerable is Dummy, ERC165 {
+	// @notice Enumerate valid NFTs
+	// @param index A counter less than `totalSupply()`
+	// @return The token identifier for the `index`th NFT,
+	//  (sort order not specified)
+	//
+	// Selector: tokenByIndex(uint256) 4f6ccce7
+	function tokenByIndex(uint256 index) public view returns (uint256) {
+		require(false, stub_error);
+		index;
+		dummy;
+		return 0;
+	}
+
+	// @dev Not implemented
+	//
+	// Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+	function tokenOfOwnerByIndex(address owner, uint256 index)
+		public
+		view
+		returns (uint256)
+	{
+		require(false, stub_error);
+		owner;
+		index;
+		dummy;
+		return 0;
+	}
+
+	// @notice Count NFTs tracked by this contract
+	// @return A count of valid NFTs tracked by this contract, where each one of
+	//  them has an assigned and queryable owner not equal to the zero address
+	//
+	// Selector: totalSupply() 18160ddd
+	function totalSupply() public view returns (uint256) {
+		require(false, stub_error);
+		dummy;
+		return 0;
+	}
+}
+
+// Selector: d74d154f
+>>>>>>> misk: Update stubs
 contract ERC721UniqueExtensions is Dummy, ERC165 {
 	/// @notice Transfer ownership of an NFT
 	/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -543,11 +606,33 @@
 	}
 }
 
+<<<<<<< HEAD
 /// @dev anonymous struct
 struct Tuple8 {
 	uint256 field_0;
 	string field_1;
 }
+=======
+// Selector: ffe4da23
+=======
+// Selector: 765e2fae
+>>>>>>> misk: 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
@@ -578,7 +663,92 @@
 		owner;
 		index;
 		dummy;
+<<<<<<< HEAD
 		return 0;
+=======
+		return hex"";
+	}
+
+	// Set the sponsor of the collection.
+	//
+	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
+	//
+	// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.
+	//
+	// Selector: setCollectionSponsor(address) 7623402e
+	function setCollectionSponsor(address sponsor) public {
+		require(false, stub_error);
+		sponsor;
+		dummy = 0;
+	}
+
+	// Set the substrate sponsor of the collection.
+	//
+	// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
+	//
+	// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
+	//
+	// Selector: setCollectionSponsorSubstrate(uint256) c74d6751
+	function setCollectionSponsorSubstrate(uint256 sponsor) public {
+		require(false, stub_error);
+		sponsor;
+		dummy = 0;
+	}
+
+	// Selector: hasCollectionPendingSponsor() 058ac185
+	function hasCollectionPendingSponsor() public view returns (bool) {
+		require(false, stub_error);
+		dummy;
+		return false;
+	}
+
+	// Collection sponsorship confirmation.
+	//
+	// @dev After setting the sponsor for the collection, it must be confirmed with this function.
+	//
+	// Selector: confirmCollectionSponsorship() 3c50e97a
+	function confirmCollectionSponsorship() public {
+		require(false, stub_error);
+		dummy = 0;
+	}
+
+	// Remove collection sponsor.
+	//
+	// Selector: removeCollectionSponsor() 6e0326a3
+	function removeCollectionSponsor() public {
+		require(false, stub_error);
+		dummy = 0;
+	}
+
+	// Get current sponsor.
+	//
+	// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
+	//
+	// Selector: getCollectionSponsor() b66bbc14
+	function getCollectionSponsor() public view returns (Tuple1 memory) {
+		require(false, stub_error);
+		dummy;
+		return Tuple1(0x0000000000000000000000000000000000000000, 0);
+	}
+
+	// Set limits for the collection.
+	// @dev Throws error if limit not found.
+	// @param limit Name of the limit. Valid names:
+	// 	"accountTokenOwnershipLimit",
+	// 	"sponsoredDataSize",
+	// 	"sponsoredDataRateLimit",
+	// 	"tokenLimit",
+	// 	"sponsorTransferTimeout",
+	// 	"sponsorApproveTimeout"
+	// @param value Value of the limit.
+	//
+	// Selector: setCollectionLimit(string,uint32) 6a3841db
+	function setCollectionLimit(string memory limit, uint32 value) public {
+		require(false, stub_error);
+		limit;
+		value;
+		dummy = 0;
+>>>>>>> misk: Update stubs
 	}
 
 	/// @notice Count NFTs tracked by this contract
modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
33
4pragma solidity >=0.8.0 <0.9.0;4pragma solidity >=0.8.0 <0.9.0;
55
6<<<<<<< HEAD
6/// @dev common stubs holder7/// @dev common stubs holder
8=======
9// Anonymous struct
10struct Tuple0 {
11 uint256 field_0;
12 string field_1;
13}
14
15// Anonymous struct
16struct Tuple1 {
17 address field_0;
18 uint256 field_1;
19}
20
21// Common stubs holder
22>>>>>>> misk: Update stubs
7contract Dummy {23contract Dummy {
8 uint8 dummy;24 uint8 dummy;
9 string stub_error = "this contract is implemented in native";25 string stub_error = "this contract is implemented in native";
465 }481 }
466}482}
467483
484<<<<<<< HEAD
468/// @title Unique extensions for ERC721.485/// @title Unique extensions for ERC721.
469/// @dev the ERC-165 identifier for this interface is 0x7c3bef89486/// @dev the ERC-165 identifier for this interface is 0x7c3bef89
487=======
488<<<<<<< HEAD
489// Selector: 780e9d63
490contract ERC721Enumerable is Dummy, ERC165 {
491 // @notice Enumerate valid RFTs
492 // @param index A counter less than `totalSupply()`
493 // @return The token identifier for the `index`th NFT,
494 // (sort order not specified)
495 //
496 // Selector: tokenByIndex(uint256) 4f6ccce7
497 function tokenByIndex(uint256 index) public view returns (uint256) {
498 require(false, stub_error);
499 index;
500 dummy;
501 return 0;
502 }
503
504 // Not implemented
505 //
506 // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
507 function tokenOfOwnerByIndex(address owner, uint256 index)
508 public
509 view
510 returns (uint256)
511 {
512 require(false, stub_error);
513 owner;
514 index;
515 dummy;
516 return 0;
517 }
518
519 // @notice Count RFTs tracked by this contract
520 // @return A count of valid RFTs tracked by this contract, where each one of
521 // them has an assigned and queryable owner not equal to the zero address
522 //
523 // Selector: totalSupply() 18160ddd
524 function totalSupply() public view returns (uint256) {
525 require(false, stub_error);
526 dummy;
527 return 0;
528 }
529}
530
531// Selector: 7c3bef89
532>>>>>>> misk: Update stubs
470contract ERC721UniqueExtensions is Dummy, ERC165 {533contract ERC721UniqueExtensions is Dummy, ERC165 {
471 /// @notice Transfer ownership of an RFT534 /// @notice Transfer ownership of an RFT
472 /// @dev Throws unless `msg.sender` is the current owner. Throws if `to`535 /// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
557 }620 }
558}621}
559622
623<<<<<<< HEAD
560/// @dev anonymous struct624/// @dev anonymous struct
561struct Tuple8 {625struct Tuple8 {
562 uint256 field_0;626 uint256 field_0;
563 string field_1;627 string field_1;
564}628}
629=======
630// Selector: ffe4da23
631=======
632// Selector: 765e2fae
633>>>>>>> misk: Update stubs
634contract Collection is Dummy, ERC165 {
635 // Set collection property.
636 //
637 // @param key Property key.
638 // @param value Propery value.
639 //
640 // Selector: setCollectionProperty(string,bytes) 2f073f66
641 function setCollectionProperty(string memory key, bytes memory value)
642 public
643 {
644 require(false, stub_error);
645 key;
646 value;
647 dummy = 0;
648 }
649>>>>>>> misk: Update stubs
565650
566/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension651/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
567/// @dev See https://eips.ethereum.org/EIPS/eip-721652/// @dev See https://eips.ethereum.org/EIPS/eip-721
592 owner;677 owner;
593 index;678 index;
594 dummy;679 dummy;
680<<<<<<< HEAD
595 return 0;681 return 0;
682=======
683 return hex"";
684 }
685
686 // Set the sponsor of the collection.
687 //
688 // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
689 //
690 // @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.
691 //
692 // Selector: setCollectionSponsor(address) 7623402e
693 function setCollectionSponsor(address sponsor) public {
694 require(false, stub_error);
695 sponsor;
696 dummy = 0;
697 }
698
699 // Set the substrate sponsor of the collection.
700 //
701 // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
702 //
703 // @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
704 //
705 // Selector: setCollectionSponsorSubstrate(uint256) c74d6751
706 function setCollectionSponsorSubstrate(uint256 sponsor) public {
707 require(false, stub_error);
708 sponsor;
709 dummy = 0;
710 }
711
712 // Selector: hasCollectionPendingSponsor() 058ac185
713 function hasCollectionPendingSponsor() public view returns (bool) {
714 require(false, stub_error);
715 dummy;
716 return false;
717 }
718
719 // Collection sponsorship confirmation.
720 //
721 // @dev After setting the sponsor for the collection, it must be confirmed with this function.
722 //
723 // Selector: confirmCollectionSponsorship() 3c50e97a
724 function confirmCollectionSponsorship() public {
725 require(false, stub_error);
726 dummy = 0;
727 }
728
729 // Remove collection sponsor.
730 //
731 // Selector: removeCollectionSponsor() 6e0326a3
732 function removeCollectionSponsor() public {
733 require(false, stub_error);
734 dummy = 0;
735 }
736
737 // Get current sponsor.
738 //
739 // @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
740 //
741 // Selector: getCollectionSponsor() b66bbc14
742 function getCollectionSponsor() public view returns (Tuple1 memory) {
743 require(false, stub_error);
744 dummy;
745 return Tuple1(0x0000000000000000000000000000000000000000, 0);
746 }
747
748 // Set limits for the collection.
749 // @dev Throws error if limit not found.
750 // @param limit Name of the limit. Valid names:
751 // "accountTokenOwnershipLimit",
752 // "sponsoredDataSize",
753 // "sponsoredDataRateLimit",
754 // "tokenLimit",
755 // "sponsorTransferTimeout",
756 // "sponsorApproveTimeout"
757 // @param value Value of the limit.
758 //
759 // Selector: setCollectionLimit(string,uint32) 6a3841db
760 function setCollectionLimit(string memory limit, uint32 value) public {
761 require(false, stub_error);
762 limit;
763 value;
764 dummy = 0;
765>>>>>>> misk: Update stubs
596 }766 }
597767
598 /// @notice Count RFTs tracked by this contract768 /// @notice Count RFTs tracked by this contract
modifiedtests/src/eth/api/UniqueFungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -3,7 +3,17 @@
 
 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 {
 
 }
@@ -12,8 +22,69 @@
 	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
+	);
+}
+
+<<<<<<< HEAD
+// 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);
+}
+
+// Selector: ffe4da23
+=======
+// Selector: 765e2fae
+>>>>>>> misk: Update stubs
+>>>>>>> misk: Update stubs
 interface Collection is Dummy, ERC165 {
 	/// Set collection property.
 	///
@@ -53,6 +124,7 @@
 	///  or in textual repr: setCollectionSponsor(address)
 	function setCollectionSponsor(address sponsor) external;
 
+<<<<<<< HEAD
 	/// Collection sponsorship confirmation.
 	///
 	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.
@@ -72,6 +144,51 @@
 	/// @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.
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -3,7 +3,23 @@
 
 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 {
 
 }
@@ -305,8 +321,39 @@
 	function finishMinting() external returns (bool);
 }
 
+<<<<<<< HEAD
 /// @title Unique extensions for ERC721.
 /// @dev the ERC-165 identifier for this interface is 0xd74d154f
+=======
+<<<<<<< HEAD
+// 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`
@@ -355,11 +402,27 @@
 		returns (bool);
 }
 
+<<<<<<< HEAD
 /// @dev anonymous struct
 struct Tuple8 {
 	uint256 field_0;
 	string field_1;
 }
+=======
+// Selector: ffe4da23
+=======
+// Selector: 765e2fae
+>>>>>>> misk: 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
@@ -379,7 +442,87 @@
 	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,7 +3,23 @@
 
 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 {
 
 }
@@ -305,8 +321,39 @@
 	function finishMinting() external returns (bool);
 }
 
+<<<<<<< HEAD
 /// @title Unique extensions for ERC721.
 /// @dev the ERC-165 identifier for this interface is 0x7c3bef89
+=======
+<<<<<<< HEAD
+// 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`
@@ -367,11 +414,27 @@
 		returns (address);
 }
 
+<<<<<<< HEAD
 /// @dev anonymous struct
 struct Tuple8 {
 	uint256 field_0;
 	string field_1;
 }
+=======
+// Selector: ffe4da23
+=======
+// Selector: 765e2fae
+>>>>>>> misk: 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
@@ -391,7 +454,87 @@
 	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
@@ -170,6 +170,30 @@
   },
   {
     "inputs": [],
+    "name": "getCollectionSponsor",
+    "outputs": [
+      {
+        "components": [
+          { "internalType": "address", "name": "field_0", "type": "address" },
+          { "internalType": "uint256", "name": "field_1", "type": "uint256" }
+        ],
+        "internalType": "struct Tuple0",
+        "name": "",
+        "type": "tuple"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "hasCollectionPendingSponsor",
+    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
     "name": "name",
     "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
     "stateMutability": "view",
@@ -194,6 +218,13 @@
     "type": "function"
   },
   {
+    "inputs": [],
+    "name": "removeCollectionSponsor",
+    "outputs": [],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
     "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
@@ -278,6 +309,7 @@
   },
   {
     "inputs": [
+<<<<<<< HEAD
       { "internalType": "address", "name": "newOwner", "type": "address" }
     ],
     "name": "setOwner",
@@ -290,6 +322,11 @@
       { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
     ],
     "name": "setOwnerSubstrate",
+=======
+      { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
+    ],
+    "name": "setCollectionSponsorSubstrate",
+>>>>>>> misk: Update stubs
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -200,6 +200,30 @@
     "type": "function"
   },
   {
+    "inputs": [],
+    "name": "getCollectionSponsor",
+    "outputs": [
+      {
+        "components": [
+          { "internalType": "address", "name": "field_0", "type": "address" },
+          { "internalType": "uint256", "name": "field_1", "type": "uint256" }
+        ],
+        "internalType": "struct Tuple1",
+        "name": "",
+        "type": "tuple"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "hasCollectionPendingSponsor",
+    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
     "inputs": [
       { "internalType": "address", "name": "owner", "type": "address" },
       { "internalType": "address", "name": "operator", "type": "address" }
@@ -335,6 +359,13 @@
     "type": "function"
   },
   {
+    "inputs": [],
+    "name": "removeCollectionSponsor",
+    "outputs": [],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
     "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
@@ -452,6 +483,7 @@
   },
   {
     "inputs": [
+<<<<<<< HEAD
       { "internalType": "address", "name": "newOwner", "type": "address" }
     ],
     "name": "setOwner",
@@ -464,6 +496,11 @@
       { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
     ],
     "name": "setOwnerSubstrate",
+=======
+      { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
+    ],
+    "name": "setCollectionSponsorSubstrate",
+>>>>>>> misk: Update stubs
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"
modifiedtests/src/eth/reFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/reFungibleAbi.json
+++ b/tests/src/eth/reFungibleAbi.json
@@ -200,6 +200,30 @@
     "type": "function"
   },
   {
+    "inputs": [],
+    "name": "getCollectionSponsor",
+    "outputs": [
+      {
+        "components": [
+          { "internalType": "address", "name": "field_0", "type": "address" },
+          { "internalType": "uint256", "name": "field_1", "type": "uint256" }
+        ],
+        "internalType": "struct Tuple1",
+        "name": "",
+        "type": "tuple"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "hasCollectionPendingSponsor",
+    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
     "inputs": [
       { "internalType": "address", "name": "owner", "type": "address" },
       { "internalType": "address", "name": "operator", "type": "address" }
@@ -335,6 +359,13 @@
     "type": "function"
   },
   {
+    "inputs": [],
+    "name": "removeCollectionSponsor",
+    "outputs": [],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
     "inputs": [
       { "internalType": "address", "name": "user", "type": "address" }
     ],
@@ -452,6 +483,7 @@
   },
   {
     "inputs": [
+<<<<<<< HEAD
       { "internalType": "address", "name": "newOwner", "type": "address" }
     ],
     "name": "setOwner",
@@ -464,6 +496,11 @@
       { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
     ],
     "name": "setOwnerSubstrate",
+=======
+      { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
+    ],
+    "name": "setCollectionSponsorSubstrate",
+>>>>>>> misk: Update stubs
     "outputs": [],
     "stateMutability": "nonpayable",
     "type": "function"