git.delta.rocks / unique-network / refs/commits / 49ed2a2797e2

difftreelog

fix hide mintWithTokenURI and temporary unhide mintBulk

Alex Saft2022-10-14parent: #e031ad6.patch.diff
in: master

10 files changed

modifiedpallets/nonfungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -510,7 +510,7 @@
 	/// @param to The new owner
 	/// @param tokenId ID of the minted NFT
 	/// @param tokenUri Token URI that would be stored in the NFT properties
-	#[solidity(/*hide,*/ rename_selector = "mintWithTokenURI")]
+	#[solidity(hide, rename_selector = "mintWithTokenURI")]
 	#[weight(<SelfWeightOf<T>>::create_item())]
 	fn mint_with_token_uri_check_id(
 		&mut self,
@@ -668,7 +668,7 @@
 	///  should be obtained with `nextTokenId` method
 	/// @param to The new owner
 	/// @param tokenIds IDs of the minted NFTs
-	#[solidity(hide)]
+	// #[solidity(hide)]
 	#[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]
 	fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {
 		let caller = T::CrossAccountId::from_eth(caller);
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
@@ -500,26 +500,22 @@
 		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;
-	}
+	// /// @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,
@@ -590,20 +586,20 @@
 		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
modifiedpallets/refungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -536,7 +536,7 @@
 	/// @param to The new owner
 	/// @param tokenId ID of the minted RFT
 	/// @param tokenUri Token URI that would be stored in the RFT properties
-	#[solidity(/*hide,*/ rename_selector = "mintWithTokenURI")]
+	#[solidity(hide, rename_selector = "mintWithTokenURI")]
 	#[weight(<SelfWeightOf<T>>::create_item())]
 	fn mint_with_token_uri_check_id(
 		&mut self,
@@ -705,7 +705,7 @@
 	///  should be obtained with `nextTokenId` method
 	/// @param to The new owner
 	/// @param tokenIds IDs of the minted RFTs
-	#[solidity(hide)]
+	// #[solidity(hide)]
 	#[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]
 	fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {
 		let caller = T::CrossAccountId::from_eth(caller);
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
@@ -498,26 +498,22 @@
 		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;
-	}
+	// /// @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,
@@ -590,20 +586,20 @@
 		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
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -332,19 +332,15 @@
 	///  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);
+	// /// @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,
@@ -389,14 +385,14 @@
 	///  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
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -330,19 +330,15 @@
 	///  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);
+	// /// @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,
@@ -389,14 +385,14 @@
 	///  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
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
before · tests/src/eth/nonFungibleAbi.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      {273        "components": [274          { "internalType": "uint256", "name": "field_0", "type": "uint256" },275          { "internalType": "string", "name": "field_1", "type": "string" }276        ],277        "internalType": "struct Tuple6[]",278        "name": "tokens",279        "type": "tuple[]"280      }281    ],282    "name": "mintBulkWithTokenURI",283    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],284    "stateMutability": "nonpayable",285    "type": "function"286  },287  {288    "inputs": [289      { "internalType": "address", "name": "to", "type": "address" },290      { "internalType": "string", "name": "tokenUri", "type": "string" }291    ],292    "name": "mintWithTokenURI",293    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],294    "stateMutability": "nonpayable",295    "type": "function"296  },297  {298    "inputs": [299      { "internalType": "address", "name": "to", "type": "address" },300      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },301      { "internalType": "string", "name": "tokenUri", "type": "string" }302    ],303    "name": "mintWithTokenURI",304    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],305    "stateMutability": "nonpayable",306    "type": "function"307  },308  {309    "inputs": [],310    "name": "mintingFinished",311    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],312    "stateMutability": "view",313    "type": "function"314  },315  {316    "inputs": [],317    "name": "name",318    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],319    "stateMutability": "view",320    "type": "function"321  },322  {323    "inputs": [],324    "name": "nextTokenId",325    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],326    "stateMutability": "view",327    "type": "function"328  },329  {330    "inputs": [331      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }332    ],333    "name": "ownerOf",334    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],335    "stateMutability": "view",336    "type": "function"337  },338  {339    "inputs": [340      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },341      { "internalType": "string", "name": "key", "type": "string" }342    ],343    "name": "property",344    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],345    "stateMutability": "view",346    "type": "function"347  },348  {349    "inputs": [350      { "internalType": "address", "name": "admin", "type": "address" }351    ],352    "name": "removeCollectionAdmin",353    "outputs": [],354    "stateMutability": "nonpayable",355    "type": "function"356  },357  {358    "inputs": [],359    "name": "removeCollectionSponsor",360    "outputs": [],361    "stateMutability": "nonpayable",362    "type": "function"363  },364  {365    "inputs": [366      { "internalType": "address", "name": "user", "type": "address" }367    ],368    "name": "removeFromCollectionAllowList",369    "outputs": [],370    "stateMutability": "nonpayable",371    "type": "function"372  },373  {374    "inputs": [375      { "internalType": "address", "name": "from", "type": "address" },376      { "internalType": "address", "name": "to", "type": "address" },377      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }378    ],379    "name": "safeTransferFrom",380    "outputs": [],381    "stateMutability": "nonpayable",382    "type": "function"383  },384  {385    "inputs": [386      { "internalType": "address", "name": "from", "type": "address" },387      { "internalType": "address", "name": "to", "type": "address" },388      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },389      { "internalType": "bytes", "name": "data", "type": "bytes" }390    ],391    "name": "safeTransferFrom",392    "outputs": [],393    "stateMutability": "nonpayable",394    "type": "function"395  },396  {397    "inputs": [398      { "internalType": "address", "name": "operator", "type": "address" },399      { "internalType": "bool", "name": "approved", "type": "bool" }400    ],401    "name": "setApprovalForAll",402    "outputs": [],403    "stateMutability": "nonpayable",404    "type": "function"405  },406  {407    "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],408    "name": "setCollectionAccess",409    "outputs": [],410    "stateMutability": "nonpayable",411    "type": "function"412  },413  {414    "inputs": [415      { "internalType": "string", "name": "limit", "type": "string" },416      { "internalType": "uint32", "name": "value", "type": "uint32" }417    ],418    "name": "setCollectionLimit",419    "outputs": [],420    "stateMutability": "nonpayable",421    "type": "function"422  },423  {424    "inputs": [425      { "internalType": "string", "name": "limit", "type": "string" },426      { "internalType": "bool", "name": "value", "type": "bool" }427    ],428    "name": "setCollectionLimit",429    "outputs": [],430    "stateMutability": "nonpayable",431    "type": "function"432  },433  {434    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],435    "name": "setCollectionMintMode",436    "outputs": [],437    "stateMutability": "nonpayable",438    "type": "function"439  },440  {441    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],442    "name": "setCollectionNesting",443    "outputs": [],444    "stateMutability": "nonpayable",445    "type": "function"446  },447  {448    "inputs": [449      { "internalType": "bool", "name": "enable", "type": "bool" },450      {451        "internalType": "address[]",452        "name": "collections",453        "type": "address[]"454      }455    ],456    "name": "setCollectionNesting",457    "outputs": [],458    "stateMutability": "nonpayable",459    "type": "function"460  },461  {462    "inputs": [463      { "internalType": "string", "name": "key", "type": "string" },464      { "internalType": "bytes", "name": "value", "type": "bytes" }465    ],466    "name": "setCollectionProperty",467    "outputs": [],468    "stateMutability": "nonpayable",469    "type": "function"470  },471  {472    "inputs": [473      { "internalType": "address", "name": "sponsor", "type": "address" }474    ],475    "name": "setCollectionSponsor",476    "outputs": [],477    "stateMutability": "nonpayable",478    "type": "function"479  },480  {481    "inputs": [482      { "internalType": "address", "name": "newOwner", "type": "address" }483    ],484    "name": "setOwner",485    "outputs": [],486    "stateMutability": "nonpayable",487    "type": "function"488  },489  {490    "inputs": [491      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },492      { "internalType": "string", "name": "key", "type": "string" },493      { "internalType": "bytes", "name": "value", "type": "bytes" }494    ],495    "name": "setProperty",496    "outputs": [],497    "stateMutability": "nonpayable",498    "type": "function"499  },500  {501    "inputs": [502      { "internalType": "string", "name": "key", "type": "string" },503      { "internalType": "bool", "name": "isMutable", "type": "bool" },504      { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },505      { "internalType": "bool", "name": "tokenOwner", "type": "bool" }506    ],507    "name": "setTokenPropertyPermission",508    "outputs": [],509    "stateMutability": "nonpayable",510    "type": "function"511  },512  {513    "inputs": [514      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }515    ],516    "name": "supportsInterface",517    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],518    "stateMutability": "view",519    "type": "function"520  },521  {522    "inputs": [],523    "name": "symbol",524    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],525    "stateMutability": "view",526    "type": "function"527  },528  {529    "inputs": [530      { "internalType": "uint256", "name": "index", "type": "uint256" }531    ],532    "name": "tokenByIndex",533    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],534    "stateMutability": "view",535    "type": "function"536  },537  {538    "inputs": [539      { "internalType": "address", "name": "owner", "type": "address" },540      { "internalType": "uint256", "name": "index", "type": "uint256" }541    ],542    "name": "tokenOfOwnerByIndex",543    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],544    "stateMutability": "view",545    "type": "function"546  },547  {548    "inputs": [549      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }550    ],551    "name": "tokenURI",552    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],553    "stateMutability": "view",554    "type": "function"555  },556  {557    "inputs": [],558    "name": "totalSupply",559    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],560    "stateMutability": "view",561    "type": "function"562  },563  {564    "inputs": [565      { "internalType": "address", "name": "to", "type": "address" },566      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }567    ],568    "name": "transfer",569    "outputs": [],570    "stateMutability": "nonpayable",571    "type": "function"572  },573  {574    "inputs": [575      { "internalType": "address", "name": "from", "type": "address" },576      { "internalType": "address", "name": "to", "type": "address" },577      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }578    ],579    "name": "transferFrom",580    "outputs": [],581    "stateMutability": "nonpayable",582    "type": "function"583  },584  {585    "inputs": [],586    "name": "uniqueCollectionType",587    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],588    "stateMutability": "view",589    "type": "function"590  }591]
modifiedtests/src/eth/reFungibleAbi.jsondiffbeforeafterboth
--- a/tests/src/eth/reFungibleAbi.json
+++ b/tests/src/eth/reFungibleAbi.json
@@ -269,6 +269,16 @@
   {
     "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" },
@@ -291,17 +301,6 @@
     ],
     "name": "mintWithTokenURI",
     "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" }],
     "stateMutability": "nonpayable",
     "type": "function"
   },