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

difftreelog

CORE-386 Fix names and tests

Trubnikov Sergey2022-06-10parent: #84e2b3d.patch.diff
in: master

8 files changed

modifiedpallets/common/src/erc.rsdiffbeforeafterboth
--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -211,7 +211,7 @@
 		Ok(())
 	}
 
-	#[solidity(rename_selector = "setNesting")]
+	#[solidity(rename_selector = "setCollectionNesting")]
 	fn set_nesting_bool(&mut self, caller: caller, enable: bool) -> Result<void> {
 		check_is_owner_or_admin(caller, self)?;
 		let permissions = CollectionPermissions {
@@ -231,7 +231,7 @@
 		save(self)
 	}
 
-	#[solidity(rename_selector = "setNesting")]
+	#[solidity(rename_selector = "setCollectionNesting")]
 	fn set_nesting(
 		&mut self,
 		caller: caller,
@@ -309,7 +309,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)?;
 		let permissions = CollectionPermissions { mint_mode: Some(mode), .. Default::default() };
 		self.collection.permissions = <Pallet<T>>::clamp_permissions(
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
@@ -330,7 +330,7 @@
 	}
 }
 
-// Selector: c0de6be0
+// Selector: 7d9262e6
 contract Collection is Dummy, ERC165 {
 	// Selector: setCollectionProperty(string,bytes) 2f073f66
 	function setCollectionProperty(string memory key, bytes memory value)
@@ -427,15 +427,17 @@
 		dummy;
 	}
 
-	// Selector: setNesting(bool) e8fc50dd
-	function setNesting(bool enable) public {
+	// Selector: setCollectionNesting(bool) 112d4586
+	function setCollectionNesting(bool enable) public {
 		require(false, stub_error);
 		enable;
 		dummy = 0;
 	}
 
-	// Selector: setNesting(bool,address[]) 7df12a9a
-	function setNesting(bool enable, address[] memory collections) public {
+	// Selector: setCollectionNesting(bool,address[]) 64872396
+	function setCollectionNesting(bool enable, address[] memory collections)
+		public
+	{
 		require(false, stub_error);
 		enable;
 		collections;
@@ -463,8 +465,8 @@
 		dummy;
 	}
 
-	// Selector: setMintMode(bool) 5dea9bd5
-	function setMintMode(bool mode) public {
+	// Selector: setCollectionMintMode(bool) 00018e84
+	function setCollectionMintMode(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
@@ -191,7 +191,7 @@
 	function totalSupply() external view returns (uint256);
 }
 
-// Selector: c0de6be0
+// Selector: 7d9262e6
 interface Collection is Dummy, ERC165 {
 	// Selector: setCollectionProperty(string,bytes) 2f073f66
 	function setCollectionProperty(string memory key, bytes memory value)
@@ -235,11 +235,12 @@
 	// Selector: removeCollectionAdmin(address) fafd7b42
 	function removeCollectionAdmin(address admin) external view;
 
-	// Selector: setNesting(bool) e8fc50dd
-	function setNesting(bool enable) external;
+	// Selector: setCollectionNesting(bool) 112d4586
+	function setCollectionNesting(bool enable) external;
 
-	// Selector: setNesting(bool,address[]) 7df12a9a
-	function setNesting(bool enable, address[] memory collections) external;
+	// Selector: setCollectionNesting(bool,address[]) 64872396
+	function setCollectionNesting(bool enable, address[] memory collections)
+		external;
 
 	// Selector: setCollectionAccess(uint8) 41835d4c
 	function setCollectionAccess(uint8 mode) external;
@@ -250,8 +251,8 @@
 	// Selector: removeFromCollectionAllowList(address) 85c51acb
 	function removeFromCollectionAllowList(address user) external view;
 
-	// Selector: setMintMode(bool) 5dea9bd5
-	function setMintMode(bool mode) external;
+	// Selector: setCollectionMintMode(bool) 00018e84
+	function setCollectionMintMode(bool mode) external;
 }
 
 // Selector: d74d154f
modifiedtests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth
--- a/tests/src/eth/collectionAdmin.test.ts
+++ b/tests/src/eth/collectionAdmin.test.ts
@@ -25,8 +25,8 @@
 } from './util/helpers';
 
 describe('Add collection admins', () => {
-  itWeb3('Add admin by owner', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('Add admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -42,8 +42,8 @@
       .to.be.eq(newAdmin.toLocaleLowerCase());
   });
 
-  itWeb3('Add substrate admin by owner', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('Add substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -60,8 +60,8 @@
       .to.be.eq(newAdmin.address.toLocaleLowerCase());
   });
 
-  itWeb3('(!negative tests!) Add admin by ADMIN is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Add admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -69,7 +69,7 @@
       .send();
     const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const admin = await createEthAccountWithBalance(api, web3);
+    const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     await collectionEvm.methods.addCollectionAdmin(admin).send();
     
@@ -83,8 +83,8 @@
       .to.be.eq(admin.toLocaleLowerCase());
   });
 
-  itWeb3('(!negative tests!) Add admin by USER is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Add admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -92,7 +92,7 @@
       .send();
     const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const notAdmin = await createEthAccountWithBalance(api, web3);
+    const notAdmin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     
     const user = await createEthAccount(web3);
@@ -103,8 +103,8 @@
     expect(adminList.length).to.be.eq(0);
   });
 
-  itWeb3('(!negative tests!) Add substrate admin by ADMIN is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Add substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -112,7 +112,7 @@
       .send();
     const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const admin = await createEthAccountWithBalance(api, web3);
+    const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     await collectionEvm.methods.addCollectionAdmin(admin).send();
 
@@ -126,8 +126,8 @@
       .to.be.eq(admin.toLocaleLowerCase());
   });
   
-  itWeb3('(!negative tests!) Add substrate admin by USER is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Add substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -135,7 +135,7 @@
       .send();
     const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
 
-    const notAdmin0 = await createEthAccountWithBalance(api, web3);
+    const notAdmin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     const notAdmin1 = privateKey('//Alice');
     await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin1.addressRaw).call({from: notAdmin0}))
@@ -147,8 +147,8 @@
 });
 
 describe('Remove collection admins', () => {
-  itWeb3('Remove admin by owner', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('Remove admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -171,8 +171,8 @@
     expect(adminList.length).to.be.eq(0);
   });
 
-  itWeb3('Remove substrate admin by owner', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('Remove substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -194,8 +194,8 @@
     expect(adminList.length).to.be.eq(0);
   });
 
-  itWeb3('(!negative tests!) Remove admin by ADMIN is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Remove admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -205,7 +205,7 @@
 
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
 
-    const admin0 = await createEthAccountWithBalance(api, web3);
+    const admin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     await collectionEvm.methods.addCollectionAdmin(admin0).send();
     const admin1 = await createEthAccount(web3);
     await collectionEvm.methods.addCollectionAdmin(admin1).send();
@@ -221,8 +221,8 @@
     }
   });
 
-  itWeb3('(!negative tests!) Remove admin by USER is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Remove admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -232,7 +232,7 @@
 
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
 
-    const admin = await createEthAccountWithBalance(api, web3);
+    const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     await collectionEvm.methods.addCollectionAdmin(admin).send();
     const notAdmin = await createEthAccount(web3);
 
@@ -246,8 +246,8 @@
     }
   });
 
-  itWeb3('(!negative tests!) Remove substrate admin by ADMIN is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Remove substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -258,7 +258,7 @@
     const adminSub = privateKey('//Alice');
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
-    const adminEth = await createEthAccountWithBalance(api, web3);
+    const adminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     await collectionEvm.methods.addCollectionAdmin(adminEth).send();
 
     await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: adminEth}))
@@ -271,8 +271,8 @@
       .to.be.deep.contains(adminEth.toLocaleLowerCase());
   });
 
-  itWeb3('(!negative tests!) Remove substrate admin by USER is not allowed', async ({api, web3}) => {
-    const owner = await createEthAccountWithBalance(api, web3);
+  itWeb3('(!negative tests!) Remove substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
     const collectionHelper = evmCollectionHelpers(web3, owner);
         
     const result = await collectionHelper.methods
@@ -283,7 +283,7 @@
     const adminSub = privateKey('//Alice');
     const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
     await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
-    const notAdminEth = await createEthAccountWithBalance(api, web3);
+    const notAdminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
 
     await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: notAdminEth}))
       .to.be.rejectedWith('NoPermission');
modifiedtests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth
--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -250,7 +250,7 @@
 
     await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});
     await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});
-    await collectionEvm.methods.setMintMode(true).send({from: owner});
+    await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});
 
     const newPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();
     expect(newPermissions.mintMode).to.be.true;
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
386 "type": "function"386 "type": "function"
387 },387 },
388 {388 {
389 "inputs": [389 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],
390 { "internalType": "string", "name": "key", "type": "string" },
391 { "internalType": "bytes", "name": "value", "type": "bytes" }
392 ],
393 "name": "setCollectionProperty",390 "name": "setCollectionMintMode",
394 "outputs": [],391 "outputs": [],
395 "stateMutability": "nonpayable",392 "stateMutability": "nonpayable",
396 "type": "function"393 "type": "function"
397 },394 },
398 {395 {
399 "inputs": [396 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],
400 { "internalType": "address", "name": "sponsor", "type": "address" }
401 ],
402 "name": "setCollectionSponsor",397 "name": "setCollectionNesting",
403 "outputs": [],398 "outputs": [],
404 "stateMutability": "nonpayable",399 "stateMutability": "nonpayable",
405 "type": "function"400 "type": "function"
406 },401 },
407 {402 {
408 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],403 "inputs": [
404 { "internalType": "bool", "name": "enable", "type": "bool" },
405 {
406 "internalType": "address[]",
407 "name": "collections",
408 "type": "address[]"
409 }
410 ],
409 "name": "setMintMode",411 "name": "setCollectionNesting",
410 "outputs": [],412 "outputs": [],
411 "stateMutability": "nonpayable",413 "stateMutability": "nonpayable",
412 "type": "function"414 "type": "function"
413 },415 },
414 {416 {
415 "inputs": [417 "inputs": [
416 { "internalType": "bool", "name": "enable", "type": "bool" },418 { "internalType": "string", "name": "key", "type": "string" },
417 {419 { "internalType": "bytes", "name": "value", "type": "bytes" }
418 "internalType": "address[]",
419 "name": "collections",
420 "type": "address[]"
421 }
422 ],420 ],
423 "name": "setNesting",421 "name": "setCollectionProperty",
424 "outputs": [],422 "outputs": [],
425 "stateMutability": "nonpayable",423 "stateMutability": "nonpayable",
426 "type": "function"424 "type": "function"
427 },425 },
428 {426 {
429 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],427 "inputs": [
428 { "internalType": "address", "name": "sponsor", "type": "address" }
429 ],
430 "name": "setNesting",430 "name": "setCollectionSponsor",
431 "outputs": [],431 "outputs": [],
432 "stateMutability": "nonpayable",432 "stateMutability": "nonpayable",
433 "type": "function"433 "type": "function"
modifiedtests/src/removeCollectionAdmin.test.tsdiffbeforeafterboth
--- a/tests/src/removeCollectionAdmin.test.ts
+++ b/tests/src/removeCollectionAdmin.test.ts
@@ -111,18 +111,24 @@
     });
   });
 
-  it('Admin can\'t remove collection admin.', async () => {
+  it.only('Admin can\'t remove collection admin.', async () => {
     await usingApi(async (api, privateKeyWrapper) => {
       const collectionId = await createCollectionExpectSuccess();
       const alice = privateKeyWrapper('//Alice');
       const bob = privateKeyWrapper('//Bob');
       const charlie = privateKeyWrapper('//Charlie');
 
+      const addBobAdminTx = api.tx.unique.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+      await submitTransactionAsync(alice, addBobAdminTx);
+      const addCharlieAdminTx = api.tx.unique.addCollectionAdmin(collectionId, normalizeAccountId(charlie.address));
+      await submitTransactionAsync(alice, addCharlieAdminTx);
+
       const adminListAfterAddAdmin = await getAdminList(api, collectionId);
       expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
+      expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(charlie.address));
 
       const removeAdminTx = api.tx.unique.removeCollectionAdmin(collectionId, normalizeAccountId(bob.address));
-      await expect(submitTransactionAsync(charlie, removeAdminTx)).to.be.rejected;
+      await expect(submitTransactionExpectFailAsync(charlie, removeAdminTx)).to.be.rejected;
 
       const adminListAfterRemoveAdmin = await getAdminList(api, collectionId);
       expect(adminListAfterRemoveAdmin).to.be.deep.contains(normalizeAccountId(bob.address));