difftreelog
yarn fix
in: master
23 files changed
tests/src/rmrk/acceptNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/acceptNft.test.ts
+++ b/tests/src/rmrk/acceptNft.test.ts
@@ -1,103 +1,103 @@
-import { expect } from "chai";
-import { getApiConnection } from "../substrate/substrate-api";
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
import {
- createCollection,
- mintNft,
- sendNft,
- acceptNft
-} from "./util/tx";
-import { NftIdTuple } from "./util/fetch";
-import { isNftChildOfAnother, expectTxFailure } from "./util/helpers";
+ createCollection,
+ mintNft,
+ sendNft,
+ acceptNft,
+} from './util/tx';
+import {NftIdTuple} from './util/fetch';
+import {isNftChildOfAnother, expectTxFailure} from './util/helpers';
-describe("integration test: accept NFT", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: accept NFT', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = "//Alice";
- const bob = "//Bob";
+ const alice = '//Alice';
+ const bob = '//Bob';
- const createTestCollection = async (issuerUri: string) => {
- return await createCollection(
- api,
- issuerUri,
- "accept-metadata",
- null,
- "acpt"
- );
- }
+ const createTestCollection = async (issuerUri: string) => {
+ return await createCollection(
+ api,
+ issuerUri,
+ 'accept-metadata',
+ null,
+ 'acpt',
+ );
+ };
- it("accept NFT", async () => {
- const ownerAlice = alice;
- const ownerBob = bob;
+ it('accept NFT', async () => {
+ const ownerAlice = alice;
+ const ownerBob = bob;
- const aliceCollectionId = await createTestCollection(alice);
- const bobCollectionId = await createTestCollection(bob);
+ const aliceCollectionId = await createTestCollection(alice);
+ const bobCollectionId = await createTestCollection(bob);
- const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
- await sendNft(api, "pending", ownerBob, bobCollectionId, childNftId, newOwnerNFT);
- await acceptNft(api, alice, bobCollectionId, childNftId, newOwnerNFT);
+ await sendNft(api, 'pending', ownerBob, bobCollectionId, childNftId, newOwnerNFT);
+ await acceptNft(api, alice, bobCollectionId, childNftId, newOwnerNFT);
- const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);
- expect(isChild).to.be.true;
- });
+ const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);
+ expect(isChild).to.be.true;
+ });
- it("[negative] unable to accept NFT by a not-an-owner", async () => {
- const ownerAlice = alice;
- const ownerBob = bob;
+ it('[negative] unable to accept NFT by a not-an-owner', async () => {
+ const ownerAlice = alice;
+ const ownerBob = bob;
- const aliceCollectionId = await createTestCollection(alice);
- const bobCollectionId = await createTestCollection(bob);
+ const aliceCollectionId = await createTestCollection(alice);
+ const bobCollectionId = await createTestCollection(bob);
- const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
- await sendNft(api, "pending", ownerBob, bobCollectionId, childNftId, newOwnerNFT);
- const tx = acceptNft(api, bob, bobCollectionId, childNftId, newOwnerNFT);
+ await sendNft(api, 'pending', ownerBob, bobCollectionId, childNftId, newOwnerNFT);
+ const tx = acceptNft(api, bob, bobCollectionId, childNftId, newOwnerNFT);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- it("[negative] unable to accept non-existing NFT", async () => {
- const collectionId = 0;
- const maxNftId = 0xFFFFFFFF;
+ it('[negative] unable to accept non-existing NFT', async () => {
+ const collectionId = 0;
+ const maxNftId = 0xFFFFFFFF;
- const owner = alice;
- const aliceCollectionId = await createTestCollection(alice);
+ const owner = alice;
+ const aliceCollectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, owner, aliceCollectionId, "parent-nft-metadata");
+ const parentNftId = await mintNft(api, alice, owner, aliceCollectionId, 'parent-nft-metadata');
- const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
- const tx = acceptNft(api, alice, collectionId, maxNftId, newOwnerNFT);
+ const tx = acceptNft(api, alice, collectionId, maxNftId, newOwnerNFT);
- await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
+ });
- it("[negative] unable to accept NFT which is not sent", async () => {
- const ownerAlice = alice;
- const ownerBob = bob;
+ it('[negative] unable to accept NFT which is not sent', async () => {
+ const ownerAlice = alice;
+ const ownerBob = bob;
- const aliceCollectionId = await createTestCollection(alice);
- const bobCollectionId = await createTestCollection(bob);
+ const aliceCollectionId = await createTestCollection(alice);
+ const bobCollectionId = await createTestCollection(bob);
- const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
- const tx = acceptNft(api, alice, bobCollectionId, childNftId, newOwnerNFT);
+ const tx = acceptNft(api, alice, bobCollectionId, childNftId, newOwnerNFT);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);
- expect(isChild).to.be.false;
- });
+ const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);
+ expect(isChild).to.be.false;
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/addResource.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/addResource.test.ts
+++ b/tests/src/rmrk/addResource.test.ts
@@ -1,7 +1,7 @@
-import { expect } from "chai";
-import { getApiConnection } from "../substrate/substrate-api";
-import { NftIdTuple } from "./util/fetch";
-import { expectTxFailure, getResourceById } from "./util/helpers";
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
+import {NftIdTuple} from './util/fetch';
+import {expectTxFailure, getResourceById} from './util/helpers';
import {
addNftBasicResource,
acceptNftResource,
@@ -10,16 +10,16 @@
sendNft,
addNftSlotResource,
addNftComposableResource,
-} from "./util/tx";
-import {RmrkTraitsResourceResourceInfo as ResourceInfo} from "@polkadot/types/lookup";
+} from './util/tx';
+import {RmrkTraitsResourceResourceInfo as ResourceInfo} from '@polkadot/types/lookup';
-describe("integration test: add NFT resource", () => {
- const Alice = "//Alice";
- const Bob = "//Bob";
- const src = "test-res-src";
- const metadata = "test-res-metadata";
- const license = "test-res-license";
- const thumb = "test-res-thumb";
+describe('integration test: add NFT resource', () => {
+ const Alice = '//Alice';
+ const Bob = '//Bob';
+ const src = 'test-res-src';
+ const metadata = 'test-res-metadata';
+ const license = 'test-res-license';
+ const thumb = 'test-res-thumb';
const nonexistentId = 99999;
@@ -28,13 +28,13 @@
api = await getApiConnection();
});
- it("add resource", async () => {
+ it('add resource', async () => {
const collectionIdAlice = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const nftAlice = await mintNft(
@@ -42,19 +42,19 @@
Alice,
Alice,
collectionIdAlice,
- "nft-metadata"
+ 'nft-metadata',
);
await addNftBasicResource(
api,
Alice,
- "added",
+ 'added',
collectionIdAlice,
nftAlice,
src,
metadata,
license,
- thumb
+ thumb,
);
});
@@ -62,28 +62,28 @@
const collectionIdAlice = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
- const parentNftId = await mintNft(api, Alice, Alice, collectionIdAlice, "parent-nft-metadata");
- const childNftId = await mintNft(api, Alice, Alice, collectionIdAlice, "child-nft-metadata");
+ const parentNftId = await mintNft(api, Alice, Alice, collectionIdAlice, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, Alice, Alice, collectionIdAlice, 'child-nft-metadata');
const newOwnerNFT: NftIdTuple = [collectionIdAlice, parentNftId];
- await sendNft(api, "sent", Alice, collectionIdAlice, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', Alice, collectionIdAlice, childNftId, newOwnerNFT);
await addNftBasicResource(
api,
Alice,
- "added",
+ 'added',
collectionIdAlice,
childNftId,
src,
metadata,
license,
- thumb
+ thumb,
);
});
@@ -91,9 +91,9 @@
const collectionIdAlice = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const nftAlice = await mintNft(
@@ -101,14 +101,14 @@
Alice,
Alice,
collectionIdAlice,
- "nft-metadata"
+ 'nft-metadata',
);
const baseId = 42;
const slotId = 10;
const parts = [0, 5, 2];
- let resourcesInfo = [];
+ const resourcesInfo = [];
const resourceNum = 4;
const checkResource = async (resource: ResourceInfo, resType: string, expectedId: number, expected: {
@@ -144,38 +144,38 @@
src: src + 'r-' + i,
metadata: metadata + 'r-' + i,
license: license + 'r-' + i,
- thumb: thumb + 'r-' + i
+ thumb: thumb + 'r-' + i,
});
}
const firstBasicResourceId = await addNftBasicResource(
api,
Alice,
- "added",
+ 'added',
collectionIdAlice,
nftAlice,
resourcesInfo[0].src,
resourcesInfo[0].metadata,
resourcesInfo[0].license,
- resourcesInfo[0].thumb
+ resourcesInfo[0].thumb,
);
const secondBasicResourceId = await addNftBasicResource(
api,
Alice,
- "added",
+ 'added',
collectionIdAlice,
nftAlice,
resourcesInfo[1].src,
resourcesInfo[1].metadata,
resourcesInfo[1].license,
- resourcesInfo[1].thumb
+ resourcesInfo[1].thumb,
);
const composableResourceId = await addNftComposableResource(
api,
Alice,
- "added",
+ 'added',
collectionIdAlice,
nftAlice,
parts,
@@ -189,7 +189,7 @@
const slotResourceId = await addNftSlotResource(
api,
Alice,
- "added",
+ 'added',
collectionIdAlice,
nftAlice,
baseId,
@@ -197,7 +197,7 @@
resourcesInfo[3].src,
resourcesInfo[3].metadata,
resourcesInfo[3].license,
- resourcesInfo[3].thumb
+ resourcesInfo[3].thumb,
);
const firstResource = await getResourceById(api, collectionIdAlice, nftAlice, firstBasicResourceId);
@@ -217,21 +217,21 @@
const collectionIdAlice = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const tx = addNftBasicResource(
api,
Alice,
- "added",
+ 'added',
collectionIdAlice,
nonexistentId,
src,
metadata,
license,
- thumb
+ thumb,
);
await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
@@ -241,9 +241,9 @@
const collectionIdAlice = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const nftAlice = await mintNft(
@@ -251,19 +251,19 @@
Alice,
Alice,
collectionIdAlice,
- "nft-metadata"
+ 'nft-metadata',
);
const tx = addNftBasicResource(
api,
Bob,
- "added",
+ 'added',
collectionIdAlice,
nftAlice,
src,
metadata,
license,
- thumb
+ thumb,
);
await expectTxFailure(/rmrkCore\.NoPermission/, tx);
@@ -273,113 +273,113 @@
const collectionIdAlice = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
- const parentNftId = await mintNft(api, Alice, Alice, collectionIdAlice, "parent-nft-metadata");
- const childNftId = await mintNft(api, Alice, Alice, collectionIdAlice, "child-nft-metadata");
+ const parentNftId = await mintNft(api, Alice, Alice, collectionIdAlice, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, Alice, Alice, collectionIdAlice, 'child-nft-metadata');
const newOwnerNFT: NftIdTuple = [collectionIdAlice, parentNftId];
- await sendNft(api, "sent", Alice, collectionIdAlice, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', Alice, collectionIdAlice, childNftId, newOwnerNFT);
const tx = addNftBasicResource(
api,
Bob,
- "added",
+ 'added',
collectionIdAlice,
childNftId,
src,
metadata,
license,
- thumb
+ thumb,
);
await expectTxFailure(/rmrkCore\.NoPermission/, tx);
});
- it("accept resource", async () => {
+ it('accept resource', async () => {
const collectionIdBob = await createCollection(
api,
Bob,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const nftAlice = await mintNft(
- api,
- Bob,
- Alice,
- collectionIdBob,
- "nft-metadata"
+ api,
+ Bob,
+ Alice,
+ collectionIdBob,
+ 'nft-metadata',
);
const resourceId = await addNftBasicResource(
api,
Bob,
- "pending",
+ 'pending',
collectionIdBob,
nftAlice,
src,
metadata,
license,
- thumb
+ thumb,
);
await acceptNftResource(api, Alice, collectionIdBob, nftAlice, resourceId);
});
- it("[negative]: unable to accept a non-existing resource", async () => {
+ it('[negative]: unable to accept a non-existing resource', async () => {
const collectionIdBob = await createCollection(
api,
Bob,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const nftAlice = await mintNft(
- api,
- Bob,
- Alice,
- collectionIdBob,
- "nft-metadata"
+ api,
+ Bob,
+ Alice,
+ collectionIdBob,
+ 'nft-metadata',
);
const tx = acceptNftResource(api, Alice, collectionIdBob, nftAlice, nonexistentId);
await expectTxFailure(/rmrkCore\.ResourceDoesntExist/, tx);
});
- it("[negative]: unable to accept a resource by a not-an-NFT-owner user", async () => {
+ it('[negative]: unable to accept a resource by a not-an-NFT-owner user', async () => {
const collectionIdBob = await createCollection(
api,
Bob,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const nftAlice = await mintNft(
- api,
- Bob,
- Alice,
- collectionIdBob,
- "nft-metadata"
+ api,
+ Bob,
+ Alice,
+ collectionIdBob,
+ 'nft-metadata',
);
const resourceId = await addNftBasicResource(
api,
Bob,
- "pending",
+ 'pending',
collectionIdBob,
nftAlice,
src,
metadata,
license,
- thumb
+ thumb,
);
const tx = acceptNftResource(api, Bob, collectionIdBob, nftAlice, resourceId);
@@ -387,41 +387,41 @@
await expectTxFailure(/rmrkCore\.NoPermission/, tx);
});
- it("[negative]: unable to accept a resource to a non-target NFT", async () => {
+ it('[negative]: unable to accept a resource to a non-target NFT', async () => {
const collectionIdBob = await createCollection(
api,
Bob,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const nftAlice = await mintNft(
- api,
- Bob,
- Alice,
- collectionIdBob,
- "nft-metadata"
+ api,
+ Bob,
+ Alice,
+ collectionIdBob,
+ 'nft-metadata',
);
const wrongNft = await mintNft(
- api,
- Bob,
- Alice,
- collectionIdBob,
- "nft-metadata"
+ api,
+ Bob,
+ Alice,
+ collectionIdBob,
+ 'nft-metadata',
);
const resourceId = await addNftBasicResource(
api,
Bob,
- "pending",
+ 'pending',
collectionIdBob,
nftAlice,
src,
metadata,
license,
- thumb
+ thumb,
);
const tx = acceptNftResource(api, Bob, collectionIdBob, wrongNft, resourceId);
tests/src/rmrk/addTheme.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/addTheme.test.ts
+++ b/tests/src/rmrk/addTheme.test.ts
@@ -1,128 +1,126 @@
-import { expect } from 'chai';
-import { getApiConnection } from '../substrate/substrate-api';
-import { createBase, addTheme } from "./util/tx";
-import { expectTxFailure } from './util/helpers';
-import { getThemeNames } from './util/fetch';
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
+import {createBase, addTheme} from './util/tx';
+import {expectTxFailure} from './util/helpers';
+import {getThemeNames} from './util/fetch';
-describe("integration test: add Theme to Base", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: add Theme to Base', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = "//Alice";
- const bob = "//Bob";
+ const alice = '//Alice';
+ const bob = '//Bob';
- it("add default theme", async () => {
- const baseId = await createBase(api, alice, "default-themed-base", "DTBase", []);
- await addTheme(api, alice, baseId, {
- name: "default",
- properties: [
- {
- key: "some-key",
- value: "some-key-value"
- },
- {
- key: "another-key",
- value: "another-key-value"
- }
- ]
- });
+ it('add default theme', async () => {
+ const baseId = await createBase(api, alice, 'default-themed-base', 'DTBase', []);
+ await addTheme(api, alice, baseId, {
+ name: 'default',
+ properties: [
+ {
+ key: 'some-key',
+ value: 'some-key-value',
+ },
+ {
+ key: 'another-key',
+ value: 'another-key-value',
+ },
+ ],
});
+ });
- it("add default theme and a custom one", async () => {
- const baseId = await createBase(api, alice, "2-themed-base", "2TBase", []);
- await addTheme(api, alice, baseId, {
- name: "default",
- properties: [
- {
- key: "default-key",
- value: "default-key-value"
- }
- ]
- });
- await addTheme(api, alice, baseId, {
- name: "custom-theme",
- properties: [
- {
- key: "custom-key-0",
- value: "custom-key-value-0"
- },
- {
- key: "custom-key-1",
- value: "custom-key-value-1"
- }
- ]
- })
+ it('add default theme and a custom one', async () => {
+ const baseId = await createBase(api, alice, '2-themed-base', '2TBase', []);
+ await addTheme(api, alice, baseId, {
+ name: 'default',
+ properties: [
+ {
+ key: 'default-key',
+ value: 'default-key-value',
+ },
+ ],
});
-
- it("fetch filtered theme keys", async () => {
- const baseId = await createBase(api, alice, "2-themed-base", "2TBase", []);
- await addTheme(api, alice, baseId, {
- name: "default",
- properties: [
- {
- key: "first-key",
- value: "first-key-value"
- },
- {
- key: "second-key",
- value: "second-key-value"
- }
- ]
- }, ["second-key"]);
+ await addTheme(api, alice, baseId, {
+ name: 'custom-theme',
+ properties: [
+ {
+ key: 'custom-key-0',
+ value: 'custom-key-value-0',
+ },
+ {
+ key: 'custom-key-1',
+ value: 'custom-key-value-1',
+ },
+ ],
});
+ });
- it("fetch theme names", async() => {
- const baseId = await createBase(api, alice, "3-themed-base", "3TBase", []);
- const names = [
- "default",
- "first-theme",
- "second-theme"
- ];
+ it('fetch filtered theme keys', async () => {
+ const baseId = await createBase(api, alice, '2-themed-base', '2TBase', []);
+ await addTheme(api, alice, baseId, {
+ name: 'default',
+ properties: [
+ {
+ key: 'first-key',
+ value: 'first-key-value',
+ },
+ {
+ key: 'second-key',
+ value: 'second-key-value',
+ },
+ ],
+ }, ['second-key']);
+ });
- for (var i = 0; i < names.length; i++) {
- await addTheme(api, alice, baseId, { name: names[i], properties: [{ key: 'dummy', value: 'dummy' }] });
- }
+ it('fetch theme names', async() => {
+ const baseId = await createBase(api, alice, '3-themed-base', '3TBase', []);
+ const names = [
+ 'default',
+ 'first-theme',
+ 'second-theme',
+ ];
- const fetchedNames = await getThemeNames(api, baseId);
+ for (var i = 0; i < names.length; i++) {
+ await addTheme(api, alice, baseId, {name: names[i], properties: [{key: 'dummy', value: 'dummy'}]});
+ }
- for (var i = 0; i < names.length; i++) {
- const isFound = fetchedNames.find(
- (name) => name === names[i]
- ) !== undefined;
+ const fetchedNames = await getThemeNames(api, baseId);
- expect(isFound, "Error: invalid theme names").to.be.true;
- }
- });
+ for (var i = 0; i < names.length; i++) {
+ const isFound = fetchedNames.find((name) => name === names[i]) !== undefined;
- it("[negative] unable to add theme to non-existing base", async () => {
- const maxBaseId = 0xFFFFFFFF;
- const tx = addTheme(api, alice, maxBaseId, {
- name: "default",
- properties: []
- });
+ expect(isFound, 'Error: invalid theme names').to.be.true;
+ }
+ });
- await expectTxFailure(/rmrkEquip\.BaseDoesntExist/, tx);
+ it('[negative] unable to add theme to non-existing base', async () => {
+ const maxBaseId = 0xFFFFFFFF;
+ const tx = addTheme(api, alice, maxBaseId, {
+ name: 'default',
+ properties: [],
});
- it("[negative] unable to add custom theme if no default theme", async () => {
- const baseId = await createBase(api, alice, "no-default-themed-base", "NDTBase", []);
- const tx = addTheme(api, alice, baseId, {
- name: "custom-theme",
- properties: []
- });
+ await expectTxFailure(/rmrkEquip\.BaseDoesntExist/, tx);
+ });
- await expectTxFailure(/rmrkEquip\.NeedsDefaultThemeFirst/, tx);
+ it('[negative] unable to add custom theme if no default theme', async () => {
+ const baseId = await createBase(api, alice, 'no-default-themed-base', 'NDTBase', []);
+ const tx = addTheme(api, alice, baseId, {
+ name: 'custom-theme',
+ properties: [],
});
- it("[negative] unable to add theme by a not-an-owner", async () => {
- const baseId = await createBase(api, alice, "no-default-themed-base", "NDTBase", []);
- const tx = addTheme(api, bob, baseId, {
- name: "default",
- properties: []
- });
+ await expectTxFailure(/rmrkEquip\.NeedsDefaultThemeFirst/, tx);
+ });
- await expectTxFailure(/rmrkEquip\.PermissionError/, tx);
+ it('[negative] unable to add theme by a not-an-owner', async () => {
+ const baseId = await createBase(api, alice, 'no-default-themed-base', 'NDTBase', []);
+ const tx = addTheme(api, bob, baseId, {
+ name: 'default',
+ properties: [],
});
- after(() => { api.disconnect(); });
+ await expectTxFailure(/rmrkEquip\.PermissionError/, tx);
+ });
+
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/burnNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/burnNft.test.ts
+++ b/tests/src/rmrk/burnNft.test.ts
@@ -1,7 +1,7 @@
-import { getApiConnection } from "../substrate/substrate-api";
-import { expectTxFailure } from "./util/helpers";
-import { NftIdTuple, getChildren } from './util/fetch';
-import { burnNft, createCollection, sendNft, mintNft } from "./util/tx";
+import {getApiConnection} from '../substrate/substrate-api';
+import {expectTxFailure} from './util/helpers';
+import {NftIdTuple, getChildren} from './util/fetch';
+import {burnNft, createCollection, sendNft, mintNft} from './util/tx';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -9,41 +9,41 @@
chai.use(chaiAsPromised);
const expect = chai.expect;
-describe("integration test: burn nft", () => {
- const Alice = "//Alice";
- const Bob = "//Bob";
+describe('integration test: burn nft', () => {
+ const Alice = '//Alice';
+ const Bob = '//Bob';
let api: any;
before(async () => {
api = await getApiConnection();
});
- it("burn nft", async () => {
+ it('burn nft', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
const nftId = await mintNft(
api,
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
await burnNft(api, Alice, collectionId, nftId);
});
});
- it("burn nft with children", async () => {
+ it('burn nft with children', async () => {
const collectionId = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const parentNftId = await mintNft(
@@ -51,7 +51,7 @@
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
const childNftId = await mintNft(
@@ -59,18 +59,18 @@
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", Alice, collectionId, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', Alice, collectionId, childNftId, newOwnerNFT);
const childrenBefore = await getChildren(api, collectionId, parentNftId);
expect(childrenBefore.length === 1, 'Error: parent NFT should have children')
.to.be.true;
- let child = childrenBefore[0];
+ const child = childrenBefore[0];
expect(child.collectionId.eq(collectionId), 'Error: invalid child collection Id')
.to.be.true;
@@ -84,13 +84,13 @@
expect(childrenAfter.length === 0, 'Error: children should be burned').to.be.true;
});
- it("burn child nft", async () => {
+ it('burn child nft', async () => {
const collectionId = await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
const parentNftId = await mintNft(
@@ -98,7 +98,7 @@
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
const childNftId = await mintNft(
@@ -106,18 +106,18 @@
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", Alice, collectionId, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', Alice, collectionId, childNftId, newOwnerNFT);
const childrenBefore = await getChildren(api, collectionId, parentNftId);
expect(childrenBefore.length === 1, 'Error: parent NFT should have children')
.to.be.true;
- let child = childrenBefore[0];
+ const child = childrenBefore[0];
expect(child.collectionId.eq(collectionId), 'Error: invalid child collection Id')
.to.be.true;
@@ -131,33 +131,33 @@
expect(childrenAfter.length === 0, 'Error: children should be burned').to.be.true;
});
- it("[negative] burn non-existing NFT", async () => {
+ it('[negative] burn non-existing NFT', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
const tx = burnNft(api, Alice, collectionId, 99999);
await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
});
});
- it("[negative] burn not an owner NFT user", async () => {
+ it('[negative] burn not an owner NFT user', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
const nftId = await mintNft(
api,
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
const tx = burnNft(api, Bob, collectionId, nftId);
await expectTxFailure(/rmrkCore\.NoPermission/, tx);
tests/src/rmrk/changeCollectionIssuer.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/changeCollectionIssuer.test.ts
+++ b/tests/src/rmrk/changeCollectionIssuer.test.ts
@@ -1,47 +1,45 @@
-import { getApiConnection } from "../substrate/substrate-api";
-import { expectTxFailure } from "./util/helpers";
+import {getApiConnection} from '../substrate/substrate-api';
+import {expectTxFailure} from './util/helpers';
import {
changeIssuer,
createCollection,
-} from "./util/tx";
+} from './util/tx';
-describe("integration test: collection issuer", () => {
- const Alice = "//Alice";
- const Bob = "//Bob";
+describe('integration test: collection issuer', () => {
+ const Alice = '//Alice';
+ const Bob = '//Bob';
let api: any;
before(async () => {
api = await getApiConnection();
});
- it("change collection issuer", async () => {
+ it('change collection issuer', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
await changeIssuer(api, Alice, collectionId, Bob);
});
});
- it("[negative] change not an owner NFT collection issuer", async () => {
- await createCollection(api, Bob, "test-metadata", null, "test-symbol").then(
- async (collectionId) => {
- const tx = changeIssuer(api, Alice, collectionId, Bob);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- }
- );
+ it('[negative] change not an owner NFT collection issuer', async () => {
+ await createCollection(api, Bob, 'test-metadata', null, 'test-symbol').then(async (collectionId) => {
+ const tx = changeIssuer(api, Alice, collectionId, Bob);
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
});
- it("[negative] change non-existigit NFT collection issuer", async () => {
+ it('[negative] change non-existigit NFT collection issuer', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async () => {
const tx = changeIssuer(api, Alice, 99999, Bob);
await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);
tests/src/rmrk/createBase.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/createBase.test.ts
+++ b/tests/src/rmrk/createBase.test.ts
@@ -1,84 +1,84 @@
-import { getApiConnection } from '../substrate/substrate-api';
-import { createCollection, createBase } from "./util/tx";
+import {getApiConnection} from '../substrate/substrate-api';
+import {createCollection, createBase} from './util/tx';
-describe("integration test: create new Base", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: create new Base', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = '//Alice';
+ const alice = '//Alice';
- it("create empty Base", async () => {
- await createBase(api, alice, 'empty-base-type', 'EBase', []);
- });
+ it('create empty Base', async () => {
+ await createBase(api, alice, 'empty-base-type', 'EBase', []);
+ });
- it("create Base with fixed part", async () => {
- await createBase(api, alice, 'fixedpart-base-type', 'FPBase', [
- {
- "FixedPart": {
- id: 42,
- z: 0,
- src: "some-fixed-url"
- }
- }
- ]);
- });
+ it('create Base with fixed part', async () => {
+ await createBase(api, alice, 'fixedpart-base-type', 'FPBase', [
+ {
+ 'FixedPart': {
+ id: 42,
+ z: 0,
+ src: 'some-fixed-url',
+ },
+ },
+ ]);
+ });
- it("create Base with slot part (no collection)", async () => {
- await createBase(api, alice, 'slotpart-base-type', 'SPBase', [
- {
- "SlotPart": {
- id: 112,
- equippable: "Empty",
- z: 0,
- src: "some-fallback-slot-url"
- }
- }
- ]);
- });
+ it('create Base with slot part (no collection)', async () => {
+ await createBase(api, alice, 'slotpart-base-type', 'SPBase', [
+ {
+ 'SlotPart': {
+ id: 112,
+ equippable: 'Empty',
+ z: 0,
+ src: 'some-fallback-slot-url',
+ },
+ },
+ ]);
+ });
- it("create Base with slot part (any collection)", async () => {
- await createBase(api, alice, 'slotpartany-base-type', 'SPABase', [
- {
- "SlotPart": {
- id: 222,
- equippable: "All",
- z: 1,
- src: "some-fallback-slot-url"
- }
- }
- ]);
- });
+ it('create Base with slot part (any collection)', async () => {
+ await createBase(api, alice, 'slotpartany-base-type', 'SPABase', [
+ {
+ 'SlotPart': {
+ id: 222,
+ equippable: 'All',
+ z: 1,
+ src: 'some-fallback-slot-url',
+ },
+ },
+ ]);
+ });
- it("create Base with slot part (custom collections)", async () => {
- const firstCollectionId = await createCollection(
- api,
- alice,
- "first-collection-meta",
- null,
- "first-collection"
- );
+ it('create Base with slot part (custom collections)', async () => {
+ const firstCollectionId = await createCollection(
+ api,
+ alice,
+ 'first-collection-meta',
+ null,
+ 'first-collection',
+ );
- const secondCollectionId = await createCollection(
- api,
- alice,
- "first-collection-meta",
- null,
- "first-collection"
- );
+ const secondCollectionId = await createCollection(
+ api,
+ alice,
+ 'first-collection-meta',
+ null,
+ 'first-collection',
+ );
- await createBase(api, alice, "slotpartcustom-base-type", "SPCBase", [
- {
- "SlotPart": {
- id: 1024,
- equippable: {
- "Custom": [firstCollectionId, secondCollectionId]
- },
- z: 2,
- src: "some-fallback-slot-url"
- }
- }
- ]);
- });
+ await createBase(api, alice, 'slotpartcustom-base-type', 'SPCBase', [
+ {
+ 'SlotPart': {
+ id: 1024,
+ equippable: {
+ 'Custom': [firstCollectionId, secondCollectionId],
+ },
+ z: 2,
+ src: 'some-fallback-slot-url',
+ },
+ },
+ ]);
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/createCollection.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/createCollection.test.ts
+++ b/tests/src/rmrk/createCollection.test.ts
@@ -1,19 +1,19 @@
-import { getApiConnection } from '../substrate/substrate-api';
-import { createCollection } from './util/tx';
+import {getApiConnection} from '../substrate/substrate-api';
+import {createCollection} from './util/tx';
describe('Integration test: create new collection', () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = '//Alice';
+ const alice = '//Alice';
- it('create NFT collection', async () => {
- await createCollection(api, alice, 'test-metadata', 42, 'test-symbol');
- });
+ it('create NFT collection', async () => {
+ await createCollection(api, alice, 'test-metadata', 42, 'test-symbol');
+ });
- it('create NFT collection without token limit', async () => {
- await createCollection(api, alice, 'no-limit-metadata', null, 'no-limit-symbol');
- });
+ it('create NFT collection without token limit', async () => {
+ await createCollection(api, alice, 'no-limit-metadata', null, 'no-limit-symbol');
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/deleteCollection.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/deleteCollection.test.ts
+++ b/tests/src/rmrk/deleteCollection.test.ts
@@ -1,40 +1,40 @@
-import { getApiConnection } from "../substrate/substrate-api";
-import { expectTxFailure } from "./util/helpers";
-import { createCollection, deleteCollection } from "./util/tx";
+import {getApiConnection} from '../substrate/substrate-api';
+import {expectTxFailure} from './util/helpers';
+import {createCollection, deleteCollection} from './util/tx';
-describe("integration test: delete collection", () => {
+describe('integration test: delete collection', () => {
let api: any;
before(async () => {
api = await getApiConnection();
});
- const Alice = "//Alice";
- const Bob = "//Bob";
+ const Alice = '//Alice';
+ const Bob = '//Bob';
- it("delete NFT collection", async () => {
+ it('delete NFT collection', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
await deleteCollection(api, Alice, collectionId.toString());
});
});
- it("[negative] delete non-existing NFT collection", async () => {
- const tx = deleteCollection(api, Alice, "99999");
+ it('[negative] delete non-existing NFT collection', async () => {
+ const tx = deleteCollection(api, Alice, '99999');
await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);
});
- it("[negative] delete not an owner NFT collection", async () => {
+ it('[negative] delete not an owner NFT collection', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
const tx = deleteCollection(api, Bob, collectionId.toString());
await expectTxFailure(/uniques.NoPermission/, tx);
tests/src/rmrk/equipNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/equipNft.test.ts
+++ b/tests/src/rmrk/equipNft.test.ts
@@ -1,8 +1,8 @@
-import { ApiPromise } from "@polkadot/api";
-import { expect } from "chai";
-import { getApiConnection } from "../substrate/substrate-api";
-import { getNft, getParts, NftIdTuple } from "./util/fetch";
-import { expectTxFailure } from "./util/helpers";
+import {ApiPromise} from '@polkadot/api';
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
+import {getNft, getParts, NftIdTuple} from './util/fetch';
+import {expectTxFailure} from './util/helpers';
import {
addNftComposableResource,
addNftSlotResource,
@@ -11,11 +11,11 @@
equipNft,
mintNft,
sendNft,
- unequipNft
-} from "./util/tx";
+ unequipNft,
+} from './util/tx';
-const Alice = "//Alice";
-const Bob = "//Bob";
+const Alice = '//Alice';
+const Bob = '//Bob';
const composableParts: number[] = [5, 2, 7];
const composableSrc = 'test-cmp-src';
@@ -34,9 +34,9 @@
return createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
);
}
@@ -46,7 +46,7 @@
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
}
@@ -55,17 +55,17 @@
const parentNFT: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", Alice, collectionId, nftChildId, parentNFT);
+ await sendNft(api, 'sent', Alice, collectionId, nftChildId, parentNFT);
return nftChildId;
}
async function createTestBase(api: ApiPromise): Promise<number> {
- return createBase(api, Alice, "test-base", "DTBase", [
+ return createBase(api, Alice, 'test-base', 'DTBase', [
{
SlotPart: {
id: slotId,
- equippable: "All",
+ equippable: 'All',
z: 1,
src: slotSrc,
},
@@ -77,7 +77,7 @@
await addNftComposableResource(
api,
Alice,
- "added",
+ 'added',
collectionId,
nftId,
composableParts,
@@ -85,7 +85,7 @@
composableSrc,
composableMetadata,
composableLicense,
- composableThumb
+ composableThumb,
);
}
@@ -93,7 +93,7 @@
return await addNftSlotResource(
api,
Alice,
- "added",
+ 'added',
collectionId,
nftId,
baseId,
@@ -101,32 +101,32 @@
slotSrc,
slotMetadata,
slotLicense,
- slotThumb
+ slotThumb,
);
}
async function checkEquipStatus(
api: ApiPromise,
- expectedStatus: "equipped" | "unequipped",
+ expectedStatus: 'equipped' | 'unequipped',
collectionId: number,
- nftId: number
+ nftId: number,
) {
const itemNftDataOpt = await getNft(api, collectionId, nftId);
expect(itemNftDataOpt.isSome, 'Error: unable to fetch item NFT data');
const itemNftData = itemNftDataOpt.unwrap();
expect(itemNftData.equipped.isTrue, `Error: item NFT should be ${expectedStatus}`)
- .to.be.equal(expectedStatus === "equipped");
+ .to.be.equal(expectedStatus === 'equipped');
}
-describe("integration test: Equip NFT", () => {
+describe('integration test: Equip NFT', () => {
let api: any;
before(async () => {
api = await getApiConnection();
});
- it("equip nft", async () => {
+ it('equip nft', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
@@ -141,10 +141,10 @@
await equipNft(api, Alice, itemNFT, equipperNFT, resourceId, baseId, slotId);
- await checkEquipStatus(api, "equipped", collectionId, nftChildId);
+ await checkEquipStatus(api, 'equipped', collectionId, nftChildId);
});
- it("unequip nft", async () => {
+ it('unequip nft', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
@@ -159,13 +159,13 @@
await equipNft(api, Alice, itemNFT, equipperNFT, resourceId, baseId, slotId);
- await checkEquipStatus(api, "equipped", collectionId, nftChildId);
+ await checkEquipStatus(api, 'equipped', collectionId, nftChildId);
await unequipNft(api, Alice, itemNFT, equipperNFT, resourceId, baseId, slotId);
- await checkEquipStatus(api, "unequipped", collectionId, nftChildId);
+ await checkEquipStatus(api, 'unequipped', collectionId, nftChildId);
});
- it("[negative] equip NFT onto non-existing NFT", async () => {
+ it('[negative] equip NFT onto non-existing NFT', async () => {
const collectionId = await createTestCollection(api);
const nftChildId = await mintNft(
@@ -173,7 +173,7 @@
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
const itemNFT: NftIdTuple = [collectionId, nftChildId];
@@ -186,14 +186,14 @@
await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
});
- it("[negative] equip non-existing NFT", async () => {
+ it('[negative] equip non-existing NFT', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintNft(
api,
Alice,
Alice,
collectionId,
- "nft-metadata"
+ 'nft-metadata',
);
const baseId = await createTestBase(api);
@@ -209,7 +209,7 @@
await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
});
- it("[negative] equip NFT by a not-an-owner user", async () => {
+ it('[negative] equip NFT by a not-an-owner user', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
@@ -227,7 +227,7 @@
await expectTxFailure(/rmrkEquip\.PermissionError/, tx);
});
- it("[negative] unable to equip NFT onto indirect parent NFT", async () => {
+ it('[negative] unable to equip NFT onto indirect parent NFT', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
@@ -245,7 +245,7 @@
await expectTxFailure(/rmrkEquip\.MustBeDirectParent/, tx);
});
- it("[negative] unable to equip NFT onto parent NFT with another base", async () => {
+ it('[negative] unable to equip NFT onto parent NFT with another base', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
@@ -264,7 +264,7 @@
await expectTxFailure(/rmrkEquip\.NoResourceForThisBaseFoundOnNft/, tx);
});
- it("[negative] unable to equip NFT into slot with another id", async () => {
+ it('[negative] unable to equip NFT into slot with another id', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
@@ -282,16 +282,16 @@
await expectTxFailure(/rmrkEquip\.ItemHasNoResourceToEquipThere/, tx);
});
- it("[negative] unable to equip NFT with incorrect slot (fixed part)", async () => {
+ it('[negative] unable to equip NFT with incorrect slot (fixed part)', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
- const baseId = await createBase(api, Alice, "test-base", "DTBase", [
+ const baseId = await createBase(api, Alice, 'test-base', 'DTBase', [
{
FixedPart: {
id: slotId,
- equippable: "All",
+ equippable: 'All',
z: 1,
src: slotSrc,
},
@@ -308,17 +308,17 @@
await expectTxFailure(/rmrkEquip\.CantEquipFixedPart/, tx);
});
- it("[negative] unable to equip NFT from a collection that is not allowed by the slot", async () => {
+ it('[negative] unable to equip NFT from a collection that is not allowed by the slot', async () => {
const collectionId = await createTestCollection(api);
const nftParentId = await mintTestNft(api, collectionId);
const nftChildId = await mintChildNft(api, collectionId, nftParentId);
- const baseId = await createBase(api, Alice, "test-base", "DTBase", [
+ const baseId = await createBase(api, Alice, 'test-base', 'DTBase', [
{
SlotPart: {
id: 1,
z: 1,
- equippable: "Empty",
+ equippable: 'Empty',
src: slotSrc,
},
},
tests/src/rmrk/getOwnedNfts.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/getOwnedNfts.test.ts
+++ b/tests/src/rmrk/getOwnedNfts.test.ts
@@ -1,74 +1,74 @@
-import { expect } from 'chai';
-import { getApiConnection } from '../substrate/substrate-api';
-import { getOwnedNfts } from './util/fetch';
-import { mintNft, createCollection } from './util/tx';
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
+import {getOwnedNfts} from './util/fetch';
+import {mintNft, createCollection} from './util/tx';
-describe("integration test: get owned NFTs", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: get owned NFTs', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = '//Alice';
+ const alice = '//Alice';
- it("fetch all NFTs owned by a user", async () => {
- const owner = alice;
- const collectionMetadata = 'aliceCollectionMetadata';
- const collectionMax = null;
- const collectionSymbol = 'AliceSym';
- const recipientUri = null;
- const royalty = null;
- const nftMetadata = 'alice-NFT-metadata';
+ it('fetch all NFTs owned by a user', async () => {
+ const owner = alice;
+ const collectionMetadata = 'aliceCollectionMetadata';
+ const collectionMax = null;
+ const collectionSymbol = 'AliceSym';
+ const recipientUri = null;
+ const royalty = null;
+ const nftMetadata = 'alice-NFT-metadata';
- let collectionId = await createCollection(
- api,
- alice,
- collectionMetadata,
- collectionMax,
- collectionSymbol
- );
+ const collectionId = await createCollection(
+ api,
+ alice,
+ collectionMetadata,
+ collectionMax,
+ collectionSymbol,
+ );
- const nftIds = [
- await mintNft(
- api,
- alice,
- owner,
- collectionId,
- nftMetadata + '-0',
- recipientUri,
- royalty
- ),
- await mintNft(
- api,
- alice,
- owner,
- collectionId,
- nftMetadata + '-1',
- recipientUri,
- royalty
- ),
- await mintNft(
- api,
- alice,
- owner,
- collectionId,
- nftMetadata + '-2',
- recipientUri,
- royalty
- )
- ];
+ const nftIds = [
+ await mintNft(
+ api,
+ alice,
+ owner,
+ collectionId,
+ nftMetadata + '-0',
+ recipientUri,
+ royalty,
+ ),
+ await mintNft(
+ api,
+ alice,
+ owner,
+ collectionId,
+ nftMetadata + '-1',
+ recipientUri,
+ royalty,
+ ),
+ await mintNft(
+ api,
+ alice,
+ owner,
+ collectionId,
+ nftMetadata + '-2',
+ recipientUri,
+ royalty,
+ ),
+ ];
- const ownedNfts = await getOwnedNfts(api, alice, collectionId);
+ const ownedNfts = await getOwnedNfts(api, alice, collectionId);
- const isFound = (nftId: number) => {
- return ownedNfts.find((ownedNftId) => {
- return ownedNftId === nftId
- }) !== undefined;
- };
+ const isFound = (nftId: number) => {
+ return ownedNfts.find((ownedNftId) => {
+ return ownedNftId === nftId;
+ }) !== undefined;
+ };
- nftIds.forEach((nftId) => {
- expect(isFound(nftId), `NFT ${nftId} should be owned by ${alice}`)
- .to.be.true
- });
+ nftIds.forEach((nftId) => {
+ expect(isFound(nftId), `NFT ${nftId} should be owned by ${alice}`)
+ .to.be.true;
});
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/lockCollection.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/lockCollection.test.ts
+++ b/tests/src/rmrk/lockCollection.test.ts
@@ -1,10 +1,10 @@
-import { getApiConnection } from "../substrate/substrate-api";
-import { expectTxFailure } from "./util/helpers";
-import { createCollection, lockCollection, mintNft } from "./util/tx";
+import {getApiConnection} from '../substrate/substrate-api';
+import {expectTxFailure} from './util/helpers';
+import {createCollection, lockCollection, mintNft} from './util/tx';
-describe("integration test: lock collection", () => {
- const Alice = "//Alice";
- const Bob = "//Bob";
+describe('integration test: lock collection', () => {
+ const Alice = '//Alice';
+ const Bob = '//Bob';
const Max = 5;
let api: any;
@@ -12,43 +12,43 @@
api = await getApiConnection();
});
- it("lock collection", async () => {
+ it('lock collection', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
await lockCollection(api, Alice, collectionId);
});
});
- it("[negative] lock non-existing NFT collection", async () => {
+ it('[negative] lock non-existing NFT collection', async () => {
const tx = lockCollection(api, Alice, 99999);
await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);
});
- it("[negative] lock not an owner NFT collection issuer", async () => {
+ it('[negative] lock not an owner NFT collection issuer', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
const tx = lockCollection(api, Bob, collectionId);
await expectTxFailure(/rmrkCore\.NoPermission/, tx);
});
});
- it("lock collection with minting", async () => {
+ it('lock collection with minting', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
Max,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
for (let i = 0; i < 5; i++) {
await mintNft(
@@ -56,22 +56,22 @@
Alice,
Alice,
collectionId,
- "test-metadata",
+ 'test-metadata',
+ null,
null,
- null
);
}
await lockCollection(api, Alice, collectionId, Max);
});
});
- it("[negative] unable to mint NFT inside a locked collection", async () => {
+ it('[negative] unable to mint NFT inside a locked collection', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
Max,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
await lockCollection(api, Alice, collectionId);
const tx = mintNft(
@@ -79,38 +79,36 @@
Alice,
Alice,
collectionId,
- "test-metadata",
+ 'test-metadata',
+ null,
null,
- null
);
await expectTxFailure(/rmrkCore\.CollectionFullOrLocked/, tx);
});
});
- it("[negative] unable to mint NFT inside a full collection", async () => {
- await createCollection(api, Alice, "test-metadata", 1, "test-symbol").then(
- async (collectionId) => {
- await mintNft(
- api,
- Alice,
- Alice,
- collectionId,
- "test-metadata",
- null,
- null
- );
- const tx = mintNft(
- api,
- Alice,
- Alice,
- collectionId,
- "test-metadata",
- null,
- null
- );
- await expectTxFailure(/rmrkCore\.CollectionFullOrLocked/, tx);
- }
- );
+ it('[negative] unable to mint NFT inside a full collection', async () => {
+ await createCollection(api, Alice, 'test-metadata', 1, 'test-symbol').then(async (collectionId) => {
+ await mintNft(
+ api,
+ Alice,
+ Alice,
+ collectionId,
+ 'test-metadata',
+ null,
+ null,
+ );
+ const tx = mintNft(
+ api,
+ Alice,
+ Alice,
+ collectionId,
+ 'test-metadata',
+ null,
+ null,
+ );
+ await expectTxFailure(/rmrkCore\.CollectionFullOrLocked/, tx);
+ });
});
after(() => {
tests/src/rmrk/mintNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/mintNft.test.ts
+++ b/tests/src/rmrk/mintNft.test.ts
@@ -1,204 +1,206 @@
-import { expect } from 'chai';
-import { getApiConnection } from '../substrate/substrate-api';
-import { getNft } from './util/fetch';
-import { expectTxFailure } from './util/helpers';
-import { createCollection, mintNft } from './util/tx';
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
+import {getNft} from './util/fetch';
+import {expectTxFailure} from './util/helpers';
+import {createCollection, mintNft} from './util/tx';
-describe("integration test: mint new NFT", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: mint new NFT', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = '//Alice';
- const bob = '//Bob';
- const maxCollectionId = 0xFFFFFFFF;
- const maxNftId = 0xFFFFFFFF;
+ const alice = '//Alice';
+ const bob = '//Bob';
+ const maxCollectionId = 0xFFFFFFFF;
+ const maxNftId = 0xFFFFFFFF;
- it("mint NFT", async () => {
- const owner = null;
- const collectionMetadata = 'mintingCollectionMetadata';
- const collectionMax = null;
- const collectionSymbol = 'MCS';
- const recipientUri = null;
- const royalty = null;
- const nftMetadata = 'NFT-test-metadata';
+ it('mint NFT', async () => {
+ const owner = null;
+ const collectionMetadata = 'mintingCollectionMetadata';
+ const collectionMax = null;
+ const collectionSymbol = 'MCS';
+ const recipientUri = null;
+ const royalty = null;
+ const nftMetadata = 'NFT-test-metadata';
- let collectionId = await createCollection(
- api,
- alice,
- collectionMetadata,
- collectionMax,
- collectionSymbol
- );
+ const collectionId = await createCollection(
+ api,
+ alice,
+ collectionMetadata,
+ collectionMax,
+ collectionSymbol,
+ );
- await mintNft(
- api,
- alice,
- owner,
- collectionId,
- nftMetadata,
- recipientUri,
- royalty
- );
- });
+ await mintNft(
+ api,
+ alice,
+ owner,
+ collectionId,
+ nftMetadata,
+ recipientUri,
+ royalty,
+ );
+ });
- it("mint NFT and set another owner", async () => {
- const owner = bob;
- const collectionMetadata = 'setOwnerCollectionMetadata';
- const collectionMax = null;
- const collectionSymbol = 'SOCS';
- const recipientUri = null;
- const royalty = null;
- const nftMetadata = 'setOwner-NFT-metadata';
+ it('mint NFT and set another owner', async () => {
+ const owner = bob;
+ const collectionMetadata = 'setOwnerCollectionMetadata';
+ const collectionMax = null;
+ const collectionSymbol = 'SOCS';
+ const recipientUri = null;
+ const royalty = null;
+ const nftMetadata = 'setOwner-NFT-metadata';
- let collectionId = await createCollection(
- api,
- alice,
- collectionMetadata,
- collectionMax,
- collectionSymbol
- );
+ const collectionId = await createCollection(
+ api,
+ alice,
+ collectionMetadata,
+ collectionMax,
+ collectionSymbol,
+ );
- await mintNft(
- api,
- alice,
- owner,
- collectionId,
- nftMetadata,
- recipientUri,
- royalty
- );
- });
+ await mintNft(
+ api,
+ alice,
+ owner,
+ collectionId,
+ nftMetadata,
+ recipientUri,
+ royalty,
+ );
+ });
- it("mint NFT with recipient and roalty", async () => {
- const owner = alice;
- const collectionMetadata = 'mintingCollectionMetadata';
- const collectionMax = null;
- const collectionSymbol = 'MCS';
- const recipientUri = bob;
- const royalty = 70000;
- const nftMetadata = 'recipient-royalty-NFT-test-metadata';
+ it('mint NFT with recipient and roalty', async () => {
+ const owner = alice;
+ const collectionMetadata = 'mintingCollectionMetadata';
+ const collectionMax = null;
+ const collectionSymbol = 'MCS';
+ const recipientUri = bob;
+ const royalty = 70000;
+ const nftMetadata = 'recipient-royalty-NFT-test-metadata';
- let collectionId = await createCollection(
- api,
- alice,
- collectionMetadata,
- collectionMax,
- collectionSymbol
- );
+ const collectionId = await createCollection(
+ api,
+ alice,
+ collectionMetadata,
+ collectionMax,
+ collectionSymbol,
+ );
- await mintNft(
- api,
- alice,
- owner,
- collectionId,
- nftMetadata,
- recipientUri,
- royalty
- );
- });
+ await mintNft(
+ api,
+ alice,
+ owner,
+ collectionId,
+ nftMetadata,
+ recipientUri,
+ royalty,
+ );
+ });
- it("mint NFT with resources", async () => {
- const owner = alice;
- const collectionMetadata = 'mintingCollectionMetadata';
- const collectionMax = null;
- const collectionSymbol = 'MCS';
- const nftMetadata = 'NFT-with-resources-test-metadata';
- const resources = [
- {
- basic: {
- metadata: 'basic-resource-nft-minting',
- },
- }, {
- slot: {
- metadata: 'slot-resource-nft-minting',
- slot: 9,
- },
- }, {
- composable: {
- metadata: 'composable-resource-nft-minting',
- parts: [0, 5, 2],
- }
- }, {
- slot: {
- metadata: 'slot-resource-nft-minting-2',
- thumb: 'srnm2',
- base: 5,
- }
- }
- ];
+ it('mint NFT with resources', async () => {
+ const owner = alice;
+ const collectionMetadata = 'mintingCollectionMetadata';
+ const collectionMax = null;
+ const collectionSymbol = 'MCS';
+ const nftMetadata = 'NFT-with-resources-test-metadata';
+ const resources = [
+ {
+ basic: {
+ metadata: 'basic-resource-nft-minting',
+ },
+ }, {
+ slot: {
+ metadata: 'slot-resource-nft-minting',
+ slot: 9,
+ },
+ }, {
+ composable: {
+ metadata: 'composable-resource-nft-minting',
+ parts: [0, 5, 2],
+ },
+ }, {
+ slot: {
+ metadata: 'slot-resource-nft-minting-2',
+ thumb: 'srnm2',
+ base: 5,
+ },
+ },
+ ];
- let collectionId = await createCollection(
- api,
- alice,
- collectionMetadata,
- collectionMax,
- collectionSymbol
- );
+ const collectionId = await createCollection(
+ api,
+ alice,
+ collectionMetadata,
+ collectionMax,
+ collectionSymbol,
+ );
- await mintNft(
- api,
- alice,
- owner,
- collectionId,
- nftMetadata,
- null, null, true,
- resources
- );
- });
+ await mintNft(
+ api,
+ alice,
+ owner,
+ collectionId,
+ nftMetadata,
+ null,
+ null,
+ true,
+ resources,
+ );
+ });
- it("[negative] unable to mint NFT within non-existing collection", async () => {
- const owner = alice;
- const recipientUri = null;
- const royalty = null;
- const nftMetadata = "NFT-test-metadata";
+ it('[negative] unable to mint NFT within non-existing collection', async () => {
+ const owner = alice;
+ const recipientUri = null;
+ const royalty = null;
+ const nftMetadata = 'NFT-test-metadata';
- const tx = mintNft(
- api,
- alice,
- owner,
- maxCollectionId,
- nftMetadata,
- recipientUri,
- royalty
- );
+ const tx = mintNft(
+ api,
+ alice,
+ owner,
+ maxCollectionId,
+ nftMetadata,
+ recipientUri,
+ royalty,
+ );
- await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);
- });
+ await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);
+ });
- it("[negative] unable to mint NFT by a user that isn't the owner of the collection", async () => {
- const owner = alice;
- const collectionMetadata = "mintingCollectionMetadata";
- const collectionMax = null;
- const collectionSymbol = "MCS";
- const recipientUri = null;
- const royalty = null;
- const nftMetadata = "NFT-test-metadata";
+ it("[negative] unable to mint NFT by a user that isn't the owner of the collection", async () => {
+ const owner = alice;
+ const collectionMetadata = 'mintingCollectionMetadata';
+ const collectionMax = null;
+ const collectionSymbol = 'MCS';
+ const recipientUri = null;
+ const royalty = null;
+ const nftMetadata = 'NFT-test-metadata';
- let collectionId = await createCollection(
- api,
- alice,
- collectionMetadata,
- collectionMax,
- collectionSymbol
- );
+ const collectionId = await createCollection(
+ api,
+ alice,
+ collectionMetadata,
+ collectionMax,
+ collectionSymbol,
+ );
- const tx = mintNft(
- api,
- bob,
- owner,
- collectionId,
- nftMetadata,
- recipientUri,
- royalty
- );
+ const tx = mintNft(
+ api,
+ bob,
+ owner,
+ collectionId,
+ nftMetadata,
+ recipientUri,
+ royalty,
+ );
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- it("[negative] unable to fetch non-existing NFT", async () => {
- const nft = await getNft(api, maxCollectionId, maxNftId);
- expect(nft.isSome).to.be.false;
- });
+ it('[negative] unable to fetch non-existing NFT', async () => {
+ const nft = await getNft(api, maxCollectionId, maxNftId);
+ expect(nft.isSome).to.be.false;
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/rejectNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/rejectNft.test.ts
+++ b/tests/src/rmrk/rejectNft.test.ts
@@ -1,89 +1,89 @@
-import { expect } from "chai";
-import { getApiConnection } from "../substrate/substrate-api";
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
import {
- createCollection,
- mintNft,
- sendNft,
- rejectNft
-} from "./util/tx";
-import { getChildren, NftIdTuple } from "./util/fetch";
-import { isNftChildOfAnother, expectTxFailure } from "./util/helpers";
+ createCollection,
+ mintNft,
+ sendNft,
+ rejectNft,
+} from './util/tx';
+import {getChildren, NftIdTuple} from './util/fetch';
+import {isNftChildOfAnother, expectTxFailure} from './util/helpers';
-describe("integration test: reject NFT", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: reject NFT', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = "//Alice";
- const bob = "//Bob";
+ const alice = '//Alice';
+ const bob = '//Bob';
- const createTestCollection = async (issuerUri: string) => {
- return await createCollection(
- api,
- issuerUri,
- "reject-metadata",
- null,
- "rjct"
- );
- }
+ const createTestCollection = async (issuerUri: string) => {
+ return await createCollection(
+ api,
+ issuerUri,
+ 'reject-metadata',
+ null,
+ 'rjct',
+ );
+ };
- it("reject NFT", async () => {
- const ownerAlice = alice;
- const ownerBob = bob;
+ it('reject NFT', async () => {
+ const ownerAlice = alice;
+ const ownerBob = bob;
- const aliceCollectionId = await createTestCollection(alice);
- const bobCollectionId = await createTestCollection(bob);
+ const aliceCollectionId = await createTestCollection(alice);
+ const bobCollectionId = await createTestCollection(bob);
- const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
- await sendNft(api, "pending", ownerBob, bobCollectionId, childNftId, newOwnerNFT);
- await rejectNft(api, alice, bobCollectionId, childNftId);
+ await sendNft(api, 'pending', ownerBob, bobCollectionId, childNftId, newOwnerNFT);
+ await rejectNft(api, alice, bobCollectionId, childNftId);
- const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);
- expect(isChild, 'Error: rejected NFT is still a child of the target NFT').to.be.false;
- });
+ const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);
+ expect(isChild, 'Error: rejected NFT is still a child of the target NFT').to.be.false;
+ });
- it("[negative] unable to reject NFT by a not-an-owner", async () => {
- const ownerAlice = alice;
- const ownerBob = bob;
+ it('[negative] unable to reject NFT by a not-an-owner', async () => {
+ const ownerAlice = alice;
+ const ownerBob = bob;
- const aliceCollectionId = await createTestCollection(alice);
- const bobCollectionId = await createTestCollection(bob);
+ const aliceCollectionId = await createTestCollection(alice);
+ const bobCollectionId = await createTestCollection(bob);
- const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
- await sendNft(api, "pending", ownerBob, bobCollectionId, childNftId, newOwnerNFT);
- const tx = rejectNft(api, bob, bobCollectionId, childNftId);
+ await sendNft(api, 'pending', ownerBob, bobCollectionId, childNftId, newOwnerNFT);
+ const tx = rejectNft(api, bob, bobCollectionId, childNftId);
- await expectTxFailure(/rmrkCore\.CannotRejectNonOwnedNft/, tx);
- });
+ await expectTxFailure(/rmrkCore\.CannotRejectNonOwnedNft/, tx);
+ });
- it("[negative] unable to reject non-existing NFT", async () => {
- const maxNftId = 0xFFFFFFFF;
+ it('[negative] unable to reject non-existing NFT', async () => {
+ const maxNftId = 0xFFFFFFFF;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const tx = rejectNft(api, alice, collectionId, maxNftId);
+ const tx = rejectNft(api, alice, collectionId, maxNftId);
- await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
+ });
- it("[negative] unable to reject NFT which is not sent", async () => {
- const ownerAlice = alice;
+ it('[negative] unable to reject NFT which is not sent', async () => {
+ const ownerAlice = alice;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, ownerAlice, collectionId, "parent-nft-metadata");
+ const nftId = await mintNft(api, alice, ownerAlice, collectionId, 'parent-nft-metadata');
- const tx = rejectNft(api, alice, collectionId, nftId);
+ const tx = rejectNft(api, alice, collectionId, nftId);
- await expectTxFailure(/rmrkCore\.CannotRejectNonPendingNft/, tx);
- });
+ await expectTxFailure(/rmrkCore\.CannotRejectNonPendingNft/, tx);
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/removeResource.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/removeResource.test.ts
+++ b/tests/src/rmrk/removeResource.test.ts
@@ -1,348 +1,348 @@
-import { expect } from 'chai';
-import privateKey from "../substrate/privateKey";
-import { executeTransaction, getApiConnection } from '../substrate/substrate-api';
-import { getNft, NftIdTuple } from './util/fetch';
-import { expectTxFailure } from './util/helpers';
+import {expect} from 'chai';
+import privateKey from '../substrate/privateKey';
+import {executeTransaction, getApiConnection} from '../substrate/substrate-api';
+import {getNft, NftIdTuple} from './util/fetch';
+import {expectTxFailure} from './util/helpers';
import {
acceptNft, acceptResourceRemoval, addNftBasicResource,
createBase,
createCollection,
- mintNft, removeNftResource, sendNft
-} from "./util/tx";
+ mintNft, removeNftResource, sendNft,
+} from './util/tx';
describe('Integration test: remove nft resource', () => {
- let api: any;
- let ss58Format: string;
- before(async () => {
- api = await getApiConnection();
- ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;
- });
+ let api: any;
+ let ss58Format: string;
+ before(async () => {
+ api = await getApiConnection();
+ ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;
+ });
- const Alice = "//Alice";
- const Bob = "//Bob";
- const src = "test-basic-src";
- const metadata = "test-basic-metadata";
- const license = "test-basic-license";
- const thumb = "test-basic-thumb";
+ const Alice = '//Alice';
+ const Bob = '//Bob';
+ const src = 'test-basic-src';
+ const metadata = 'test-basic-metadata';
+ const license = 'test-basic-license';
+ const thumb = 'test-basic-thumb';
- it('deleting a resource directly by the NFT owner', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('deleting a resource directly by the NFT owner', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftAlice = await mintNft(
- api,
- Alice,
- Alice,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftAlice = await mintNft(
+ api,
+ Alice,
+ Alice,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "added",
- collectionIdAlice,
- nftAlice,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'added',
+ collectionIdAlice,
+ nftAlice,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- await removeNftResource(api, 'removed', Alice, collectionIdAlice, nftAlice, resourceId);
- });
+ await removeNftResource(api, 'removed', Alice, collectionIdAlice, nftAlice, resourceId);
+ });
- it('deleting resources indirectly by the NFT owner', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('deleting resources indirectly by the NFT owner', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const parentNftId = await mintNft(api, Alice, Alice, collectionIdAlice, "parent-nft-metadata");
- const childNftId = await mintNft(api, Alice, Alice, collectionIdAlice, "child-nft-metadata");
+ const parentNftId = await mintNft(api, Alice, Alice, collectionIdAlice, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, Alice, Alice, collectionIdAlice, 'child-nft-metadata');
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "added",
- collectionIdAlice,
- childNftId,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'added',
+ collectionIdAlice,
+ childNftId,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- const newOwnerNFT: NftIdTuple = [collectionIdAlice, parentNftId];
+ const newOwnerNFT: NftIdTuple = [collectionIdAlice, parentNftId];
- await sendNft(api, "sent", Alice, collectionIdAlice, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', Alice, collectionIdAlice, childNftId, newOwnerNFT);
- await removeNftResource(api, 'removed', Alice, collectionIdAlice, childNftId, resourceId);
- });
+ await removeNftResource(api, 'removed', Alice, collectionIdAlice, childNftId, resourceId);
+ });
- it('deleting a resource by the collection owner', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('deleting a resource by the collection owner', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftBob = await mintNft(
- api,
- Alice,
- Bob,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftBob = await mintNft(
+ api,
+ Alice,
+ Bob,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "pending",
- collectionIdAlice,
- nftBob,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'pending',
+ collectionIdAlice,
+ nftBob,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- await removeNftResource(api, 'pending', Alice, collectionIdAlice, nftBob, resourceId);
- await acceptResourceRemoval(api, Bob, collectionIdAlice, nftBob, resourceId);
- });
+ await removeNftResource(api, 'pending', Alice, collectionIdAlice, nftBob, resourceId);
+ await acceptResourceRemoval(api, Bob, collectionIdAlice, nftBob, resourceId);
+ });
- it('deleting a resource in a nested NFT by the collection owner', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('deleting a resource in a nested NFT by the collection owner', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const parentNftId = await mintNft(
- api,
- Alice,
- Bob,
- collectionIdAlice,
- "parent-nft-metadata"
- );
- const childNftId = await mintNft(
- api,
- Alice,
- Bob,
- collectionIdAlice,
- "child-nft-metadata"
- );
+ const parentNftId = await mintNft(
+ api,
+ Alice,
+ Bob,
+ collectionIdAlice,
+ 'parent-nft-metadata',
+ );
+ const childNftId = await mintNft(
+ api,
+ Alice,
+ Bob,
+ collectionIdAlice,
+ 'child-nft-metadata',
+ );
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "pending",
- collectionIdAlice,
- childNftId,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'pending',
+ collectionIdAlice,
+ childNftId,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- const newOwnerNFT: NftIdTuple = [collectionIdAlice, parentNftId];
+ const newOwnerNFT: NftIdTuple = [collectionIdAlice, parentNftId];
- await sendNft(api, "sent", Bob, collectionIdAlice, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', Bob, collectionIdAlice, childNftId, newOwnerNFT);
- await removeNftResource(api, 'pending', Alice, collectionIdAlice, childNftId, resourceId);
- await acceptResourceRemoval(api, Bob, collectionIdAlice, childNftId, resourceId);
- });
+ await removeNftResource(api, 'pending', Alice, collectionIdAlice, childNftId, resourceId);
+ await acceptResourceRemoval(api, Bob, collectionIdAlice, childNftId, resourceId);
+ });
- it('[negative]: can\'t delete a resource in a non-existing collection', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('[negative]: can\'t delete a resource in a non-existing collection', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftAlice = await mintNft(
- api,
- Alice,
- Alice,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftAlice = await mintNft(
+ api,
+ Alice,
+ Alice,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "added",
- collectionIdAlice,
- nftAlice,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'added',
+ collectionIdAlice,
+ nftAlice,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- const tx = removeNftResource(api, 'removed', Alice, 0xFFFFFFFF, nftAlice, resourceId);
- await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx); // FIXME: inappropriate error message (NoAvailableNftId)
- });
+ const tx = removeNftResource(api, 'removed', Alice, 0xFFFFFFFF, nftAlice, resourceId);
+ await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx); // FIXME: inappropriate error message (NoAvailableNftId)
+ });
- it('[negative]: only collection owner can delete a resource', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('[negative]: only collection owner can delete a resource', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftAlice = await mintNft(
- api,
- Alice,
- Alice,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftAlice = await mintNft(
+ api,
+ Alice,
+ Alice,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "added",
- collectionIdAlice,
- nftAlice,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'added',
+ collectionIdAlice,
+ nftAlice,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- const tx = removeNftResource(api, 'removed', Bob, collectionIdAlice, nftAlice, resourceId);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ const tx = removeNftResource(api, 'removed', Bob, collectionIdAlice, nftAlice, resourceId);
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- it('[negative]: cannot delete a resource that does not exist', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('[negative]: cannot delete a resource that does not exist', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftAlice = await mintNft(
- api,
- Alice,
- Alice,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftAlice = await mintNft(
+ api,
+ Alice,
+ Alice,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const tx = removeNftResource(api, 'removed', Alice, collectionIdAlice, nftAlice, 127);
- await expectTxFailure(/rmrkCore\.ResourceDoesntExist/, tx);
- });
+ const tx = removeNftResource(api, 'removed', Alice, collectionIdAlice, nftAlice, 127);
+ await expectTxFailure(/rmrkCore\.ResourceDoesntExist/, tx);
+ });
- it('[negative]: Cannot accept deleting resource without owner attempt do delete it', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('[negative]: Cannot accept deleting resource without owner attempt do delete it', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftBob = await mintNft(
- api,
- Alice,
- Bob,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftBob = await mintNft(
+ api,
+ Alice,
+ Bob,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "pending",
- collectionIdAlice,
- nftBob,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'pending',
+ collectionIdAlice,
+ nftBob,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- const tx = acceptResourceRemoval(api, Bob, collectionIdAlice, nftBob, resourceId);
- await expectTxFailure(/rmrkCore\.ResourceNotPending/, tx);
- });
+ const tx = acceptResourceRemoval(api, Bob, collectionIdAlice, nftBob, resourceId);
+ await expectTxFailure(/rmrkCore\.ResourceNotPending/, tx);
+ });
- it('[negative]: cannot confirm the deletion of a non-existing resource', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('[negative]: cannot confirm the deletion of a non-existing resource', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftBob = await mintNft(
- api,
- Alice,
- Bob,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftBob = await mintNft(
+ api,
+ Alice,
+ Bob,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const tx = acceptResourceRemoval(api, Bob, collectionIdAlice, nftBob, 127);
- await expectTxFailure(/rmrkCore\.ResourceDoesntExist/, tx);
- });
+ const tx = acceptResourceRemoval(api, Bob, collectionIdAlice, nftBob, 127);
+ await expectTxFailure(/rmrkCore\.ResourceDoesntExist/, tx);
+ });
- it('[negative]: Non-owner user cannot confirm the deletion of resource', async () => {
- const collectionIdAlice = await createCollection(
- api,
- Alice,
- "test-metadata",
- null,
- "test-symbol"
- );
+ it('[negative]: Non-owner user cannot confirm the deletion of resource', async () => {
+ const collectionIdAlice = await createCollection(
+ api,
+ Alice,
+ 'test-metadata',
+ null,
+ 'test-symbol',
+ );
- const nftAlice = await mintNft(
- api,
- Alice,
- Alice,
- collectionIdAlice,
- "nft-metadata"
- );
+ const nftAlice = await mintNft(
+ api,
+ Alice,
+ Alice,
+ collectionIdAlice,
+ 'nft-metadata',
+ );
- const resourceId = await addNftBasicResource(
- api,
- Alice,
- "added",
- collectionIdAlice,
- nftAlice,
- src,
- metadata,
- license,
- thumb
- );
+ const resourceId = await addNftBasicResource(
+ api,
+ Alice,
+ 'added',
+ collectionIdAlice,
+ nftAlice,
+ src,
+ metadata,
+ license,
+ thumb,
+ );
- const tx = acceptResourceRemoval(api, Bob, collectionIdAlice, nftAlice, resourceId);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ const tx = acceptResourceRemoval(api, Bob, collectionIdAlice, nftAlice, resourceId);
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- after(() => {
- api.disconnect();
- });
+ after(() => {
+ api.disconnect();
+ });
});
tests/src/rmrk/sendNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/sendNft.test.ts
+++ b/tests/src/rmrk/sendNft.test.ts
@@ -1,252 +1,252 @@
-import { expect } from "chai";
-import { getApiConnection } from "../substrate/substrate-api";
-import { createCollection, mintNft, sendNft } from "./util/tx";
-import { NftIdTuple } from "./util/fetch";
-import { isNftChildOfAnother, expectTxFailure } from "./util/helpers";
+import {expect} from 'chai';
+import {getApiConnection} from '../substrate/substrate-api';
+import {createCollection, mintNft, sendNft} from './util/tx';
+import {NftIdTuple} from './util/fetch';
+import {isNftChildOfAnother, expectTxFailure} from './util/helpers';
-describe("integration test: send NFT", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: send NFT', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const maxNftId = 0xFFFFFFFF;
+ const maxNftId = 0xFFFFFFFF;
- const alice = "//Alice";
- const bob = "//Bob";
+ const alice = '//Alice';
+ const bob = '//Bob';
- const createTestCollection = async (issuerUri: string) => {
- return await createCollection(
- api,
- issuerUri,
- "nft-collection-metadata",
- null,
- "nft-collection"
- );
- };
+ const createTestCollection = async (issuerUri: string) => {
+ return await createCollection(
+ api,
+ issuerUri,
+ 'nft-collection-metadata',
+ null,
+ 'nft-collection',
+ );
+ };
- it("send NFT to another user", async () => {
- const originalOwnerUri = alice;
- const newOwnerUri = bob;
+ it('send NFT to another user', async () => {
+ const originalOwnerUri = alice;
+ const newOwnerUri = bob;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, "nft-metadata");
+ const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'nft-metadata');
- await sendNft(api, "sent", originalOwnerUri, collectionId, nftId, newOwnerUri);
- });
+ await sendNft(api, 'sent', originalOwnerUri, collectionId, nftId, newOwnerUri);
+ });
- it("[negative] unable to send non-existing NFT", async () => {
- const originalOwnerUri = alice;
- const newOwnerUri = bob;
+ it('[negative] unable to send non-existing NFT', async () => {
+ const originalOwnerUri = alice;
+ const newOwnerUri = bob;
- const collectionId = 0;
- const tx = sendNft(api, "sent", originalOwnerUri, collectionId, maxNftId, newOwnerUri);
+ const collectionId = 0;
+ const tx = sendNft(api, 'sent', originalOwnerUri, collectionId, maxNftId, newOwnerUri);
- await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
+ });
- it("[negative] unable to send NFT by a not-an-owner", async () => {
- const originalOwnerUri = alice;
- const newOwnerUri = bob;
+ it('[negative] unable to send NFT by a not-an-owner', async () => {
+ const originalOwnerUri = alice;
+ const newOwnerUri = bob;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, "nft-metadata");
+ const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'nft-metadata');
- const tx = sendNft(api, "sent", newOwnerUri, collectionId, nftId, newOwnerUri);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ const tx = sendNft(api, 'sent', newOwnerUri, collectionId, nftId, newOwnerUri);
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- it("send NFT to another NFT (same owner)", async () => {
- const originalOwnerUri = alice;
+ it('send NFT to another NFT (same owner)', async () => {
+ const originalOwnerUri = alice;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", alice, collectionId, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);
- const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
- expect(isChild).to.be.true;
- });
+ const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
+ expect(isChild).to.be.true;
+ });
- it("[negative] send non-existing NFT to another NFT", async () => {
- const originalOwnerUri = alice;
+ it('[negative] send non-existing NFT to another NFT', async () => {
+ const originalOwnerUri = alice;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "parent-nft-metadata");
- const childNftId = maxNftId;
+ const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');
+ const childNftId = maxNftId;
- const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
- const tx = sendNft(api, "sent", alice, collectionId, childNftId, newOwnerNFT);
+ const tx = sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);
- await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
+ await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
- const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
- expect(isChild).to.be.false;
- });
+ const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
+ expect(isChild).to.be.false;
+ });
- it("send NFT to another NFT (by not-an-owner)", async () => {
- const originalOwnerUri = alice;
+ it('send NFT to another NFT (by not-an-owner)', async () => {
+ const originalOwnerUri = alice;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const author = alice;
- const attacker = bob;
+ const author = alice;
+ const attacker = bob;
- const parentNftId = await mintNft(api, author, originalOwnerUri, collectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, author, originalOwnerUri, collectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, author, originalOwnerUri, collectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, author, originalOwnerUri, collectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
- const tx = sendNft(api, "sent", attacker, collectionId, childNftId, newOwnerNFT);
+ const tx = sendNft(api, 'sent', attacker, collectionId, childNftId, newOwnerNFT);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
- expect(isChild).to.be.false;
- });
+ const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
+ expect(isChild).to.be.false;
+ });
- it("[negative] send NFT to non-existing NFT", async () => {
- const originalOwnerUri = alice;
+ it('[negative] send NFT to non-existing NFT', async () => {
+ const originalOwnerUri = alice;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const parentNftId = maxNftId;
- const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "child-nft-metadata");
+ const parentNftId = maxNftId;
+ const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
- const tx = sendNft(api, "sent", alice, collectionId, childNftId, newOwnerNFT);
+ const tx = sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);
- await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
+ await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
- const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
- expect(isChild).to.be.false;
- });
+ const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
+ expect(isChild).to.be.false;
+ });
- it("send NFT to another NFT owned by another user", async () => {
- const ownerAlice = alice;
- const ownerBob = bob;
+ it('send NFT to another NFT owned by another user', async () => {
+ const ownerAlice = alice;
+ const ownerBob = bob;
- const aliceCollectionId = await createTestCollection(alice);
- const bobCollectionId = await createTestCollection(bob);
+ const aliceCollectionId = await createTestCollection(alice);
+ const bobCollectionId = await createTestCollection(bob);
- const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];
- await sendNft(api, "pending", bob, bobCollectionId, childNftId, newOwnerNFT);
- });
+ await sendNft(api, 'pending', bob, bobCollectionId, childNftId, newOwnerNFT);
+ });
- it("[negative] unable to send NFT to itself", async () => {
- const nftOwner = alice;
- const collectionId = await createTestCollection(alice);
+ it('[negative] unable to send NFT to itself', async () => {
+ const nftOwner = alice;
+ const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, nftOwner, collectionId, "ouroboros-nft-metadata");
+ const nftId = await mintNft(api, alice, nftOwner, collectionId, 'ouroboros-nft-metadata');
- const newOwnerNFT: NftIdTuple = [collectionId, nftId];
+ const newOwnerNFT: NftIdTuple = [collectionId, nftId];
- const tx = sendNft(api, "sent", alice, collectionId, nftId, newOwnerNFT);
+ const tx = sendNft(api, 'sent', alice, collectionId, nftId, newOwnerNFT);
- await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);
+ await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);
- const isChild = await isNftChildOfAnother(api, collectionId, nftId, newOwnerNFT);
- expect(isChild).to.be.false;
- });
+ const isChild = await isNftChildOfAnother(api, collectionId, nftId, newOwnerNFT);
+ expect(isChild).to.be.false;
+ });
- it("[negative] unable to send NFT to child NFT", async () => {
- const originalOwnerUri = alice;
+ it('[negative] unable to send NFT to child NFT', async () => {
+ const originalOwnerUri = alice;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');
- const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
+ const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", alice, collectionId, childNftId, newOwnerNFT);
+ await sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);
- const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
- expect(isChild).to.be.true;
+ const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);
+ expect(isChild).to.be.true;
- const descendentOwner: NftIdTuple = [collectionId, childNftId];
- const tx = sendNft(api, "sent", alice, collectionId, parentNftId, descendentOwner);
+ const descendentOwner: NftIdTuple = [collectionId, childNftId];
+ const tx = sendNft(api, 'sent', alice, collectionId, parentNftId, descendentOwner);
- await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);
- const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, descendentOwner);
- expect(isOuroboros).to.be.false;
- });
+ await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);
+ const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, descendentOwner);
+ expect(isOuroboros).to.be.false;
+ });
- it("[negative] unable to send NFT to descendent NFT", async () => {
- const originalOwnerUri = alice;
+ it('[negative] unable to send NFT to descendent NFT', async () => {
+ const originalOwnerUri = alice;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "child-nft-metadata");
- const grandsonNftId = await mintNft(api, alice, originalOwnerUri, collectionId, "grandson-nft-metadata");
+ const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');
+ const grandsonNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'grandson-nft-metadata');
- const ownerParentNFT: NftIdTuple = [collectionId, parentNftId];
+ const ownerParentNFT: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", alice, collectionId, childNftId, ownerParentNFT);
+ await sendNft(api, 'sent', alice, collectionId, childNftId, ownerParentNFT);
- const isChild = await isNftChildOfAnother(api, collectionId, childNftId, ownerParentNFT);
- expect(isChild).to.be.true;
+ const isChild = await isNftChildOfAnother(api, collectionId, childNftId, ownerParentNFT);
+ expect(isChild).to.be.true;
- const ownerChildNFT: NftIdTuple = [collectionId, childNftId];
- await sendNft(api, "sent", alice, collectionId, grandsonNftId, ownerChildNFT);
+ const ownerChildNFT: NftIdTuple = [collectionId, childNftId];
+ await sendNft(api, 'sent', alice, collectionId, grandsonNftId, ownerChildNFT);
- const isGrandson = await isNftChildOfAnother(api, collectionId, grandsonNftId, ownerChildNFT);
- expect(isGrandson).to.be.true;
+ const isGrandson = await isNftChildOfAnother(api, collectionId, grandsonNftId, ownerChildNFT);
+ expect(isGrandson).to.be.true;
- const ownerGrandsonNFT: NftIdTuple = [collectionId, grandsonNftId];
- const tx = sendNft(api, "sent", alice, collectionId, parentNftId, ownerGrandsonNFT);
+ const ownerGrandsonNFT: NftIdTuple = [collectionId, grandsonNftId];
+ const tx = sendNft(api, 'sent', alice, collectionId, parentNftId, ownerGrandsonNFT);
- await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);
- const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, ownerGrandsonNFT);
- expect(isOuroboros).to.be.false;
- });
+ await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);
+ const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, ownerGrandsonNFT);
+ expect(isOuroboros).to.be.false;
+ });
- it("send nested NFT to another user", async () => {
- const originalOwner = alice;
- const newOwner = bob;
+ it('send nested NFT to another user', async () => {
+ const originalOwner = alice;
+ const newOwner = bob;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, originalOwner, collectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, alice, originalOwner, collectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, originalOwner, collectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, alice, originalOwner, collectionId, 'child-nft-metadata');
- const parentNftTuple: NftIdTuple = [collectionId, parentNftId];
+ const parentNftTuple: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", originalOwner, collectionId, childNftId, parentNftTuple);
+ await sendNft(api, 'sent', originalOwner, collectionId, childNftId, parentNftTuple);
- await sendNft(api, "sent", originalOwner, collectionId, childNftId, newOwner);
- });
+ await sendNft(api, 'sent', originalOwner, collectionId, childNftId, newOwner);
+ });
- it("[negative] send nested NFT to another user (by a not-root-owner)", async () => {
- const originalOwner = alice;
- const newOwner = bob;
+ it('[negative] send nested NFT to another user (by a not-root-owner)', async () => {
+ const originalOwner = alice;
+ const newOwner = bob;
- const collectionId = await createTestCollection(alice);
+ const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, originalOwner, collectionId, "parent-nft-metadata");
- const childNftId = await mintNft(api, alice, originalOwner, collectionId, "child-nft-metadata");
+ const parentNftId = await mintNft(api, alice, originalOwner, collectionId, 'parent-nft-metadata');
+ const childNftId = await mintNft(api, alice, originalOwner, collectionId, 'child-nft-metadata');
- const parentNftTuple: NftIdTuple = [collectionId, parentNftId];
+ const parentNftTuple: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", originalOwner, collectionId, childNftId, parentNftTuple);
+ await sendNft(api, 'sent', originalOwner, collectionId, childNftId, parentNftTuple);
- const tx = sendNft(api, "sent", newOwner, collectionId, childNftId, newOwner);
+ const tx = sendNft(api, 'sent', newOwner, collectionId, childNftId, newOwner);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/setCollectionProperty.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setCollectionProperty.test.ts
+++ b/tests/src/rmrk/setCollectionProperty.test.ts
@@ -1,63 +1,63 @@
-import { getApiConnection } from "../substrate/substrate-api";
-import { expectTxFailure } from "./util/helpers";
-import { createCollection, setPropertyCollection } from "./util/tx";
+import {getApiConnection} from '../substrate/substrate-api';
+import {expectTxFailure} from './util/helpers';
+import {createCollection, setPropertyCollection} from './util/tx';
-describe("integration test: set collection property", () => {
- const Alice = "//Alice";
- const Bob = "//Bob";
+describe('integration test: set collection property', () => {
+ const Alice = '//Alice';
+ const Bob = '//Bob';
let api: any;
before(async () => {
api = await getApiConnection();
});
- it("set collection property", async () => {
+ it('set collection property', async () => {
await createCollection(
api,
Alice,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
- await setPropertyCollection(api, Alice, collectionId, "test_key", "42");
- await setPropertyCollection(api, Alice, collectionId, "test_key", "10");
+ await setPropertyCollection(api, Alice, collectionId, 'test_key', '42');
+ await setPropertyCollection(api, Alice, collectionId, 'test_key', '10');
await setPropertyCollection(
api,
Alice,
collectionId,
- "second_test_key",
- "111"
+ 'second_test_key',
+ '111',
);
});
});
- it("[negative] set non-existing collection property", async () => {
+ it('[negative] set non-existing collection property', async () => {
const tx = setPropertyCollection(
api,
Alice,
9999,
- "test_key",
- "42"
+ 'test_key',
+ '42',
);
await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);
});
- it("[negative] set property not an owner NFT collection issuer", async () => {
+ it('[negative] set property not an owner NFT collection issuer', async () => {
await createCollection(
api,
Bob,
- "test-metadata",
+ 'test-metadata',
null,
- "test-symbol"
+ 'test-symbol',
).then(async (collectionId) => {
- const tx = setPropertyCollection(
- api,
- Alice,
- collectionId,
- "test_key",
- "42"
- );
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ const tx = setPropertyCollection(
+ api,
+ Alice,
+ collectionId,
+ 'test_key',
+ '42',
+ );
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
});
});
tests/src/rmrk/setEquippableList.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setEquippableList.test.ts
+++ b/tests/src/rmrk/setEquippableList.test.ts
@@ -1,111 +1,111 @@
-import { getApiConnection } from '../substrate/substrate-api';
-import { expectTxFailure } from './util/helpers';
-import { createCollection, createBase, setEquippableList } from "./util/tx";
+import {getApiConnection} from '../substrate/substrate-api';
+import {expectTxFailure} from './util/helpers';
+import {createCollection, createBase, setEquippableList} from './util/tx';
describe("integration test: set slot's Equippable List", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = '//Alice';
- const bob = '//Bob';
+ const alice = '//Alice';
+ const bob = '//Bob';
- it("set Base's slot Equippable List", async () => {
- const collectionIds = [
- await createCollection(
- api,
- alice,
- "equiplist-collection-metadata",
- null,
- "equiplist-0"
- ),
- await createCollection(
- api,
- alice,
- "equiplist-collection-metadata",
- null,
- "equiplist-1"
- )
- ]
+ it("set Base's slot Equippable List", async () => {
+ const collectionIds = [
+ await createCollection(
+ api,
+ alice,
+ 'equiplist-collection-metadata',
+ null,
+ 'equiplist-0',
+ ),
+ await createCollection(
+ api,
+ alice,
+ 'equiplist-collection-metadata',
+ null,
+ 'equiplist-1',
+ ),
+ ];
- const slotId = 202;
+ const slotId = 202;
- const baseId = await createBase(api, alice, 'slotpartany-base-type', 'slotpartany', [
- {
- "SlotPart": {
- id: slotId,
- equippable: "All",
- z: 1,
- src: "some-fallback-slot-url"
- }
- }
- ]);
+ const baseId = await createBase(api, alice, 'slotpartany-base-type', 'slotpartany', [
+ {
+ 'SlotPart': {
+ id: slotId,
+ equippable: 'All',
+ z: 1,
+ src: 'some-fallback-slot-url',
+ },
+ },
+ ]);
- await setEquippableList(api, alice, baseId, slotId, "All");
- await setEquippableList(api, alice, baseId, slotId, "Empty");
- await setEquippableList(api, alice, baseId, slotId, { "Custom": collectionIds });
- });
+ await setEquippableList(api, alice, baseId, slotId, 'All');
+ await setEquippableList(api, alice, baseId, slotId, 'Empty');
+ await setEquippableList(api, alice, baseId, slotId, {'Custom': collectionIds});
+ });
- it("[negative] unable to set equippable list of a slot of non-existing base", async () => {
- const maxBaseId = 0xFFFFFFFF;
- const slotId = 0;
+ it('[negative] unable to set equippable list of a slot of non-existing base', async () => {
+ const maxBaseId = 0xFFFFFFFF;
+ const slotId = 0;
- const tx = setEquippableList(api, alice, maxBaseId, slotId, "All");
- await expectTxFailure(/rmrkEquip\.BaseDoesntExist/, tx);
- });
+ const tx = setEquippableList(api, alice, maxBaseId, slotId, 'All');
+ await expectTxFailure(/rmrkEquip\.BaseDoesntExist/, tx);
+ });
- it("[negative] unable to set equippable list by a not-an-owner", async () => {
- const slotId = 42;
+ it('[negative] unable to set equippable list by a not-an-owner', async () => {
+ const slotId = 42;
- const baseId = await createBase(api, alice, 'slotpartany-base-type', 'slotpartany', [
- {
- "SlotPart": {
- id: slotId,
- equippable: "All",
- z: 1,
- src: "some-fallback-slot-url"
- }
- }
- ]);
+ const baseId = await createBase(api, alice, 'slotpartany-base-type', 'slotpartany', [
+ {
+ 'SlotPart': {
+ id: slotId,
+ equippable: 'All',
+ z: 1,
+ src: 'some-fallback-slot-url',
+ },
+ },
+ ]);
- const tx = setEquippableList(api, bob, baseId, slotId, "All");
- await expectTxFailure(/rmrkEquip\.PermissionError/, tx);
- });
+ const tx = setEquippableList(api, bob, baseId, slotId, 'All');
+ await expectTxFailure(/rmrkEquip\.PermissionError/, tx);
+ });
- it("[negative] unable to set equippable list to a fixed part", async () => {
- const fixedPartId = 42;
+ it('[negative] unable to set equippable list to a fixed part', async () => {
+ const fixedPartId = 42;
- const baseId = await createBase(api, alice, 'fixedpart-base-type', 'fixedpart', [
- {
- "FixedPart": {
- id: fixedPartId,
- z: 0,
- src: "fixed-part-url"
- }
- }
- ]);
+ const baseId = await createBase(api, alice, 'fixedpart-base-type', 'fixedpart', [
+ {
+ 'FixedPart': {
+ id: fixedPartId,
+ z: 0,
+ src: 'fixed-part-url',
+ },
+ },
+ ]);
- const tx = setEquippableList(api, alice, baseId, fixedPartId, "All");
- await expectTxFailure(/rmrkEquip\.NoEquippableOnFixedPart/, tx);
- });
+ const tx = setEquippableList(api, alice, baseId, fixedPartId, 'All');
+ await expectTxFailure(/rmrkEquip\.NoEquippableOnFixedPart/, tx);
+ });
- it("[negative] unable to set equippable list to non-existing slot", async () => {
- const slotId = 777
- const maxSlotId = 0xFFFFFFFF;
+ it('[negative] unable to set equippable list to non-existing slot', async () => {
+ const slotId = 777;
+ const maxSlotId = 0xFFFFFFFF;
- const baseId = await createBase(api, alice, 'slotpartany-base-type', 'slotpartany', [
- {
- "SlotPart": {
- id: slotId,
- equippable: "All",
- z: 1,
- src: "some-fallback-slot-url"
- }
- }
- ]);
+ const baseId = await createBase(api, alice, 'slotpartany-base-type', 'slotpartany', [
+ {
+ 'SlotPart': {
+ id: slotId,
+ equippable: 'All',
+ z: 1,
+ src: 'some-fallback-slot-url',
+ },
+ },
+ ]);
- const tx = setEquippableList(api, alice, baseId, maxSlotId, "All");
- await expectTxFailure(/rmrkEquip\.PartDoesntExist/, tx);
- })
+ const tx = setEquippableList(api, alice, baseId, maxSlotId, 'All');
+ await expectTxFailure(/rmrkEquip\.PartDoesntExist/, tx);
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/setNftProperty.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setNftProperty.test.ts
+++ b/tests/src/rmrk/setNftProperty.test.ts
@@ -1,85 +1,85 @@
-import { getApiConnection } from "../substrate/substrate-api";
-import { NftIdTuple } from "./util/fetch";
-import { expectTxFailure } from "./util/helpers";
-import { createCollection, mintNft, sendNft, setNftProperty } from "./util/tx";
+import {getApiConnection} from '../substrate/substrate-api';
+import {NftIdTuple} from './util/fetch';
+import {expectTxFailure} from './util/helpers';
+import {createCollection, mintNft, sendNft, setNftProperty} from './util/tx';
-describe("integration test: set NFT property", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: set NFT property', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = "//Alice";
- const bob = "//Bob";
+ const alice = '//Alice';
+ const bob = '//Bob';
- const createTestCollection = async (issuerUri: string) => {
- return await createCollection(
- api,
- issuerUri,
- "setprop-nft-collection-metadata",
- null,
- "setprop"
- );
- };
+ const createTestCollection = async (issuerUri: string) => {
+ return await createCollection(
+ api,
+ issuerUri,
+ 'setprop-nft-collection-metadata',
+ null,
+ 'setprop',
+ );
+ };
- it("set NFT property", async () => {
- const ownerAlice = alice;
+ it('set NFT property', async () => {
+ const ownerAlice = alice;
- const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, ownerAlice, collectionId, "prop-nft");
+ const collectionId = await createTestCollection(alice);
+ const nftId = await mintNft(api, alice, ownerAlice, collectionId, 'prop-nft');
- await setNftProperty(api, alice, collectionId, nftId, 'test-key', 'test-key-value');
- await setNftProperty(api, alice, collectionId, nftId, 'test-key', 'updated-key-value');
- await setNftProperty(api, alice, collectionId, nftId, 'second-test-key', 'second-test-key-value');
- });
+ await setNftProperty(api, alice, collectionId, nftId, 'test-key', 'test-key-value');
+ await setNftProperty(api, alice, collectionId, nftId, 'test-key', 'updated-key-value');
+ await setNftProperty(api, alice, collectionId, nftId, 'second-test-key', 'second-test-key-value');
+ });
- it("[negative] unable to set a property of non-existing NFT", async () => {
- const collectionId = 0;
- const maxNftId = 0xFFFFFFFF;
+ it('[negative] unable to set a property of non-existing NFT', async () => {
+ const collectionId = 0;
+ const maxNftId = 0xFFFFFFFF;
- const tx = setNftProperty(api, alice, collectionId, maxNftId, 'test-key', 'test-value');
+ const tx = setNftProperty(api, alice, collectionId, maxNftId, 'test-key', 'test-value');
- await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
+ });
- it("[negative] unable to set a property by not-an-owner", async () => {
- const ownerAlice = alice;
+ it('[negative] unable to set a property by not-an-owner', async () => {
+ const ownerAlice = alice;
- const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, ownerAlice, collectionId, "prop-nft");
+ const collectionId = await createTestCollection(alice);
+ const nftId = await mintNft(api, alice, ownerAlice, collectionId, 'prop-nft');
- const tx = setNftProperty(api, bob, collectionId, nftId, 'test-key', 'test-key-value');
+ const tx = setNftProperty(api, bob, collectionId, nftId, 'test-key', 'test-key-value');
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- it("set a property to nested NFT", async () => {
- const ownerAlice = alice;
+ it('set a property to nested NFT', async () => {
+ const ownerAlice = alice;
- const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, ownerAlice, collectionId, "prop-parent-nft");
- const childNftId = await mintNft(api, alice, ownerAlice, collectionId, "prop-child-nft");
+ const collectionId = await createTestCollection(alice);
+ const parentNftId = await mintNft(api, alice, ownerAlice, collectionId, 'prop-parent-nft');
+ const childNftId = await mintNft(api, alice, ownerAlice, collectionId, 'prop-child-nft');
- const ownerNft: NftIdTuple = [collectionId, parentNftId];
+ const ownerNft: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", ownerAlice, collectionId, childNftId, ownerNft);
+ await sendNft(api, 'sent', ownerAlice, collectionId, childNftId, ownerNft);
- await setNftProperty(api, alice, collectionId, childNftId, 'test-key', 'test-key-value');
- });
+ await setNftProperty(api, alice, collectionId, childNftId, 'test-key', 'test-key-value');
+ });
- it("[negative] set a property to nested NFT (by not-root-owner)", async () => {
- const ownerAlice = alice;
+ it('[negative] set a property to nested NFT (by not-root-owner)', async () => {
+ const ownerAlice = alice;
- const collectionId = await createTestCollection(alice);
- const parentNftId = await mintNft(api, alice, ownerAlice, collectionId, "prop-parent-nft");
- const childNftId = await mintNft(api, alice, ownerAlice, collectionId, "prop-child-nft");
+ const collectionId = await createTestCollection(alice);
+ const parentNftId = await mintNft(api, alice, ownerAlice, collectionId, 'prop-parent-nft');
+ const childNftId = await mintNft(api, alice, ownerAlice, collectionId, 'prop-child-nft');
- const ownerNft: NftIdTuple = [collectionId, parentNftId];
+ const ownerNft: NftIdTuple = [collectionId, parentNftId];
- await sendNft(api, "sent", ownerAlice, collectionId, childNftId, ownerNft);
+ await sendNft(api, 'sent', ownerAlice, collectionId, childNftId, ownerNft);
- const tx = setNftProperty(api, bob, collectionId, childNftId, 'test-key', 'test-key-value');
+ const tx = setNftProperty(api, bob, collectionId, childNftId, 'test-key', 'test-key-value');
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/setResourcePriorities.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setResourcePriorities.test.ts
+++ b/tests/src/rmrk/setResourcePriorities.test.ts
@@ -1,55 +1,55 @@
-import { getApiConnection } from '../substrate/substrate-api';
-import { expectTxFailure } from './util/helpers';
-import { mintNft, createCollection, setResourcePriorities } from './util/tx';
+import {getApiConnection} from '../substrate/substrate-api';
+import {expectTxFailure} from './util/helpers';
+import {mintNft, createCollection, setResourcePriorities} from './util/tx';
-describe("integration test: set NFT resource priorities", () => {
- let api: any;
- before(async () => { api = await getApiConnection(); });
+describe('integration test: set NFT resource priorities', () => {
+ let api: any;
+ before(async () => { api = await getApiConnection(); });
- const alice = '//Alice';
- const bob = '//Bob';
+ const alice = '//Alice';
+ const bob = '//Bob';
- const createTestCollection = (issuerUri: string) => {
- return createCollection(
- api,
- issuerUri,
- 'resprio-collection-metadata',
- null,
- 'resprio'
- );
- };
+ const createTestCollection = (issuerUri: string) => {
+ return createCollection(
+ api,
+ issuerUri,
+ 'resprio-collection-metadata',
+ null,
+ 'resprio',
+ );
+ };
- it("set NFT resource priorities", async () => {
- const owner = alice;
+ it('set NFT resource priorities', async () => {
+ const owner = alice;
- const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, owner, collectionId, 'resprio-nft-metadata');
+ const collectionId = await createTestCollection(alice);
+ const nftId = await mintNft(api, alice, owner, collectionId, 'resprio-nft-metadata');
- await setResourcePriorities(api, alice, collectionId, nftId, [10, 42]);
- });
+ await setResourcePriorities(api, alice, collectionId, nftId, [10, 42]);
+ });
- it("[negative] set NFT resource priorities by a not-an-owner", async () => {
- const owner = alice;
- const attacker = bob;
+ it('[negative] set NFT resource priorities by a not-an-owner', async () => {
+ const owner = alice;
+ const attacker = bob;
- const collectionId = await createTestCollection(alice);
- const nftId = await mintNft(api, alice, owner, collectionId, 'resprio-nft-metadata');
+ const collectionId = await createTestCollection(alice);
+ const nftId = await mintNft(api, alice, owner, collectionId, 'resprio-nft-metadata');
- const tx = setResourcePriorities(api, attacker, collectionId, nftId, [10, 42]);
+ const tx = setResourcePriorities(api, attacker, collectionId, nftId, [10, 42]);
- await expectTxFailure(/rmrkCore\.NoPermission/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoPermission/, tx);
+ });
- it("[negative] set NFT resource priorities to non-existing NFT", async () => {
- const owner = alice;
+ it('[negative] set NFT resource priorities to non-existing NFT', async () => {
+ const owner = alice;
- const collectionId = 0;
- const maxNftId = 0xFFFFFFFF;
+ const collectionId = 0;
+ const maxNftId = 0xFFFFFFFF;
- const tx = setResourcePriorities(api, alice, collectionId, maxNftId, [10, 42]);
+ const tx = setResourcePriorities(api, alice, collectionId, maxNftId, [10, 42]);
- await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
- });
+ await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);
+ });
- after(() => { api.disconnect(); });
+ after(() => { api.disconnect(); });
});
tests/src/rmrk/util/fetch.tsdiffbeforeafterboth--- a/tests/src/rmrk/util/fetch.ts
+++ b/tests/src/rmrk/util/fetch.ts
@@ -1,14 +1,14 @@
-import { ApiPromise } from '@polkadot/api';
-import type { Option, Bytes } from '@polkadot/types-codec';
+import {ApiPromise} from '@polkadot/api';
+import type {Option, Bytes} from '@polkadot/types-codec';
import type {
- RmrkTraitsCollectionCollectionInfo as Collection,
- RmrkTraitsNftNftInfo as Nft,
- RmrkTraitsResourceResourceInfo as Resource,
- RmrkTraitsBaseBaseInfo as Base,
- RmrkTraitsPartPartType as PartType,
- RmrkTraitsNftNftChild as NftChild,
- RmrkTraitsTheme as Theme,
- RmrkTraitsPropertyPropertyInfo as Property,
+ RmrkTraitsCollectionCollectionInfo as Collection,
+ RmrkTraitsNftNftInfo as Nft,
+ RmrkTraitsResourceResourceInfo as Resource,
+ RmrkTraitsBaseBaseInfo as Base,
+ RmrkTraitsPartPartType as PartType,
+ RmrkTraitsNftNftChild as NftChild,
+ RmrkTraitsTheme as Theme,
+ RmrkTraitsPropertyPropertyInfo as Property,
} from '../../interfaces/default/types'; // '@polkadot/types/lookup';
import '../../interfaces/augment-api';
import '../../interfaces/augment-api-query';
@@ -17,114 +17,114 @@
export type NftIdTuple = [number, number];
export async function getCollectionsCount(api: ApiPromise): Promise<number> {
- return (await api.rpc.rmrk.lastCollectionIdx()).toNumber();
+ return (await api.rpc.rmrk.lastCollectionIdx()).toNumber();
}
export async function getCollection(api: ApiPromise, id: number): Promise<Option<Collection>> {
- return api.rpc.rmrk.collectionById(id);
+ return api.rpc.rmrk.collectionById(id);
}
export async function getOwnedNfts(
- api: ApiPromise,
- ownerUri: string,
- collectionId: number
+ api: ApiPromise,
+ ownerUri: string,
+ collectionId: number,
): Promise<number[]> {
- const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;
- const owner = privateKey(ownerUri, Number(ss58Format));
+ const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;
+ const owner = privateKey(ownerUri, Number(ss58Format));
- return (await api.rpc.rmrk.accountTokens(owner.address, collectionId))
- .map((value) => value.toNumber())
+ return (await api.rpc.rmrk.accountTokens(owner.address, collectionId))
+ .map((value) => value.toNumber());
}
export async function getNft(api: ApiPromise, collectionId: number, nftId: number): Promise<Option<Nft>> {
- return api.rpc.rmrk.nftById(collectionId, nftId);
+ return api.rpc.rmrk.nftById(collectionId, nftId);
}
export async function getCollectionProperties(api: ApiPromise, collectionId: number): Promise<Property[]> {
- return (await api.rpc.rmrk.collectionProperties(collectionId)).toArray();
+ return (await api.rpc.rmrk.collectionProperties(collectionId)).toArray();
}
export async function getNftProperties(api: ApiPromise, collectionId: number, nftId: number): Promise<Property[]> {
- return (await api.rpc.rmrk.nftProperties(collectionId, nftId)).toArray();
+ return (await api.rpc.rmrk.nftProperties(collectionId, nftId)).toArray();
}
export async function getChildren(
- api: ApiPromise,
- collectionId: number,
- nftId: number
+ api: ApiPromise,
+ collectionId: number,
+ nftId: number,
): Promise<NftChild[]> {
- return (await api.rpc.rmrk.nftChildren(collectionId, nftId)).toArray();
+ return (await api.rpc.rmrk.nftChildren(collectionId, nftId)).toArray();
}
export async function getBase(api: ApiPromise, baseId: number): Promise<Option<Base>> {
- return api.rpc.rmrk.base(baseId);
+ return api.rpc.rmrk.base(baseId);
}
export async function getParts(api: ApiPromise, baseId: number): Promise<PartType[]> {
- return (await api.rpc.rmrk.baseParts(baseId)).toArray();
+ return (await api.rpc.rmrk.baseParts(baseId)).toArray();
}
export async function getEquippableList(
- api: ApiPromise,
- baseId: number,
- slotId: number
-): Promise<"All" | "Empty" | { "Custom": number[] } | null> {
- const parts = await getParts(api, baseId);
+ api: ApiPromise,
+ baseId: number,
+ slotId: number,
+): Promise<'All' | 'Empty' | { 'Custom': number[] } | null> {
+ const parts = await getParts(api, baseId);
- const part = parts.find((part) => {
- if (part.isSlotPart) {
- return part.asSlotPart.id.toNumber() === slotId;
- } else {
- return false;
- }
- });
+ const part = parts.find((part) => {
+ if (part.isSlotPart) {
+ return part.asSlotPart.id.toNumber() === slotId;
+ } else {
+ return false;
+ }
+ });
- if (part) {
- const slot = part.asSlotPart;
- if (slot.equippable.isCustom) {
- return {
- "Custom": slot.equippable.asCustom
- .toArray()
- .map((collectionId) => collectionId.toNumber())
- };
- } else if (slot.equippable.isAll) {
- return "All";
- } else {
- return "Empty";
- }
+ if (part) {
+ const slot = part.asSlotPart;
+ if (slot.equippable.isCustom) {
+ return {
+ 'Custom': slot.equippable.asCustom
+ .toArray()
+ .map((collectionId) => collectionId.toNumber()),
+ };
+ } else if (slot.equippable.isAll) {
+ return 'All';
} else {
- return null;
+ return 'Empty';
}
+ } else {
+ return null;
+ }
}
export async function getResourcePriority(
- api: ApiPromise,
- collectionId: number,
- nftId: number,
- resourceId: number,
+ api: ApiPromise,
+ collectionId: number,
+ nftId: number,
+ resourceId: number,
): Promise<number> {
- return (await api.rpc.rmrk.nftResourcePriority(collectionId, nftId, resourceId))
- .unwrap().toNumber();
+ return (await api.rpc.rmrk.nftResourcePriority(collectionId, nftId, resourceId))
+ .unwrap().toNumber();
}
export async function getThemeNames(api: ApiPromise, baseId: number): Promise<string[]> {
- return (await api.rpc.rmrk.themeNames(baseId))
- .map((name) => name.toUtf8());
+ return (await api.rpc.rmrk.themeNames(baseId))
+ .map((name) => name.toUtf8());
}
export async function getTheme(
- api: ApiPromise,
- baseId: number,
- themeName: string,
- keys: string[] | null = null
+ api: ApiPromise,
+ baseId: number,
+ themeName: string,
+ keys: string[] | null = null,
): Promise<Option<Theme>> {
- return api.rpc.rmrk.themes(baseId, themeName, keys);
+ return api.rpc.rmrk.themes(baseId, themeName, keys);
}
export async function getResources(
api: ApiPromise,
collectionId: number,
- nftId: number
+ nftId: number,
): Promise<Resource[]> {
return (await api.rpc.rmrk.nftResources(collectionId, nftId)).toArray();
}
tests/src/rmrk/util/helpers.tsdiffbeforeafterboth--- a/tests/src/rmrk/util/helpers.ts
+++ b/tests/src/rmrk/util/helpers.ts
@@ -1,13 +1,13 @@
-import { ApiPromise } from "@polkadot/api";
+import {ApiPromise} from '@polkadot/api';
import {
- RmrkTraitsNftAccountIdOrCollectionNftTuple as NftOwner,
- RmrkTraitsPropertyPropertyInfo as Property,
- RmrkTraitsResourceResourceInfo as ResourceInfo,
-} from "@polkadot/types/lookup";
-import type { EventRecord } from '@polkadot/types/interfaces';
-import type { GenericEventData } from '@polkadot/types';
-import privateKey from "../../substrate/privateKey";
-import { NftIdTuple, getChildren, getOwnedNfts, getCollectionProperties, getNftProperties, getResources } from './fetch';
+ RmrkTraitsNftAccountIdOrCollectionNftTuple as NftOwner,
+ RmrkTraitsPropertyPropertyInfo as Property,
+ RmrkTraitsResourceResourceInfo as ResourceInfo,
+} from '@polkadot/types/lookup';
+import type {EventRecord} from '@polkadot/types/interfaces';
+import type {GenericEventData} from '@polkadot/types';
+import privateKey from '../../substrate/privateKey';
+import {NftIdTuple, getChildren, getOwnedNfts, getCollectionProperties, getNftProperties, getResources} from './fetch';
import chaiAsPromised from 'chai-as-promised';
import chai from 'chai';
@@ -20,188 +20,188 @@
}
export function makeNftOwner(api: ApiPromise, owner: string | NftIdTuple): NftOwner {
- const isNftSending = (typeof owner !== "string");
+ const isNftSending = (typeof owner !== 'string');
- if (isNftSending) {
- return api.createType("RmrkTraitsNftAccountIdOrCollectionNftTuple", {
- "CollectionAndNftTuple": owner
- });
- } else {
- const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;
- return api.createType("RmrkTraitsNftAccountIdOrCollectionNftTuple", {
- AccountId: privateKey(owner, Number(ss58Format)).address,
- });
- }
+ if (isNftSending) {
+ return api.createType('RmrkTraitsNftAccountIdOrCollectionNftTuple', {
+ 'CollectionAndNftTuple': owner,
+ });
+ } else {
+ const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;
+ return api.createType('RmrkTraitsNftAccountIdOrCollectionNftTuple', {
+ AccountId: privateKey(owner, Number(ss58Format)).address,
+ });
+ }
}
export async function isNftOwnedBy(
- api: ApiPromise,
- owner: string | NftIdTuple,
- collectionId: number,
- nftId: number
+ api: ApiPromise,
+ owner: string | NftIdTuple,
+ collectionId: number,
+ nftId: number,
): Promise<boolean> {
- if (typeof owner === "string") {
- return (await getOwnedNfts(api, owner, collectionId))
- .find(ownedNftId => {
- return ownedNftId === nftId;
- }) !== undefined;
- } else {
- return (await getChildren(api, owner[0], owner[1]))
- .find(child => {
- return collectionId === child.collectionId.toNumber()
+ if (typeof owner === 'string') {
+ return (await getOwnedNfts(api, owner, collectionId))
+ .find(ownedNftId => {
+ return ownedNftId === nftId;
+ }) !== undefined;
+ } else {
+ return (await getChildren(api, owner[0], owner[1]))
+ .find(child => {
+ return collectionId === child.collectionId.toNumber()
&& nftId === child.nftId.toNumber();
- }) !== undefined;
- }
+ }) !== undefined;
+ }
}
export function isPropertyExists(
- key: string,
- value: string,
- props: Property[]
+ key: string,
+ value: string,
+ props: Property[],
): boolean {
- let isPropFound = false;
- for (var i = 0; i < props.length && !isPropFound; i++) {
- const fetchedProp = props[i];
+ let isPropFound = false;
+ for (let i = 0; i < props.length && !isPropFound; i++) {
+ const fetchedProp = props[i];
- isPropFound = fetchedProp.key.eq(key)
+ isPropFound = fetchedProp.key.eq(key)
&& fetchedProp.value.eq(value);
- }
+ }
- return isPropFound;
+ return isPropFound;
}
export async function isCollectionPropertyExists(
- api: ApiPromise,
- collectionId: number,
- key: string,
- value: string
+ api: ApiPromise,
+ collectionId: number,
+ key: string,
+ value: string,
): Promise<boolean> {
- const fetchedProps = await getCollectionProperties(api, collectionId);
- return isPropertyExists(key, value, fetchedProps);
+ const fetchedProps = await getCollectionProperties(api, collectionId);
+ return isPropertyExists(key, value, fetchedProps);
}
export async function isNftPropertyExists(
- api: ApiPromise,
- collectionId: number,
- nftId: number,
- key: string,
- value: string
+ api: ApiPromise,
+ collectionId: number,
+ nftId: number,
+ key: string,
+ value: string,
): Promise<boolean> {
- const fetchedProps = await getNftProperties(api, collectionId, nftId);
- return isPropertyExists(key, value, fetchedProps);
+ const fetchedProps = await getNftProperties(api, collectionId, nftId);
+ return isPropertyExists(key, value, fetchedProps);
}
export async function isNftChildOfAnother(
- api: ApiPromise,
- collectionId: number,
- nftId: number,
- parentNft: NftIdTuple
+ api: ApiPromise,
+ collectionId: number,
+ nftId: number,
+ parentNft: NftIdTuple,
): Promise<boolean> {
- return (await getChildren(api, parentNft[0], parentNft[1]))
- .find((childNft) => {
- return childNft.collectionId.toNumber() === collectionId
+ return (await getChildren(api, parentNft[0], parentNft[1]))
+ .find((childNft) => {
+ return childNft.collectionId.toNumber() === collectionId
&& childNft.nftId.toNumber() === nftId;
- }) !== undefined;
+ }) !== undefined;
}
export function isTxResultSuccess(events: EventRecord[]): boolean {
- let success = false;
+ let success = false;
- events.forEach(({event: {data, method, section}}) => {
- if (method == 'ExtrinsicSuccess') {
- success = true;
- }
- });
+ events.forEach(({event: {data, method, section}}) => {
+ if (method == 'ExtrinsicSuccess') {
+ success = true;
+ }
+ });
- return success;
+ return success;
}
export async function expectTxFailure(expectedError: RegExp, promise: Promise<any>) {
- await expect(promise).to.be.rejectedWith(expectedError);
+ await expect(promise).to.be.rejectedWith(expectedError);
}
export function extractTxResult<T>(
- events: EventRecord[],
- expectSection: string,
- expectMethod: string,
- extractAction: (data: any) => T
+ events: EventRecord[],
+ expectSection: string,
+ expectMethod: string,
+ extractAction: (data: any) => T,
): TxResult<T> {
- let success = false;
- let successData = null;
- events.forEach(({event: {data, method, section}}) => {
- if (method == 'ExtrinsicSuccess') {
- success = true;
- } else if ((expectSection == section) && (expectMethod == method)) {
- successData = extractAction(data);
- }
- });
- const result: TxResult<T> = {
- success,
- successData,
- };
- return result;
+ let success = false;
+ let successData = null;
+ events.forEach(({event: {data, method, section}}) => {
+ if (method == 'ExtrinsicSuccess') {
+ success = true;
+ } else if ((expectSection == section) && (expectMethod == method)) {
+ successData = extractAction(data);
+ }
+ });
+ const result: TxResult<T> = {
+ success,
+ successData,
+ };
+ return result;
}
export function extractRmrkCoreTxResult<T>(
- events: EventRecord[],
- expectMethod: string,
- extractAction: (data: GenericEventData) => T
+ events: EventRecord[],
+ expectMethod: string,
+ extractAction: (data: GenericEventData) => T,
): TxResult<T> {
- return extractTxResult(events, 'rmrkCore', expectMethod, extractAction);
+ return extractTxResult(events, 'rmrkCore', expectMethod, extractAction);
}
export function extractRmrkEquipTxResult<T>(
- events: EventRecord[],
- expectMethod: string,
- extractAction: (data: GenericEventData) => T
+ events: EventRecord[],
+ expectMethod: string,
+ extractAction: (data: GenericEventData) => T,
): TxResult<T> {
- return extractTxResult(events, 'rmrkEquip', expectMethod, extractAction);
+ return extractTxResult(events, 'rmrkEquip', expectMethod, extractAction);
}
export async function findResourceById(
- api: ApiPromise,
- collectionId: number,
- nftId: number,
- resourceId: number,
+ api: ApiPromise,
+ collectionId: number,
+ nftId: number,
+ resourceId: number,
): Promise<ResourceInfo> {
- const resources = await getResources(api, collectionId, nftId);
+ const resources = await getResources(api, collectionId, nftId);
- let resource = null;
+ let resource = null;
- for (let i = 0; i < resources.length; i++) {
- const res = resources[i];
+ for (let i = 0; i < resources.length; i++) {
+ const res = resources[i];
- if (res.id.eq(resourceId)) {
- resource = res;
- break;
- }
+ if (res.id.eq(resourceId)) {
+ resource = res;
+ break;
}
+ }
- return resource!;
+ return resource!;
}
export async function getResourceById(
- api: ApiPromise,
- collectionId: number,
- nftId: number,
- resourceId: number,
+ api: ApiPromise,
+ collectionId: number,
+ nftId: number,
+ resourceId: number,
): Promise<ResourceInfo> {
- const resource = await findResourceById(
- api,
- collectionId,
- nftId,
- resourceId,
- );
+ const resource = await findResourceById(
+ api,
+ collectionId,
+ nftId,
+ resourceId,
+ );
- expect(resource !== null, 'Error: resource was not found').to.be.true;
+ expect(resource !== null, 'Error: resource was not found').to.be.true;
- return resource!;
+ return resource!;
}
export function checkResourceStatus(
- resource: ResourceInfo,
- expectedStatus: "pending" | "added"
+ resource: ResourceInfo,
+ expectedStatus: 'pending' | 'added',
) {
- expect(resource.pending.isTrue, `Error: added resource should be ${expectedStatus}`)
- .to.be.equal(expectedStatus === "pending");
+ expect(resource.pending.isTrue, `Error: added resource should be ${expectedStatus}`)
+ .to.be.equal(expectedStatus === 'pending');
}
tests/src/rmrk/util/tx.tsdiffbeforeafterboth1import { ApiPromise } from "@polkadot/api";1import {ApiPromise} from '@polkadot/api';2import { Bytes, Option, u32, Vec } from '@polkadot/types-codec';2import {Bytes, Option, u32, Vec} from '@polkadot/types-codec';3import {3import {4 RmrkTraitsNftAccountIdOrCollectionNftTuple as NftOwner, RmrkTraitsPartEquippableList as EquippableList,4 RmrkTraitsNftAccountIdOrCollectionNftTuple as NftOwner, RmrkTraitsPartEquippableList as EquippableList,5 RmrkTraitsPartPartType as PartType, RmrkTraitsResourceBasicResource as BasicResource,5 RmrkTraitsPartPartType as PartType, RmrkTraitsResourceBasicResource as BasicResource,6 RmrkTraitsResourceComposableResource as ComposableResource, RmrkTraitsResourceResourceInfo as ResourceInfo, RmrkTraitsResourceSlotResource as SlotResource, RmrkTraitsTheme as Theme6 RmrkTraitsResourceComposableResource as ComposableResource, RmrkTraitsResourceResourceInfo as ResourceInfo, RmrkTraitsResourceSlotResource as SlotResource, RmrkTraitsTheme as Theme,7} from "@polkadot/types/lookup";7} from '@polkadot/types/lookup';8import { IKeyringPair } from "@polkadot/types/types";8import {IKeyringPair} from '@polkadot/types/types';9import chai from 'chai';9import chai from 'chai';10import chaiAsPromised from 'chai-as-promised';10import chaiAsPromised from 'chai-as-promised';11import '../../interfaces/augment-api';11import '../../interfaces/augment-api';12import privateKey from "../../substrate/privateKey";12import privateKey from '../../substrate/privateKey';13import { executeTransaction } from "../../substrate/substrate-api";13import {executeTransaction} from '../../substrate/substrate-api';14import {14import {15 getBase,15 getBase,16 getCollection,16 getCollection,21 getResources, 21 getResources, 22 getResourcePriority, 22 getResourcePriority, 23 getTheme,23 getTheme,24 NftIdTuple24 NftIdTuple,25} from "./fetch";25} from './fetch';26import {26import {27 extractRmrkCoreTxResult,27 extractRmrkCoreTxResult,28 extractRmrkEquipTxResult, isCollectionPropertyExists, isNftOwnedBy, isNftPropertyExists, isTxResultSuccess, makeNftOwner,28 extractRmrkEquipTxResult, isCollectionPropertyExists, isNftOwnedBy, isNftPropertyExists, isTxResultSuccess, makeNftOwner,29 findResourceById, getResourceById, checkResourceStatus29 findResourceById, getResourceById, checkResourceStatus,30} from "./helpers";30} from './helpers';313132chai.use(chaiAsPromised);32chai.use(chaiAsPromised);33const expect = chai.expect;33const expect = chai.expect;505051 const collectionResult = extractRmrkCoreTxResult(51 const collectionResult = extractRmrkCoreTxResult(events, 'CollectionCreated', (data) => {52 events, 'CollectionCreated', (data) => {53 return parseInt(data[1].toString(), 10)52 return parseInt(data[1].toString(), 10);54 }53 });55 );56 expect(collectionResult.success, 'Error: unable to create a collection').to.be.true;54 expect(collectionResult.success, 'Error: unable to create a collection').to.be.true;656366 const collection = collectionOption.unwrap();64 const collection = collectionOption.unwrap();676568 expect(collection.metadata.toUtf8()).to.be.equal(metadata, "Error: Invalid NFT collection metadata");66 expect(collection.metadata.toUtf8()).to.be.equal(metadata, 'Error: Invalid NFT collection metadata');69 expect(collection.max.isSome).to.be.equal(max !== null, "Error: Invalid NFT collection max");67 expect(collection.max.isSome).to.be.equal(max !== null, 'Error: Invalid NFT collection max');706871 if (collection.max.isSome) {69 if (collection.max.isSome) {72 expect(collection.max.unwrap().toNumber()).to.be.equal(max, "Error: Invalid NFT collection max");70 expect(collection.max.unwrap().toNumber()).to.be.equal(max, 'Error: Invalid NFT collection max');73 }71 }74 expect(collection.symbol.toUtf8()).to.be.equal(symbol, "Error: Invalid NFT collection's symbol");72 expect(collection.symbol.toUtf8()).to.be.equal(symbol, "Error: Invalid NFT collection's symbol");75 expect(collection.nftsCount.toNumber()).to.be.equal(0, "Error: NFT collection shoudn't have any tokens");73 expect(collection.nftsCount.toNumber()).to.be.equal(0, "Error: NFT collection shoudn't have any tokens");76 expect(collection.issuer.toString()).to.be.equal(issuer.address, "Error: Invalid NFT collection issuer");74 expect(collection.issuer.toString()).to.be.equal(issuer.address, 'Error: Invalid NFT collection issuer');777578 return collectionId;76 return collectionId;79}77}125121126 const collectionTxResult = extractRmrkCoreTxResult(122 const collectionTxResult = extractRmrkCoreTxResult(127 events,123 events,128 "CollectionDestroy",124 'CollectionDestroy',129 (data) => {125 (data) => {130 return parseInt(data[1].toString(), 10);126 return parseInt(data[1].toString(), 10);131 }127 },132 );128 );133 expect(collectionTxResult.success, 'Error: Unable to delete NFT collection').to.be.true;129 expect(collectionTxResult.success, 'Error: Unable to delete NFT collection').to.be.true;134130214 metadata: string,208 metadata: string,215 recipientUri: string | null = null,209 recipientUri: string | null = null,216 royalty: number | null = null,210 royalty: number | null = null,217 transferable: boolean = true,211 transferable = true,218 resources: {basic?: any, composable?: any, slot?: any}[] | null = null212 resources: {basic?: any, composable?: any, slot?: any}[] | null = null,219): Promise<number> {213): Promise<number> {220 let nftId = 0;214 let nftId = 0;221 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;215 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;269 const nft = nftOption.unwrap();261 const nft = nftOption.unwrap();270262271 expect(nft.owner.isAccountId, 'Error: NFT owner should be some user').to.be.true;263 expect(nft.owner.isAccountId, 'Error: NFT owner should be some user').to.be.true;272 expect(nft.owner.asAccountId.toString()).to.be.equal(actualOwnerAddress, "Error: Invalid NFT owner");264 expect(nft.owner.asAccountId.toString()).to.be.equal(actualOwnerAddress, 'Error: Invalid NFT owner');273265274 const isOwnedInUniques = await isNftOwnedBy(api, actualOwnerUri, collectionId, nftId);266 const isOwnedInUniques = await isNftOwnedBy(api, actualOwnerUri, collectionId, nftId);275 expect(isOwnedInUniques, `Error: created NFT is not actually owned by ${ownerUri}`)267 expect(isOwnedInUniques, `Error: created NFT is not actually owned by ${ownerUri}`)290 .to.be.true;282 .to.be.true;291 }283 }292284293 expect(nft.metadata.toUtf8()).to.be.equal(metadata, "Error: Invalid NFT metadata");285 expect(nft.metadata.toUtf8()).to.be.equal(metadata, 'Error: Invalid NFT metadata');294 286 295 const nftResources = await getResources(api, collectionId, nftId);287 const nftResources = await getResources(api, collectionId, nftId);296 if (resources == null) {288 if (resources == null) {311 let typedResource = null;303 let typedResource = null;312 let typedNftResource = null;304 let typedNftResource = null;313305314 if (resource.basic && nftResource.hasOwnProperty("Basic")) {306 if (resource.basic && nftResource.hasOwnProperty('Basic')) {315 typedResource = resource.basic!;307 typedResource = resource.basic!;316 typedNftResource = nftResource["Basic" as NftResourceKey]!;308 typedNftResource = nftResource['Basic' as NftResourceKey]!;317 } else if (resource.composable && nftResource.hasOwnProperty("Composable")) {309 } else if (resource.composable && nftResource.hasOwnProperty('Composable')) {318 typedResource = resource.composable!;310 typedResource = resource.composable!;319 typedNftResource = nftResource["Composable" as NftResourceKey]! as any;311 typedNftResource = nftResource['Composable' as NftResourceKey]! as any;320 if (typedResource.parts != undefined && typedResource.parts.toString() != typedNftResource.parts.toString()312 if (typedResource.parts != undefined && typedResource.parts.toString() != typedNftResource.parts.toString()321 || typedResource.base != typedNftResource.base && typedResource.base != undefined) {313 || typedResource.base != typedNftResource.base && typedResource.base != undefined) {322 continue;314 continue;323 }315 }324 } else if (resource.slot && nftResource.hasOwnProperty("Slot")) {316 } else if (resource.slot && nftResource.hasOwnProperty('Slot')) {325 typedResource = resource.slot!;317 typedResource = resource.slot!;326 typedNftResource = nftResource["Slot" as NftResourceKey]! as any;318 typedNftResource = nftResource['Slot' as NftResourceKey]! as any;327 if (typedResource.slot != typedNftResource.slot && typedResource.slot != undefined 319 if (typedResource.slot != typedNftResource.slot && typedResource.slot != undefined 328 || typedResource.base != typedNftResource.base && typedResource.base != undefined) {320 || typedResource.base != typedNftResource.base && typedResource.base != undefined) {329 continue;321 continue;347 // remove the matching resource from the resources we check339 // remove the matching resource from the resources we check348 nftResources.splice(j, 1);340 nftResources.splice(j, 1);349 successFindingResource = true;341 successFindingResource = true;350 };342 }351343352 expect(successFindingResource, `Error: Couldn't find resource #${i}'s counterpart among the returned`).to.be.true;344 expect(successFindingResource, `Error: Couldn't find resource #${i}'s counterpart among the returned`).to.be.true;353 }345 }358350359export async function sendNft(351export async function sendNft(360 api: ApiPromise,352 api: ApiPromise,361 expectedStatus: "pending" | "sent",353 expectedStatus: 'pending' | 'sent',362 originalOwnerUri: string,354 originalOwnerUri: string,363 collectionId: number,355 collectionId: number,364 nftId: number,356 nftId: number,365 newOwner: string | NftIdTuple357 newOwner: string | NftIdTuple,366) {358) {367 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;359 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;368 const originalOwner = privateKey(originalOwnerUri, Number(ss58Format));360 const originalOwner = privateKey(originalOwnerUri, Number(ss58Format));373 const tx = api.tx.rmrkCore.send(collectionId, nftId, newOwnerObj);365 const tx = api.tx.rmrkCore.send(collectionId, nftId, newOwnerObj);374 const events = await executeTransaction(api, originalOwner, tx);366 const events = await executeTransaction(api, originalOwner, tx);375367376 const sendResult = extractRmrkCoreTxResult(events, "NFTSent", (data) => {368 const sendResult = extractRmrkCoreTxResult(events, 'NFTSent', (data) => {377 return {369 return {378 dstOwner: data[1] as NftOwner,370 dstOwner: data[1] as NftOwner,379 collectionId: parseInt(data[2].toString(), 10),371 collectionId: parseInt(data[2].toString(), 10),403 const nftAfterSending = nftAfterSendingOpt.unwrap();395 const nftAfterSending = nftAfterSendingOpt.unwrap();404396405 const isOwnedByNewOwner = await isNftOwnedBy(api, newOwner, collectionId, nftId);397 const isOwnedByNewOwner = await isNftOwnedBy(api, newOwner, collectionId, nftId);406 const isPending = expectedStatus === "pending";398 const isPending = expectedStatus === 'pending';407399408 expect(400 expect(409 isOwnedByNewOwner,401 isOwnedByNewOwner,434 const issuer = privateKey(issuerUri, Number(ss58Format));426 const issuer = privateKey(issuerUri, Number(ss58Format));435 const newOwnerObj = makeNftOwner(api, newOwner);427 const newOwnerObj = makeNftOwner(api, newOwner);436428437 let nftBeforeOpt = await getNft(api, collectionId, nftId);429 const nftBeforeOpt = await getNft(api, collectionId, nftId);438430439 const tx = api.tx.rmrkCore.acceptNft(collectionId, nftId, newOwnerObj);431 const tx = api.tx.rmrkCore.acceptNft(collectionId, nftId, newOwnerObj);440 const events = await executeTransaction(api, issuer, tx);432 const events = await executeTransaction(api, issuer, tx);441433442 const acceptResult = extractRmrkCoreTxResult(events, "NFTAccepted", (data) => {434 const acceptResult = extractRmrkCoreTxResult(events, 'NFTAccepted', (data) => {443 return {435 return {444 recipient: data[1] as NftOwner,436 recipient: data[1] as NftOwner,445 collectionId: parseInt(data[2].toString(), 10),437 collectionId: parseInt(data[2].toString(), 10),485) {477) {486 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;478 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;487 const issuer = privateKey(issuerUri, Number(ss58Format));479 const issuer = privateKey(issuerUri, Number(ss58Format));488 let nftBeforeOpt = await getNft(api, collectionId, nftId);480 const nftBeforeOpt = await getNft(api, collectionId, nftId);489481490 const tx = api.tx.rmrkCore.rejectNft(collectionId, nftId);482 const tx = api.tx.rmrkCore.rejectNft(collectionId, nftId);491 const events = await executeTransaction(api, issuer, tx);483 const events = await executeTransaction(api, issuer, tx);492 const rejectResult = extractRmrkCoreTxResult(events, "NFTRejected", (data) => {484 const rejectResult = extractRmrkCoreTxResult(events, 'NFTRejected', (data) => {493 return {485 return {494 collectionId: parseInt(data[1].toString(), 10),486 collectionId: parseInt(data[1].toString(), 10),495 nftId: parseInt(data[2].toString(), 10)487 nftId: parseInt(data[2].toString(), 10),528 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;520 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;529 const issuer = privateKey(issuerUri, Number(ss58Format));521 const issuer = privateKey(issuerUri, Number(ss58Format));530522531 const partTypes = api.createType("Vec<RmrkTraitsPartPartType>", parts) as Vec<PartType>;523 const partTypes = api.createType('Vec<RmrkTraitsPartPartType>', parts) as Vec<PartType>;532524533 const tx = api.tx.rmrkEquip.createBase(baseType, symbol, partTypes);525 const tx = api.tx.rmrkEquip.createBase(baseType, symbol, partTypes);534 const events = await executeTransaction(api, issuer, tx);526 const events = await executeTransaction(api, issuer, tx);551 const base = baseOptional.unwrap();541 const base = baseOptional.unwrap();552 const baseParts = await getParts(api, baseId);542 const baseParts = await getParts(api, baseId);553543554 expect(base.issuer.toString()).to.be.equal(issuer.address, "Error: Invalid Base issuer");544 expect(base.issuer.toString()).to.be.equal(issuer.address, 'Error: Invalid Base issuer');555 expect(base.baseType.toUtf8()).to.be.equal(baseType, "Error: Invalid Base type");545 expect(base.baseType.toUtf8()).to.be.equal(baseType, 'Error: Invalid Base type');556 expect(base.symbol.toUtf8()).to.be.equal(symbol, "Error: Invalid Base symbol");546 expect(base.symbol.toUtf8()).to.be.equal(symbol, 'Error: Invalid Base symbol');557 expect(partTypes.eq(baseParts), "Error: Received invalid base parts").to.be.true;547 expect(partTypes.eq(baseParts), 'Error: Received invalid base parts').to.be.true;558548559 return baseId;549 return baseId;560}550}588578589 expect(eventData.nftId).to.be.equal(nftId, 'Error: Invalid NFT ID (set priorities event data');579 expect(eventData.nftId).to.be.equal(nftId, 'Error: Invalid NFT ID (set priorities event data');590580591 for (var i = 0; i < priorities.length; i++) {581 for (let i = 0; i < priorities.length; i++) {592 const resourceId = priorities[i];582 const resourceId = priorities[i];593583594 const fetchedPrio = await getResourcePriority(api, collectionId, nftId, resourceId);584 const fetchedPrio = await getResourcePriority(api, collectionId, nftId, resourceId);602 issuerUri: string,592 issuerUri: string,603 baseId: number,593 baseId: number,604 slotId: number,594 slotId: number,605 equippableList: "All" | "Empty" | { 'Custom': number[] }595 equippableList: 'All' | 'Empty' | { 'Custom': number[] },606) {596) {607 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;597 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;608 const issuer = privateKey(issuerUri, Number(ss58Format));598 const issuer = privateKey(issuerUri, Number(ss58Format));660650661 expect(theme.name.eq(fetchedTheme.name), 'Error: Invalid theme name').to.be.true;651 expect(theme.name.eq(fetchedTheme.name), 'Error: Invalid theme name').to.be.true;662652663 for (var i = 0; i < theme.properties.length; i++) {653 for (let i = 0; i < theme.properties.length; i++) {664 const property = theme.properties[i];654 const property = theme.properties[i];665 const propertyKey = property.key.toUtf8();655 const propertyKey = property.key.toUtf8();666656692 api: ApiPromise,678 api: ApiPromise,693 issuerUri: string,679 issuerUri: string,694 collectionId: number,680 collectionId: number,695 max: number = 0681 max = 0,696) {682) {697 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;683 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;698 const issuer = privateKey(issuerUri, Number(ss58Format));684 const issuer = privateKey(issuerUri, Number(ss58Format));804 nftId: parseInt(data[0].toString(), 10),783 nftId: parseInt(data[0].toString(), 10),805 resourceId: parseInt(data[1].toString(), 10)784 resourceId: parseInt(data[1].toString(), 10),806 };785 };807 }786 });808 )809787810 expect(acceptResult.success, 'Error: Unable to accept a resource').to.be.true;788 expect(acceptResult.success, 'Error: Unable to accept a resource').to.be.true;814 .to.be.eq(resourceId);792 .to.be.eq(resourceId);815793816 const resource = await getResourceById(api, collectionId, nftId, resourceId);794 const resource = await getResourceById(api, collectionId, nftId, resourceId);817 checkResourceStatus(resource, "added");795 checkResourceStatus(resource, 'added');818}796}819797820async function executeResourceCreation(798async function executeResourceCreation(823 tx: any,801 tx: any,824 collectionId: number,802 collectionId: number,825 nftId: number,803 nftId: number,826 expectedStatus: "pending" | "added"804 expectedStatus: 'pending' | 'added',827): Promise<ResourceInfo> {805): Promise<ResourceInfo> {828 const events = await executeTransaction(api, issuer, tx);806 const events = await executeTransaction(api, issuer, tx);829807844export async function addNftBasicResource(820export async function addNftBasicResource(845 api: ApiPromise,821 api: ApiPromise,846 issuerUri: string,822 issuerUri: string,847 expectedStatus: "pending" | "added",823 expectedStatus: 'pending' | 'added',848 collectionId: number,824 collectionId: number,849 nftId: number,825 nftId: number,850 src: string | null,826 src: string | null,851 metadata: string | null,827 metadata: string | null,852 license: string | null,828 license: string | null,853 thumb: string | null829 thumb: string | null,854): Promise<number> {830): Promise<number> {855 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;831 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;856 const issuer = privateKey(issuerUri, Number(ss58Format));832 const issuer = privateKey(issuerUri, Number(ss58Format));898export async function addNftComposableResource(874export async function addNftComposableResource(899 api: ApiPromise,875 api: ApiPromise,900 issuerUri: string,876 issuerUri: string,901 expectedStatus: "pending" | "added",877 expectedStatus: 'pending' | 'added',902 collectionId: number,878 collectionId: number,903 nftId: number,879 nftId: number,904 parts: number[],880 parts: number[],905 baseId: number,881 baseId: number,906 src: string | null,882 src: string | null,907 metadata: string | null,883 metadata: string | null,908 license: string | null,884 license: string | null,909 thumb: string | null885 thumb: string | null,910): Promise<number> {886): Promise<number> {911 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;887 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;912 const issuer = privateKey(issuerUri, Number(ss58Format));888 const issuer = privateKey(issuerUri, Number(ss58Format));960export async function addNftSlotResource(936export async function addNftSlotResource(961 api: ApiPromise,937 api: ApiPromise,962 issuerUri: string,938 issuerUri: string,963 expectedStatus: "pending" | "added",939 expectedStatus: 'pending' | 'added',964 collectionId: number,940 collectionId: number,965 nftId: number,941 nftId: number,966 baseId: number,942 baseId: number,967 slotId: number,943 slotId: number,968 src: string | null,944 src: string | null,969 metadata: string | null,945 metadata: string | null,970 license: string | null,946 license: string | null,971 thumb: string | null947 thumb: string | null,972): Promise<number> {948): Promise<number> {973 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;949 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;974 const issuer = privateKey(issuerUri, Number(ss58Format));950 const issuer = privateKey(issuerUri, Number(ss58Format));1040 base_id: parseInt(data[2].toString(), 10),1015 base_id: parseInt(data[2].toString(), 10),1041 slot_id: parseInt(data[3].toString(), 10),1016 slot_id: parseInt(data[3].toString(), 10),1042 };1017 };1043 }1018 });1044 )1045 expect(equipResult.success, 'Error: Unable to equip an item').to.be.true;1019 expect(equipResult.success, 'Error: Unable to equip an item').to.be.true;1046 expect(equipResult.successData!.item_collection, 'Error: Invalid item collection id')1020 expect(equipResult.successData!.item_collection, 'Error: Invalid item collection id')106910431070 const unEquipResult = extractRmrkEquipTxResult(1044 const unEquipResult = extractRmrkEquipTxResult(1071 events,1045 events,1072 "SlotUnequipped",1046 'SlotUnequipped',1073 (data) => {1047 (data) => {1074 return {1048 return {1075 item_collection: parseInt(data[0].toString(), 10),1049 item_collection: parseInt(data[0].toString(), 10),1076 item_nft: parseInt(data[1].toString(), 10),1050 item_nft: parseInt(data[1].toString(), 10),1077 base_id: parseInt(data[2].toString(), 10),1051 base_id: parseInt(data[2].toString(), 10),1078 slot_id: parseInt(data[3].toString(), 10),1052 slot_id: parseInt(data[3].toString(), 10),1079 };1053 };1080 }1054 },1081 );1055 );108210561083 expect(unEquipResult.success, 'Error: Unable to unequip an item').to.be.true;1057 expect(unEquipResult.success, 'Error: Unable to unequip an item').to.be.true;109310671094export async function removeNftResource(1068export async function removeNftResource(1095 api: ApiPromise,1069 api: ApiPromise,1096 expectedStatus: "pending" | "removed",1070 expectedStatus: 'pending' | 'removed',1097 issuerUri: string,1071 issuerUri: string,1098 collectionId: number,1072 collectionId: number,1099 nftId: number,1073 nftId: number,1100 resourceId: number1074 resourceId: number,1101) {1075) {1102 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;1076 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;1103 const issuer = privateKey(issuerUri, Number(ss58Format));1077 const issuer = privateKey(issuerUri, Number(ss58Format));1110 nftId: parseInt(data[0].toString(), 10),1083 nftId: parseInt(data[0].toString(), 10),1111 resourceId: parseInt(data[1].toString(), 10)1084 resourceId: parseInt(data[1].toString(), 10),1112 };1085 };1113 }1086 });1114 )1115 expect(removeResult.success, 'Error: Unable to remove a resource').to.be.true;1087 expect(removeResult.success, 'Error: Unable to remove a resource').to.be.true;1116 expect(removeResult.successData!.nftId, 'Error: Invalid NFT Id while removing a resource')1088 expect(removeResult.successData!.nftId, 'Error: Invalid NFT Id while removing a resource')1117 .to.be.eq(nftId);1089 .to.be.eq(nftId);1118 expect(removeResult.successData!.resourceId, 'Error: Invalid resource Id while removing a resource')1090 expect(removeResult.successData!.resourceId, 'Error: Invalid resource Id while removing a resource')1119 .to.be.eq(resourceId);1091 .to.be.eq(resourceId);112010921121 let afterDeleting = await findResourceById(api, collectionId, nftId, resourceId);1093 const afterDeleting = await findResourceById(api, collectionId, nftId, resourceId);112210941123 if (expectedStatus === 'pending') {1095 if (expectedStatus === 'pending') {1124 expect(afterDeleting).not.to.be.null;1096 expect(afterDeleting).not.to.be.null;1146 nftId: parseInt(data[0].toString(), 10),1117 nftId: parseInt(data[0].toString(), 10),1147 resourceId: parseInt(data[1].toString(), 10)1118 resourceId: parseInt(data[1].toString(), 10),1148 };1119 };1149 }1120 });1150 )1151 expect(acceptResult.success, 'Error: Unable to accept a resource').to.be.true;1121 expect(acceptResult.success, 'Error: Unable to accept a resource').to.be.true;1152 expect(acceptResult.successData!.nftId, 'Error: Invalid NFT Id while accepting a resource')1122 expect(acceptResult.successData!.nftId, 'Error: Invalid NFT Id while accepting a resource')1153 .to.be.eq(nftId);1123 .to.be.eq(nftId);1154 expect(acceptResult.successData!.resourceId, 'Error: Invalid resource Id while accepting a resource')1124 expect(acceptResult.successData!.resourceId, 'Error: Invalid resource Id while accepting a resource')1155 .to.be.eq(resourceId);1125 .to.be.eq(resourceId);115611261157 let afterDeleting = await findResourceById(api, collectionId, nftId, resourceId);1127 const afterDeleting = await findResourceById(api, collectionId, nftId, resourceId);1158 expect(afterDeleting, 'Error: resource deleting failed').to.be.null;1128 expect(afterDeleting, 'Error: resource deleting failed').to.be.null;1159}1129}11601130tests/src/substrate/substrate-api.tsdiffbeforeafterboth--- a/tests/src/substrate/substrate-api.ts
+++ b/tests/src/substrate/substrate-api.ts
@@ -61,7 +61,7 @@
export async function getApiConnection(settings: ApiOptions | undefined = undefined): Promise<ApiPromise> {
settings = settings || defaultApiOptions();
- let api = new ApiPromise(settings);
+ const api = new ApiPromise(settings);
if (api) {
await api.isReadyOrError;