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
before · pallets/fungible/src/stubs/UniqueFungible.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 you to work with collections.25/// @dev the ERC-165 identifier for this interface is 0xffe4da2326contract Collection is Dummy, ERC165 {27	/// Set collection property.28	///29	/// @param key Property key.30	/// @param value Propery value.31	/// @dev EVM selector for this function is: 0x2f073f66,32	///  or in textual repr: setCollectionProperty(string,bytes)33	function setCollectionProperty(string memory key, bytes memory value)34		public35	{36		require(false, stub_error);37		key;38		value;39		dummy = 0;40	}4142	/// Delete collection property.43	///44	/// @param key Property key.45	/// @dev EVM selector for this function is: 0x7b7debce,46	///  or in textual repr: deleteCollectionProperty(string)47	function deleteCollectionProperty(string memory key) public {48		require(false, stub_error);49		key;50		dummy = 0;51	}5253	/// Get collection property.54	///55	/// @dev Throws error if key not found.56	///57	/// @param key Property key.58	/// @return bytes The property corresponding to the key.59	/// @dev EVM selector for this function is: 0xcf24fd6d,60	///  or in textual repr: collectionProperty(string)61	function collectionProperty(string memory key)62		public63		view64		returns (bytes memory)65	{66		require(false, stub_error);67		key;68		dummy;69		return hex"";70	}7172	/// Set the sponsor of the collection.73	///74	/// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.75	///76	/// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.77	/// @dev EVM selector for this function is: 0x7623402e,78	///  or in textual repr: setCollectionSponsor(address)79	function setCollectionSponsor(address sponsor) public {80		require(false, stub_error);81		sponsor;82		dummy = 0;83	}8485	/// Collection sponsorship confirmation.86	///87	/// @dev After setting the sponsor for the collection, it must be confirmed with this function.88	/// @dev EVM selector for this function is: 0x3c50e97a,89	///  or in textual repr: confirmCollectionSponsorship()90	function confirmCollectionSponsorship() public {91		require(false, stub_error);92		dummy = 0;93	}9495	/// Set limits for the collection.96	/// @dev Throws error if limit not found.97	/// @param limit Name of the limit. Valid names:98	/// 	"accountTokenOwnershipLimit",99	/// 	"sponsoredDataSize",100	/// 	"sponsoredDataRateLimit",101	/// 	"tokenLimit",102	/// 	"sponsorTransferTimeout",103	/// 	"sponsorApproveTimeout"104	/// @param value Value of the limit.105	/// @dev EVM selector for this function is: 0x6a3841db,106	///  or in textual repr: setCollectionLimit(string,uint32)107	function setCollectionLimit(string memory limit, uint32 value) public {108		require(false, stub_error);109		limit;110		value;111		dummy = 0;112	}113114	/// Set limits for the collection.115	/// @dev Throws error if limit not found.116	/// @param limit Name of the limit. Valid names:117	/// 	"ownerCanTransfer",118	/// 	"ownerCanDestroy",119	/// 	"transfersEnabled"120	/// @param value Value of the limit.121	/// @dev EVM selector for this function is: 0x993b7fba,122	///  or in textual repr: setCollectionLimit(string,bool)123	function setCollectionLimit(string memory limit, bool value) public {124		require(false, stub_error);125		limit;126		value;127		dummy = 0;128	}129130	/// Get contract address.131	/// @dev EVM selector for this function is: 0xf6b4dfb4,132	///  or in textual repr: contractAddress()133	function contractAddress() public view returns (address) {134		require(false, stub_error);135		dummy;136		return 0x0000000000000000000000000000000000000000;137	}138139	/// Add collection admin by substrate address.140	/// @param newAdmin Substrate administrator address.141	/// @dev EVM selector for this function is: 0x5730062b,142	///  or in textual repr: addCollectionAdminSubstrate(uint256)143	function addCollectionAdminSubstrate(uint256 newAdmin) public {144		require(false, stub_error);145		newAdmin;146		dummy = 0;147	}148149	/// Remove collection admin by substrate address.150	/// @param admin Substrate administrator address.151	/// @dev EVM selector for this function is: 0x4048fcf9,152	///  or in textual repr: removeCollectionAdminSubstrate(uint256)153	function removeCollectionAdminSubstrate(uint256 admin) public {154		require(false, stub_error);155		admin;156		dummy = 0;157	}158159	/// Add collection admin.160	/// @param newAdmin Address of the added administrator.161	/// @dev EVM selector for this function is: 0x92e462c7,162	///  or in textual repr: addCollectionAdmin(address)163	function addCollectionAdmin(address newAdmin) public {164		require(false, stub_error);165		newAdmin;166		dummy = 0;167	}168169	/// Remove collection admin.170	///171	/// @param admin Address of the removed administrator.172	/// @dev EVM selector for this function is: 0xfafd7b42,173	///  or in textual repr: removeCollectionAdmin(address)174	function removeCollectionAdmin(address admin) public {175		require(false, stub_error);176		admin;177		dummy = 0;178	}179180	/// Toggle accessibility of collection nesting.181	///182	/// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'183	/// @dev EVM selector for this function is: 0x112d4586,184	///  or in textual repr: setCollectionNesting(bool)185	function setCollectionNesting(bool enable) public {186		require(false, stub_error);187		enable;188		dummy = 0;189	}190191	/// Toggle accessibility of collection nesting.192	///193	/// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'194	/// @param collections Addresses of collections that will be available for nesting.195	/// @dev EVM selector for this function is: 0x64872396,196	///  or in textual repr: setCollectionNesting(bool,address[])197	function setCollectionNesting(bool enable, address[] memory collections)198		public199	{200		require(false, stub_error);201		enable;202		collections;203		dummy = 0;204	}205206	/// Set the collection access method.207	/// @param mode Access mode208	/// 	0 for Normal209	/// 	1 for AllowList210	/// @dev EVM selector for this function is: 0x41835d4c,211	///  or in textual repr: setCollectionAccess(uint8)212	function setCollectionAccess(uint8 mode) public {213		require(false, stub_error);214		mode;215		dummy = 0;216	}217218	/// Add the user to the allowed list.219	///220	/// @param user Address of a trusted user.221	/// @dev EVM selector for this function is: 0x67844fe6,222	///  or in textual repr: addToCollectionAllowList(address)223	function addToCollectionAllowList(address user) public {224		require(false, stub_error);225		user;226		dummy = 0;227	}228229	/// Remove the user from the allowed list.230	///231	/// @param user Address of a removed user.232	/// @dev EVM selector for this function is: 0x85c51acb,233	///  or in textual repr: removeFromCollectionAllowList(address)234	function removeFromCollectionAllowList(address user) public {235		require(false, stub_error);236		user;237		dummy = 0;238	}239240	/// Switch permission for minting.241	///242	/// @param mode Enable if "true".243	/// @dev EVM selector for this function is: 0x00018e84,244	///  or in textual repr: setCollectionMintMode(bool)245	function setCollectionMintMode(bool mode) public {246		require(false, stub_error);247		mode;248		dummy = 0;249	}250251	/// Check that account is the owner or admin of the collection252	///253	/// @param user account to verify254	/// @return "true" if account is the owner or admin255	/// @dev EVM selector for this function is: 0x9811b0c7,256	///  or in textual repr: isOwnerOrAdmin(address)257	function isOwnerOrAdmin(address user) public view returns (bool) {258		require(false, stub_error);259		user;260		dummy;261		return false;262	}263264	/// Check that substrate account is the owner or admin of the collection265	///266	/// @param user account to verify267	/// @return "true" if account is the owner or admin268	/// @dev EVM selector for this function is: 0x68910e00,269	///  or in textual repr: isOwnerOrAdminSubstrate(uint256)270	function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {271		require(false, stub_error);272		user;273		dummy;274		return false;275	}276277	/// Returns collection type278	///279	/// @return `Fungible` or `NFT` or `ReFungible`280	/// @dev EVM selector for this function is: 0xd34b55b8,281	///  or in textual repr: uniqueCollectionType()282	function uniqueCollectionType() public returns (string memory) {283		require(false, stub_error);284		dummy = 0;285		return "";286	}287288	/// Changes collection owner to another account289	///290	/// @dev Owner can be changed only by current owner291	/// @param newOwner new owner account292	/// @dev EVM selector for this function is: 0x13af4035,293	///  or in textual repr: setOwner(address)294	function setOwner(address newOwner) public {295		require(false, stub_error);296		newOwner;297		dummy = 0;298	}299300	/// Changes collection owner to another substrate account301	///302	/// @dev Owner can be changed only by current owner303	/// @param newOwner new owner substrate account304	/// @dev EVM selector for this function is: 0xb212138f,305	///  or in textual repr: setOwnerSubstrate(uint256)306	function setOwnerSubstrate(uint256 newOwner) public {307		require(false, stub_error);308		newOwner;309		dummy = 0;310	}311}312313/// @dev the ERC-165 identifier for this interface is 0x79cc6790314contract ERC20UniqueExtensions is Dummy, ERC165 {315	/// @dev EVM selector for this function is: 0x79cc6790,316	///  or in textual repr: burnFrom(address,uint256)317	function burnFrom(address from, uint256 amount) public returns (bool) {318		require(false, stub_error);319		from;320		amount;321		dummy = 0;322		return false;323	}324}325326/// @dev inlined interface327contract ERC20Events {328	event Transfer(address indexed from, address indexed to, uint256 value);329	event Approval(330		address indexed owner,331		address indexed spender,332		uint256 value333	);334}335336/// @dev the ERC-165 identifier for this interface is 0x942e8b22337contract ERC20 is Dummy, ERC165, ERC20Events {338	/// @dev EVM selector for this function is: 0x06fdde03,339	///  or in textual repr: name()340	function name() public view returns (string memory) {341		require(false, stub_error);342		dummy;343		return "";344	}345346	/// @dev EVM selector for this function is: 0x95d89b41,347	///  or in textual repr: symbol()348	function symbol() public view returns (string memory) {349		require(false, stub_error);350		dummy;351		return "";352	}353354	/// @dev EVM selector for this function is: 0x18160ddd,355	///  or in textual repr: totalSupply()356	function totalSupply() public view returns (uint256) {357		require(false, stub_error);358		dummy;359		return 0;360	}361362	/// @dev EVM selector for this function is: 0x313ce567,363	///  or in textual repr: decimals()364	function decimals() public view returns (uint8) {365		require(false, stub_error);366		dummy;367		return 0;368	}369370	/// @dev EVM selector for this function is: 0x70a08231,371	///  or in textual repr: balanceOf(address)372	function balanceOf(address owner) public view returns (uint256) {373		require(false, stub_error);374		owner;375		dummy;376		return 0;377	}378379	/// @dev EVM selector for this function is: 0xa9059cbb,380	///  or in textual repr: transfer(address,uint256)381	function transfer(address to, uint256 amount) public returns (bool) {382		require(false, stub_error);383		to;384		amount;385		dummy = 0;386		return false;387	}388389	/// @dev EVM selector for this function is: 0x23b872dd,390	///  or in textual repr: transferFrom(address,address,uint256)391	function transferFrom(392		address from,393		address to,394		uint256 amount395	) public returns (bool) {396		require(false, stub_error);397		from;398		to;399		amount;400		dummy = 0;401		return false;402	}403404	/// @dev EVM selector for this function is: 0x095ea7b3,405	///  or in textual repr: approve(address,uint256)406	function approve(address spender, uint256 amount) public returns (bool) {407		require(false, stub_error);408		spender;409		amount;410		dummy = 0;411		return false;412	}413414	/// @dev EVM selector for this function is: 0xdd62ed3e,415	///  or in textual repr: allowance(address,address)416	function allowance(address owner, address spender)417		public418		view419		returns (uint256)420	{421		require(false, stub_error);422		owner;423		spender;424		dummy;425		return 0;426	}427}428429contract UniqueFungible is430	Dummy,431	ERC165,432	ERC20,433	ERC20UniqueExtensions,434	Collection435{}
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
--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/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
 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 0x7c3bef89
+=======
+<<<<<<< HEAD
+// 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`
@@ -557,11 +620,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
@@ -592,7 +677,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 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"