difftreelog
tests: remove scheduler from required pallets + fix some lint warnings
in: master
4 files changed
tests/src/eth/base.test.tsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {Contract} from 'web3-eth-contract';1819import {IKeyringPair} from '@polkadot/types/types';20import {EthUniqueHelper, itEth, usingEthPlaygrounds, expect} from './util';212223describe('Contract calls', () => {24 let donor: IKeyringPair;2526 before(async function () {27 await usingEthPlaygrounds(async (_helper, privateKey) => {28 donor = await privateKey({filename: __filename});29 });30 });3132 itEth('Call of simple contract fee is less than 0.2 UNQ', async ({helper}) => {33 const deployer = await helper.eth.createAccountWithBalance(donor);34 const flipper = await helper.eth.deployFlipper(deployer);3536 const cost = await helper.eth.calculateFee({Ethereum: deployer}, () => flipper.methods.flip().send({from: deployer}));37 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal()))).to.be.true;38 });3940 itEth('Balance transfer fee is less than 0.2 UNQ', async ({helper}) => {41 const userA = await helper.eth.createAccountWithBalance(donor);42 const userB = helper.eth.createAccount();43 const cost = await helper.eth.calculateFee({Ethereum: userA}, () => helper.getWeb3().eth.sendTransaction({44 from: userA,45 to: userB,46 value: '1000000',47 gas: helper.eth.DEFAULT_GAS,48 }));49 const balanceB = await helper.balance.getEthereum(userB);50 expect(cost - balanceB < BigInt(0.2 * Number(helper.balance.getOneTokenNominal()))).to.be.true;51 });5253 itEth('NFT transfer is close to 0.15 UNQ', async ({helper}) => {54 const caller = await helper.eth.createAccountWithBalance(donor);55 const receiver = helper.eth.createAccount();5657 const [alice] = await helper.arrange.createAccounts([10n], donor);58 const collection = await helper.nft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'});59 const {tokenId} = await collection.mintToken(alice, {Ethereum: caller});6061 const address = helper.ethAddress.fromCollectionId(collection.collectionId);62 const contract = helper.ethNativeContract.collection(address, 'nft', caller);6364 const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, tokenId).send(caller));6566 const fee = Number(cost) / Number(helper.balance.getOneTokenNominal());67 const expectedFee = 0.15;68 const tolerance = 0.001;6970 expect(Math.abs(fee - expectedFee)).to.be.lessThan(tolerance);71 });72});7374describe('ERC165 tests', async () => {75 // https://eips.ethereum.org/EIPS/eip-1657677 let erc721MetadataCompatibleNftCollectionId: number;78 let simpleNftCollectionId: number;79 let minter: string;8081 const BASE_URI = 'base/';8283 async function checkInterface(helper: EthUniqueHelper, interfaceId: string, simpleResult: boolean, compatibleResult: boolean) {84 const simple = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(simpleNftCollectionId), 'nft', minter);85 const compatible = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(erc721MetadataCompatibleNftCollectionId), 'nft', minter);8687 expect(await simple.methods.supportsInterface(interfaceId).call()).to.equal(simpleResult, `empty (not ERC721Metadata compatible) NFT collection returns not ${simpleResult}`);88 expect(await compatible.methods.supportsInterface(interfaceId).call()).to.equal(compatibleResult, `ERC721Metadata compatible NFT collection returns not ${compatibleResult}`);89 }9091 before(async () => {92 await usingEthPlaygrounds(async (helper, privateKey) => {93 const donor = await privateKey({filename: __filename});94 const [alice] = await helper.arrange.createAccounts([10n], donor);95 ({collectionId: simpleNftCollectionId} = await helper.nft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'}));96 minter = helper.eth.createAccount();97 ({collectionId: erc721MetadataCompatibleNftCollectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(minter, 'n', 'd', 'p', BASE_URI));98 });99 });100101 itEth('nonexistent interfaceID - 0xffffffff - always false', async ({helper}) => {102 await checkInterface(helper, '0xffffffff', false, false);103 });104105 itEth('ERC721 - 0x780e9d63 - support', async ({helper}) => {106 await checkInterface(helper, '0x780e9d63', true, true);107 });108109 itEth('ERC721Metadata - 0x5b5e139f - support', async ({helper}) => {110 await checkInterface(helper, '0x5b5e139f', false, true);111 });112113 itEth('ERC721UniqueMintable - 0x476ff149 - support', async ({helper}) => {114 await checkInterface(helper, '0x476ff149', true, true);115 });116117 itEth('ERC721Enumerable - 0x780e9d63 - support', async ({helper}) => {118 await checkInterface(helper, '0x780e9d63', true, true);119 });120121 itEth('ERC721UniqueExtensions - 0x4468500d - support', async ({helper}) => {122 await checkInterface(helper, '0x4468500d', true, true);123 });124125 itEth('ERC721Burnable - 0x42966c68 - support', async ({helper}) => {126 await checkInterface(helper, '0x42966c68', true, true);127 });128129 itEth('ERC165 - 0x01ffc9a7 - support', async ({helper}) => {130 await checkInterface(helper, '0x01ffc9a7', true, true);131 });132});tests/src/eth/collectionProperties.test.tsdiffbeforeafterboth--- a/tests/src/eth/collectionProperties.test.ts
+++ b/tests/src/eth/collectionProperties.test.ts
@@ -18,7 +18,6 @@
import {Pallets} from '../util';
import {IProperty, ITokenPropertyPermission} from '../util/playgrounds/types';
import {IKeyringPair} from '@polkadot/types/types';
-import {Contract} from 'web3-eth-contract';
describe('EVM collection properties', () => {
let donor: IKeyringPair;
@@ -99,7 +98,7 @@
const contract = helper.ethNativeContract.collectionById(collectionId, mode, caller);
await contract.methods.addCollectionAdmin(bruh).send(); // to check that admin will work too
- const collection1 = await helper.nft.getCollectionObject(collectionId);
+ const collection1 = helper.nft.getCollectionObject(collectionId);
const data1 = await collection1.getData();
expect(data1?.raw.flags.erc721metadata).to.be.false;
expect(await contract.methods.supportsInterface('0x5b5e139f').call()).to.be.false;
@@ -109,18 +108,18 @@
expect(await contract.methods.supportsInterface('0x5b5e139f').call()).to.be.true;
- const collection2 = await helper.nft.getCollectionObject(collectionId);
+ const collection2 = helper.nft.getCollectionObject(collectionId);
const data2 = await collection2.getData();
expect(data2?.raw.flags.erc721metadata).to.be.true;
- const TPPs = data2?.raw.tokenPropertyPermissions;
- expect(TPPs?.length).to.equal(2);
+ const propertyPermissions = data2?.raw.tokenPropertyPermissions;
+ expect(propertyPermissions?.length).to.equal(2);
- expect(TPPs.find((tpp: ITokenPropertyPermission) => {
+ expect(propertyPermissions.find((tpp: ITokenPropertyPermission) => {
return tpp.key === 'URI' && tpp.permission.mutable && tpp.permission.collectionAdmin && !tpp.permission.tokenOwner;
})).to.be.not.null;
- expect(TPPs.find((tpp: ITokenPropertyPermission) => {
+ expect(propertyPermissions.find((tpp: ITokenPropertyPermission) => {
return tpp.key === 'URISuffix' && tpp.permission.mutable && tpp.permission.collectionAdmin && !tpp.permission.tokenOwner;
})).to.be.not.null;
tests/src/eth/util/index.tsdiffbeforeafterboth--- a/tests/src/eth/util/index.ts
+++ b/tests/src/eth/util/index.ts
@@ -14,7 +14,7 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import chaiLike from 'chai-like';
-import {getTestSeed, requirePalletsOrSkip} from '../../util';
+import {getTestSeed, MINIMUM_DONOR_FUND, requirePalletsOrSkip} from '../../util';
chai.use(chaiAsPromised);
chai.use(chaiLike);
@@ -43,7 +43,7 @@
else {
const actualSeed = getTestSeed(seed.filename);
let account = helper.util.fromSeed(actualSeed, ss58Format);
- if (await helper.balance.getSubstrate(account.address) == 0n) {
+ if (await helper.balance.getSubstrate(account.address) < MINIMUM_DONOR_FUND) {
console.warn(`${path.basename(seed.filename)}: Not enough funds present on the filename account. Using the default one as the donor instead.`);
account = helper.util.fromSeed('//Alice', ss58Format);
}
tests/src/pallet-presence.test.tsdiffbeforeafterboth--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -62,7 +62,7 @@
const chain = await helper.callRpc('api.rpc.system.chain', []);
const refungible = 'refungible';
- const scheduler = 'scheduler';
+ // const scheduler = 'scheduler';
const foreignAssets = 'foreignassets';
const rmrkPallets = ['rmrkcore', 'rmrkequip'];
const appPromotion = 'apppromotion';
@@ -70,7 +70,7 @@
if (chain.eq('OPAL by UNIQUE')) {
requiredPallets.push(
refungible,
- scheduler,
+ // scheduler,
foreignAssets,
appPromotion,
...rmrkPallets,