difftreelog
CORE-386 Fix names and tests
in: master
8 files changed
pallets/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(
pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/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;
tests/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
tests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth25} from './util/helpers';25} from './util/helpers';262627describe('Add collection admins', () => {27describe('Add collection admins', () => {28 itWeb3('Add admin by owner', async ({api, web3}) => {28 itWeb3('Add admin by owner', async ({api, web3, privateKeyWrapper}) => {29 const owner = await createEthAccountWithBalance(api, web3);29 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);30 const collectionHelper = evmCollectionHelpers(web3, owner);30 const collectionHelper = evmCollectionHelpers(web3, owner);31 31 32 const result = await collectionHelper.methods32 const result = await collectionHelper.methods42 .to.be.eq(newAdmin.toLocaleLowerCase());42 .to.be.eq(newAdmin.toLocaleLowerCase());43 });43 });444445 itWeb3('Add substrate admin by owner', async ({api, web3}) => {45 itWeb3('Add substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {46 const owner = await createEthAccountWithBalance(api, web3);46 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);47 const collectionHelper = evmCollectionHelpers(web3, owner);47 const collectionHelper = evmCollectionHelpers(web3, owner);48 48 49 const result = await collectionHelper.methods49 const result = await collectionHelper.methods60 .to.be.eq(newAdmin.address.toLocaleLowerCase());60 .to.be.eq(newAdmin.address.toLocaleLowerCase());61 });61 });626263 itWeb3('(!negative tests!) Add admin by ADMIN is not allowed', async ({api, web3}) => {63 itWeb3('(!negative tests!) Add admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {64 const owner = await createEthAccountWithBalance(api, web3);64 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);65 const collectionHelper = evmCollectionHelpers(web3, owner);65 const collectionHelper = evmCollectionHelpers(web3, owner);66 66 67 const result = await collectionHelper.methods67 const result = await collectionHelper.methods68 .createNonfungibleCollection('A', 'B', 'C')68 .createNonfungibleCollection('A', 'B', 'C')69 .send();69 .send();70 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);70 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);717172 const admin = await createEthAccountWithBalance(api, web3);72 const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);73 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);73 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);74 await collectionEvm.methods.addCollectionAdmin(admin).send();74 await collectionEvm.methods.addCollectionAdmin(admin).send();75 75 83 .to.be.eq(admin.toLocaleLowerCase());83 .to.be.eq(admin.toLocaleLowerCase());84 });84 });858586 itWeb3('(!negative tests!) Add admin by USER is not allowed', async ({api, web3}) => {86 itWeb3('(!negative tests!) Add admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {87 const owner = await createEthAccountWithBalance(api, web3);87 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);88 const collectionHelper = evmCollectionHelpers(web3, owner);88 const collectionHelper = evmCollectionHelpers(web3, owner);89 89 90 const result = await collectionHelper.methods90 const result = await collectionHelper.methods91 .createNonfungibleCollection('A', 'B', 'C')91 .createNonfungibleCollection('A', 'B', 'C')92 .send();92 .send();93 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);93 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);949495 const notAdmin = await createEthAccountWithBalance(api, web3);95 const notAdmin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);96 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);96 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);97 97 98 const user = await createEthAccount(web3);98 const user = await createEthAccount(web3);103 expect(adminList.length).to.be.eq(0);103 expect(adminList.length).to.be.eq(0);104 });104 });105105106 itWeb3('(!negative tests!) Add substrate admin by ADMIN is not allowed', async ({api, web3}) => {106 itWeb3('(!negative tests!) Add substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {107 const owner = await createEthAccountWithBalance(api, web3);107 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);108 const collectionHelper = evmCollectionHelpers(web3, owner);108 const collectionHelper = evmCollectionHelpers(web3, owner);109 109 110 const result = await collectionHelper.methods110 const result = await collectionHelper.methods111 .createNonfungibleCollection('A', 'B', 'C')111 .createNonfungibleCollection('A', 'B', 'C')112 .send();112 .send();113 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);113 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);114114115 const admin = await createEthAccountWithBalance(api, web3);115 const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);116 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);116 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);117 await collectionEvm.methods.addCollectionAdmin(admin).send();117 await collectionEvm.methods.addCollectionAdmin(admin).send();118118126 .to.be.eq(admin.toLocaleLowerCase());126 .to.be.eq(admin.toLocaleLowerCase());127 });127 });128 128 129 itWeb3('(!negative tests!) Add substrate admin by USER is not allowed', async ({api, web3}) => {129 itWeb3('(!negative tests!) Add substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {130 const owner = await createEthAccountWithBalance(api, web3);130 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);131 const collectionHelper = evmCollectionHelpers(web3, owner);131 const collectionHelper = evmCollectionHelpers(web3, owner);132 132 133 const result = await collectionHelper.methods133 const result = await collectionHelper.methods134 .createNonfungibleCollection('A', 'B', 'C')134 .createNonfungibleCollection('A', 'B', 'C')135 .send();135 .send();136 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);136 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);137137138 const notAdmin0 = await createEthAccountWithBalance(api, web3);138 const notAdmin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);139 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);139 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);140 const notAdmin1 = privateKey('//Alice');140 const notAdmin1 = privateKey('//Alice');141 await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin1.addressRaw).call({from: notAdmin0}))141 await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin1.addressRaw).call({from: notAdmin0}))147});147});148148149describe('Remove collection admins', () => {149describe('Remove collection admins', () => {150 itWeb3('Remove admin by owner', async ({api, web3}) => {150 itWeb3('Remove admin by owner', async ({api, web3, privateKeyWrapper}) => {151 const owner = await createEthAccountWithBalance(api, web3);151 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);152 const collectionHelper = evmCollectionHelpers(web3, owner);152 const collectionHelper = evmCollectionHelpers(web3, owner);153 153 154 const result = await collectionHelper.methods154 const result = await collectionHelper.methods171 expect(adminList.length).to.be.eq(0);171 expect(adminList.length).to.be.eq(0);172 });172 });173173174 itWeb3('Remove substrate admin by owner', async ({api, web3}) => {174 itWeb3('Remove substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {175 const owner = await createEthAccountWithBalance(api, web3);175 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);176 const collectionHelper = evmCollectionHelpers(web3, owner);176 const collectionHelper = evmCollectionHelpers(web3, owner);177 177 178 const result = await collectionHelper.methods178 const result = await collectionHelper.methods194 expect(adminList.length).to.be.eq(0);194 expect(adminList.length).to.be.eq(0);195 });195 });196196197 itWeb3('(!negative tests!) Remove admin by ADMIN is not allowed', async ({api, web3}) => {197 itWeb3('(!negative tests!) Remove admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {198 const owner = await createEthAccountWithBalance(api, web3);198 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);199 const collectionHelper = evmCollectionHelpers(web3, owner);199 const collectionHelper = evmCollectionHelpers(web3, owner);200 200 201 const result = await collectionHelper.methods201 const result = await collectionHelper.methods205205206 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);206 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);207207208 const admin0 = await createEthAccountWithBalance(api, web3);208 const admin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);209 await collectionEvm.methods.addCollectionAdmin(admin0).send();209 await collectionEvm.methods.addCollectionAdmin(admin0).send();210 const admin1 = await createEthAccount(web3);210 const admin1 = await createEthAccount(web3);211 await collectionEvm.methods.addCollectionAdmin(admin1).send();211 await collectionEvm.methods.addCollectionAdmin(admin1).send();221 }221 }222 });222 });223223224 itWeb3('(!negative tests!) Remove admin by USER is not allowed', async ({api, web3}) => {224 itWeb3('(!negative tests!) Remove admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {225 const owner = await createEthAccountWithBalance(api, web3);225 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);226 const collectionHelper = evmCollectionHelpers(web3, owner);226 const collectionHelper = evmCollectionHelpers(web3, owner);227 227 228 const result = await collectionHelper.methods228 const result = await collectionHelper.methods232232233 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);233 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);234234235 const admin = await createEthAccountWithBalance(api, web3);235 const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);236 await collectionEvm.methods.addCollectionAdmin(admin).send();236 await collectionEvm.methods.addCollectionAdmin(admin).send();237 const notAdmin = await createEthAccount(web3);237 const notAdmin = await createEthAccount(web3);238238246 }246 }247 });247 });248248249 itWeb3('(!negative tests!) Remove substrate admin by ADMIN is not allowed', async ({api, web3}) => {249 itWeb3('(!negative tests!) Remove substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {250 const owner = await createEthAccountWithBalance(api, web3);250 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);251 const collectionHelper = evmCollectionHelpers(web3, owner);251 const collectionHelper = evmCollectionHelpers(web3, owner);252 252 253 const result = await collectionHelper.methods253 const result = await collectionHelper.methods258 const adminSub = privateKey('//Alice');258 const adminSub = privateKey('//Alice');259 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);259 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);260 await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();260 await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();261 const adminEth = await createEthAccountWithBalance(api, web3);261 const adminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);262 await collectionEvm.methods.addCollectionAdmin(adminEth).send();262 await collectionEvm.methods.addCollectionAdmin(adminEth).send();263263264 await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: adminEth}))264 await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: adminEth}))271 .to.be.deep.contains(adminEth.toLocaleLowerCase());271 .to.be.deep.contains(adminEth.toLocaleLowerCase());272 });272 });273273274 itWeb3('(!negative tests!) Remove substrate admin by USER is not allowed', async ({api, web3}) => {274 itWeb3('(!negative tests!) Remove substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {275 const owner = await createEthAccountWithBalance(api, web3);275 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);276 const collectionHelper = evmCollectionHelpers(web3, owner);276 const collectionHelper = evmCollectionHelpers(web3, owner);277 277 278 const result = await collectionHelper.methods278 const result = await collectionHelper.methods283 const adminSub = privateKey('//Alice');283 const adminSub = privateKey('//Alice');284 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);284 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);285 await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();285 await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();286 const notAdminEth = await createEthAccountWithBalance(api, web3);286 const notAdminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);287287288 await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: notAdminEth}))288 await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: notAdminEth}))289 .to.be.rejectedWith('NoPermission');289 .to.be.rejectedWith('NoPermission');tests/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;
tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -386,27 +386,15 @@
"type": "function"
},
{
- "inputs": [
- { "internalType": "string", "name": "key", "type": "string" },
- { "internalType": "bytes", "name": "value", "type": "bytes" }
- ],
- "name": "setCollectionProperty",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "sponsor", "type": "address" }
- ],
- "name": "setCollectionSponsor",
+ "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],
+ "name": "setCollectionMintMode",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
- "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],
- "name": "setMintMode",
+ "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],
+ "name": "setCollectionNesting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
@@ -420,14 +408,26 @@
"type": "address[]"
}
],
- "name": "setNesting",
+ "name": "setCollectionNesting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
- "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],
- "name": "setNesting",
+ "inputs": [
+ { "internalType": "string", "name": "key", "type": "string" },
+ { "internalType": "bytes", "name": "value", "type": "bytes" }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "sponsor", "type": "address" }
+ ],
+ "name": "setCollectionSponsor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
tests/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));