git.delta.rocks / unique-network / refs/commits / 5a98909596c7

difftreelog

CORE-386 Rename eth methods

Trubnikov Sergey2022-06-01parent: #9272309.patch.diff
in: master

8 files changed

modifiedpallets/common/src/erc.rsdiffbeforeafterboth
--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -83,7 +83,7 @@
 		Ok(prop.to_vec())
 	}
 
-	fn eth_set_sponsor(&mut self, caller: caller, sponsor: address) -> Result<void> {
+	fn set_collection_sponsor(&mut self, caller: caller, sponsor: address) -> Result<void> {
 		check_is_owner(caller, self)?;
 
 		let sponsor = T::CrossAccountId::from_eth(sponsor);
@@ -92,7 +92,7 @@
 		Ok(())
 	}
 
-	fn eth_confirm_sponsorship(&mut self, caller: caller) -> Result<void> {
+	fn confirm_collection_sponsorship(&mut self, caller: caller) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
 		if !self.confirm_sponsorship(caller.as_sub()) {
 			return Err(Error::Revert("Caller is not set as sponsor".into()));
@@ -101,7 +101,7 @@
 		Ok(())
 	}
 
-	#[solidity(rename_selector = "setLimit")]
+	#[solidity(rename_selector = "setCollectionLimit")]
 	fn set_int_limit(&mut self, caller: caller, limit: string, value: uint32) -> Result<void> {
 		check_is_owner(caller, self)?;
 		let mut limits = self.limits.clone();
@@ -138,7 +138,7 @@
 		Ok(())
 	}
 
-	#[solidity(rename_selector = "setLimit")]
+	#[solidity(rename_selector = "setCollectionLimit")]
 	fn set_bool_limit(&mut self, caller: caller, limit: string, value: bool) -> Result<void> {
 		check_is_owner(caller, self)?;
 		let mut limits = self.limits.clone();
@@ -192,7 +192,7 @@
 	// 	Ok(())
 	// }
 
-	fn add_admin(&self, caller: caller, new_admin: address) -> Result<void> {
+	fn add_collection_admin(&self, caller: caller, new_admin: address) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
 		self.check_is_owner_or_admin(&caller)
 			.map_err(dispatch_to_evm::<T>)?;
@@ -202,7 +202,7 @@
 		Ok(())
 	}
 
-	fn remove_admin(&self, caller: caller, admin: address) -> Result<void> {
+	fn remove_collection_admin(&self, caller: caller, admin: address) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
 		self.check_is_owner_or_admin(&caller)
 			.map_err(dispatch_to_evm::<T>)?;
@@ -212,7 +212,7 @@
 		Ok(())
 	}
 
-	#[solidity(rename_selector = "setNesting")]
+	#[solidity(rename_selector = "setCollectionNesting")]
 	fn set_nesting_bool(&mut self, caller: caller, enable: bool) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
 		self.check_is_owner_or_admin(&caller)
@@ -225,7 +225,7 @@
 		Ok(())
 	}
 
-	#[solidity(rename_selector = "setNesting")]
+	#[solidity(rename_selector = "setCollectionNesting")]
 	fn set_nesting(&mut self, caller: caller, enable: bool, collections: Vec<address>) -> Result<void> {
 		if collections.is_empty() {
 			return Err("No addresses provided".into());
@@ -253,7 +253,7 @@
 		Ok(())
 	}
 
-	fn set_access(&mut self, caller: caller, mode: string) -> Result<void> {
+	fn set_collection_access(&mut self, caller: caller, mode: string) -> Result<void> {
 		let caller = T::CrossAccountId::from_eth(caller);
 		self.check_is_owner_or_admin(&caller)
 			.map_err(dispatch_to_evm::<T>)?;
@@ -266,7 +266,7 @@
 		Ok(())
 	}
 
-	fn add_to_allow_list(&self, caller: caller, user: address) -> Result<void> {
+	fn add_to_collection_allow_list(&self, caller: caller, user: address) -> Result<void> {
 		let caller = check_is_owner_or_admin(caller, self)?;
 		let user = T::CrossAccountId::from_eth(user);
 		<Pallet<T>>::toggle_allowlist(self, &caller, &user, true)
@@ -274,7 +274,7 @@
 		Ok(())
 	}
 
-	fn remove_from_allow_list(&self, caller: caller, user: address) -> Result<void> {
+	fn remove_from_collection_allow_list(&self, caller: caller, user: address) -> Result<void> {
 		let caller = check_is_owner_or_admin(caller, self)?;
 		let user = T::CrossAccountId::from_eth(user);
 		<Pallet<T>>::toggle_allowlist(self, &caller, &user, false)
@@ -282,7 +282,7 @@
 		Ok(())
 	}
 
-	fn set_mint_mode(&mut self, caller: caller, mode: bool) -> Result<void> {
+	fn set_collection_mint_mode(&mut self, caller: caller, mode: bool) -> Result<void> {
 		check_is_owner_or_admin(caller, self)?;
 		self.collection.permissions.mint_mode = Some(mode);
 		save(self);
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
@@ -51,6 +51,135 @@
 	event MintingFinished();
 }
 
+// Selector: 1248b7d1
+contract Collection is Dummy, ERC165 {
+	// Selector: setCollectionProperty(string,bytes) 2f073f66
+	function setCollectionProperty(string memory key, bytes memory value)
+		public
+	{
+		require(false, stub_error);
+		key;
+		value;
+		dummy = 0;
+	}
+
+	// Selector: deleteCollectionProperty(string) 7b7debce
+	function deleteCollectionProperty(string memory key) public {
+		require(false, stub_error);
+		key;
+		dummy = 0;
+	}
+
+	// Throws error if key not found
+	//
+	// Selector: collectionProperty(string) cf24fd6d
+	function collectionProperty(string memory key)
+		public
+		view
+		returns (bytes memory)
+	{
+		require(false, stub_error);
+		key;
+		dummy;
+		return hex"";
+	}
+
+	// Selector: setCollectionSponsor(address) 7623402e
+	function setCollectionSponsor(address sponsor) public {
+		require(false, stub_error);
+		sponsor;
+		dummy = 0;
+	}
+
+	// Selector: confirmCollectionSponsorship() 3c50e97a
+	function confirmCollectionSponsorship() public {
+		require(false, stub_error);
+		dummy = 0;
+	}
+
+	// Selector: setCollectionLimit(string,uint32) 6a3841db
+	function setCollectionLimit(string memory limit, uint32 value) public {
+		require(false, stub_error);
+		limit;
+		value;
+		dummy = 0;
+	}
+
+	// Selector: setCollectionLimit(string,bool) 993b7fba
+	function setCollectionLimit(string memory limit, bool value) public {
+		require(false, stub_error);
+		limit;
+		value;
+		dummy = 0;
+	}
+
+	// Selector: contractAddress() f6b4dfb4
+	function contractAddress() public view returns (address) {
+		require(false, stub_error);
+		dummy;
+		return 0x0000000000000000000000000000000000000000;
+	}
+
+	// Selector: addCollectionAdmin(address) 92e462c7
+	function addCollectionAdmin(address newAdmin) public view {
+		require(false, stub_error);
+		newAdmin;
+		dummy;
+	}
+
+	// Selector: removeCollectionAdmin(address) fafd7b42
+	function removeCollectionAdmin(address admin) public view {
+		require(false, stub_error);
+		admin;
+		dummy;
+	}
+
+	// Selector: setCollectionNesting(bool) 112d4586
+	function setCollectionNesting(bool enable) public {
+		require(false, stub_error);
+		enable;
+		dummy = 0;
+	}
+
+	// Selector: setCollectionNesting(bool,address[]) 64872396
+	function setCollectionNesting(bool enable, address[] memory collections)
+		public
+	{
+		require(false, stub_error);
+		enable;
+		collections;
+		dummy = 0;
+	}
+
+	// Selector: setCollectionAccess(string) 392172a9
+	function setCollectionAccess(string memory mode) public {
+		require(false, stub_error);
+		mode;
+		dummy = 0;
+	}
+
+	// Selector: addToCollectionAllowList(address) 67844fe6
+	function addToCollectionAllowList(address user) public view {
+		require(false, stub_error);
+		user;
+		dummy;
+	}
+
+	// Selector: removeFromCollectionAllowList(address) 85c51acb
+	function removeFromCollectionAllowList(address user) public view {
+		require(false, stub_error);
+		user;
+		dummy;
+	}
+
+	// Selector: setCollectionMintMode(bool) 00018e84
+	function setCollectionMintMode(bool mode) public {
+		require(false, stub_error);
+		mode;
+		dummy = 0;
+	}
+}
+
 // Selector: 41369377
 contract TokenProperties is Dummy, ERC165 {
 	// Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa
@@ -377,133 +506,6 @@
 		tokens;
 		dummy = 0;
 		return false;
-	}
-}
-
-// Selector: f56cd7fa
-contract Collection is Dummy, ERC165 {
-	// Selector: setCollectionProperty(string,bytes) 2f073f66
-	function setCollectionProperty(string memory key, bytes memory value)
-		public
-	{
-		require(false, stub_error);
-		key;
-		value;
-		dummy = 0;
-	}
-
-	// Selector: deleteCollectionProperty(string) 7b7debce
-	function deleteCollectionProperty(string memory key) public {
-		require(false, stub_error);
-		key;
-		dummy = 0;
-	}
-
-	// Throws error if key not found
-	//
-	// Selector: collectionProperty(string) cf24fd6d
-	function collectionProperty(string memory key)
-		public
-		view
-		returns (bytes memory)
-	{
-		require(false, stub_error);
-		key;
-		dummy;
-		return hex"";
-	}
-
-	// Selector: ethSetSponsor(address) 8f9af356
-	function ethSetSponsor(address sponsor) public {
-		require(false, stub_error);
-		sponsor;
-		dummy = 0;
-	}
-
-	// Selector: ethConfirmSponsorship() a8580d1a
-	function ethConfirmSponsorship() public {
-		require(false, stub_error);
-		dummy = 0;
-	}
-
-	// Selector: setLimit(string,uint32) 68db30ca
-	function setLimit(string memory limit, uint32 value) public {
-		require(false, stub_error);
-		limit;
-		value;
-		dummy = 0;
-	}
-
-	// Selector: setLimit(string,bool) ea67e4c2
-	function setLimit(string memory limit, bool value) public {
-		require(false, stub_error);
-		limit;
-		value;
-		dummy = 0;
-	}
-
-	// Selector: contractAddress() f6b4dfb4
-	function contractAddress() public view returns (address) {
-		require(false, stub_error);
-		dummy;
-		return 0x0000000000000000000000000000000000000000;
-	}
-
-	// Selector: addAdmin(address) 70480275
-	function addAdmin(address newAdmin) public view {
-		require(false, stub_error);
-		newAdmin;
-		dummy;
-	}
-
-	// Selector: removeAdmin(address) 1785f53c
-	function removeAdmin(address admin) public view {
-		require(false, stub_error);
-		admin;
-		dummy;
-	}
-
-	// Selector: setNesting(bool) e8fc50dd
-	function setNesting(bool enable) public {
-		require(false, stub_error);
-		enable;
-		dummy = 0;
-	}
-
-	// Selector: setNesting(bool,address[]) 7df12a9a
-	function setNesting(bool enable, address[] memory collections) public {
-		require(false, stub_error);
-		enable;
-		collections;
-		dummy = 0;
-	}
-
-	// Selector: setAccess(string) 488f56aa
-	function setAccess(string memory mode) public {
-		require(false, stub_error);
-		mode;
-		dummy = 0;
-	}
-
-	// Selector: addToAllowList(address) 31f59102
-	function addToAllowList(address user) public view {
-		require(false, stub_error);
-		user;
-		dummy;
-	}
-
-	// Selector: removeFromAllowList(address) eba8dabc
-	function removeFromAllowList(address user) public view {
-		require(false, stub_error);
-		user;
-		dummy;
-	}
-
-	// Selector: setMintMode(bool) 5dea9bd5
-	function setMintMode(bool mode) public {
-		require(false, stub_error);
-		mode;
-		dummy = 0;
 	}
 }
 
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -42,6 +42,64 @@
 	event MintingFinished();
 }
 
+// Selector: 1248b7d1
+interface Collection is Dummy, ERC165 {
+	// Selector: setCollectionProperty(string,bytes) 2f073f66
+	function setCollectionProperty(string memory key, bytes memory value)
+		external;
+
+	// Selector: deleteCollectionProperty(string) 7b7debce
+	function deleteCollectionProperty(string memory key) external;
+
+	// Throws error if key not found
+	//
+	// Selector: collectionProperty(string) cf24fd6d
+	function collectionProperty(string memory key)
+		external
+		view
+		returns (bytes memory);
+
+	// Selector: setCollectionSponsor(address) 7623402e
+	function setCollectionSponsor(address sponsor) external;
+
+	// Selector: confirmCollectionSponsorship() 3c50e97a
+	function confirmCollectionSponsorship() external;
+
+	// Selector: setCollectionLimit(string,uint32) 6a3841db
+	function setCollectionLimit(string memory limit, uint32 value) external;
+
+	// Selector: setCollectionLimit(string,bool) 993b7fba
+	function setCollectionLimit(string memory limit, bool value) external;
+
+	// Selector: contractAddress() f6b4dfb4
+	function contractAddress() external view returns (address);
+
+	// Selector: addCollectionAdmin(address) 92e462c7
+	function addCollectionAdmin(address newAdmin) external view;
+
+	// Selector: removeCollectionAdmin(address) fafd7b42
+	function removeCollectionAdmin(address admin) external view;
+
+	// Selector: setCollectionNesting(bool) 112d4586
+	function setCollectionNesting(bool enable) external;
+
+	// Selector: setCollectionNesting(bool,address[]) 64872396
+	function setCollectionNesting(bool enable, address[] memory collections)
+		external;
+
+	// Selector: setCollectionAccess(string) 392172a9
+	function setCollectionAccess(string memory mode) external;
+
+	// Selector: addToCollectionAllowList(address) 67844fe6
+	function addToCollectionAllowList(address user) external view;
+
+	// Selector: removeFromCollectionAllowList(address) 85c51acb
+	function removeFromCollectionAllowList(address user) external view;
+
+	// Selector: setCollectionMintMode(bool) 00018e84
+	function setCollectionMintMode(bool mode) external;
+}
+
 // Selector: 41369377
 interface TokenProperties is Dummy, ERC165 {
 	// Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa
@@ -211,63 +269,6 @@
 	function mintBulkWithTokenURI(address to, Tuple0[] memory tokens)
 		external
 		returns (bool);
-}
-
-// Selector: f56cd7fa
-interface Collection is Dummy, ERC165 {
-	// Selector: setCollectionProperty(string,bytes) 2f073f66
-	function setCollectionProperty(string memory key, bytes memory value)
-		external;
-
-	// Selector: deleteCollectionProperty(string) 7b7debce
-	function deleteCollectionProperty(string memory key) external;
-
-	// Throws error if key not found
-	//
-	// Selector: collectionProperty(string) cf24fd6d
-	function collectionProperty(string memory key)
-		external
-		view
-		returns (bytes memory);
-
-	// Selector: ethSetSponsor(address) 8f9af356
-	function ethSetSponsor(address sponsor) external;
-
-	// Selector: ethConfirmSponsorship() a8580d1a
-	function ethConfirmSponsorship() external;
-
-	// Selector: setLimit(string,uint32) 68db30ca
-	function setLimit(string memory limit, uint32 value) external;
-
-	// Selector: setLimit(string,bool) ea67e4c2
-	function setLimit(string memory limit, bool value) external;
-
-	// Selector: contractAddress() f6b4dfb4
-	function contractAddress() external view returns (address);
-
-	// Selector: addAdmin(address) 70480275
-	function addAdmin(address newAdmin) external view;
-
-	// Selector: removeAdmin(address) 1785f53c
-	function removeAdmin(address admin) external view;
-
-	// Selector: setNesting(bool) e8fc50dd
-	function setNesting(bool enable) external;
-
-	// Selector: setNesting(bool,address[]) 7df12a9a
-	function setNesting(bool enable, address[] memory collections) external;
-
-	// Selector: setAccess(string) 488f56aa
-	function setAccess(string memory mode) external;
-
-	// Selector: addToAllowList(address) 31f59102
-	function addToAllowList(address user) external view;
-
-	// Selector: removeFromAllowList(address) eba8dabc
-	function removeFromAllowList(address user) external view;
-
-	// Selector: setMintMode(bool) 5dea9bd5
-	function setMintMode(bool mode) external;
 }
 
 interface UniqueNFT is
modifiedtests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth
--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -222,7 +222,7 @@
   });
 
   //TODO: CORE-302 add eth methods
-  itWeb3('Sponsoring collection from evm address via access list', async ({api, web3}) => {
+  itWeb3.skip('Sponsoring collection from evm address via access list', async ({api, web3}) => {
     const owner = await createEthAccountWithBalance(api, web3);
     const collectionHelpers = evmCollectionHelpers(web3, owner);
     let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();
@@ -292,19 +292,19 @@
     const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
     const sponsor = await createEthAccountWithBalance(api, web3);
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
-    result = await collectionEvm.methods.ethSetSponsor(sponsor).send();
+    result = await collectionEvm.methods.setCollectionSponsor(sponsor).send();
     let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
     expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
     expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
-    await expect(collectionEvm.methods.ethConfirmSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
+    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
     const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
-    await sponsorCollection.methods.ethConfirmSponsorship().send();
+    await sponsorCollection.methods.confirmCollectionSponsorship().send();
     collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
     expect(collectionSub.sponsorship.isConfirmed).to.be.true;
     expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
 
     const user = createEthAccount(web3);
-    await collectionEvm.methods.addAdmin(user).send();
+    await collectionEvm.methods.addCollectionAdmin(user).send();
     
     const ownerBalanceBefore = await ethBalanceViaSub(api, owner);
     const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);
modifiedtests/src/eth/createCollection.test.tsdiffbeforeafterboth
--- a/tests/src/eth/createCollection.test.ts
+++ b/tests/src/eth/createCollection.test.ts
@@ -75,13 +75,13 @@
     const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
     const sponsor = await createEthAccountWithBalance(api, web3);
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
-    result = await collectionEvm.methods.ethSetSponsor(sponsor).send();
+    result = await collectionEvm.methods.setCollectionSponsor(sponsor).send();
     let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
     expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
     expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
-    await expect(collectionEvm.methods.ethConfirmSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
+    await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
     const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
-    await sponsorCollection.methods.ethConfirmSponsorship().send();
+    await sponsorCollection.methods.confirmCollectionSponsorship().send();
     collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
     expect(collectionSub.sponsorship.isConfirmed).to.be.true;
     expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
@@ -105,15 +105,15 @@
     };
 
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
-    await collectionEvm.methods['setLimit(string,uint32)']('accountTokenOwnershipLimit', limits.accountTokenOwnershipLimit).send();
-    await collectionEvm.methods['setLimit(string,uint32)']('sponsoredDataSize', limits.sponsoredDataSize).send();
-    await collectionEvm.methods['setLimit(string,uint32)']('sponsoredDataRateLimit', limits.sponsoredDataRateLimit).send();
-    await collectionEvm.methods['setLimit(string,uint32)']('tokenLimit', limits.tokenLimit).send();
-    await collectionEvm.methods['setLimit(string,uint32)']('sponsorTransferTimeout', limits.sponsorTransferTimeout).send();
-    await collectionEvm.methods['setLimit(string,uint32)']('sponsorApproveTimeout', limits.sponsorApproveTimeout).send();
-    await collectionEvm.methods['setLimit(string,bool)']('ownerCanTransfer', limits.ownerCanTransfer).send();
-    await collectionEvm.methods['setLimit(string,bool)']('ownerCanDestroy', limits.ownerCanDestroy).send();
-    await collectionEvm.methods['setLimit(string,bool)']('transfersEnabled', limits.transfersEnabled).send();
+    await collectionEvm.methods['setCollectionLimit(string,uint32)']('accountTokenOwnershipLimit', limits.accountTokenOwnershipLimit).send();
+    await collectionEvm.methods['setCollectionLimit(string,uint32)']('sponsoredDataSize', limits.sponsoredDataSize).send();
+    await collectionEvm.methods['setCollectionLimit(string,uint32)']('sponsoredDataRateLimit', limits.sponsoredDataRateLimit).send();
+    await collectionEvm.methods['setCollectionLimit(string,uint32)']('tokenLimit', limits.tokenLimit).send();
+    await collectionEvm.methods['setCollectionLimit(string,uint32)']('sponsorTransferTimeout', limits.sponsorTransferTimeout).send();
+    await collectionEvm.methods['setCollectionLimit(string,uint32)']('sponsorApproveTimeout', limits.sponsorApproveTimeout).send();
+    await collectionEvm.methods['setCollectionLimit(string,bool)']('ownerCanTransfer', limits.ownerCanTransfer).send();
+    await collectionEvm.methods['setCollectionLimit(string,bool)']('ownerCanDestroy', limits.ownerCanDestroy).send();
+    await collectionEvm.methods['setCollectionLimit(string,bool)']('transfersEnabled', limits.transfersEnabled).send();
     
     const collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
     expect(collectionSub.limits.accountTokenOwnershipLimit.unwrap().toNumber()).to.be.eq(limits.accountTokenOwnershipLimit);
@@ -201,17 +201,17 @@
     {
       const sponsor = await createEthAccountWithBalance(api, web3);
       await expect(contractEvmFromNotOwner.methods
-        .ethSetSponsor(sponsor)
+        .setCollectionSponsor(sponsor)
         .call()).to.be.rejectedWith(EXPECTED_ERROR);
       
       const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
       await expect(sponsorCollection.methods
-        .ethConfirmSponsorship()
+        .confirmCollectionSponsorship()
         .call()).to.be.rejectedWith('Caller is not set as sponsor');
     }
     {
       await expect(contractEvmFromNotOwner.methods
-        .setLimit('account_token_ownership_limit', '1000')
+        .setCollectionLimit('account_token_ownership_limit', '1000')
         .call()).to.be.rejectedWith(EXPECTED_ERROR);
     }
   });
@@ -223,7 +223,7 @@
     const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     await expect(collectionEvm.methods
-      .setLimit('badLimit', 'true')
+      .setCollectionLimit('badLimit', 'true')
       .call()).to.be.rejectedWith('Unknown boolean limit "badLimit"');
   });
 });
\ No newline at end of file
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": "addAdmin",88    "outputs": [],89    "stateMutability": "view",90    "type": "function"91  },92  {93    "inputs": [94      { "internalType": "address", "name": "user", "type": "address" }95    ],96    "name": "addToAllowList",97    "outputs": [],98    "stateMutability": "view",99    "type": "function"100  },101  {102    "inputs": [103      { "internalType": "address", "name": "approved", "type": "address" },104      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }105    ],106    "name": "approve",107    "outputs": [],108    "stateMutability": "nonpayable",109    "type": "function"110  },111  {112    "inputs": [113      { "internalType": "address", "name": "owner", "type": "address" }114    ],115    "name": "balanceOf",116    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],117    "stateMutability": "view",118    "type": "function"119  },120  {121    "inputs": [122      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }123    ],124    "name": "burn",125    "outputs": [],126    "stateMutability": "nonpayable",127    "type": "function"128  },129  {130    "inputs": [131      { "internalType": "address", "name": "from", "type": "address" },132      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }133    ],134    "name": "burnFrom",135    "outputs": [],136    "stateMutability": "nonpayable",137    "type": "function"138  },139  {140    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],141    "name": "collectionProperty",142    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],143    "stateMutability": "view",144    "type": "function"145  },146  {147    "inputs": [],148    "name": "contractAddress",149    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],150    "stateMutability": "view",151    "type": "function"152  },153  {154    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],155    "name": "deleteCollectionProperty",156    "outputs": [],157    "stateMutability": "nonpayable",158    "type": "function"159  },160  {161    "inputs": [162      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },163      { "internalType": "string", "name": "key", "type": "string" }164    ],165    "name": "deleteProperty",166    "outputs": [],167    "stateMutability": "nonpayable",168    "type": "function"169  },170  {171    "inputs": [],172    "name": "ethConfirmSponsorship",173    "outputs": [],174    "stateMutability": "nonpayable",175    "type": "function"176  },177  {178    "inputs": [179      { "internalType": "address", "name": "sponsor", "type": "address" }180    ],181    "name": "ethSetSponsor",182    "outputs": [],183    "stateMutability": "nonpayable",184    "type": "function"185  },186  {187    "inputs": [],188    "name": "finishMinting",189    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],190    "stateMutability": "nonpayable",191    "type": "function"192  },193  {194    "inputs": [195      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }196    ],197    "name": "getApproved",198    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],199    "stateMutability": "view",200    "type": "function"201  },202  {203    "inputs": [204      { "internalType": "address", "name": "owner", "type": "address" },205      { "internalType": "address", "name": "operator", "type": "address" }206    ],207    "name": "isApprovedForAll",208    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],209    "stateMutability": "view",210    "type": "function"211  },212  {213    "inputs": [214      { "internalType": "address", "name": "to", "type": "address" },215      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }216    ],217    "name": "mint",218    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],219    "stateMutability": "nonpayable",220    "type": "function"221  },222  {223    "inputs": [224      { "internalType": "address", "name": "to", "type": "address" },225      { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }226    ],227    "name": "mintBulk",228    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],229    "stateMutability": "nonpayable",230    "type": "function"231  },232  {233    "inputs": [234      { "internalType": "address", "name": "to", "type": "address" },235      {236        "components": [237          { "internalType": "uint256", "name": "field_0", "type": "uint256" },238          { "internalType": "string", "name": "field_1", "type": "string" }239        ],240        "internalType": "struct Tuple0[]",241        "name": "tokens",242        "type": "tuple[]"243      }244    ],245    "name": "mintBulkWithTokenURI",246    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],247    "stateMutability": "nonpayable",248    "type": "function"249  },250  {251    "inputs": [252      { "internalType": "address", "name": "to", "type": "address" },253      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },254      { "internalType": "string", "name": "tokenUri", "type": "string" }255    ],256    "name": "mintWithTokenURI",257    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],258    "stateMutability": "nonpayable",259    "type": "function"260  },261  {262    "inputs": [],263    "name": "mintingFinished",264    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],265    "stateMutability": "view",266    "type": "function"267  },268  {269    "inputs": [],270    "name": "name",271    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],272    "stateMutability": "view",273    "type": "function"274  },275  {276    "inputs": [],277    "name": "nextTokenId",278    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],279    "stateMutability": "view",280    "type": "function"281  },282  {283    "inputs": [284      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }285    ],286    "name": "ownerOf",287    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],288    "stateMutability": "view",289    "type": "function"290  },291  {292    "inputs": [293      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },294      { "internalType": "string", "name": "key", "type": "string" }295    ],296    "name": "property",297    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],298    "stateMutability": "view",299    "type": "function"300  },301  {302    "inputs": [303      { "internalType": "address", "name": "admin", "type": "address" }304    ],305    "name": "removeAdmin",306    "outputs": [],307    "stateMutability": "view",308    "type": "function"309  },310  {311    "inputs": [312      { "internalType": "address", "name": "user", "type": "address" }313    ],314    "name": "removeFromAllowList",315    "outputs": [],316    "stateMutability": "view",317    "type": "function"318  },319  {320    "inputs": [321      { "internalType": "address", "name": "from", "type": "address" },322      { "internalType": "address", "name": "to", "type": "address" },323      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }324    ],325    "name": "safeTransferFrom",326    "outputs": [],327    "stateMutability": "nonpayable",328    "type": "function"329  },330  {331    "inputs": [332      { "internalType": "address", "name": "from", "type": "address" },333      { "internalType": "address", "name": "to", "type": "address" },334      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },335      { "internalType": "bytes", "name": "data", "type": "bytes" }336    ],337    "name": "safeTransferFromWithData",338    "outputs": [],339    "stateMutability": "nonpayable",340    "type": "function"341  },342  {343    "inputs": [{ "internalType": "string", "name": "mode", "type": "string" }],344    "name": "setAccess",345    "outputs": [],346    "stateMutability": "nonpayable",347    "type": "function"348  },349  {350    "inputs": [351      { "internalType": "address", "name": "operator", "type": "address" },352      { "internalType": "bool", "name": "approved", "type": "bool" }353    ],354    "name": "setApprovalForAll",355    "outputs": [],356    "stateMutability": "nonpayable",357    "type": "function"358  },359  {360    "inputs": [361      { "internalType": "string", "name": "key", "type": "string" },362      { "internalType": "bytes", "name": "value", "type": "bytes" }363    ],364    "name": "setCollectionProperty",365    "outputs": [],366    "stateMutability": "nonpayable",367    "type": "function"368  },369  {370    "inputs": [371      { "internalType": "string", "name": "limit", "type": "string" },372      { "internalType": "uint32", "name": "value", "type": "uint32" }373    ],374    "name": "setLimit",375    "outputs": [],376    "stateMutability": "nonpayable",377    "type": "function"378  },379  {380    "inputs": [381      { "internalType": "string", "name": "limit", "type": "string" },382      { "internalType": "bool", "name": "value", "type": "bool" }383    ],384    "name": "setLimit",385    "outputs": [],386    "stateMutability": "nonpayable",387    "type": "function"388  },389  {390    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],391    "name": "setMintMode",392    "outputs": [],393    "stateMutability": "nonpayable",394    "type": "function"395  },396  {397    "inputs": [398      { "internalType": "bool", "name": "enable", "type": "bool" },399      {400        "internalType": "address[]",401        "name": "collections",402        "type": "address[]"403      }404    ],405    "name": "setNesting",406    "outputs": [],407    "stateMutability": "nonpayable",408    "type": "function"409  },410  {411    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],412    "name": "setNesting",413    "outputs": [],414    "stateMutability": "nonpayable",415    "type": "function"416  },417  {418    "inputs": [419      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },420      { "internalType": "string", "name": "key", "type": "string" },421      { "internalType": "bytes", "name": "value", "type": "bytes" }422    ],423    "name": "setProperty",424    "outputs": [],425    "stateMutability": "nonpayable",426    "type": "function"427  },428  {429    "inputs": [430      { "internalType": "string", "name": "key", "type": "string" },431      { "internalType": "bool", "name": "isMutable", "type": "bool" },432      { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },433      { "internalType": "bool", "name": "tokenOwner", "type": "bool" }434    ],435    "name": "setTokenPropertyPermission",436    "outputs": [],437    "stateMutability": "nonpayable",438    "type": "function"439  },440  {441    "inputs": [442      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }443    ],444    "name": "supportsInterface",445    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],446    "stateMutability": "view",447    "type": "function"448  },449  {450    "inputs": [],451    "name": "symbol",452    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],453    "stateMutability": "view",454    "type": "function"455  },456  {457    "inputs": [458      { "internalType": "uint256", "name": "index", "type": "uint256" }459    ],460    "name": "tokenByIndex",461    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],462    "stateMutability": "view",463    "type": "function"464  },465  {466    "inputs": [467      { "internalType": "address", "name": "owner", "type": "address" },468      { "internalType": "uint256", "name": "index", "type": "uint256" }469    ],470    "name": "tokenOfOwnerByIndex",471    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],472    "stateMutability": "view",473    "type": "function"474  },475  {476    "inputs": [477      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }478    ],479    "name": "tokenURI",480    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],481    "stateMutability": "view",482    "type": "function"483  },484  {485    "inputs": [],486    "name": "totalSupply",487    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],488    "stateMutability": "view",489    "type": "function"490  },491  {492    "inputs": [493      { "internalType": "address", "name": "to", "type": "address" },494      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }495    ],496    "name": "transfer",497    "outputs": [],498    "stateMutability": "nonpayable",499    "type": "function"500  },501  {502    "inputs": [503      { "internalType": "address", "name": "from", "type": "address" },504      { "internalType": "address", "name": "to", "type": "address" },505      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }506    ],507    "name": "transferFrom",508    "outputs": [],509    "stateMutability": "nonpayable",510    "type": "function"511  }512]
after · 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": "view",90    "type": "function"91  },92  {93    "inputs": [94      { "internalType": "address", "name": "user", "type": "address" }95    ],96    "name": "addToCollectionAllowList",97    "outputs": [],98    "stateMutability": "view",99    "type": "function"100  },101  {102    "inputs": [103      { "internalType": "address", "name": "approved", "type": "address" },104      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }105    ],106    "name": "approve",107    "outputs": [],108    "stateMutability": "nonpayable",109    "type": "function"110  },111  {112    "inputs": [113      { "internalType": "address", "name": "owner", "type": "address" }114    ],115    "name": "balanceOf",116    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],117    "stateMutability": "view",118    "type": "function"119  },120  {121    "inputs": [122      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }123    ],124    "name": "burn",125    "outputs": [],126    "stateMutability": "nonpayable",127    "type": "function"128  },129  {130    "inputs": [131      { "internalType": "address", "name": "from", "type": "address" },132      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }133    ],134    "name": "burnFrom",135    "outputs": [],136    "stateMutability": "nonpayable",137    "type": "function"138  },139  {140    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],141    "name": "collectionProperty",142    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],143    "stateMutability": "view",144    "type": "function"145  },146  {147    "inputs": [],148    "name": "confirmCollectionSponsorship",149    "outputs": [],150    "stateMutability": "nonpayable",151    "type": "function"152  },153  {154    "inputs": [],155    "name": "contractAddress",156    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],157    "stateMutability": "view",158    "type": "function"159  },160  {161    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],162    "name": "deleteCollectionProperty",163    "outputs": [],164    "stateMutability": "nonpayable",165    "type": "function"166  },167  {168    "inputs": [169      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },170      { "internalType": "string", "name": "key", "type": "string" }171    ],172    "name": "deleteProperty",173    "outputs": [],174    "stateMutability": "nonpayable",175    "type": "function"176  },177  {178    "inputs": [],179    "name": "finishMinting",180    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],181    "stateMutability": "nonpayable",182    "type": "function"183  },184  {185    "inputs": [186      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }187    ],188    "name": "getApproved",189    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],190    "stateMutability": "view",191    "type": "function"192  },193  {194    "inputs": [195      { "internalType": "address", "name": "owner", "type": "address" },196      { "internalType": "address", "name": "operator", "type": "address" }197    ],198    "name": "isApprovedForAll",199    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],200    "stateMutability": "view",201    "type": "function"202  },203  {204    "inputs": [205      { "internalType": "address", "name": "to", "type": "address" },206      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }207    ],208    "name": "mint",209    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],210    "stateMutability": "nonpayable",211    "type": "function"212  },213  {214    "inputs": [215      { "internalType": "address", "name": "to", "type": "address" },216      { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }217    ],218    "name": "mintBulk",219    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],220    "stateMutability": "nonpayable",221    "type": "function"222  },223  {224    "inputs": [225      { "internalType": "address", "name": "to", "type": "address" },226      {227        "components": [228          { "internalType": "uint256", "name": "field_0", "type": "uint256" },229          { "internalType": "string", "name": "field_1", "type": "string" }230        ],231        "internalType": "struct Tuple0[]",232        "name": "tokens",233        "type": "tuple[]"234      }235    ],236    "name": "mintBulkWithTokenURI",237    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],238    "stateMutability": "nonpayable",239    "type": "function"240  },241  {242    "inputs": [243      { "internalType": "address", "name": "to", "type": "address" },244      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },245      { "internalType": "string", "name": "tokenUri", "type": "string" }246    ],247    "name": "mintWithTokenURI",248    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],249    "stateMutability": "nonpayable",250    "type": "function"251  },252  {253    "inputs": [],254    "name": "mintingFinished",255    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],256    "stateMutability": "view",257    "type": "function"258  },259  {260    "inputs": [],261    "name": "name",262    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],263    "stateMutability": "view",264    "type": "function"265  },266  {267    "inputs": [],268    "name": "nextTokenId",269    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],270    "stateMutability": "view",271    "type": "function"272  },273  {274    "inputs": [275      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }276    ],277    "name": "ownerOf",278    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],279    "stateMutability": "view",280    "type": "function"281  },282  {283    "inputs": [284      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },285      { "internalType": "string", "name": "key", "type": "string" }286    ],287    "name": "property",288    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],289    "stateMutability": "view",290    "type": "function"291  },292  {293    "inputs": [294      { "internalType": "address", "name": "admin", "type": "address" }295    ],296    "name": "removeCollectionAdmin",297    "outputs": [],298    "stateMutability": "view",299    "type": "function"300  },301  {302    "inputs": [303      { "internalType": "address", "name": "user", "type": "address" }304    ],305    "name": "removeFromCollectionAllowList",306    "outputs": [],307    "stateMutability": "view",308    "type": "function"309  },310  {311    "inputs": [312      { "internalType": "address", "name": "from", "type": "address" },313      { "internalType": "address", "name": "to", "type": "address" },314      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }315    ],316    "name": "safeTransferFrom",317    "outputs": [],318    "stateMutability": "nonpayable",319    "type": "function"320  },321  {322    "inputs": [323      { "internalType": "address", "name": "from", "type": "address" },324      { "internalType": "address", "name": "to", "type": "address" },325      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },326      { "internalType": "bytes", "name": "data", "type": "bytes" }327    ],328    "name": "safeTransferFromWithData",329    "outputs": [],330    "stateMutability": "nonpayable",331    "type": "function"332  },333  {334    "inputs": [335      { "internalType": "address", "name": "operator", "type": "address" },336      { "internalType": "bool", "name": "approved", "type": "bool" }337    ],338    "name": "setApprovalForAll",339    "outputs": [],340    "stateMutability": "nonpayable",341    "type": "function"342  },343  {344    "inputs": [{ "internalType": "string", "name": "mode", "type": "string" }],345    "name": "setCollectionAccess",346    "outputs": [],347    "stateMutability": "nonpayable",348    "type": "function"349  },350  {351    "inputs": [352      { "internalType": "string", "name": "limit", "type": "string" },353      { "internalType": "uint32", "name": "value", "type": "uint32" }354    ],355    "name": "setCollectionLimit",356    "outputs": [],357    "stateMutability": "nonpayable",358    "type": "function"359  },360  {361    "inputs": [362      { "internalType": "string", "name": "limit", "type": "string" },363      { "internalType": "bool", "name": "value", "type": "bool" }364    ],365    "name": "setCollectionLimit",366    "outputs": [],367    "stateMutability": "nonpayable",368    "type": "function"369  },370  {371    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],372    "name": "setCollectionMintMode",373    "outputs": [],374    "stateMutability": "nonpayable",375    "type": "function"376  },377  {378    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],379    "name": "setCollectionNesting",380    "outputs": [],381    "stateMutability": "nonpayable",382    "type": "function"383  },384  {385    "inputs": [386      { "internalType": "bool", "name": "enable", "type": "bool" },387      {388        "internalType": "address[]",389        "name": "collections",390        "type": "address[]"391      }392    ],393    "name": "setCollectionNesting",394    "outputs": [],395    "stateMutability": "nonpayable",396    "type": "function"397  },398  {399    "inputs": [400      { "internalType": "string", "name": "key", "type": "string" },401      { "internalType": "bytes", "name": "value", "type": "bytes" }402    ],403    "name": "setCollectionProperty",404    "outputs": [],405    "stateMutability": "nonpayable",406    "type": "function"407  },408  {409    "inputs": [410      { "internalType": "address", "name": "sponsor", "type": "address" }411    ],412    "name": "setCollectionSponsor",413    "outputs": [],414    "stateMutability": "nonpayable",415    "type": "function"416  },417  {418    "inputs": [419      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },420      { "internalType": "string", "name": "key", "type": "string" },421      { "internalType": "bytes", "name": "value", "type": "bytes" }422    ],423    "name": "setProperty",424    "outputs": [],425    "stateMutability": "nonpayable",426    "type": "function"427  },428  {429    "inputs": [430      { "internalType": "string", "name": "key", "type": "string" },431      { "internalType": "bool", "name": "isMutable", "type": "bool" },432      { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },433      { "internalType": "bool", "name": "tokenOwner", "type": "bool" }434    ],435    "name": "setTokenPropertyPermission",436    "outputs": [],437    "stateMutability": "nonpayable",438    "type": "function"439  },440  {441    "inputs": [442      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }443    ],444    "name": "supportsInterface",445    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],446    "stateMutability": "view",447    "type": "function"448  },449  {450    "inputs": [],451    "name": "symbol",452    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],453    "stateMutability": "view",454    "type": "function"455  },456  {457    "inputs": [458      { "internalType": "uint256", "name": "index", "type": "uint256" }459    ],460    "name": "tokenByIndex",461    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],462    "stateMutability": "view",463    "type": "function"464  },465  {466    "inputs": [467      { "internalType": "address", "name": "owner", "type": "address" },468      { "internalType": "uint256", "name": "index", "type": "uint256" }469    ],470    "name": "tokenOfOwnerByIndex",471    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],472    "stateMutability": "view",473    "type": "function"474  },475  {476    "inputs": [477      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }478    ],479    "name": "tokenURI",480    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],481    "stateMutability": "view",482    "type": "function"483  },484  {485    "inputs": [],486    "name": "totalSupply",487    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],488    "stateMutability": "view",489    "type": "function"490  },491  {492    "inputs": [493      { "internalType": "address", "name": "to", "type": "address" },494      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }495    ],496    "name": "transfer",497    "outputs": [],498    "stateMutability": "nonpayable",499    "type": "function"500  },501  {502    "inputs": [503      { "internalType": "address", "name": "from", "type": "address" },504      { "internalType": "address", "name": "to", "type": "address" },505      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }506    ],507    "name": "transferFrom",508    "outputs": [],509    "stateMutability": "nonpayable",510    "type": "function"511  }512]
modifiedtests/src/eth/proxy/nonFungibleProxy.test.tsdiffbeforeafterboth
--- a/tests/src/eth/proxy/nonFungibleProxy.test.ts
+++ b/tests/src/eth/proxy/nonFungibleProxy.test.ts
@@ -99,7 +99,7 @@
     const collectionEvmOwned = evmCollection(web3, owner, collectionIdAddress);
     const collectionEvm = evmCollection(web3, caller, collectionIdAddress);
     const contract = await proxyWrap(api, web3, collectionEvm);
-    await collectionEvmOwned.methods.addAdmin(contract.options.address).send();
+    await collectionEvmOwned.methods.addCollectionAdmin(contract.options.address).send();
 
     {
       const nextTokenId = await contract.methods.nextTokenId().call();