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

difftreelog

chore regenerate stubs

Yaroslav Bolyukin2022-10-13parent: #ae73107.patch.diff
in: master

8 files changed

modifiedpallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -444,13 +444,13 @@
 }
 
 /// @dev inlined interface
-contract ERC721MintableEvents {
+contract ERC721UniqueMintableEvents {
 	event MintingFinished();
 }
 
 /// @title ERC721 minting logic.
-/// @dev the ERC-165 identifier for this interface is 0x68ccfe89
-contract ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {
+/// @dev the ERC-165 identifier for this interface is 0x476ff149
+contract ERC721UniqueMintable is Dummy, ERC165, ERC721UniqueMintableEvents {
 	/// @dev EVM selector for this function is: 0x05d2035b,
 	///  or in textual repr: mintingFinished()
 	function mintingFinished() public view returns (bool) {
@@ -460,41 +460,63 @@
 	}
 
 	/// @notice Function to mint token.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted NFT
-	/// @dev EVM selector for this function is: 0x40c10f19,
-	///  or in textual repr: mint(address,uint256)
-	function mint(address to, uint256 tokenId) public returns (bool) {
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x6a627842,
+	///  or in textual repr: mint(address)
+	function mint(address to) public returns (uint256) {
 		require(false, stub_error);
 		to;
-		tokenId;
 		dummy = 0;
-		return false;
+		return 0;
 	}
 
+	// /// @notice Function to mint token.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted NFT
+	// /// @dev EVM selector for this function is: 0x40c10f19,
+	// ///  or in textual repr: mint(address,uint256)
+	// function mint(address to, uint256 tokenId) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokenId;
+	// 	dummy = 0;
+	// 	return false;
+	// }
+
 	/// @notice Function to mint token with the given tokenUri.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted NFT
 	/// @param tokenUri Token URI that would be stored in the NFT properties
-	/// @dev EVM selector for this function is: 0x50bb4e7f,
-	///  or in textual repr: mintWithTokenURI(address,uint256,string)
-	function mintWithTokenURI(
-		address to,
-		uint256 tokenId,
-		string memory tokenUri
-	) public returns (bool) {
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x45c17782,
+	///  or in textual repr: mintWithTokenURI(address,string)
+	function mintWithTokenURI(address to, string memory tokenUri) public returns (uint256) {
 		require(false, stub_error);
 		to;
-		tokenId;
 		tokenUri;
 		dummy = 0;
-		return false;
+		return 0;
 	}
 
+	// /// @notice Function to mint token with the given tokenUri.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted NFT
+	// /// @param tokenUri Token URI that would be stored in the NFT properties
+	// /// @dev EVM selector for this function is: 0x50bb4e7f,
+	// ///  or in textual repr: mintWithTokenURI(address,uint256,string)
+	// function mintWithTokenURI(address to, uint256 tokenId, string memory tokenUri) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokenId;
+	// 	tokenUri;
+	// 	dummy = 0;
+	// 	return false;
+	// }
+
 	/// @dev Not implemented
 	/// @dev EVM selector for this function is: 0x7d64bcb4,
 	///  or in textual repr: finishMinting()
@@ -563,36 +585,36 @@
 		dummy;
 		return 0;
 	}
+	// /// @notice Function to mint multiple tokens.
+	// /// @dev `tokenIds` should be an array of consecutive numbers and first number
+	// ///  should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokenIds IDs of the minted NFTs
+	// /// @dev EVM selector for this function is: 0x44a9945e,
+	// ///  or in textual repr: mintBulk(address,uint256[])
+	// function mintBulk(address to, uint256[] memory tokenIds) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokenIds;
+	// 	dummy = 0;
+	// 	return false;
+	// }
 
-	/// @notice Function to mint multiple tokens.
-	/// @dev `tokenIds` should be an array of consecutive numbers and first number
-	///  should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokenIds IDs of the minted NFTs
-	/// @dev EVM selector for this function is: 0x44a9945e,
-	///  or in textual repr: mintBulk(address,uint256[])
-	function mintBulk(address to, uint256[] memory tokenIds) public returns (bool) {
-		require(false, stub_error);
-		to;
-		tokenIds;
-		dummy = 0;
-		return false;
-	}
+	// /// @notice Function to mint multiple tokens with the given tokenUris.
+	// /// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
+	// ///  numbers and first number should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokens array of pairs of token ID and token URI for minted tokens
+	// /// @dev EVM selector for this function is: 0x36543006,
+	// ///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
+	// function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokens;
+	// 	dummy = 0;
+	// 	return false;
+	// }
 
-	/// @notice Function to mint multiple tokens with the given tokenUris.
-	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
-	///  numbers and first number should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokens array of pairs of token ID and token URI for minted tokens
-	/// @dev EVM selector for this function is: 0x36543006,
-	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
-	function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) public returns (bool) {
-		require(false, stub_error);
-		to;
-		tokens;
-		dummy = 0;
-		return false;
-	}
 }
 
 /// @dev anonymous struct
@@ -788,7 +810,7 @@
 	ERC721,
 	ERC721Enumerable,
 	ERC721UniqueExtensions,
-	ERC721Mintable,
+	ERC721UniqueMintable,
 	ERC721Burnable,
 	ERC721Metadata,
 	Collection,
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
@@ -442,13 +442,13 @@
 }
 
 /// @dev inlined interface
-contract ERC721MintableEvents {
+contract ERC721UniqueMintableEvents {
 	event MintingFinished();
 }
 
 /// @title ERC721 minting logic.
-/// @dev the ERC-165 identifier for this interface is 0x68ccfe89
-contract ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {
+/// @dev the ERC-165 identifier for this interface is 0x476ff149
+contract ERC721UniqueMintable is Dummy, ERC165, ERC721UniqueMintableEvents {
 	/// @dev EVM selector for this function is: 0x05d2035b,
 	///  or in textual repr: mintingFinished()
 	function mintingFinished() public view returns (bool) {
@@ -458,41 +458,63 @@
 	}
 
 	/// @notice Function to mint token.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted RFT
-	/// @dev EVM selector for this function is: 0x40c10f19,
-	///  or in textual repr: mint(address,uint256)
-	function mint(address to, uint256 tokenId) public returns (bool) {
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x6a627842,
+	///  or in textual repr: mint(address)
+	function mint(address to) public returns (uint256) {
 		require(false, stub_error);
 		to;
-		tokenId;
 		dummy = 0;
-		return false;
+		return 0;
 	}
 
+	// /// @notice Function to mint token.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted RFT
+	// /// @dev EVM selector for this function is: 0x40c10f19,
+	// ///  or in textual repr: mint(address,uint256)
+	// function mint(address to, uint256 tokenId) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokenId;
+	// 	dummy = 0;
+	// 	return false;
+	// }
+
 	/// @notice Function to mint token with the given tokenUri.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted RFT
-	/// @param tokenUri Token URI that would be stored in the RFT properties
-	/// @dev EVM selector for this function is: 0x50bb4e7f,
-	///  or in textual repr: mintWithTokenURI(address,uint256,string)
-	function mintWithTokenURI(
-		address to,
-		uint256 tokenId,
-		string memory tokenUri
-	) public returns (bool) {
+	/// @param tokenUri Token URI that would be stored in the NFT properties
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x45c17782,
+	///  or in textual repr: mintWithTokenURI(address,string)
+	function mintWithTokenURI(address to, string memory tokenUri) public returns (uint256) {
 		require(false, stub_error);
 		to;
-		tokenId;
 		tokenUri;
 		dummy = 0;
-		return false;
+		return 0;
 	}
 
+	// /// @notice Function to mint token with the given tokenUri.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted RFT
+	// /// @param tokenUri Token URI that would be stored in the RFT properties
+	// /// @dev EVM selector for this function is: 0x50bb4e7f,
+	// ///  or in textual repr: mintWithTokenURI(address,uint256,string)
+	// function mintWithTokenURI(address to, uint256 tokenId, string memory tokenUri) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokenId;
+	// 	tokenUri;
+	// 	dummy = 0;
+	// 	return false;
+	// }
+
 	/// @dev Not implemented
 	/// @dev EVM selector for this function is: 0x7d64bcb4,
 	///  or in textual repr: finishMinting()
@@ -564,35 +586,35 @@
 		return 0;
 	}
 
-	/// @notice Function to mint multiple tokens.
-	/// @dev `tokenIds` should be an array of consecutive numbers and first number
-	///  should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokenIds IDs of the minted RFTs
-	/// @dev EVM selector for this function is: 0x44a9945e,
-	///  or in textual repr: mintBulk(address,uint256[])
-	function mintBulk(address to, uint256[] memory tokenIds) public returns (bool) {
-		require(false, stub_error);
-		to;
-		tokenIds;
-		dummy = 0;
-		return false;
-	}
+	// /// @notice Function to mint multiple tokens.
+	// /// @dev `tokenIds` should be an array of consecutive numbers and first number
+	// ///  should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokenIds IDs of the minted RFTs
+	// /// @dev EVM selector for this function is: 0x44a9945e,
+	// ///  or in textual repr: mintBulk(address,uint256[])
+	// function mintBulk(address to, uint256[] memory tokenIds) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokenIds;
+	// 	dummy = 0;
+	// 	return false;
+	// }
 
-	/// @notice Function to mint multiple tokens with the given tokenUris.
-	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
-	///  numbers and first number should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokens array of pairs of token ID and token URI for minted tokens
-	/// @dev EVM selector for this function is: 0x36543006,
-	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
-	function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) public returns (bool) {
-		require(false, stub_error);
-		to;
-		tokens;
-		dummy = 0;
-		return false;
-	}
+	// /// @notice Function to mint multiple tokens with the given tokenUris.
+	// /// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
+	// ///  numbers and first number should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokens array of pairs of token ID and token URI for minted tokens
+	// /// @dev EVM selector for this function is: 0x36543006,
+	// ///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
+	// function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) public returns (bool) {
+	// 	require(false, stub_error);
+	// 	to;
+	// 	tokens;
+	// 	dummy = 0;
+	// 	return false;
+	// }
 
 	/// Returns EVM address for refungible token
 	///
@@ -798,7 +820,7 @@
 	ERC721,
 	ERC721Enumerable,
 	ERC721UniqueExtensions,
-	ERC721Mintable,
+	ERC721UniqueMintable,
 	ERC721Burnable,
 	ERC721Metadata,
 	Collection,
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -297,40 +297,51 @@
 }
 
 /// @dev inlined interface
-interface ERC721MintableEvents {
+interface ERC721UniqueMintableEvents {
 	event MintingFinished();
 }
 
 /// @title ERC721 minting logic.
-/// @dev the ERC-165 identifier for this interface is 0x68ccfe89
-interface ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {
+/// @dev the ERC-165 identifier for this interface is 0x476ff149
+interface ERC721UniqueMintable is Dummy, ERC165, ERC721UniqueMintableEvents {
 	/// @dev EVM selector for this function is: 0x05d2035b,
 	///  or in textual repr: mintingFinished()
 	function mintingFinished() external view returns (bool);
 
 	/// @notice Function to mint token.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted NFT
-	/// @dev EVM selector for this function is: 0x40c10f19,
-	///  or in textual repr: mint(address,uint256)
-	function mint(address to, uint256 tokenId) external returns (bool);
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x6a627842,
+	///  or in textual repr: mint(address)
+	function mint(address to) external returns (uint256);
+
+	// /// @notice Function to mint token.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted NFT
+	// /// @dev EVM selector for this function is: 0x40c10f19,
+	// ///  or in textual repr: mint(address,uint256)
+	// function mint(address to, uint256 tokenId) external returns (bool);
 
 	/// @notice Function to mint token with the given tokenUri.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted NFT
 	/// @param tokenUri Token URI that would be stored in the NFT properties
-	/// @dev EVM selector for this function is: 0x50bb4e7f,
-	///  or in textual repr: mintWithTokenURI(address,uint256,string)
-	function mintWithTokenURI(
-		address to,
-		uint256 tokenId,
-		string memory tokenUri
-	) external returns (bool);
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x45c17782,
+	///  or in textual repr: mintWithTokenURI(address,string)
+	function mintWithTokenURI(address to, string memory tokenUri) external returns (uint256);
 
+	// /// @notice Function to mint token with the given tokenUri.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted NFT
+	// /// @param tokenUri Token URI that would be stored in the NFT properties
+	// /// @dev EVM selector for this function is: 0x50bb4e7f,
+	// ///  or in textual repr: mintWithTokenURI(address,uint256,string)
+	// function mintWithTokenURI(address to, uint256 tokenId, string memory tokenUri) external returns (bool);
+
 	/// @dev Not implemented
 	/// @dev EVM selector for this function is: 0x7d64bcb4,
 	///  or in textual repr: finishMinting()
@@ -373,24 +384,24 @@
 	/// @dev EVM selector for this function is: 0x75794a3c,
 	///  or in textual repr: nextTokenId()
 	function nextTokenId() external view returns (uint256);
+	// /// @notice Function to mint multiple tokens.
+	// /// @dev `tokenIds` should be an array of consecutive numbers and first number
+	// ///  should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokenIds IDs of the minted NFTs
+	// /// @dev EVM selector for this function is: 0x44a9945e,
+	// ///  or in textual repr: mintBulk(address,uint256[])
+	// function mintBulk(address to, uint256[] memory tokenIds) external returns (bool);
 
-	/// @notice Function to mint multiple tokens.
-	/// @dev `tokenIds` should be an array of consecutive numbers and first number
-	///  should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokenIds IDs of the minted NFTs
-	/// @dev EVM selector for this function is: 0x44a9945e,
-	///  or in textual repr: mintBulk(address,uint256[])
-	function mintBulk(address to, uint256[] memory tokenIds) external returns (bool);
+	// /// @notice Function to mint multiple tokens with the given tokenUris.
+	// /// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
+	// ///  numbers and first number should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokens array of pairs of token ID and token URI for minted tokens
+	// /// @dev EVM selector for this function is: 0x36543006,
+	// ///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
+	// function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) external returns (bool);
 
-	/// @notice Function to mint multiple tokens with the given tokenUris.
-	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
-	///  numbers and first number should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokens array of pairs of token ID and token URI for minted tokens
-	/// @dev EVM selector for this function is: 0x36543006,
-	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
-	function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) external returns (bool);
 }
 
 /// @dev anonymous struct
@@ -521,7 +532,7 @@
 	ERC721,
 	ERC721Enumerable,
 	ERC721UniqueExtensions,
-	ERC721Mintable,
+	ERC721UniqueMintable,
 	ERC721Burnable,
 	ERC721Metadata,
 	Collection,
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -295,40 +295,51 @@
 }
 
 /// @dev inlined interface
-interface ERC721MintableEvents {
+interface ERC721UniqueMintableEvents {
 	event MintingFinished();
 }
 
 /// @title ERC721 minting logic.
-/// @dev the ERC-165 identifier for this interface is 0x68ccfe89
-interface ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {
+/// @dev the ERC-165 identifier for this interface is 0x476ff149
+interface ERC721UniqueMintable is Dummy, ERC165, ERC721UniqueMintableEvents {
 	/// @dev EVM selector for this function is: 0x05d2035b,
 	///  or in textual repr: mintingFinished()
 	function mintingFinished() external view returns (bool);
 
 	/// @notice Function to mint token.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted RFT
-	/// @dev EVM selector for this function is: 0x40c10f19,
-	///  or in textual repr: mint(address,uint256)
-	function mint(address to, uint256 tokenId) external returns (bool);
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x6a627842,
+	///  or in textual repr: mint(address)
+	function mint(address to) external returns (uint256);
 
+	// /// @notice Function to mint token.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted RFT
+	// /// @dev EVM selector for this function is: 0x40c10f19,
+	// ///  or in textual repr: mint(address,uint256)
+	// function mint(address to, uint256 tokenId) external returns (bool);
+
 	/// @notice Function to mint token with the given tokenUri.
-	/// @dev `tokenId` should be obtained with `nextTokenId` method,
-	///  unlike standard, you can't specify it manually
 	/// @param to The new owner
-	/// @param tokenId ID of the minted RFT
-	/// @param tokenUri Token URI that would be stored in the RFT properties
-	/// @dev EVM selector for this function is: 0x50bb4e7f,
-	///  or in textual repr: mintWithTokenURI(address,uint256,string)
-	function mintWithTokenURI(
-		address to,
-		uint256 tokenId,
-		string memory tokenUri
-	) external returns (bool);
+	/// @param tokenUri Token URI that would be stored in the NFT properties
+	/// @return uint256 The id of the newly minted token
+	/// @dev EVM selector for this function is: 0x45c17782,
+	///  or in textual repr: mintWithTokenURI(address,string)
+	function mintWithTokenURI(address to, string memory tokenUri) external returns (uint256);
 
+	// /// @notice Function to mint token with the given tokenUri.
+	// /// @dev `tokenId` should be obtained with `nextTokenId` method,
+	// ///  unlike standard, you can't specify it manually
+	// /// @param to The new owner
+	// /// @param tokenId ID of the minted RFT
+	// /// @param tokenUri Token URI that would be stored in the RFT properties
+	// /// @dev EVM selector for this function is: 0x50bb4e7f,
+	// ///  or in textual repr: mintWithTokenURI(address,uint256,string)
+	// function mintWithTokenURI(address to, uint256 tokenId, string memory tokenUri) external returns (bool);
+
 	/// @dev Not implemented
 	/// @dev EVM selector for this function is: 0x7d64bcb4,
 	///  or in textual repr: finishMinting()
@@ -374,23 +385,23 @@
 	///  or in textual repr: nextTokenId()
 	function nextTokenId() external view returns (uint256);
 
-	/// @notice Function to mint multiple tokens.
-	/// @dev `tokenIds` should be an array of consecutive numbers and first number
-	///  should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokenIds IDs of the minted RFTs
-	/// @dev EVM selector for this function is: 0x44a9945e,
-	///  or in textual repr: mintBulk(address,uint256[])
-	function mintBulk(address to, uint256[] memory tokenIds) external returns (bool);
+	// /// @notice Function to mint multiple tokens.
+	// /// @dev `tokenIds` should be an array of consecutive numbers and first number
+	// ///  should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokenIds IDs of the minted RFTs
+	// /// @dev EVM selector for this function is: 0x44a9945e,
+	// ///  or in textual repr: mintBulk(address,uint256[])
+	// function mintBulk(address to, uint256[] memory tokenIds) external returns (bool);
 
-	/// @notice Function to mint multiple tokens with the given tokenUris.
-	/// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
-	///  numbers and first number should be obtained with `nextTokenId` method
-	/// @param to The new owner
-	/// @param tokens array of pairs of token ID and token URI for minted tokens
-	/// @dev EVM selector for this function is: 0x36543006,
-	///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
-	function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) external returns (bool);
+	// /// @notice Function to mint multiple tokens with the given tokenUris.
+	// /// @dev `tokenIds` is array of pairs of token ID and token URI. Token IDs should be consecutive
+	// ///  numbers and first number should be obtained with `nextTokenId` method
+	// /// @param to The new owner
+	// /// @param tokens array of pairs of token ID and token URI for minted tokens
+	// /// @dev EVM selector for this function is: 0x36543006,
+	// ///  or in textual repr: mintBulkWithTokenURI(address,(uint256,string)[])
+	// function mintBulkWithTokenURI(address to, Tuple6[] memory tokens) external returns (bool);
 
 	/// Returns EVM address for refungible token
 	///
@@ -526,7 +537,7 @@
 	ERC721,
 	ERC721Enumerable,
 	ERC721UniqueExtensions,
-	ERC721Mintable,
+	ERC721UniqueMintable,
 	ERC721Burnable,
 	ERC721Metadata,
 	Collection,
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -260,51 +260,19 @@
     "type": "function"
   },
   {
-    "inputs": [
-      { "internalType": "address", "name": "to", "type": "address" },
-      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
-    ],
+    "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],
     "name": "mint",
-    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "address", "name": "to", "type": "address" },
-      { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }
-    ],
-    "name": "mintBulk",
-    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
-    "stateMutability": "nonpayable",
-    "type": "function"
-  },
-  {
-    "inputs": [
-      { "internalType": "address", "name": "to", "type": "address" },
-      {
-        "components": [
-          { "internalType": "uint256", "name": "field_0", "type": "uint256" },
-          { "internalType": "string", "name": "field_1", "type": "string" }
-        ],
-        "internalType": "struct Tuple6[]",
-        "name": "tokens",
-        "type": "tuple[]"
-      }
-    ],
-    "name": "mintBulkWithTokenURI",
-    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
     "stateMutability": "nonpayable",
     "type": "function"
   },
   {
     "inputs": [
       { "internalType": "address", "name": "to", "type": "address" },
-      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
       { "internalType": "string", "name": "tokenUri", "type": "string" }
     ],
     "name": "mintWithTokenURI",
-    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
     "stateMutability": "nonpayable",
     "type": "function"
   },
modifiedtests/src/eth/reFungibleAbi.jsondiffbeforeafterboth
before · tests/src/eth/reFungibleAbi.json
1[2  {3    "anonymous": false,4    "inputs": [5      {6        "indexed": true,7        "internalType": "address",8        "name": "owner",9        "type": "address"10      },11      {12        "indexed": true,13        "internalType": "address",14        "name": "approved",15        "type": "address"16      },17      {18        "indexed": true,19        "internalType": "uint256",20        "name": "tokenId",21        "type": "uint256"22      }23    ],24    "name": "Approval",25    "type": "event"26  },27  {28    "anonymous": false,29    "inputs": [30      {31        "indexed": true,32        "internalType": "address",33        "name": "owner",34        "type": "address"35      },36      {37        "indexed": true,38        "internalType": "address",39        "name": "operator",40        "type": "address"41      },42      {43        "indexed": false,44        "internalType": "bool",45        "name": "approved",46        "type": "bool"47      }48    ],49    "name": "ApprovalForAll",50    "type": "event"51  },52  {53    "anonymous": false,54    "inputs": [],55    "name": "MintingFinished",56    "type": "event"57  },58  {59    "anonymous": false,60    "inputs": [61      {62        "indexed": true,63        "internalType": "address",64        "name": "from",65        "type": "address"66      },67      {68        "indexed": true,69        "internalType": "address",70        "name": "to",71        "type": "address"72      },73      {74        "indexed": true,75        "internalType": "uint256",76        "name": "tokenId",77        "type": "uint256"78      }79    ],80    "name": "Transfer",81    "type": "event"82  },83  {84    "inputs": [85      { "internalType": "address", "name": "newAdmin", "type": "address" }86    ],87    "name": "addCollectionAdmin",88    "outputs": [],89    "stateMutability": "nonpayable",90    "type": "function"91  },92  {93    "inputs": [94      { "internalType": "address", "name": "user", "type": "address" }95    ],96    "name": "addToCollectionAllowList",97    "outputs": [],98    "stateMutability": "nonpayable",99    "type": "function"100  },101  {102    "inputs": [103      { "internalType": "address", "name": "user", "type": "address" }104    ],105    "name": "allowed",106    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],107    "stateMutability": "view",108    "type": "function"109  },110  {111    "inputs": [112      { "internalType": "address", "name": "approved", "type": "address" },113      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }114    ],115    "name": "approve",116    "outputs": [],117    "stateMutability": "nonpayable",118    "type": "function"119  },120  {121    "inputs": [122      { "internalType": "address", "name": "owner", "type": "address" }123    ],124    "name": "balanceOf",125    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],126    "stateMutability": "view",127    "type": "function"128  },129  {130    "inputs": [131      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }132    ],133    "name": "burn",134    "outputs": [],135    "stateMutability": "nonpayable",136    "type": "function"137  },138  {139    "inputs": [140      { "internalType": "address", "name": "from", "type": "address" },141      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }142    ],143    "name": "burnFrom",144    "outputs": [],145    "stateMutability": "nonpayable",146    "type": "function"147  },148  {149    "inputs": [],150    "name": "collectionOwner",151    "outputs": [152      {153        "components": [154          { "internalType": "address", "name": "field_0", "type": "address" },155          { "internalType": "uint256", "name": "field_1", "type": "uint256" }156        ],157        "internalType": "struct Tuple17",158        "name": "",159        "type": "tuple"160      }161    ],162    "stateMutability": "view",163    "type": "function"164  },165  {166    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],167    "name": "collectionProperty",168    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],169    "stateMutability": "view",170    "type": "function"171  },172  {173    "inputs": [],174    "name": "collectionSponsor",175    "outputs": [176      {177        "components": [178          { "internalType": "address", "name": "field_0", "type": "address" },179          { "internalType": "uint256", "name": "field_1", "type": "uint256" }180        ],181        "internalType": "struct Tuple17",182        "name": "",183        "type": "tuple"184      }185    ],186    "stateMutability": "view",187    "type": "function"188  },189  {190    "inputs": [],191    "name": "confirmCollectionSponsorship",192    "outputs": [],193    "stateMutability": "nonpayable",194    "type": "function"195  },196  {197    "inputs": [],198    "name": "contractAddress",199    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],200    "stateMutability": "view",201    "type": "function"202  },203  {204    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],205    "name": "deleteCollectionProperty",206    "outputs": [],207    "stateMutability": "nonpayable",208    "type": "function"209  },210  {211    "inputs": [212      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },213      { "internalType": "string", "name": "key", "type": "string" }214    ],215    "name": "deleteProperty",216    "outputs": [],217    "stateMutability": "nonpayable",218    "type": "function"219  },220  {221    "inputs": [],222    "name": "finishMinting",223    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],224    "stateMutability": "nonpayable",225    "type": "function"226  },227  {228    "inputs": [229      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }230    ],231    "name": "getApproved",232    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],233    "stateMutability": "view",234    "type": "function"235  },236  {237    "inputs": [],238    "name": "hasCollectionPendingSponsor",239    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],240    "stateMutability": "view",241    "type": "function"242  },243  {244    "inputs": [245      { "internalType": "address", "name": "owner", "type": "address" },246      { "internalType": "address", "name": "operator", "type": "address" }247    ],248    "name": "isApprovedForAll",249    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],250    "stateMutability": "view",251    "type": "function"252  },253  {254    "inputs": [255      { "internalType": "address", "name": "user", "type": "address" }256    ],257    "name": "isOwnerOrAdmin",258    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],259    "stateMutability": "view",260    "type": "function"261  },262  {263    "inputs": [264      { "internalType": "address", "name": "to", "type": "address" },265      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }266    ],267    "name": "mint",268    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],269    "stateMutability": "nonpayable",270    "type": "function"271  },272  {273    "inputs": [274      { "internalType": "address", "name": "to", "type": "address" },275      { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }276    ],277    "name": "mintBulk",278    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],279    "stateMutability": "nonpayable",280    "type": "function"281  },282  {283    "inputs": [284      { "internalType": "address", "name": "to", "type": "address" },285      {286        "components": [287          { "internalType": "uint256", "name": "field_0", "type": "uint256" },288          { "internalType": "string", "name": "field_1", "type": "string" }289        ],290        "internalType": "struct Tuple6[]",291        "name": "tokens",292        "type": "tuple[]"293      }294    ],295    "name": "mintBulkWithTokenURI",296    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],297    "stateMutability": "nonpayable",298    "type": "function"299  },300  {301    "inputs": [302      { "internalType": "address", "name": "to", "type": "address" },303      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },304      { "internalType": "string", "name": "tokenUri", "type": "string" }305    ],306    "name": "mintWithTokenURI",307    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],308    "stateMutability": "nonpayable",309    "type": "function"310  },311  {312    "inputs": [],313    "name": "mintingFinished",314    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],315    "stateMutability": "view",316    "type": "function"317  },318  {319    "inputs": [],320    "name": "name",321    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],322    "stateMutability": "view",323    "type": "function"324  },325  {326    "inputs": [],327    "name": "nextTokenId",328    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],329    "stateMutability": "view",330    "type": "function"331  },332  {333    "inputs": [334      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }335    ],336    "name": "ownerOf",337    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],338    "stateMutability": "view",339    "type": "function"340  },341  {342    "inputs": [343      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },344      { "internalType": "string", "name": "key", "type": "string" }345    ],346    "name": "property",347    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],348    "stateMutability": "view",349    "type": "function"350  },351  {352    "inputs": [353      { "internalType": "address", "name": "admin", "type": "address" }354    ],355    "name": "removeCollectionAdmin",356    "outputs": [],357    "stateMutability": "nonpayable",358    "type": "function"359  },360  {361    "inputs": [],362    "name": "removeCollectionSponsor",363    "outputs": [],364    "stateMutability": "nonpayable",365    "type": "function"366  },367  {368    "inputs": [369      { "internalType": "address", "name": "user", "type": "address" }370    ],371    "name": "removeFromCollectionAllowList",372    "outputs": [],373    "stateMutability": "nonpayable",374    "type": "function"375  },376  {377    "inputs": [378      { "internalType": "address", "name": "from", "type": "address" },379      { "internalType": "address", "name": "to", "type": "address" },380      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }381    ],382    "name": "safeTransferFrom",383    "outputs": [],384    "stateMutability": "nonpayable",385    "type": "function"386  },387  {388    "inputs": [389      { "internalType": "address", "name": "from", "type": "address" },390      { "internalType": "address", "name": "to", "type": "address" },391      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },392      { "internalType": "bytes", "name": "data", "type": "bytes" }393    ],394    "name": "safeTransferFromWithData",395    "outputs": [],396    "stateMutability": "nonpayable",397    "type": "function"398  },399  {400    "inputs": [401      { "internalType": "address", "name": "operator", "type": "address" },402      { "internalType": "bool", "name": "approved", "type": "bool" }403    ],404    "name": "setApprovalForAll",405    "outputs": [],406    "stateMutability": "nonpayable",407    "type": "function"408  },409  {410    "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],411    "name": "setCollectionAccess",412    "outputs": [],413    "stateMutability": "nonpayable",414    "type": "function"415  },416  {417    "inputs": [418      { "internalType": "string", "name": "limit", "type": "string" },419      { "internalType": "uint32", "name": "value", "type": "uint32" }420    ],421    "name": "setCollectionLimit",422    "outputs": [],423    "stateMutability": "nonpayable",424    "type": "function"425  },426  {427    "inputs": [428      { "internalType": "string", "name": "limit", "type": "string" },429      { "internalType": "bool", "name": "value", "type": "bool" }430    ],431    "name": "setCollectionLimit",432    "outputs": [],433    "stateMutability": "nonpayable",434    "type": "function"435  },436  {437    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],438    "name": "setCollectionMintMode",439    "outputs": [],440    "stateMutability": "nonpayable",441    "type": "function"442  },443  {444    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],445    "name": "setCollectionNesting",446    "outputs": [],447    "stateMutability": "nonpayable",448    "type": "function"449  },450  {451    "inputs": [452      { "internalType": "bool", "name": "enable", "type": "bool" },453      {454        "internalType": "address[]",455        "name": "collections",456        "type": "address[]"457      }458    ],459    "name": "setCollectionNesting",460    "outputs": [],461    "stateMutability": "nonpayable",462    "type": "function"463  },464  {465    "inputs": [466      { "internalType": "string", "name": "key", "type": "string" },467      { "internalType": "bytes", "name": "value", "type": "bytes" }468    ],469    "name": "setCollectionProperty",470    "outputs": [],471    "stateMutability": "nonpayable",472    "type": "function"473  },474  {475    "inputs": [476      { "internalType": "address", "name": "sponsor", "type": "address" }477    ],478    "name": "setCollectionSponsor",479    "outputs": [],480    "stateMutability": "nonpayable",481    "type": "function"482  },483  {484    "inputs": [485      { "internalType": "address", "name": "newOwner", "type": "address" }486    ],487    "name": "setOwner",488    "outputs": [],489    "stateMutability": "nonpayable",490    "type": "function"491  },492  {493    "inputs": [494      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },495      { "internalType": "string", "name": "key", "type": "string" },496      { "internalType": "bytes", "name": "value", "type": "bytes" }497    ],498    "name": "setProperty",499    "outputs": [],500    "stateMutability": "nonpayable",501    "type": "function"502  },503  {504    "inputs": [505      { "internalType": "string", "name": "key", "type": "string" },506      { "internalType": "bool", "name": "isMutable", "type": "bool" },507      { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },508      { "internalType": "bool", "name": "tokenOwner", "type": "bool" }509    ],510    "name": "setTokenPropertyPermission",511    "outputs": [],512    "stateMutability": "nonpayable",513    "type": "function"514  },515  {516    "inputs": [517      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }518    ],519    "name": "supportsInterface",520    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],521    "stateMutability": "view",522    "type": "function"523  },524  {525    "inputs": [],526    "name": "symbol",527    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],528    "stateMutability": "view",529    "type": "function"530  },531  {532    "inputs": [533      { "internalType": "uint256", "name": "index", "type": "uint256" }534    ],535    "name": "tokenByIndex",536    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],537    "stateMutability": "view",538    "type": "function"539  },540  {541    "inputs": [542      { "internalType": "uint256", "name": "token", "type": "uint256" }543    ],544    "name": "tokenContractAddress",545    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],546    "stateMutability": "view",547    "type": "function"548  },549  {550    "inputs": [551      { "internalType": "address", "name": "owner", "type": "address" },552      { "internalType": "uint256", "name": "index", "type": "uint256" }553    ],554    "name": "tokenOfOwnerByIndex",555    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],556    "stateMutability": "view",557    "type": "function"558  },559  {560    "inputs": [561      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }562    ],563    "name": "tokenURI",564    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],565    "stateMutability": "view",566    "type": "function"567  },568  {569    "inputs": [],570    "name": "totalSupply",571    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],572    "stateMutability": "view",573    "type": "function"574  },575  {576    "inputs": [577      { "internalType": "address", "name": "to", "type": "address" },578      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }579    ],580    "name": "transfer",581    "outputs": [],582    "stateMutability": "nonpayable",583    "type": "function"584  },585  {586    "inputs": [587      { "internalType": "address", "name": "from", "type": "address" },588      { "internalType": "address", "name": "to", "type": "address" },589      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }590    ],591    "name": "transferFrom",592    "outputs": [],593    "stateMutability": "nonpayable",594    "type": "function"595  },596  {597    "inputs": [],598    "name": "uniqueCollectionType",599    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],600    "stateMutability": "view",601    "type": "function"602  }603]
after · tests/src/eth/reFungibleAbi.json
1[2  {3    "anonymous": false,4    "inputs": [5      {6        "indexed": true,7        "internalType": "address",8        "name": "owner",9        "type": "address"10      },11      {12        "indexed": true,13        "internalType": "address",14        "name": "approved",15        "type": "address"16      },17      {18        "indexed": true,19        "internalType": "uint256",20        "name": "tokenId",21        "type": "uint256"22      }23    ],24    "name": "Approval",25    "type": "event"26  },27  {28    "anonymous": false,29    "inputs": [30      {31        "indexed": true,32        "internalType": "address",33        "name": "owner",34        "type": "address"35      },36      {37        "indexed": true,38        "internalType": "address",39        "name": "operator",40        "type": "address"41      },42      {43        "indexed": false,44        "internalType": "bool",45        "name": "approved",46        "type": "bool"47      }48    ],49    "name": "ApprovalForAll",50    "type": "event"51  },52  {53    "anonymous": false,54    "inputs": [],55    "name": "MintingFinished",56    "type": "event"57  },58  {59    "anonymous": false,60    "inputs": [61      {62        "indexed": true,63        "internalType": "address",64        "name": "from",65        "type": "address"66      },67      {68        "indexed": true,69        "internalType": "address",70        "name": "to",71        "type": "address"72      },73      {74        "indexed": true,75        "internalType": "uint256",76        "name": "tokenId",77        "type": "uint256"78      }79    ],80    "name": "Transfer",81    "type": "event"82  },83  {84    "inputs": [85      { "internalType": "address", "name": "newAdmin", "type": "address" }86    ],87    "name": "addCollectionAdmin",88    "outputs": [],89    "stateMutability": "nonpayable",90    "type": "function"91  },92  {93    "inputs": [94      { "internalType": "address", "name": "user", "type": "address" }95    ],96    "name": "addToCollectionAllowList",97    "outputs": [],98    "stateMutability": "nonpayable",99    "type": "function"100  },101  {102    "inputs": [103      { "internalType": "address", "name": "user", "type": "address" }104    ],105    "name": "allowed",106    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],107    "stateMutability": "view",108    "type": "function"109  },110  {111    "inputs": [112      { "internalType": "address", "name": "approved", "type": "address" },113      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }114    ],115    "name": "approve",116    "outputs": [],117    "stateMutability": "nonpayable",118    "type": "function"119  },120  {121    "inputs": [122      { "internalType": "address", "name": "owner", "type": "address" }123    ],124    "name": "balanceOf",125    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],126    "stateMutability": "view",127    "type": "function"128  },129  {130    "inputs": [131      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }132    ],133    "name": "burn",134    "outputs": [],135    "stateMutability": "nonpayable",136    "type": "function"137  },138  {139    "inputs": [140      { "internalType": "address", "name": "from", "type": "address" },141      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }142    ],143    "name": "burnFrom",144    "outputs": [],145    "stateMutability": "nonpayable",146    "type": "function"147  },148  {149    "inputs": [],150    "name": "collectionOwner",151    "outputs": [152      {153        "components": [154          { "internalType": "address", "name": "field_0", "type": "address" },155          { "internalType": "uint256", "name": "field_1", "type": "uint256" }156        ],157        "internalType": "struct Tuple17",158        "name": "",159        "type": "tuple"160      }161    ],162    "stateMutability": "view",163    "type": "function"164  },165  {166    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],167    "name": "collectionProperty",168    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],169    "stateMutability": "view",170    "type": "function"171  },172  {173    "inputs": [],174    "name": "collectionSponsor",175    "outputs": [176      {177        "components": [178          { "internalType": "address", "name": "field_0", "type": "address" },179          { "internalType": "uint256", "name": "field_1", "type": "uint256" }180        ],181        "internalType": "struct Tuple17",182        "name": "",183        "type": "tuple"184      }185    ],186    "stateMutability": "view",187    "type": "function"188  },189  {190    "inputs": [],191    "name": "confirmCollectionSponsorship",192    "outputs": [],193    "stateMutability": "nonpayable",194    "type": "function"195  },196  {197    "inputs": [],198    "name": "contractAddress",199    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],200    "stateMutability": "view",201    "type": "function"202  },203  {204    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],205    "name": "deleteCollectionProperty",206    "outputs": [],207    "stateMutability": "nonpayable",208    "type": "function"209  },210  {211    "inputs": [212      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },213      { "internalType": "string", "name": "key", "type": "string" }214    ],215    "name": "deleteProperty",216    "outputs": [],217    "stateMutability": "nonpayable",218    "type": "function"219  },220  {221    "inputs": [],222    "name": "finishMinting",223    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],224    "stateMutability": "nonpayable",225    "type": "function"226  },227  {228    "inputs": [229      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }230    ],231    "name": "getApproved",232    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],233    "stateMutability": "view",234    "type": "function"235  },236  {237    "inputs": [],238    "name": "hasCollectionPendingSponsor",239    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],240    "stateMutability": "view",241    "type": "function"242  },243  {244    "inputs": [245      { "internalType": "address", "name": "owner", "type": "address" },246      { "internalType": "address", "name": "operator", "type": "address" }247    ],248    "name": "isApprovedForAll",249    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],250    "stateMutability": "view",251    "type": "function"252  },253  {254    "inputs": [255      { "internalType": "address", "name": "user", "type": "address" }256    ],257    "name": "isOwnerOrAdmin",258    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],259    "stateMutability": "view",260    "type": "function"261  },262  {263    "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],264    "name": "mint",265    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],266    "stateMutability": "nonpayable",267    "type": "function"268  },269  {270    "inputs": [271      { "internalType": "address", "name": "to", "type": "address" },272      { "internalType": "string", "name": "tokenUri", "type": "string" }273    ],274    "name": "mintWithTokenURI",275    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],276    "stateMutability": "nonpayable",277    "type": "function"278  },279  {280    "inputs": [],281    "name": "mintingFinished",282    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],283    "stateMutability": "view",284    "type": "function"285  },286  {287    "inputs": [],288    "name": "name",289    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],290    "stateMutability": "view",291    "type": "function"292  },293  {294    "inputs": [],295    "name": "nextTokenId",296    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],297    "stateMutability": "view",298    "type": "function"299  },300  {301    "inputs": [302      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }303    ],304    "name": "ownerOf",305    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],306    "stateMutability": "view",307    "type": "function"308  },309  {310    "inputs": [311      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },312      { "internalType": "string", "name": "key", "type": "string" }313    ],314    "name": "property",315    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],316    "stateMutability": "view",317    "type": "function"318  },319  {320    "inputs": [321      { "internalType": "address", "name": "admin", "type": "address" }322    ],323    "name": "removeCollectionAdmin",324    "outputs": [],325    "stateMutability": "nonpayable",326    "type": "function"327  },328  {329    "inputs": [],330    "name": "removeCollectionSponsor",331    "outputs": [],332    "stateMutability": "nonpayable",333    "type": "function"334  },335  {336    "inputs": [337      { "internalType": "address", "name": "user", "type": "address" }338    ],339    "name": "removeFromCollectionAllowList",340    "outputs": [],341    "stateMutability": "nonpayable",342    "type": "function"343  },344  {345    "inputs": [346      { "internalType": "address", "name": "from", "type": "address" },347      { "internalType": "address", "name": "to", "type": "address" },348      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }349    ],350    "name": "safeTransferFrom",351    "outputs": [],352    "stateMutability": "nonpayable",353    "type": "function"354  },355  {356    "inputs": [357      { "internalType": "address", "name": "from", "type": "address" },358      { "internalType": "address", "name": "to", "type": "address" },359      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },360      { "internalType": "bytes", "name": "data", "type": "bytes" }361    ],362    "name": "safeTransferFromWithData",363    "outputs": [],364    "stateMutability": "nonpayable",365    "type": "function"366  },367  {368    "inputs": [369      { "internalType": "address", "name": "operator", "type": "address" },370      { "internalType": "bool", "name": "approved", "type": "bool" }371    ],372    "name": "setApprovalForAll",373    "outputs": [],374    "stateMutability": "nonpayable",375    "type": "function"376  },377  {378    "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],379    "name": "setCollectionAccess",380    "outputs": [],381    "stateMutability": "nonpayable",382    "type": "function"383  },384  {385    "inputs": [386      { "internalType": "string", "name": "limit", "type": "string" },387      { "internalType": "uint32", "name": "value", "type": "uint32" }388    ],389    "name": "setCollectionLimit",390    "outputs": [],391    "stateMutability": "nonpayable",392    "type": "function"393  },394  {395    "inputs": [396      { "internalType": "string", "name": "limit", "type": "string" },397      { "internalType": "bool", "name": "value", "type": "bool" }398    ],399    "name": "setCollectionLimit",400    "outputs": [],401    "stateMutability": "nonpayable",402    "type": "function"403  },404  {405    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],406    "name": "setCollectionMintMode",407    "outputs": [],408    "stateMutability": "nonpayable",409    "type": "function"410  },411  {412    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],413    "name": "setCollectionNesting",414    "outputs": [],415    "stateMutability": "nonpayable",416    "type": "function"417  },418  {419    "inputs": [420      { "internalType": "bool", "name": "enable", "type": "bool" },421      {422        "internalType": "address[]",423        "name": "collections",424        "type": "address[]"425      }426    ],427    "name": "setCollectionNesting",428    "outputs": [],429    "stateMutability": "nonpayable",430    "type": "function"431  },432  {433    "inputs": [434      { "internalType": "string", "name": "key", "type": "string" },435      { "internalType": "bytes", "name": "value", "type": "bytes" }436    ],437    "name": "setCollectionProperty",438    "outputs": [],439    "stateMutability": "nonpayable",440    "type": "function"441  },442  {443    "inputs": [444      { "internalType": "address", "name": "sponsor", "type": "address" }445    ],446    "name": "setCollectionSponsor",447    "outputs": [],448    "stateMutability": "nonpayable",449    "type": "function"450  },451  {452    "inputs": [453      { "internalType": "address", "name": "newOwner", "type": "address" }454    ],455    "name": "setOwner",456    "outputs": [],457    "stateMutability": "nonpayable",458    "type": "function"459  },460  {461    "inputs": [462      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },463      { "internalType": "string", "name": "key", "type": "string" },464      { "internalType": "bytes", "name": "value", "type": "bytes" }465    ],466    "name": "setProperty",467    "outputs": [],468    "stateMutability": "nonpayable",469    "type": "function"470  },471  {472    "inputs": [473      { "internalType": "string", "name": "key", "type": "string" },474      { "internalType": "bool", "name": "isMutable", "type": "bool" },475      { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },476      { "internalType": "bool", "name": "tokenOwner", "type": "bool" }477    ],478    "name": "setTokenPropertyPermission",479    "outputs": [],480    "stateMutability": "nonpayable",481    "type": "function"482  },483  {484    "inputs": [485      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }486    ],487    "name": "supportsInterface",488    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],489    "stateMutability": "view",490    "type": "function"491  },492  {493    "inputs": [],494    "name": "symbol",495    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],496    "stateMutability": "view",497    "type": "function"498  },499  {500    "inputs": [501      { "internalType": "uint256", "name": "index", "type": "uint256" }502    ],503    "name": "tokenByIndex",504    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],505    "stateMutability": "view",506    "type": "function"507  },508  {509    "inputs": [510      { "internalType": "uint256", "name": "token", "type": "uint256" }511    ],512    "name": "tokenContractAddress",513    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],514    "stateMutability": "view",515    "type": "function"516  },517  {518    "inputs": [519      { "internalType": "address", "name": "owner", "type": "address" },520      { "internalType": "uint256", "name": "index", "type": "uint256" }521    ],522    "name": "tokenOfOwnerByIndex",523    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],524    "stateMutability": "view",525    "type": "function"526  },527  {528    "inputs": [529      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }530    ],531    "name": "tokenURI",532    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],533    "stateMutability": "view",534    "type": "function"535  },536  {537    "inputs": [],538    "name": "totalSupply",539    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],540    "stateMutability": "view",541    "type": "function"542  },543  {544    "inputs": [545      { "internalType": "address", "name": "to", "type": "address" },546      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }547    ],548    "name": "transfer",549    "outputs": [],550    "stateMutability": "nonpayable",551    "type": "function"552  },553  {554    "inputs": [555      { "internalType": "address", "name": "from", "type": "address" },556      { "internalType": "address", "name": "to", "type": "address" },557      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }558    ],559    "name": "transferFrom",560    "outputs": [],561    "stateMutability": "nonpayable",562    "type": "function"563  },564  {565    "inputs": [],566    "name": "uniqueCollectionType",567    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],568    "stateMutability": "view",569    "type": "function"570  }571]