git.delta.rocks / unique-network / refs/commits / 7c5f266f6a1f

difftreelog

source

mochawesome-report/mochawesome.html483.4 KiBsourcehistory
1<!doctype html>2<html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Mochawesome Report</title><link rel="stylesheet" href="assets/app.css"/></head><body data-raw="{&quot;stats&quot;:{&quot;suites&quot;:0,&quot;tests&quot;:0,&quot;passes&quot;:0,&quot;pending&quot;:0,&quot;failures&quot;:0,&quot;start&quot;:&quot;2021-09-08T12:24:24.749Z&quot;,&quot;end&quot;:&quot;2021-09-08T12:24:24.775Z&quot;,&quot;duration&quot;:26,&quot;testsRegistered&quot;:363,&quot;passPercent&quot;:0,&quot;pendingPercent&quot;:0,&quot;other&quot;:1,&quot;hasOther&quot;:true,&quot;skipped&quot;:363,&quot;hasSkipped&quot;:true},&quot;results&quot;:[{&quot;uuid&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;title&quot;:&quot;&quot;,&quot;fullFile&quot;:&quot;&quot;,&quot;file&quot;:&quot;&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook in \&quot;{root}\&quot;&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook in \&quot;{root}\&quot;&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:20,&quot;state&quot;:&quot;failed&quot;,&quot;pass&quot;:false,&quot;fail&quot;:true,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n});&quot;,&quot;err&quot;:{&quot;message&quot;:&quot;Error: the object {\n  \&quot;_yaeti\&quot;: true\n  \&quot;cancelable\&quot;: true\n  \&quot;isTrusted\&quot;: false\n  \&quot;stopImmediatePropagation\&quot;: [Function]\n  \&quot;target\&quot;: {\n    \&quot;_binaryType\&quot;: \&quot;arraybuffer\&quot;\n    \&quot;_bufferedAmount\&quot;: 0\n    \&quot;_client\&quot;: {\n      \&quot;_events\&quot;: {}\n      \&quot;_eventsCount\&quot;: 0\n      \&quot;_maxListeners\&quot;: [undefined]\n      \&quot;_req\&quot;: [null]\n      \&quot;base64nonce\&quot;: \&quot;2bcUD3AqQVk1QNSE5Wi2wA==\&quot;\n      \&quot;config\&quot;: {\n        \&quot;assembleFragments\&quot;: true\n        \&quot;closeTimeout\&quot;: 5000\n        \&quot;disableNagleAlgorithm\&quot;: true\n        \&quot;fragmentOutgoingMessages\&quot;: true\n        \&quot;fragmentationThreshold\&quot;: 262144\n        \&quot;maxReceivedFrameSize\&quot;: 1048576\n        \&quot;maxReceivedMessageSize\&quot;: 16777216\n        \&quot;tlsOptions\&quot;: {}\n        \&quot;webSocketVersion\&quot;: 13\n      }\n      \&quot;origin\&quot;: [undefined]\n      \&quot;protocols\&quot;: []\n      \&quot;secure\&quot;: false\n      \&quot;url\&quot;: {\n        \&quot;auth\&quot;: [null]\n        \&quot;hash\&quot;: [null]\n        \&quot;host\&quot;: \&quot;172.17.0.1:9944\&quot;\n        \&quot;hostname\&quot;: \&quot;172.17.0.1\&quot;\n        \&quot;href\&quot;: \&quot;ws://172.17.0.1:9944/\&quot;\n        \&quot;path\&quot;: \&quot;/\&quot;\n        \&quot;pathname\&quot;: \&quot;/\&quot;\n        \&quot;port\&quot;: \&quot;9944\&quot;\n        \&quot;protocol\&quot;: \&quot;ws:\&quot;\n        \&quot;query\&quot;: [null]\n        \&quot;search\&quot;: [null]\n        \&quot;slashes\&quot;: true\n      }\n    }\n    \&quot;_connection\&quot;: [undefined]\n    \&quot;_extensions\&quot;: \&quot;\&quot;\n    \&quot;_listeners\&quot;: {}\n    \&quot;_protocol\&quot;: [undefined]\n    \&quot;_readyState\&quot;: 3\n    \&quot;_url\&quot;: \&quot;ws://172.17.0.1:9944\&quot;\n    \&quot;addEventListener\&quot;: [Function]\n    \&quot;dispatchEvent\&quot;: [Function]\n    \&quot;onclose\&quot;: [null]\n    \&quot;onerror\&quot;: [null]\n    \&quot;onmessage\&quot;: [null]\n    \&quot;onopen\&quot;: [null]\n    \&quot;removeEventListener\&quot;: [Function]\n  }\n  \&quot;type\&quot;: \&quot;error\&quot;\n} was thrown, throw an Error :)&quot;,&quot;estack&quot;:&quot;Error: the object {\n  \&quot;_yaeti\&quot;: true\n  \&quot;cancelable\&quot;: true\n  \&quot;isTrusted\&quot;: false\n  \&quot;stopImmediatePropagation\&quot;: [Function]\n  \&quot;target\&quot;: {\n    \&quot;_binaryType\&quot;: \&quot;arraybuffer\&quot;\n    \&quot;_bufferedAmount\&quot;: 0\n    \&quot;_client\&quot;: {\n      \&quot;_events\&quot;: {}\n      \&quot;_eventsCount\&quot;: 0\n      \&quot;_maxListeners\&quot;: [undefined]\n      \&quot;_req\&quot;: [null]\n      \&quot;base64nonce\&quot;: \&quot;2bcUD3AqQVk1QNSE5Wi2wA==\&quot;\n      \&quot;config\&quot;: {\n        \&quot;assembleFragments\&quot;: true\n        \&quot;closeTimeout\&quot;: 5000\n        \&quot;disableNagleAlgorithm\&quot;: true\n        \&quot;fragmentOutgoingMessages\&quot;: true\n        \&quot;fragmentationThreshold\&quot;: 262144\n        \&quot;maxReceivedFrameSize\&quot;: 1048576\n        \&quot;maxReceivedMessageSize\&quot;: 16777216\n        \&quot;tlsOptions\&quot;: {}\n        \&quot;webSocketVersion\&quot;: 13\n      }\n      \&quot;origin\&quot;: [undefined]\n      \&quot;protocols\&quot;: []\n      \&quot;secure\&quot;: false\n      \&quot;url\&quot;: {\n        \&quot;auth\&quot;: [null]\n        \&quot;hash\&quot;: [null]\n        \&quot;host\&quot;: \&quot;172.17.0.1:9944\&quot;\n        \&quot;hostname\&quot;: \&quot;172.17.0.1\&quot;\n        \&quot;href\&quot;: \&quot;ws://172.17.0.1:9944/\&quot;\n        \&quot;path\&quot;: \&quot;/\&quot;\n        \&quot;pathname\&quot;: \&quot;/\&quot;\n        \&quot;port\&quot;: \&quot;9944\&quot;\n        \&quot;protocol\&quot;: \&quot;ws:\&quot;\n        \&quot;query\&quot;: [null]\n        \&quot;search\&quot;: [null]\n        \&quot;slashes\&quot;: true\n      }\n    }\n    \&quot;_connection\&quot;: [undefined]\n    \&quot;_extensions\&quot;: \&quot;\&quot;\n    \&quot;_listeners\&quot;: {}\n    \&quot;_protocol\&quot;: [undefined]\n    \&quot;_readyState\&quot;: 3\n    \&quot;_url\&quot;: \&quot;ws://172.17.0.1:9944\&quot;\n    \&quot;addEventListener\&quot;: [Function]\n    \&quot;dispatchEvent\&quot;: [Function]\n    \&quot;onclose\&quot;: [null]\n    \&quot;onerror\&quot;: [null]\n    \&quot;onmessage\&quot;: [null]\n    \&quot;onopen\&quot;: [null]\n    \&quot;removeEventListener\&quot;: [Function]\n  }\n  \&quot;type\&quot;: \&quot;error\&quot;\n} was thrown, throw an Error :)\n    at processTicksAndRejections (node:internal/process/task_queues:93:5)&quot;},&quot;uuid&quot;:&quot;b2e6905c-e4c6-43b5-bac0-0a3077c70441&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n    Eve = privateKey_1.default(&#x27;//Eve&#x27;);\n    Dave = privateKey_1.default(&#x27;//Dave&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b9b32b58-7e22-4714-b108-5c9eda9fe598&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;45d28530-d27d-4d82-9838-6541e2460bd6&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cb1fabc7-5c76-4e92-be50-fcfe5b7a6e64&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3beb3f40-7ee3-4eae-985d-723c8158894d&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d6d32986-311a-42b1-afac-ae35b5465fad&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4d02f57a-8afc-4038-9dc1-6181713627f7&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9414213c-23c1-420c-8b83-4e740c4cdd51&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7e618a73-068f-4b94-882b-149c20ddd16d&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;32e886fe-0986-4853-865d-a17bf7becede&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    Alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    Bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n    Shema = &#x27;0x31&#x27;;\n    largeShema = new Array(4097).fill(0xff);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3f8d4bc9-df4d-4a56-ab5d-00eb990f88c8&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    Alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    Bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n    Schema = &#x27;0x31&#x27;;\n    largeSchema = new Array(4097).fill(0xff);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bda5978b-aea2-4c9d-8db9-010d66209065&quot;,&quot;parentUUID&quot;:&quot;60720f68-c599-4517-bbe5-4c355843c456&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[],&quot;suites&quot;:[{&quot;uuid&quot;:&quot;883d1f24-daf5-4795-b324-5ac4e4aba2fd&quot;,&quot;title&quot;:&quot;Integration Test addCollectionAdmin(collection_id, new_admin_id):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/addCollectionAdmin.test.ts&quot;,&quot;file&quot;:&quot;/src/addCollectionAdmin.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Add collection admin.&quot;,&quot;fullTitle&quot;:&quot;Integration Test addCollectionAdmin(collection_id, new_admin_id): Add collection admin.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.equal(alice.address);\n    const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(bob.address));\n    await substrate_api_1.submitTransactionAsync(alice, changeAdminTx);\n    const adminListAfterAddAdmin = (await api.query.nft.adminList(collectionId));\n    expect(adminListAfterAddAdmin).to.be.contains(helpers_1.normalizeAccountId(bob.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ae13d452-a347-4d9d-bd67-fb8f39016e9a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Add admin using added collection admin.&quot;,&quot;fullTitle&quot;:&quot;Integration Test addCollectionAdmin(collection_id, new_admin_id): Add admin using added collection admin.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const Charlie = privateKey_1.default(&#x27;//CHARLIE&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.equal(Alice.address);\n    const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx);\n    const adminListAfterAddAdmin = (await api.query.nft.adminList(collectionId));\n    expect(adminListAfterAddAdmin).to.be.contains(helpers_1.normalizeAccountId(Bob.address));\n    const changeAdminTxCharlie = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Charlie.address));\n    await substrate_api_1.submitTransactionAsync(Bob, changeAdminTxCharlie);\n    const adminListAfterAddNewAdmin = (await api.query.nft.adminList(collectionId));\n    expect(adminListAfterAddNewAdmin).to.be.contains(helpers_1.normalizeAccountId(Bob.address));\n    expect(adminListAfterAddNewAdmin).to.be.contains(helpers_1.normalizeAccountId(Charlie.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7bd5e167-dcc1-4b2a-b891-ce5813a9fb40&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;ae13d452-a347-4d9d-bd67-fb8f39016e9a&quot;,&quot;7bd5e167-dcc1-4b2a-b891-ce5813a9fb40&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5f947ba1-65c6-442f-b9f3-13186b004d6a&quot;,&quot;title&quot;:&quot;Negative Integration Test addCollectionAdmin(collection_id, new_admin_id):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/addCollectionAdmin.test.ts&quot;,&quot;file&quot;:&quot;/src/addCollectionAdmin.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Not owner can&#x27;t add collection admin.&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test addCollectionAdmin(collection_id, new_admin_id): Not owner can&#x27;t add collection admin.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const nonOwner = privateKey_1.default(&#x27;//Bob_stash&#x27;);\n    const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(alice.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(nonOwner, changeAdminTx)).to.be.rejected;\n    const adminListAfterAddAdmin = (await api.query.nft.adminList(collectionId));\n    expect(adminListAfterAddAdmin).not.to.be.contains(helpers_1.normalizeAccountId(alice.address));\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ccd1505b-6b0b-4472-8d2c-d3a67b729421&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can&#x27;t add collection admin of not existing collection.&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test addCollectionAdmin(collection_id, new_admin_id): Can&#x27;t add collection admin of not existing collection.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = (1 &lt;&lt; 32) - 1;\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const changeOwnerTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(bob.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, changeOwnerTx)).to.be.rejected;\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0e3a766b-610e-479f-821f-6ec97d977002&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can&#x27;t add an admin to a destroyed collection.&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test addCollectionAdmin(collection_id, new_admin_id): Can&#x27;t add an admin to a destroyed collection.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n    const changeOwnerTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, changeOwnerTx)).to.be.rejected;\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;fe525657-ebd6-47b9-8970-3dafaff61f5f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Add an admin to a collection that has reached the maximum number of admins limit&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test addCollectionAdmin(collection_id, new_admin_id): Add an admin to a collection that has reached the maximum number of admins limit&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const accounts = [\n        &#x27;GsvVmjr1CBHwQHw84pPHMDxgNY3iBLz6Qn7qS3CH8qPhrHz&#x27;,\n        &#x27;FoQJpPyadYccjavVdTWxpxU7rUEaYhfLCPwXgkfD6Zat9QP&#x27;,\n        &#x27;JKspFU6ohf1Grg3Phdzj2pSgWvsYWzSfKghhfzMbdhNBWs5&#x27;,\n        &#x27;Fr4NzY1udSFFLzb2R3qxVQkwz9cZraWkyfH4h3mVVk7BK7P&#x27;,\n        &#x27;DfnTB4z7eUvYRqcGtTpFsLC69o6tvBSC1pEv8vWPZFtCkaK&#x27;,\n        &#x27;HnMAUz7r2G8G3hB27SYNyit5aJmh2a5P4eMdDtACtMFDbam&#x27;,\n        &#x27;DE14BzQ1bDXWPKeLoAqdLAm1GpyAWaWF1knF74cEZeomTBM&#x27;,\n    ];\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const chainAdminLimit = api.consts.nft.collectionAdminsLimit.toNumber();\n    expect(chainAdminLimit).to.be.equal(5);\n    for (let i = 0; i &lt; chainAdminLimit; i++) {\n        const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(accounts[i]));\n        await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx);\n        const adminListAfterAddAdmin = (await api.query.nft.adminList(collectionId));\n        expect(adminListAfterAddAdmin).to.be.contains(helpers_1.normalizeAccountId(accounts[i]));\n    }\n    const tx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(accounts[chainAdminLimit]));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;de058063-f5ef-43e7-9504-464decfd04e5&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;ccd1505b-6b0b-4472-8d2c-d3a67b729421&quot;,&quot;0e3a766b-610e-479f-821f-6ec97d977002&quot;,&quot;fe525657-ebd6-47b9-8970-3dafaff61f5f&quot;,&quot;de058063-f5ef-43e7-9504-464decfd04e5&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;db675fb6-e2f8-42d5-b6bf-4bc5fd860e90&quot;,&quot;title&quot;:&quot;Integration Test addToContractWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/addToContractWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/addToContractWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Add an address to a contract white list&quot;,&quot;fullTitle&quot;:&quot;Integration Test addToContractWhiteList Add an address to a contract white list&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4d4e712f-9ce7-4906-9c7c-ac319a2e9da2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Adding same address to white list repeatedly should not produce errors&quot;,&quot;fullTitle&quot;:&quot;Integration Test addToContractWhiteList Adding same address to white list repeatedly should not produce errors&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;22a2ad72-4361-493b-bc69-6b5974a42d50&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;4d4e712f-9ce7-4906-9c7c-ac319a2e9da2&quot;,&quot;22a2ad72-4361-493b-bc69-6b5974a42d50&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;39f3396c-6bc9-4278-bb66-137f036c1025&quot;,&quot;title&quot;:&quot;Negative Integration Test addToContractWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/addToContractWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/addToContractWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Add an address to a white list of a non-contract&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test addToContractWhiteList Add an address to a white list of a non-contract&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;11afd47c-355c-4dc3-91b7-49d462da2ee9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Add to a contract white list using a non-owner address&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test addToContractWhiteList Add to a contract white list using a non-owner address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;dc54f6a6-b79c-49c7-90cb-994667d80759&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;11afd47c-355c-4dc3-91b7-49d462da2ee9&quot;,&quot;dc54f6a6-b79c-49c7-90cb-994667d80759&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;8e0432c7-b6de-4e10-a6d7-78f4ec63c23b&quot;,&quot;title&quot;:&quot;Integration Test ext. addToWhiteList()&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/addToWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/addToWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. addToWhiteList() \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;504f61a5-c065-474c-bfd9-50bb5e0e64ce&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Execute the extrinsic with parameters: Collection ID and address to add to the white list&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. addToWhiteList() Execute the extrinsic with parameters: Collection ID and address to add to the white list&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f4af86bd-2445-483b-84af-9dd6d4e89caf&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Whitelisted minting: list restrictions&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. addToWhiteList() Whitelisted minting: list restrictions&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);\nawait helpers_1.enableWhiteListExpectSuccess(Alice, collectionId);\nawait helpers_1.enablePublicMintingExpectSuccess(Alice, collectionId);\nawait helpers_1.createItemExpectSuccess(Bob, collectionId, &#x27;NFT&#x27;, Bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;076d5bc5-61a5-49b3-8a8b-85d92ab5ea95&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;f4af86bd-2445-483b-84af-9dd6d4e89caf&quot;,&quot;076d5bc5-61a5-49b3-8a8b-85d92ab5ea95&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;54048e5b-61d8-4202-957f-c39bf6ecf002&quot;,&quot;title&quot;:&quot;Negative Integration Test ext. addToWhiteList()&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/addToWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/addToWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;White list an address in the collection that does not exist&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. addToWhiteList() White list an address in the collection that does not exist&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const tx = api.tx.nft.addToWhiteList(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;89dfc83d-b8ec-48ae-a23d-c254f74c457f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;White list an address in the collection that was destroyed&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. addToWhiteList() White list an address in the collection that was destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n    const tx = api.tx.nft.addToWhiteList(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5cc79a66-b069-4e44-b20e-e8463e79d03b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;White list an address in the collection that does not have white list access enabled&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. addToWhiteList() White list an address in the collection that does not have white list access enabled&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Ferdie = privateKey_1.default(&#x27;//Ferdie&#x27;);\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(Alice, collectionId);\n    await helpers_1.enablePublicMintingExpectSuccess(Alice, collectionId);\n    const tx = api.tx.nft.createItem(collectionId, helpers_1.normalizeAccountId(Ferdie.address), &#x27;NFT&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Ferdie, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a2acbcac-3464-4de4-a649-bd39ab868fcf&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;89dfc83d-b8ec-48ae-a23d-c254f74c457f&quot;,&quot;5cc79a66-b069-4e44-b20e-e8463e79d03b&quot;,&quot;a2acbcac-3464-4de4-a649-bd39ab868fcf&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;17759d9b-3a02-47ec-aa3b-7538324dfde4&quot;,&quot;title&quot;:&quot;Integration Test ext. addToWhiteList() with collection admin permissions:&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/addToWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/addToWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. addToWhiteList() with collection admin permissions: \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;39f215f2-a4da-40c8-a0cf-8f493363df97&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Negative. Add to the white list by regular user&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. addToWhiteList() with collection admin permissions: Negative. Add to the white list by regular user&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.addToWhiteListExpectFail(Bob, collectionId, Charlie.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0fd4da7d-13aa-4c8a-abb3-a62baf1eea08&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Execute the extrinsic with parameters: Collection ID and address to add to the white list&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. addToWhiteList() with collection admin permissions: Execute the extrinsic with parameters: Collection ID and address to add to the white list&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\nawait helpers_1.addToWhiteListExpectSuccess(Bob, collectionId, Charlie.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;64da9424-a2a1-4e24-bb62-9ec2a35b4620&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Whitelisted minting: list restrictions&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. addToWhiteList() with collection admin permissions: Whitelisted minting: list restrictions&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\nawait helpers_1.addToWhiteListExpectSuccess(Bob, collectionId, Charlie.address);\n// allowed only for collection owner\nawait helpers_1.enableWhiteListExpectSuccess(Alice, collectionId);\nawait helpers_1.enablePublicMintingExpectSuccess(Alice, collectionId);\nawait helpers_1.createItemExpectSuccess(Charlie, collectionId, &#x27;NFT&#x27;, Charlie.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f5983173-28be-48b5-833e-f0092fca2815&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;0fd4da7d-13aa-4c8a-abb3-a62baf1eea08&quot;,&quot;64da9424-a2a1-4e24-bb62-9ec2a35b4620&quot;,&quot;f5983173-28be-48b5-833e-f0092fca2815&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;7ff1c1ae-0522-4644-82a6-b8c8f61aac78&quot;,&quot;title&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/approve.test.ts&quot;,&quot;file&quot;:&quot;/src/approve.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8413cad1-b738-44b1-bc1e-894e8f250979&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Execute the extrinsic and check approvedList&quot;,&quot;fullTitle&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount): Execute the extrinsic and check approvedList&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n// nft\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nconst newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\nawait helpers_1.approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;58f34661-b685-46a5-b2fb-d62adacb20b9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Remove approval by using 0 amount&quot;,&quot;fullTitle&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount): Remove approval by using 0 amount&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n// nft\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1);\nawait helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 0);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1);\nawait helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 0);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nconst newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\nawait helpers_1.approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 1);\nawait helpers_1.approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 0);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b4a52671-3927-444e-b297-1e87fb6a1e59&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;can be called by collection owner on non-owned item when OwnerCanTransfer == true&quot;,&quot;fullTitle&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount): can be called by collection owner on non-owned item when OwnerCanTransfer == true&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nconst itemId = await helpers_1.createItemExpectSuccess(Alice, collectionId, &#x27;NFT&#x27;, Bob.address);\nawait helpers_1.approveExpectSuccess(collectionId, itemId, Alice, Charlie);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;07b9ce52-ffaa-44ed-af6e-a22d034ab1aa&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;58f34661-b685-46a5-b2fb-d62adacb20b9&quot;,&quot;b4a52671-3927-444e-b297-1e87fb6a1e59&quot;,&quot;07b9ce52-ffaa-44ed-af6e-a22d034ab1aa&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;bbd0d378-525f-4ca7-b117-9811069d2768&quot;,&quot;title&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/approve.test.ts&quot;,&quot;file&quot;:&quot;/src/approve.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0e01d3cf-8db0-42a5-af2e-afea877962a8&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Approve for a collection that does not exist&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): Approve for a collection that does not exist&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // nft\n    const nftCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.approveExpectFail(nftCollectionCount + 1, 1, Alice, Bob);\n    // fungible\n    const fungibleCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.approveExpectFail(fungibleCollectionCount + 1, 1, Alice, Bob);\n    // reFungible\n    const reFungibleCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.approveExpectFail(reFungibleCollectionCount + 1, 1, Alice, Bob);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;57f2f5eb-c881-4963-8d9d-379b5cd553f0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Approve for a collection that was destroyed&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): Approve for a collection that was destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// nft\nconst nftCollectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.destroyCollectionExpectSuccess(nftCollectionId);\nawait helpers_1.approveExpectFail(nftCollectionId, 1, Alice, Bob);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.destroyCollectionExpectSuccess(fungibleCollectionId);\nawait helpers_1.approveExpectFail(fungibleCollectionId, 1, Alice, Bob);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nawait helpers_1.destroyCollectionExpectSuccess(reFungibleCollectionId);\nawait helpers_1.approveExpectFail(reFungibleCollectionId, 1, Alice, Bob);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;38827096-3e94-4bcc-be0c-3b7c3ba7d69d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Approve transfer of a token that does not exist&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): Approve transfer of a token that does not exist&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// nft\nconst nftCollectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.approveExpectFail(nftCollectionId, 2, Alice, Bob);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nawait helpers_1.approveExpectFail(reFungibleCollectionId, 2, Alice, Bob);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ad56e131-a17c-41e6-b1e2-63802f3ed386&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Approve using the address that does not own the approved token&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): Approve using the address that does not own the approved token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n// nft\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.approveExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nconst newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\nawait helpers_1.approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b4820ad0-7f0e-4ec6-8aeb-e8ce85421337&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;should fail if approved more NFTs than owned&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): should fail if approved more NFTs than owned&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nftCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, &#x27;NFT&#x27;);\nawait helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice);\nawait helpers_1.approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8c124180-e9e6-400d-b8c2-c2c7d8fbb8fb&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;should fail if approved more ReFungibles than owned&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): should fail if approved more ReFungibles than owned&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nftCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;ReFungible&#x27;);\nawait helpers_1.transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 100, &#x27;ReFungible&#x27;);\nawait helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, 100);\nawait helpers_1.approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, 1);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;68f5b592-5b15-483b-93bf-2eaf69c9852c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;should fail if approved more Fungibles than owned&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): should fail if approved more Fungibles than owned&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nftCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 10, &#x27;Fungible&#x27;);\nawait helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, 10);\nawait helpers_1.approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, 1);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;791a84c5-527a-416d-b3df-ff271c2e1b06&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails when called by collection owner on non-owned item when OwnerCanTransfer == false&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test approve(spender, collection_id, item_id, amount): fails when called by collection owner on non-owned item when OwnerCanTransfer == false&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nconst itemId = await helpers_1.createItemExpectSuccess(Alice, collectionId, &#x27;NFT&#x27;, Bob.address);\nawait helpers_1.setCollectionLimitsExpectSuccess(Alice, collectionId, { OwnerCanTransfer: false });\nawait helpers_1.approveExpectFail(collectionId, itemId, Alice, Charlie);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4f9a097e-535d-4a36-9373-245ee1a86171&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;57f2f5eb-c881-4963-8d9d-379b5cd553f0&quot;,&quot;38827096-3e94-4bcc-be0c-3b7c3ba7d69d&quot;,&quot;ad56e131-a17c-41e6-b1e2-63802f3ed386&quot;,&quot;b4820ad0-7f0e-4ec6-8aeb-e8ce85421337&quot;,&quot;8c124180-e9e6-400d-b8c2-c2c7d8fbb8fb&quot;,&quot;68f5b592-5b15-483b-93bf-2eaf69c9852c&quot;,&quot;791a84c5-527a-416d-b3df-ff271c2e1b06&quot;,&quot;4f9a097e-535d-4a36-9373-245ee1a86171&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;ffbd7ce9-1b21-4083-814b-9c633c3f15bb&quot;,&quot;title&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount) with collection admin permissions:&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/approve.test.ts&quot;,&quot;file&quot;:&quot;/src/approve.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount) with collection admin permissions: \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6a7aa23b-1aae-4eac-88d9-26472e020fd3&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;can be called by collection admin on non-owned item&quot;,&quot;fullTitle&quot;:&quot;Integration Test approve(spender, collection_id, item_id, amount) with collection admin permissions: can be called by collection admin on non-owned item&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nconst itemId = await helpers_1.createItemExpectSuccess(Alice, collectionId, &#x27;NFT&#x27;, Alice.address);\nawait helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\nawait helpers_1.approveExpectSuccess(collectionId, itemId, Bob, Charlie);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a31ccf62-8920-4e14-9b8d-bc74a0ca7566&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a31ccf62-8920-4e14-9b8d-bc74a0ca7566&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;4d1d3346-8d28-4bd0-98d0-d2a6cac5608b&quot;,&quot;title&quot;:&quot;Block Production smoke test&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/block-production.test.ts&quot;,&quot;file&quot;:&quot;/src/block-production.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Node produces new blocks&quot;,&quot;fullTitle&quot;:&quot;Block Production smoke test Node produces new blocks&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const blocks = await getBlocks(api);\n    chai_1.expect(blocks[0]).to.be.lessThan(blocks[1]);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;44b68326-4b05-4eeb-beca-5994a2bec2fd&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;44b68326-4b05-4eeb-beca-5994a2bec2fd&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;31630dc0-1bc3-4608-9307-b6efb62d0b57&quot;,&quot;title&quot;:&quot;integration test: ext. burnItem():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/burnItem.test.ts&quot;,&quot;file&quot;:&quot;/src/burnItem.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. burnItem(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;106d90d4-57ff-46c4-8870-1c7fd149c0ab&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Burn item in NFT collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. burnItem(): Burn item in NFT collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nawait substrate_api_1.default(async (api) =&gt; {\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 0);\n    const events = await substrate_api_1.submitTransactionAsync(alice, tx);\n    const result = helpers_1.getGenericResult(events);\n    // Get the item\n    const item = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON();\n    // What to expect\n    // tslint:disable-next-line:no-unused-expression\n    expect(result.success).to.be.true;\n    // tslint:disable-next-line:no-unused-expression\n    expect(item).to.be.null;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;db281de7-6da6-4d2d-9005-21e20a011fc2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Burn item in Fungible collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. burnItem(): Burn item in Fungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;Fungible&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode, decimalPoints: 0 } });\nawait helpers_1.createItemExpectSuccess(alice, collectionId, createMode); // Helper creates 10 fungible tokens\nconst tokenId = 0; // ignored\nawait substrate_api_1.default(async (api) =&gt; {\n    // Destroy 1 of 10\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 1);\n    const events = await substrate_api_1.submitTransactionAsync(alice, tx);\n    const result = helpers_1.getGenericResult(events);\n    // Get alice balance \n    const balance = (await api.query.nft.fungibleItemList(collectionId, alice.address)).toJSON();\n    // What to expect\n    expect(result.success).to.be.true;\n    expect(balance).to.be.not.null;\n    expect(balance.Value).to.be.equal(9);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;dcfdcd23-ef39-4a88-9bf1-74de618d7535&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Burn item in ReFungible collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. burnItem(): Burn item in ReFungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;ReFungible&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nawait substrate_api_1.default(async (api) =&gt; {\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 1);\n    const events = await substrate_api_1.submitTransactionAsync(alice, tx);\n    const result = helpers_1.getGenericResult(events);\n    // Get alice balance \n    const balance = (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON();\n    // What to expect\n    expect(result.success).to.be.true;\n    expect(balance).to.be.null;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;30dfae18-db02-458d-91da-cd9ca371dabf&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Burn owned portion of item in ReFungible collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. burnItem(): Burn owned portion of item in ReFungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;ReFungible&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nawait substrate_api_1.default(async (api) =&gt; {\n    // Transfer 1/100 of the token to Bob\n    const transfertx = api.tx.nft.transfer(helpers_1.normalizeAccountId(bob.address), collectionId, tokenId, 1);\n    const events1 = await substrate_api_1.submitTransactionAsync(alice, transfertx);\n    const result1 = helpers_1.getGenericResult(events1);\n    // Get balances\n    const balanceBefore = (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON();\n    // Bob burns his portion\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 0);\n    const events2 = await substrate_api_1.submitTransactionAsync(bob, tx);\n    const result2 = helpers_1.getGenericResult(events2);\n    // Get balances \n    const balance = (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON();\n    // console.log(balance);\n    // What to expect before burning\n    expect(result1.success).to.be.true;\n    expect(balanceBefore).to.be.not.null;\n    expect(balanceBefore.Owner.length).to.be.equal(2);\n    expect(balanceBefore.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(alice.address));\n    expect(balanceBefore.Owner[0].Fraction).to.be.equal(99);\n    expect(balanceBefore.Owner[1].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(bob.address));\n    expect(balanceBefore.Owner[1].Fraction).to.be.equal(1);\n    // What to expect after burning\n    expect(result2.success).to.be.true;\n    expect(balance).to.be.not.null;\n    expect(balance.Owner.length).to.be.equal(1);\n    expect(balance.Owner[0].Fraction).to.be.equal(99);\n    expect(balance.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(alice.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;fb1160e0-cf9c-4e27-96c2-353e01a09422&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;db281de7-6da6-4d2d-9005-21e20a011fc2&quot;,&quot;dcfdcd23-ef39-4a88-9bf1-74de618d7535&quot;,&quot;30dfae18-db02-458d-91da-cd9ca371dabf&quot;,&quot;fb1160e0-cf9c-4e27-96c2-353e01a09422&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;16273f03-1dd5-4058-a84a-cc4d6aa4832c&quot;,&quot;title&quot;:&quot;integration test: ext. burnItem() with admin permissions:&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/burnItem.test.ts&quot;,&quot;file&quot;:&quot;/src/burnItem.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. burnItem() with admin permissions: \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;97633032-cfa2-424d-a9fd-74b7e9758ddd&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Burn item in NFT collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. burnItem() with admin permissions: Burn item in NFT collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nawait helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\nawait substrate_api_1.default(async (api) =&gt; {\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 0);\n    const events = await substrate_api_1.submitTransactionAsync(bob, tx);\n    const result = helpers_1.getGenericResult(events);\n    // Get the item\n    const item = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON();\n    // What to expect\n    // tslint:disable-next-line:no-unused-expression\n    expect(result.success).to.be.true;\n    // tslint:disable-next-line:no-unused-expression\n    expect(item).to.be.null;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b1fc4b6a-2a91-4fe7-b286-47e8aa974059&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;b1fc4b6a-2a91-4fe7-b286-47e8aa974059&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;452f3792-5d1a-4859-a360-cfffe0b60deb&quot;,&quot;title&quot;:&quot;Negative integration test: ext. burnItem():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/burnItem.test.ts&quot;,&quot;file&quot;:&quot;/src/burnItem.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. burnItem(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;069a8925-8f20-4ec3-9704-f3150eda6653&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Burn a token in a destroyed collection&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. burnItem(): Burn a token in a destroyed collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);\nawait substrate_api_1.default(async (api) =&gt; {\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 0);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(alice, tx);\n    };\n    await expect(badTransaction()).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;80c1a171-453f-4a6c-8b50-dd960a40599f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Burn a token that was never created&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. burnItem(): Burn a token that was never created&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = 10;\nawait substrate_api_1.default(async (api) =&gt; {\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 0);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(alice, tx);\n    };\n    await expect(badTransaction()).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;316a7d3b-76ac-43e5-af33-fc3be17131b6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Burn a token using the address that does not own it&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. burnItem(): Burn a token using the address that does not own it&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nawait substrate_api_1.default(async (api) =&gt; {\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 0);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(bob, tx);\n    };\n    await expect(badTransaction()).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;91f485b0-7d62-4170-b47e-a4e982a2ff55&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Transfer a burned a token&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. burnItem(): Transfer a burned a token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nconst tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nawait substrate_api_1.default(async (api) =&gt; {\n    const burntx = api.tx.nft.burnItem(collectionId, tokenId, 0);\n    const events1 = await substrate_api_1.submitTransactionAsync(alice, burntx);\n    const result1 = helpers_1.getGenericResult(events1);\n    expect(result1.success).to.be.true;\n    const tx = api.tx.nft.transfer(helpers_1.normalizeAccountId(bob.address), collectionId, tokenId, 0);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(alice, tx);\n    };\n    await expect(badTransaction()).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2ddeae42-6371-40cf-be36-54a3c3ae2b61&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Burn more than owned in Fungible collection&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. burnItem(): Burn more than owned in Fungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;Fungible&#x27;;\nconst collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode, decimalPoints: 0 } });\n// Helper creates 10 fungible tokens\nawait helpers_1.createItemExpectSuccess(alice, collectionId, createMode);\nconst tokenId = 0; // ignored\nawait substrate_api_1.default(async (api) =&gt; {\n    // Destroy 11 of 10\n    const tx = api.tx.nft.burnItem(collectionId, tokenId, 11);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(alice, tx);\n    };\n    await expect(badTransaction()).to.be.rejected;\n    // Get alice balance \n    const balance = (await api.query.nft.fungibleItemList(collectionId, alice.address)).toJSON();\n    // What to expect\n    expect(balance).to.be.not.null;\n    expect(balance.Value).to.be.equal(10);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;331fa2e2-1474-43f8-9e0d-fec071119639&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;80c1a171-453f-4a6c-8b50-dd960a40599f&quot;,&quot;316a7d3b-76ac-43e5-af33-fc3be17131b6&quot;,&quot;91f485b0-7d62-4170-b47e-a4e982a2ff55&quot;,&quot;2ddeae42-6371-40cf-be36-54a3c3ae2b61&quot;,&quot;331fa2e2-1474-43f8-9e0d-fec071119639&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;d9f0d67b-bfca-4457-958a-3ef539b093ca&quot;,&quot;title&quot;:&quot;Integration Test changeCollectionOwner(collection_id, new_owner):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/change-collection-owner.test.ts&quot;,&quot;file&quot;:&quot;/src/change-collection-owner.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Changing owner changes owner address&quot;,&quot;fullTitle&quot;:&quot;Integration Test changeCollectionOwner(collection_id, new_owner): Changing owner changes owner address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.deep.eq(alice.address);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await substrate_api_1.submitTransactionAsync(alice, changeOwnerTx);\n    const collectionAfterOwnerChange = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange.Owner).to.be.deep.eq(bob.address);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;106c78ce-05ec-4455-bdac-c3ce51f7f62e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;106c78ce-05ec-4455-bdac-c3ce51f7f62e&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;b0dfc56e-2c7e-4909-a8cd-3def915d0e8a&quot;,&quot;title&quot;:&quot;Integration Test changeCollectionOwner(collection_id, new_owner) special checks for exOwner:&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/change-collection-owner.test.ts&quot;,&quot;file&quot;:&quot;/src/change-collection-owner.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Changing the owner of the collection is not allowed for the former owner&quot;,&quot;fullTitle&quot;:&quot;Integration Test changeCollectionOwner(collection_id, new_owner) special checks for exOwner: Changing the owner of the collection is not allowed for the former owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.deep.eq(alice.address);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await substrate_api_1.submitTransactionAsync(alice, changeOwnerTx);\n    const badChangeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, alice.address);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, badChangeOwnerTx)).to.be.rejected;\n    const collectionAfterOwnerChange = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange.Owner).to.be.deep.eq(bob.address);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f8e8a3fc-cb38-4a7b-972e-c228ecfc7a55&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;New collectionOwner has access to sponsorship management operations in the collection&quot;,&quot;fullTitle&quot;:&quot;Integration Test changeCollectionOwner(collection_id, new_owner) special checks for exOwner: New collectionOwner has access to sponsorship management operations in the collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.deep.eq(alice.address);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await substrate_api_1.submitTransactionAsync(alice, changeOwnerTx);\n    const collectionAfterOwnerChange = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange.Owner).to.be.deep.eq(bob.address);\n    // After changing the owner of the collection, all privileged methods are available to the new owner\n    // The new owner of the collection has access to sponsorship management operations in the collection\n    await helpers_1.setCollectionSponsorExpectSuccess(collectionId, charlie.address, &#x27;//Bob&#x27;);\n    await helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Charlie&#x27;);\n    await helpers_1.removeCollectionSponsorExpectSuccess(collectionId, &#x27;//Bob&#x27;);\n    // The new owner of the collection has access to operations for managing the collection parameters\n    const collectionLimits = {\n        AccountTokenOwnershipLimit: 1,\n        SponsoredMintSize: 1,\n        TokenLimit: 1,\n        SponsorTimeout: 1,\n        OwnerCanTransfer: true,\n        OwnerCanDestroy: true,\n    };\n    const tx1 = api.tx.nft.setCollectionLimits(collectionId, collectionLimits);\n    await substrate_api_1.submitTransactionAsync(bob, tx1);\n    await helpers_1.setPublicAccessModeExpectSuccess(bob, collectionId, &#x27;WhiteList&#x27;);\n    await helpers_1.enableWhiteListExpectSuccess(bob, collectionId);\n    await helpers_1.setMintPermissionExpectSuccess(bob, collectionId, true);\n    await helpers_1.destroyCollectionExpectSuccess(collectionId, &#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;605404fb-8e36-4370-9f2f-658f09fb8e40&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;New collectionOwner has access to changeCollectionOwner&quot;,&quot;fullTitle&quot;:&quot;Integration Test changeCollectionOwner(collection_id, new_owner) special checks for exOwner: New collectionOwner has access to changeCollectionOwner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.deep.eq(alice.address);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await substrate_api_1.submitTransactionAsync(alice, changeOwnerTx);\n    const collectionAfterOwnerChange = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange.Owner).to.be.deep.eq(bob.address);\n    const changeOwnerTx2 = api.tx.nft.changeCollectionOwner(collectionId, charlie.address);\n    await substrate_api_1.submitTransactionAsync(bob, changeOwnerTx2);\n    // ownership lost\n    const collectionAfterOwnerChange2 = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange2.Owner).to.be.deep.eq(charlie.address);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cfe9d4c1-0a65-4aea-94a6-90c097e01279&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;f8e8a3fc-cb38-4a7b-972e-c228ecfc7a55&quot;,&quot;605404fb-8e36-4370-9f2f-658f09fb8e40&quot;,&quot;cfe9d4c1-0a65-4aea-94a6-90c097e01279&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;95795b78-4a0b-4ce1-aabd-b1bebb9b68b7&quot;,&quot;title&quot;:&quot;Negative Integration Test changeCollectionOwner(collection_id, new_owner):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/change-collection-owner.test.ts&quot;,&quot;file&quot;:&quot;/src/change-collection-owner.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Not owner can&#x27;t change owner.&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test changeCollectionOwner(collection_id, new_owner): Not owner can&#x27;t change owner.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(bob, changeOwnerTx)).to.be.rejected;\n    const collectionAfterOwnerChange = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange.Owner).to.be.deep.eq(alice.address);\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;50601940-15a6-43fd-8e69-e9f15b4cd27b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Collection admin can&#x27;t change owner.&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test changeCollectionOwner(collection_id, new_owner): Collection admin can&#x27;t change owner.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    await helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(bob, changeOwnerTx)).to.be.rejected;\n    const collectionAfterOwnerChange = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange.Owner).to.be.deep.eq(alice.address);\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0dfe81ed-ad93-4968-93aa-c0611841e925&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can&#x27;t change owner of a non-existing collection.&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test changeCollectionOwner(collection_id, new_owner): Can&#x27;t change owner of a non-existing collection.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = (1 &lt;&lt; 32) - 1;\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, changeOwnerTx)).to.be.rejected;\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a503acea-f020-48f7-babe-7b35dbe8b5e4&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Former collectionOwner not allowed to sponsorship management operations in the collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test changeCollectionOwner(collection_id, new_owner): Former collectionOwner not allowed to sponsorship management operations in the collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.deep.eq(alice.address);\n    const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);\n    await substrate_api_1.submitTransactionAsync(alice, changeOwnerTx);\n    const badChangeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, alice.address);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, badChangeOwnerTx)).to.be.rejected;\n    const collectionAfterOwnerChange = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collectionAfterOwnerChange.Owner).to.be.deep.eq(bob.address);\n    await helpers_1.setCollectionSponsorExpectFailure(collectionId, charlie.address, &#x27;//Alice&#x27;);\n    await helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Alice&#x27;);\n    await helpers_1.removeCollectionSponsorExpectFailure(collectionId, &#x27;//Alice&#x27;);\n    const collectionLimits = {\n        AccountTokenOwnershipLimit: 1,\n        SponsoredMintSize: 1,\n        TokenLimit: 1,\n        SponsorTimeout: 1,\n        OwnerCanTransfer: true,\n        OwnerCanDestroy: true,\n    };\n    const tx1 = api.tx.nft.setCollectionLimits(collectionId, collectionLimits);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, tx1)).to.be.rejected;\n    await helpers_1.enableWhiteListExpectFail(alice, collectionId);\n    await helpers_1.setMintPermissionExpectFailure(alice, collectionId, true);\n    await helpers_1.destroyCollectionExpectFailure(collectionId, &#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;89038078-bfeb-4ae6-89ec-47a162b45901&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;50601940-15a6-43fd-8e69-e9f15b4cd27b&quot;,&quot;0dfe81ed-ad93-4968-93aa-c0611841e925&quot;,&quot;a503acea-f020-48f7-babe-7b35dbe8b5e4&quot;,&quot;89038078-bfeb-4ae6-89ec-47a162b45901&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;55f5e4e4-f4fb-4ad7-930e-665826d4cf36&quot;,&quot;title&quot;:&quot;Burn Item event &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/check-event/burnItemEvent.test.ts&quot;,&quot;file&quot;:&quot;/src/check-event/burnItemEvent.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Burn Item event  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1cd0ef23-8ba6-42e1-9f3b-c3c8b2507b93&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Check event from burnItem(): &quot;,&quot;fullTitle&quot;:&quot;Burn Item event  Check event from burnItem(): &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionID = await helpers_1.createCollectionExpectSuccess();\n    const itemID = await helpers_1.createItemExpectSuccess(Alice, collectionID, &#x27;NFT&#x27;);\n    const burnItem = api.tx.nft.burnItem(collectionID, itemID, 1);\n    const events = await substrate_api_1.submitTransactionAsync(Alice, burnItem);\n    const msg = JSON.stringify(helpers_1.nftEventMessage(events));\n    expect(msg).to.be.contain(checkSection);\n    expect(msg).to.be.contain(checkTreasury);\n    expect(msg).to.be.contain(checkSystem);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;de5f50c1-af90-42df-93c3-2934badb6102&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;de5f50c1-af90-42df-93c3-2934badb6102&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;3878d237-7941-4f7d-9402-70c55b27ed0a&quot;,&quot;title&quot;:&quot;Create collection event &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/check-event/createCollectionEvent.test.ts&quot;,&quot;file&quot;:&quot;/src/check-event/createCollectionEvent.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Create collection event  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1df63224-8d83-4ad7-865e-380947ae6c9a&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Check event from createCollection(): &quot;,&quot;fullTitle&quot;:&quot;Create collection event  Check event from createCollection(): &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const tx = api.tx.nft.createCollection(&#x27;0x31&#x27;, &#x27;0x32&#x27;, &#x27;0x33&#x27;, &#x27;NFT&#x27;);\n    const events = await substrate_api_1.submitTransactionAsync(Alice, tx);\n    const msg = JSON.stringify(helpers_1.nftEventMessage(events));\n    expect(msg).to.be.contain(checkSection);\n    expect(msg).to.be.contain(checkTreasury);\n    expect(msg).to.be.contain(checkSystem);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;839bfe64-f4fa-4411-860f-f9efd40ed5db&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;839bfe64-f4fa-4411-860f-f9efd40ed5db&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;400efadc-b579-4d9f-976c-109ef146f79c&quot;,&quot;title&quot;:&quot;Create Item event &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/check-event/createItemEvent.test.ts&quot;,&quot;file&quot;:&quot;/src/check-event/createItemEvent.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Create Item event  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b67f0a1f-8a42-4364-a20d-e252defd1183&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Check event from createItem(): &quot;,&quot;fullTitle&quot;:&quot;Create Item event  Check event from createItem(): &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionID = await helpers_1.createCollectionExpectSuccess();\n    const createItem = api.tx.nft.createItem(collectionID, Alice.address, &#x27;NFT&#x27;);\n    const events = await substrate_api_1.submitTransactionAsync(Alice, createItem);\n    const msg = JSON.stringify(helpers_1.nftEventMessage(events));\n    expect(msg).to.be.contain(checkSection);\n    expect(msg).to.be.contain(checkTreasury);\n    expect(msg).to.be.contain(checkSystem);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;85d467a8-89df-4b5d-8cc1-0196eb9f93f5&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;85d467a8-89df-4b5d-8cc1-0196eb9f93f5&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;3b11cc06-de4c-4c51-a1fe-3f51dd00189e&quot;,&quot;title&quot;:&quot;Create Multiple Items Event event &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/check-event/createMultipleItemsEvent.test.ts&quot;,&quot;file&quot;:&quot;/src/check-event/createMultipleItemsEvent.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Create Multiple Items Event event  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ca3bcd24-41a8-4305-b378-e11c014b60c6&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Check event from createMultipleItems(): &quot;,&quot;fullTitle&quot;:&quot;Create Multiple Items Event event  Check event from createMultipleItems(): &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionID = await helpers_1.createCollectionExpectSuccess();\n    const args = [{ nft: [&#x27;0x31&#x27;, &#x27;0x31&#x27;] }, { nft: [&#x27;0x32&#x27;, &#x27;0x32&#x27;] }, { nft: [&#x27;0x33&#x27;, &#x27;0x33&#x27;] }];\n    const createMultipleItems = api.tx.nft.createMultipleItems(collectionID, Alice.address, args);\n    const events = await substrate_api_1.submitTransactionAsync(Alice, createMultipleItems);\n    const msg = JSON.stringify(helpers_1.nftEventMessage(events));\n    expect(msg).to.be.contain(checkSection);\n    expect(msg).to.be.contain(checkTreasury);\n    expect(msg).to.be.contain(checkSystem);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;55b6d724-0365-4f9a-b8e4-9b033966390b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;55b6d724-0365-4f9a-b8e4-9b033966390b&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5bf9438d-76d2-4721-aeb3-173ec73ce3e4&quot;,&quot;title&quot;:&quot;Destroy collection event &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/check-event/destroyCollectionEvent.test.ts&quot;,&quot;file&quot;:&quot;/src/check-event/destroyCollectionEvent.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Destroy collection event  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8466e150-ec40-4916-8b9d-40ed46043246&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Check event from destroyCollection(): &quot;,&quot;fullTitle&quot;:&quot;Destroy collection event  Check event from destroyCollection(): &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionID = await helpers_1.createCollectionExpectSuccess();\n    const destroyCollection = api.tx.nft.destroyCollection(collectionID);\n    const events = await substrate_api_1.submitTransactionAsync(Alice, destroyCollection);\n    const msg = JSON.stringify(helpers_1.nftEventMessage(events));\n    expect(msg).to.be.contain(checkTreasury);\n    expect(msg).to.be.contain(checkSystem);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;39b42382-7bc8-4552-92a2-cb34b6c1c7be&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;39b42382-7bc8-4552-92a2-cb34b6c1c7be&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;97c4b3e9-85ed-4a1a-947e-6e3984151fdd&quot;,&quot;title&quot;:&quot;Transfer event &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/check-event/transferEvent.test.ts&quot;,&quot;file&quot;:&quot;/src/check-event/transferEvent.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Transfer event  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;de4cf4d9-1530-4052-8115-ab14d42cc92a&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Check event from transfer(): &quot;,&quot;fullTitle&quot;:&quot;Transfer event  Check event from transfer(): &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionID = await helpers_1.createCollectionExpectSuccess();\n    const itemID = await helpers_1.createItemExpectSuccess(Alice, collectionID, &#x27;NFT&#x27;);\n    const transfer = api.tx.nft.transfer(Bob.address, collectionID, itemID, 1);\n    const events = await substrate_api_1.submitTransactionAsync(Alice, transfer);\n    const msg = JSON.stringify(helpers_1.nftEventMessage(events));\n    expect(msg).to.be.contain(checkSection);\n    expect(msg).to.be.contain(checkTreasury);\n    expect(msg).to.be.contain(checkSystem);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e6598d9d-b6b2-4e48-8525-f6abba53d30b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;e6598d9d-b6b2-4e48-8525-f6abba53d30b&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;9f3352a8-e9c4-43a8-9086-50a563ee5eee&quot;,&quot;title&quot;:&quot;Transfer from event &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/check-event/transferFromEvent.test.ts&quot;,&quot;file&quot;:&quot;/src/check-event/transferFromEvent.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Transfer from event  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4a46b244-6070-497d-bcd1-33582dd9b4a8&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Check event from transferFrom(): &quot;,&quot;fullTitle&quot;:&quot;Transfer from event  Check event from transferFrom(): &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionID = await helpers_1.createCollectionExpectSuccess();\n    const itemID = await helpers_1.createItemExpectSuccess(Alice, collectionID, &#x27;NFT&#x27;);\n    const transferFrom = api.tx.nft.transferFrom(Alice.address, Bob.address, collectionID, itemID, 1);\n    const events = await substrate_api_1.submitTransactionAsync(Alice, transferFrom);\n    const msg = JSON.stringify(helpers_1.nftEventMessage(events));\n    expect(msg).to.be.contain(checkSection);\n    expect(msg).to.be.contain(checkTreasury);\n    expect(msg).to.be.contain(checkSystem);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;fb883220-daa6-4a72-994b-9bc040bfbab5&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;fb883220-daa6-4a72-994b-9bc040bfbab5&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;82e9f645-db19-47cc-9d86-b840fec2a2b3&quot;,&quot;title&quot;:&quot;Deleting a collection while add address to whitelist: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/adminDestroyCollection.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/adminDestroyCollection.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Adding an address to the collection whitelist in a block by the admin, and deleting the collection by the owner &quot;,&quot;fullTitle&quot;:&quot;Deleting a collection while add address to whitelist:  Adding an address to the collection whitelist in a block by the admin, and deleting the collection by the owner &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    await timeoutPromise(10000);\n    //\n    const addWhitelistAdm = api.tx.nft.addToWhiteList(collectionId, Ferdie.address);\n    const destroyCollection = api.tx.nft.destroyCollection(collectionId);\n    await Promise.all([\n        addWhitelistAdm.signAndSend(Bob),\n        destroyCollection.signAndSend(Alice),\n    ]);\n    await timeoutPromise(10000);\n    let whiteList = false;\n    whiteList = (await api.query.nft.whiteList(collectionId, Ferdie.address)).toJSON();\n    // tslint:disable-next-line: no-unused-expression\n    expect(whiteList).to.be.false;\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cd163573-90a0-4ccd-8a1f-eb8335357a70&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;cd163573-90a0-4ccd-8a1f-eb8335357a70&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;fb3e573e-5ef7-48e5-b965-25da2f42c9b5&quot;,&quot;title&quot;:&quot;Admin limit exceeded collection: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/adminLimitsOff.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/adminLimitsOff.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;In one block, the owner and admin add new admins to the collection more than the limit &quot;,&quot;fullTitle&quot;:&quot;Admin limit exceeded collection:  In one block, the owner and admin add new admins to the collection more than the limit &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const chainAdminLimit = api.consts.nft.collectionAdminsLimit.toNumber();\n    expect(chainAdminLimit).to.be.equal(5);\n    const changeAdminTx1 = api.tx.nft.addCollectionAdmin(collectionId, Eve.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx1);\n    const changeAdminTx2 = api.tx.nft.addCollectionAdmin(collectionId, Dave.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx2);\n    const changeAdminTx3 = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx3);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    const addAdmOne = api.tx.nft.addCollectionAdmin(collectionId, Ferdie.address);\n    const addAdmTwo = api.tx.nft.addCollectionAdmin(collectionId, Charlie.address);\n    await Promise.all([\n        addAdmOne.signAndSend(Bob),\n        addAdmTwo.signAndSend(Alice),\n    ]);\n    await timeoutPromise(10000);\n    const changeAdminTx4 = api.tx.nft.addCollectionAdmin(collectionId, Alice.address);\n    // tslint:disable-next-line: no-unused-expression\n    expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, changeAdminTx4)).to.be.rejected;\n    const adminListAfterAddAdmin = (await api.query.nft.adminList(collectionId));\n    expect(adminListAfterAddAdmin).to.be.contains(Eve.address);\n    expect(adminListAfterAddAdmin).to.be.contains(Ferdie.address);\n    expect(adminListAfterAddAdmin).not.to.be.contains(Alice.address);\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c640aa10-0120-452d-b162-4a2c6f356f7f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;c640aa10-0120-452d-b162-4a2c6f356f7f&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;8cce881e-bbaf-4146-8d8f-006fcca425db&quot;,&quot;title&quot;:&quot;Deprivation of admin rights: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/adminRightsOff.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/adminRightsOff.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;In the block, the collection admin adds a token or changes data, and the collection owner deprives the admin of rights &quot;,&quot;fullTitle&quot;:&quot;Deprivation of admin rights:  In the block, the collection admin adds a token or changes data, and the collection owner deprives the admin of rights &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    await timeoutPromise(10000);\n    const args = [{ nft: [&#x27;0x31&#x27;, &#x27;0x31&#x27;] }, { nft: [&#x27;0x32&#x27;, &#x27;0x32&#x27;] }, { nft: [&#x27;0x33&#x27;, &#x27;0x33&#x27;] }];\n    const addItemAdm = api.tx.nft.createMultipleItems(collectionId, Bob.address, args);\n    const removeAdm = api.tx.nft.removeCollectionAdmin(collectionId, Bob.address);\n    await Promise.all([\n        addItemAdm.signAndSend(Bob),\n        removeAdm.signAndSend(Alice),\n    ]);\n    await timeoutPromise(10000);\n    const itemsListIndex = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndex.toNumber()).to.be.equal(0);\n    const adminList = (await api.query.nft.adminList(collectionId));\n    expect(adminList).not.to.be.contains(Bob.address);\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4e2db444-8992-4e8c-99bd-2e457e34490b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;4e2db444-8992-4e8c-99bd-2e457e34490b&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;e166ac25-fe9e-4b1d-bb76-6d3e69af3c78&quot;,&quot;title&quot;:&quot;Admin vs Owner changes token: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/admVsOwnerChanges.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/admVsOwnerChanges.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;The collection admin changes the owner of the token and in the same block the current owner transfers the token to another address &quot;,&quot;fullTitle&quot;:&quot;Admin vs Owner changes token:  The collection admin changes the owner of the token and in the same block the current owner transfers the token to another address &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const changeAdminTxBob = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTxBob);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    const changeAdminTxFerdie = api.tx.nft.addCollectionAdmin(collectionId, Ferdie.address);\n    await substrate_api_1.submitTransactionAsync(Bob, changeAdminTxFerdie);\n    const itemId = await helpers_1.createItemExpectSuccess(Ferdie, collectionId, &#x27;NFT&#x27;);\n    //\n    const changeOwner = api.tx.nft.transferFrom(Ferdie.address, Bob.address, collectionId, itemId, 1);\n    const approve = api.tx.nft.approve(Bob.address, collectionId, itemId, 1);\n    const sendItem = api.tx.nft.transfer(Alice.address, collectionId, itemId, 1);\n    await Promise.all([\n        changeOwner.signAndSend(Alice),\n        approve.signAndSend(Bob),\n        sendItem.signAndSend(Ferdie),\n    ]);\n    const itemBefore = await api.query.nft.nftItemList(collectionId, itemId);\n    expect(itemBefore.Owner).not.to.be.eq(Bob.address);\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;27b84ed9-5b8c-466e-bd56-0775187d9d84&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;27b84ed9-5b8c-466e-bd56-0775187d9d84&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;6939e386-9b18-4f40-9a94-dd723b626a2d&quot;,&quot;title&quot;:&quot;Admin vs Owner changes the data in the token: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/admVsOwnerData.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/admVsOwnerData.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;The collection admin changes the data in the token and in the same block the token owner also changes the data in it &quot;,&quot;fullTitle&quot;:&quot;Admin vs Owner changes the data in the token:  The collection admin changes the data in the token and in the same block the token owner also changes the data in it &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const AliceData = 1;\n    const BobData = 2;\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    const itemId = await helpers_1.createItemExpectSuccess(Bob, collectionId, &#x27;NFT&#x27;);\n    //\n    // tslint:disable-next-line: max-line-length\n    const AliceTx = api.tx.nft.setVariableMetaData(collectionId, itemId, AliceData.toString());\n    // tslint:disable-next-line: max-line-length\n    const BobTx = api.tx.nft.setVariableMetaData(collectionId, itemId, BobData.toString());\n    await Promise.all([\n        AliceTx.signAndSend(Alice),\n        BobTx.signAndSend(Bob),\n    ]);\n    const item = await api.query.nft.nftItemList(collectionId, itemId);\n    expect(item.VariableData).not.to.be.eq(null); // Pseudo-random selection of one of two values\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c5a847a2-b5d4-4507-8c0b-8046d987094b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;c5a847a2-b5d4-4507-8c0b-8046d987094b&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;cde93d62-bcf0-4cdd-a2a8-cb94d55b17e3&quot;,&quot;title&quot;:&quot;Admin vs Owner take token: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/admVsOwnerTake.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/admVsOwnerTake.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;The collection admin burns the token and in the same block the token owner performs a transaction on it &quot;,&quot;fullTitle&quot;:&quot;Admin vs Owner take token:  The collection admin burns the token and in the same block the token owner performs a transaction on it &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTx);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    const itemId = await helpers_1.createItemExpectSuccess(Bob, collectionId, &#x27;NFT&#x27;);\n    //\n    const sendItem = api.tx.nft.transfer(Ferdie.address, collectionId, itemId, 1);\n    const burnItem = api.tx.nft.burnItem(collectionId, itemId, 1);\n    await Promise.all([\n        sendItem.signAndSend(Bob),\n        burnItem.signAndSend(Alice),\n    ]);\n    await timeoutPromise(10000);\n    let itemBurn = false;\n    itemBurn = (await (api.query.nft.nftItemList(collectionId, itemId))).toJSON();\n    // tslint:disable-next-line: no-unused-expression\n    expect(itemBurn).to.be.null;\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a7a52e31-98d9-45ae-9ac4-ed5de7ab8813&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a7a52e31-98d9-45ae-9ac4-ed5de7ab8813&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;4d7194c7-81f8-4360-aca3-7b76daacc991&quot;,&quot;title&quot;:&quot;Sponsored with new owner &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/setSponsorNewOwner.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/setSponsorNewOwner.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Confirmation of sponsorship of a collection in a block with a change in the owner of the collection: &quot;,&quot;fullTitle&quot;:&quot;Sponsored with new owner  Confirmation of sponsorship of a collection in a block with a change in the owner of the collection: &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.setCollectionSponsorExpectSuccess(collectionId, Bob.address);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    await timeoutPromise(10000);\n    const confirmSponsorship = api.tx.nft.confirmSponsorship(collectionId);\n    const changeCollectionOwner = api.tx.nft.changeCollectionOwner(collectionId, Ferdie.address);\n    await Promise.all([\n        confirmSponsorship.signAndSend(Bob),\n        changeCollectionOwner.signAndSend(Alice),\n    ]);\n    await timeoutPromise(10000);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Sponsorship.Confirmed).to.be.eq(Bob.address);\n    expect(collection.Owner).to.be.eq(Ferdie.address);\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0aa8b150-ae6a-492d-ae2a-a0cf97b67b83&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;0aa8b150-ae6a-492d-ae2a-a0cf97b67b83&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;c2823806-a267-4156-a25c-67f011de6be0&quot;,&quot;title&quot;:&quot;Payment of commission if one block: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/sponsorPayments.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/sponsorPayments.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Payment of commission if one block contains transactions for payment from the sponsor&#x27;s balance and his (sponsor&#x27;s) exclusion from the collection &quot;,&quot;fullTitle&quot;:&quot;Payment of commission if one block:  Payment of commission if one block contains transactions for payment from the sponsor&#x27;s balance and his (sponsor&#x27;s) exclusion from the collection &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const changeAdminTxBob = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);\n    await substrate_api_1.submitTransactionAsync(Alice, changeAdminTxBob);\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    const itemId = await helpers_1.createItemExpectSuccess(Bob, collectionId, &#x27;NFT&#x27;);\n    await helpers_1.setCollectionSponsorExpectSuccess(collectionId, Bob.address);\n    await helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\n    const [alicesBalanceBefore, bobsBalanceBefore] = await get_balance_1.default(api, [accounts_1.alicesPublicKey, accounts_1.bobsPublicKey]);\n    const sendItem = api.tx.nft.transfer(Alice.address, collectionId, itemId, 1);\n    const revokeSponsor = api.tx.nft.removeCollectionSponsor(collectionId);\n    await Promise.all([\n        sendItem.signAndSend(Bob),\n        revokeSponsor.signAndSend(Alice),\n    ]);\n    const [alicesBalanceAfter, bobsBalanceAfter] = await get_balance_1.default(api, [accounts_1.alicesPublicKey, accounts_1.bobsPublicKey]);\n    // tslint:disable-next-line:no-unused-expression\n    expect(alicesBalanceAfter === alicesBalanceBefore).to.be.true;\n    // tslint:disable-next-line:no-unused-expression\n    expect(bobsBalanceAfter === bobsBalanceBefore).to.be.true;\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f6b9cccb-f110-4593-ab4c-a952cd22e29d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;f6b9cccb-f110-4593-ab4c-a952cd22e29d&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;e269ff0c-dc84-41c5-aac7-4ad5587db8c7&quot;,&quot;title&quot;:&quot;Token limit exceeded collection: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/tokenLimitsOff.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/tokenLimitsOff.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;The number of tokens created in the collection from different addresses exceeds the allowed collection limit &quot;,&quot;fullTitle&quot;:&quot;Token limit exceeded collection:  The number of tokens created in the collection from different addresses exceeds the allowed collection limit &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.setMintPermissionExpectSuccess(Alice, collectionId, true);\n    await helpers_1.addToWhiteListExpectSuccess(Alice, collectionId, Ferdie.address);\n    await helpers_1.addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);\n    const setCollectionLim = api.tx.nft.setCollectionLimits(collectionId, {\n        AccountTokenOwnershipLimit,\n        SponsoredMintSize,\n        TokenLimit,\n        // tslint:disable-next-line: object-literal-sort-keys\n        SponsorTimeout,\n        OwnerCanTransfer,\n        OwnerCanDestroy,\n    });\n    const subTx = await substrate_api_1.submitTransactionAsync(Alice, setCollectionLim);\n    const subTxTesult = helpers_1.getCreateItemResult(subTx);\n    // tslint:disable-next-line:no-unused-expression\n    expect(subTxTesult.success).to.be.true;\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    await timeoutPromise(10000);\n    const args = [{ nft: [&#x27;0x31&#x27;, &#x27;0x31&#x27;] }, { nft: [&#x27;0x32&#x27;, &#x27;0x32&#x27;] }, { nft: [&#x27;0x33&#x27;, &#x27;0x33&#x27;] }];\n    const mintItemOne = api.tx.nft\n        .createMultipleItems(collectionId, Ferdie.address, args);\n    const mintItemTwo = api.tx.nft\n        .createMultipleItems(collectionId, Bob.address, args);\n    await Promise.all([\n        mintItemOne.signAndSend(Ferdie),\n        mintItemTwo.signAndSend(Bob),\n    ]);\n    await timeoutPromise(10000);\n    const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexAfter.toNumber()).to.be.equal(3);\n    // TokenLimit = 4. The first transaction is successful. The second should fail.\n    await timeoutPromise(10000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;91e83b7d-2a17-4a68-b90a-0c5e18f631fd&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;91e83b7d-2a17-4a68-b90a-0c5e18f631fd&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5de00d4a-8d19-4f86-9cb4-5a2c6282dcc4&quot;,&quot;title&quot;:&quot;Turns off minting mode: &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/collision-tests/turnsOffMinting.test.ts&quot;,&quot;file&quot;:&quot;/src/collision-tests/turnsOffMinting.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;The collection owner turns off minting mode and there are minting transactions in the same block &quot;,&quot;fullTitle&quot;:&quot;Turns off minting mode:  The collection owner turns off minting mode and there are minting transactions in the same block &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const timeoutPromise = (timeout) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, timeout));\n    await helpers_1.setMintPermissionExpectSuccess(Alice, collectionId, true);\n    await helpers_1.addToWhiteListExpectSuccess(Alice, collectionId, Ferdie.address);\n    const mintItem = api.tx.nft.createItem(collectionId, Ferdie.address, &#x27;NFT&#x27;);\n    const offMinting = api.tx.nft.setMintPermission(collectionId, false);\n    await Promise.all([\n        mintItem.signAndSend(Ferdie),\n        offMinting.signAndSend(Alice),\n    ]);\n    let itemList = false;\n    itemList = (await (api.query.nft.nftItemList(collectionId, mintItem))).toJSON();\n    // tslint:disable-next-line: no-unused-expression\n    expect(itemList).to.be.null;\n    await timeoutPromise(20000);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6040e71a-673f-40ae-8e89-53fe146b9821&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;6040e71a-673f-40ae-8e89-53fe146b9821&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;766dec6b-db31-4e6a-8bb4-22ee7c8aa73e&quot;,&quot;title&quot;:&quot;integration test: ext. confirmSponsorship():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/confirmSponsorship.test.ts&quot;,&quot;file&quot;:&quot;/src/confirmSponsorship.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n    charlie = keyring.addFromUri(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b4286b27-ec55-496e-a1f7-6c9a8189ea51&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Confirm collection sponsorship&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): Confirm collection sponsorship&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c785a61c-949d-48c4-82ee-4e7d03ab6683&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Add sponsor to a collection after the same sponsor was already added and confirmed&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): Add sponsor to a collection after the same sponsor was already added and confirmed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4c8ba9f7-5223-4e94-984d-dc13ee0fc326&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Add new sponsor to a collection after another sponsor was already added and confirmed&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): Add new sponsor to a collection after another sponsor was already added and confirmed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, charlie.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a9148812-c2fa-490d-b5da-3386918aca3e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;NFT: Transfer fees are paid by the sponsor after confirmation&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): NFT: Transfer fees are paid by the sponsor after confirmation&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait substrate_api_1.default(async (api) =&gt; {\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Mint token for unused address\n    const itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;, zeroBalance.address);\n    // Transfer this tokens from unused address to Alice\n    const zeroToAlice = api.tx.nft.transfer(helpers_1.normalizeAccountId(zeroBalance.address), collectionId, itemId, 0);\n    const events = await substrate_api_1.submitTransactionAsync(zeroBalance, zeroToAlice);\n    const result = helpers_1.getGenericResult(events);\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    expect(result.success).to.be.true;\n    expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9d5c80ab-b396-4d32-89ce-e0a05105ebb1&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Fungible: Transfer fees are paid by the sponsor after confirmation&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): Fungible: Transfer fees are paid by the sponsor after confirmation&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait substrate_api_1.default(async (api) =&gt; {\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Mint token for unused address\n    const itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;Fungible&#x27;, zeroBalance.address);\n    // Transfer this tokens from unused address to Alice\n    const zeroToAlice = api.tx.nft.transfer(helpers_1.normalizeAccountId(zeroBalance.address), collectionId, itemId, 1);\n    const events1 = await substrate_api_1.submitTransactionAsync(zeroBalance, zeroToAlice);\n    const result1 = helpers_1.getGenericResult(events1);\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    expect(result1.success).to.be.true;\n    expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;59ba5ffb-0029-4374-962d-79b49bc98ed0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;ReFungible: Transfer fees are paid by the sponsor after confirmation&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): ReFungible: Transfer fees are paid by the sponsor after confirmation&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait substrate_api_1.default(async (api) =&gt; {\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Mint token for unused address\n    const itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;ReFungible&#x27;, zeroBalance.address);\n    // Transfer this tokens from unused address to Alice\n    const zeroToAlice = api.tx.nft.transfer(helpers_1.normalizeAccountId(zeroBalance.address), collectionId, itemId, 1);\n    const events1 = await substrate_api_1.submitTransactionAsync(zeroBalance, zeroToAlice);\n    const result1 = helpers_1.getGenericResult(events1);\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    expect(result1.success).to.be.true;\n    expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1b0854b2-3545-4b50-9d6d-5147d5ee4674&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;CreateItem fees are paid by the sponsor after confirmation&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): CreateItem fees are paid by the sponsor after confirmation&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\n// Enable collection white list \nawait helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\n// Enable public minting\nawait helpers_1.enablePublicMintingExpectSuccess(alice, collectionId);\n// Create Item \nawait substrate_api_1.default(async (api) =&gt; {\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Add zeroBalance address to white list\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionId, zeroBalance.address);\n    // Mint token using unused address as signer\n    await helpers_1.createItemExpectSuccess(zeroBalance, collectionId, &#x27;NFT&#x27;, zeroBalance.address);\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4971b24f-c530-424f-8564-373c9ceb0387&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;NFT: Sponsoring of transfers is rate limited&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): NFT: Sponsoring of transfers is rate limited&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait substrate_api_1.default(async (api) =&gt; {\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Mint token for alice\n    const itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;, alice.address);\n    // Transfer this token from Alice to unused address and back\n    // Alice to Zero gets sponsored\n    const aliceToZero = api.tx.nft.transfer(helpers_1.normalizeAccountId(zeroBalance.address), collectionId, itemId, 0);\n    const events1 = await substrate_api_1.submitTransactionAsync(alice, aliceToZero);\n    const result1 = helpers_1.getGenericResult(events1);\n    // Second transfer should fail\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    const zeroToAlice = api.tx.nft.transfer(helpers_1.normalizeAccountId(alice.address), collectionId, itemId, 0);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(zeroBalance, zeroToAlice);\n    };\n    await expect(badTransaction()).to.be.rejectedWith(&#x27;Inability to pay some fees&#x27;);\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Try again after Zero gets some balance - now it should succeed\n    const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);\n    await substrate_api_1.submitTransactionAsync(alice, balancetx);\n    const events2 = await substrate_api_1.submitTransactionAsync(zeroBalance, zeroToAlice);\n    const result2 = helpers_1.getGenericResult(events2);\n    expect(result1.success).to.be.true;\n    expect(result2.success).to.be.true;\n    expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d9644e67-7f38-4fbe-8b30-72036d7f6038&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Fungible: Sponsoring is rate limited&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): Fungible: Sponsoring is rate limited&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait substrate_api_1.default(async (api) =&gt; {\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Mint token for unused address\n    const itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;Fungible&#x27;, zeroBalance.address);\n    // Transfer this tokens in parts from unused address to Alice\n    const zeroToAlice = api.tx.nft.transfer(helpers_1.normalizeAccountId(zeroBalance.address), collectionId, itemId, 1);\n    const events1 = await substrate_api_1.submitTransactionAsync(zeroBalance, zeroToAlice);\n    const result1 = helpers_1.getGenericResult(events1);\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(zeroBalance, zeroToAlice)).to.be.rejected;\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Try again after Zero gets some balance - now it should succeed\n    const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);\n    await substrate_api_1.submitTransactionAsync(alice, balancetx);\n    const events2 = await substrate_api_1.submitTransactionAsync(zeroBalance, zeroToAlice);\n    const result2 = helpers_1.getGenericResult(events2);\n    expect(result1.success).to.be.true;\n    expect(result2.success).to.be.true;\n    expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;258524bd-66ff-4227-8225-59b08893ad3b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;ReFungible: Sponsoring is rate limited&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): ReFungible: Sponsoring is rate limited&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait substrate_api_1.default(async (api) =&gt; {\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Mint token for alice\n    const itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;ReFungible&#x27;, alice.address);\n    // Transfer this token from Alice to unused address and back\n    // Alice to Zero gets sponsored\n    const aliceToZero = api.tx.nft.transfer(helpers_1.normalizeAccountId(zeroBalance.address), collectionId, itemId, 1);\n    const events1 = await substrate_api_1.submitTransactionAsync(alice, aliceToZero);\n    const result1 = helpers_1.getGenericResult(events1);\n    // Second transfer should fail\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    const zeroToAlice = api.tx.nft.transfer(helpers_1.normalizeAccountId(alice.address), collectionId, itemId, 1);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(zeroBalance, zeroToAlice);\n    };\n    await expect(badTransaction()).to.be.rejectedWith(&#x27;Inability to pay some fees&#x27;);\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Try again after Zero gets some balance - now it should succeed\n    const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);\n    await substrate_api_1.submitTransactionAsync(alice, balancetx);\n    const events2 = await substrate_api_1.submitTransactionAsync(zeroBalance, zeroToAlice);\n    const result2 = helpers_1.getGenericResult(events2);\n    expect(result1.success).to.be.true;\n    expect(result2.success).to.be.true;\n    expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;48f50d22-3286-43cb-a84b-a74d393ec548&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;NFT: Sponsoring of createItem is rate limited&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. confirmSponsorship(): NFT: Sponsoring of createItem is rate limited&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\n// Enable collection white list \nawait helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\n// Enable public minting\nawait helpers_1.enablePublicMintingExpectSuccess(alice, collectionId);\nawait substrate_api_1.default(async (api) =&gt; {\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Add zeroBalance address to white list\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionId, zeroBalance.address);\n    // Mint token using unused address as signer - gets sponsored\n    await helpers_1.createItemExpectSuccess(zeroBalance, collectionId, &#x27;NFT&#x27;, zeroBalance.address);\n    // Second mint should fail\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    const consoleError = console.error;\n    const consoleLog = console.log;\n    console.error = () =&gt; { };\n    console.log = () =&gt; { };\n    const badTransaction = async function () {\n        await helpers_1.createItemExpectSuccess(zeroBalance, collectionId, &#x27;NFT&#x27;, zeroBalance.address);\n    };\n    await expect(badTransaction()).to.be.rejectedWith(&#x27;Inability to pay some fees&#x27;);\n    console.error = consoleError;\n    console.log = consoleLog;\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    // Try again after Zero gets some balance - now it should succeed\n    const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);\n    await substrate_api_1.submitTransactionAsync(alice, balancetx);\n    await helpers_1.createItemExpectSuccess(zeroBalance, collectionId, &#x27;NFT&#x27;, zeroBalance.address);\n    expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;32f2965d-0780-4b43-86fc-67a271e1ff30&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;c785a61c-949d-48c4-82ee-4e7d03ab6683&quot;,&quot;4c8ba9f7-5223-4e94-984d-dc13ee0fc326&quot;,&quot;a9148812-c2fa-490d-b5da-3386918aca3e&quot;,&quot;9d5c80ab-b396-4d32-89ce-e0a05105ebb1&quot;,&quot;59ba5ffb-0029-4374-962d-79b49bc98ed0&quot;,&quot;1b0854b2-3545-4b50-9d6d-5147d5ee4674&quot;,&quot;4971b24f-c530-424f-8564-373c9ceb0387&quot;,&quot;d9644e67-7f38-4fbe-8b30-72036d7f6038&quot;,&quot;258524bd-66ff-4227-8225-59b08893ad3b&quot;,&quot;48f50d22-3286-43cb-a84b-a74d393ec548&quot;,&quot;32f2965d-0780-4b43-86fc-67a271e1ff30&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;88813bee-d3e9-4529-938f-39a104c2bf5f&quot;,&quot;title&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/confirmSponsorship.test.ts&quot;,&quot;file&quot;:&quot;/src/confirmSponsorship.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n    charlie = keyring.addFromUri(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;39ec5fac-f548-4199-aaf5-4e22a0ad6f54&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;(!negative test!) Confirm sponsorship for a collection that never existed&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship(): (!negative test!) Confirm sponsorship for a collection that never existed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// Find the collection that never existed\nlet collectionId = 0;\nawait substrate_api_1.default(async (api) =&gt; {\n    collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n});\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;973687a1-333a-40e3-924d-2408e5de9501&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Confirm sponsorship using a non-sponsor address&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship(): (!negative test!) Confirm sponsorship using a non-sponsor address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait substrate_api_1.default(async (api) =&gt; {\n    const transfer = api.tx.balances.transfer(charlie.address, 1e15);\n    await substrate_api_1.submitTransactionAsync(alice, transfer);\n});\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Charlie&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e37becf5-1cf7-451b-a7a7-9fabc4a12391&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Confirm sponsorship using owner address&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship(): (!negative test!) Confirm sponsorship using owner address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Alice&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;36d28ed5-82ad-4257-9734-554e5a9ec508&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Confirm sponsorship by collection admin&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship(): (!negative test!) Confirm sponsorship by collection admin&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, charlie);\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Charlie&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9aee7e92-89f3-461b-b74b-c22d18a5a8ab&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Confirm sponsorship without sponsor being set with setCollectionSponsor&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship(): (!negative test!) Confirm sponsorship without sponsor being set with setCollectionSponsor&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;43dcb5ee-e6a2-496e-9323-c497a9de08c9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Confirm sponsorship in a collection that was destroyed&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. confirmSponsorship(): (!negative test!) Confirm sponsorship in a collection that was destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;85c85227-5b3b-4053-9933-f98fa8f3626e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;973687a1-333a-40e3-924d-2408e5de9501&quot;,&quot;e37becf5-1cf7-451b-a7a7-9fabc4a12391&quot;,&quot;36d28ed5-82ad-4257-9734-554e5a9ec508&quot;,&quot;9aee7e92-89f3-461b-b74b-c22d18a5a8ab&quot;,&quot;43dcb5ee-e6a2-496e-9323-c497a9de08c9&quot;,&quot;85c85227-5b3b-4053-9933-f98fa8f3626e&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;b01fbe26-19a1-4422-a804-a211fa4e8126&quot;,&quot;title&quot;:&quot;Connection smoke test&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/connection.test.ts&quot;,&quot;file&quot;:&quot;/src/connection.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Connection can be established&quot;,&quot;fullTitle&quot;:&quot;Connection smoke test Connection can be established&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const health = await api.rpc.system.health();\n    expect(health).to.be.not.empty;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0a85f403-5d49-4f62-8c6d-4c9fc6b5f8cf&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Cannot connect to 255.255.255.255&quot;,&quot;fullTitle&quot;:&quot;Connection smoke test Cannot connect to 255.255.255.255&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const log = console.log;\nconst error = console.error;\nconsole.log = function () { };\nconsole.error = function () { };\nconst neverConnectProvider = new api_1.WsProvider(&#x27;ws://255.255.255.255:9944&#x27;);\nawait expect((async () =&gt; {\n    await substrate_api_1.default(async (api) =&gt; {\n        await api.rpc.system.health();\n    }, { provider: neverConnectProvider });\n})()).to.be.eventually.rejected;\nconsole.log = log;\nconsole.error = error;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7b68037c-74fb-495e-adb8-14b78794055b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;0a85f403-5d49-4f62-8c6d-4c9fc6b5f8cf&quot;,&quot;7b68037c-74fb-495e-adb8-14b78794055b&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;e295e9c4-ce58-49b4-ac64-b58f1ae54d95&quot;,&quot;title&quot;:&quot;Contracts&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/contracts.test.ts&quot;,&quot;file&quot;:&quot;/src/contracts.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Can deploy smart contract Flipper, instantiate it and call it&#x27;s get and flip messages.&quot;,&quot;fullTitle&quot;:&quot;Contracts Can deploy smart contract Flipper, instantiate it and call it&#x27;s get and flip messages.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5ae5e427-bfd6-4097-a812-5a4c7495d3b6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Can initialize contract instance&quot;,&quot;fullTitle&quot;:&quot;Contracts Can initialize contract instance&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5e9d5065-d0cb-4b2b-8128-edc38b2dad13&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;5ae5e427-bfd6-4097-a812-5a4c7495d3b6&quot;,&quot;5e9d5065-d0cb-4b2b-8128-edc38b2dad13&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;9afd16cd-2a47-40a7-97c3-3ef651542e0b&quot;,&quot;title&quot;:&quot;Chain extensions&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/contracts.test.ts&quot;,&quot;file&quot;:&quot;/src/contracts.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Transfer CE&quot;,&quot;fullTitle&quot;:&quot;Chain extensions Transfer CE&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5dfccf7a-0eee-404d-a956-d1093df221bc&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Mint CE&quot;,&quot;fullTitle&quot;:&quot;Chain extensions Mint CE&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1131b325-d3c6-4b9e-9497-d7eb26256295&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Bulk mint CE&quot;,&quot;fullTitle&quot;:&quot;Chain extensions Bulk mint CE&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a9c700c8-c6f7-45aa-9802-d26245bf4d87&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Approve CE&quot;,&quot;fullTitle&quot;:&quot;Chain extensions Approve CE&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;63d3b2aa-a8b8-4bdf-8e93-80c68eb72c82&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;TransferFrom CE&quot;,&quot;fullTitle&quot;:&quot;Chain extensions TransferFrom CE&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cd69fa28-097d-4b4f-a0a0-0023fda654a2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;SetVariableMetaData CE&quot;,&quot;fullTitle&quot;:&quot;Chain extensions SetVariableMetaData CE&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;47084172-5068-4118-85b1-9d7b41fa0376&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;ToggleWhiteList CE&quot;,&quot;fullTitle&quot;:&quot;Chain extensions ToggleWhiteList CE&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0fd23521-9e89-4234-97be-7d191b812c7e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;5dfccf7a-0eee-404d-a956-d1093df221bc&quot;,&quot;1131b325-d3c6-4b9e-9497-d7eb26256295&quot;,&quot;a9c700c8-c6f7-45aa-9802-d26245bf4d87&quot;,&quot;63d3b2aa-a8b8-4bdf-8e93-80c68eb72c82&quot;,&quot;cd69fa28-097d-4b4f-a0a0-0023fda654a2&quot;,&quot;47084172-5068-4118-85b1-9d7b41fa0376&quot;,&quot;0fd23521-9e89-4234-97be-7d191b812c7e&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;bf4639b9-c375-4f1b-9282-6dfc0923585c&quot;,&quot;title&quot;:&quot;integration test: ext. createCollection():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/createCollection.test.ts&quot;,&quot;file&quot;:&quot;/src/createCollection.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Create new NFT collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createCollection(): Create new NFT collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectSuccess({ name: &#x27;A&#x27;, description: &#x27;B&#x27;, tokenPrefix: &#x27;C&#x27;, mode: { type: &#x27;NFT&#x27; } });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0f328998-69e2-4773-a450-5e528a55d733&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new NFT collection whith collection_name of maximum length (64 bytes)&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createCollection(): Create new NFT collection whith collection_name of maximum length (64 bytes)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectSuccess({ name: &#x27;A&#x27;.repeat(64) });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3b912026-7a85-4f13-881b-2e33a3d62e9a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new NFT collection whith collection_description of maximum length (256 bytes)&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createCollection(): Create new NFT collection whith collection_description of maximum length (256 bytes)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectSuccess({ description: &#x27;A&#x27;.repeat(256) });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;779e3c68-ea23-4575-8e6b-d9c7ae101cc7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new NFT collection whith token_prefix of maximum length (16 bytes)&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createCollection(): Create new NFT collection whith token_prefix of maximum length (16 bytes)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectSuccess({ tokenPrefix: &#x27;A&#x27;.repeat(16) });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f5f2387d-7ff0-4cd5-90fb-5391d9d23313&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new Fungible collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createCollection(): Create new Fungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6329e7c6-186c-47aa-808f-6c1ba6520459&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new ReFungible collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createCollection(): Create new ReFungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;03366c56-3814-4715-99cf-33baac1f84c5&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;0f328998-69e2-4773-a450-5e528a55d733&quot;,&quot;3b912026-7a85-4f13-881b-2e33a3d62e9a&quot;,&quot;779e3c68-ea23-4575-8e6b-d9c7ae101cc7&quot;,&quot;f5f2387d-7ff0-4cd5-90fb-5391d9d23313&quot;,&quot;6329e7c6-186c-47aa-808f-6c1ba6520459&quot;,&quot;03366c56-3814-4715-99cf-33baac1f84c5&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;a295c2d7-d283-4e68-a345-3daa44dffca9&quot;,&quot;title&quot;:&quot;(!negative test!) integration test: ext. createCollection():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/createCollection.test.ts&quot;,&quot;file&quot;:&quot;/src/createCollection.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;(!negative test!) create new NFT collection whith incorrect data (mode)&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. createCollection(): (!negative test!) create new NFT collection whith incorrect data (mode)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const AcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString(), 10);\n    const badTransaction = async () =&gt; {\n        await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Invalid&#x27; } });\n    };\n    // tslint:disable-next-line:no-unused-expression\n    expect(badTransaction()).to.be.rejected;\n    const BcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString(), 10);\n    expect(BcollectionCount).to.be.equal(AcollectionCount, &#x27;Error: Incorrect collection created.&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d83a661f-a409-452b-b322-4e3708101361&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) create new NFT collection whith incorrect data (collection_name)&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. createCollection(): (!negative test!) create new NFT collection whith incorrect data (collection_name)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectFailure({ name: &#x27;A&#x27;.repeat(65), mode: { type: &#x27;NFT&#x27; } });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7d6758ad-10e3-4466-b647-4d9220c70b03&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) create new NFT collection whith incorrect data (collection_description)&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. createCollection(): (!negative test!) create new NFT collection whith incorrect data (collection_description)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectFailure({ description: &#x27;A&#x27;.repeat(257), mode: { type: &#x27;NFT&#x27; } });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3ba21132-1816-420a-abcc-da80f46e87a3&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) create new NFT collection whith incorrect data (token_prefix)&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. createCollection(): (!negative test!) create new NFT collection whith incorrect data (token_prefix)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectFailure({ tokenPrefix: &#x27;A&#x27;.repeat(17), mode: { type: &#x27;NFT&#x27; } });&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;78b8acf1-36a3-4104-9b4c-f80cbabf95af&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;d83a661f-a409-452b-b322-4e3708101361&quot;,&quot;7d6758ad-10e3-4466-b647-4d9220c70b03&quot;,&quot;3ba21132-1816-420a-abcc-da80f46e87a3&quot;,&quot;78b8acf1-36a3-4104-9b4c-f80cbabf95af&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;86873356-b6ed-4bf9-9ffb-6060b7757ace&quot;,&quot;title&quot;:&quot;integration test: ext. createItem():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/createItem.test.ts&quot;,&quot;file&quot;:&quot;/src/createItem.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createItem(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a77cc8c0-c5c3-463b-a710-af175ab1ae33&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Create new item in NFT collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createItem(): Create new item in NFT collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nawait helpers_1.createItemExpectSuccess(alice, newCollectionID, createMode);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d49d97df-b93b-4980-8377-088992f5a97c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new item in Fungible collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createItem(): Create new item in Fungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;Fungible&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode, decimalPoints: 0 } });\nawait helpers_1.createItemExpectSuccess(alice, newCollectionID, createMode);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;17151dee-f03e-4576-be19-0bff3dbb99b1&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new item in ReFungible collection&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createItem(): Create new item in ReFungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;ReFungible&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nawait helpers_1.createItemExpectSuccess(alice, newCollectionID, createMode);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a843d3cf-c669-4f8d-ac0f-69ad79f4399f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new item in NFT collection with collection admin permissions&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createItem(): Create new item in NFT collection with collection admin permissions&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nawait helpers_1.addCollectionAdminExpectSuccess(alice, newCollectionID, bob);\nawait helpers_1.createItemExpectSuccess(bob, newCollectionID, createMode);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0d53673a-eea6-48cb-a347-58826b2f4e0c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new item in Fungible collection with collection admin permissions&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createItem(): Create new item in Fungible collection with collection admin permissions&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;Fungible&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode, decimalPoints: 0 } });\nawait helpers_1.addCollectionAdminExpectSuccess(alice, newCollectionID, bob);\nawait helpers_1.createItemExpectSuccess(bob, newCollectionID, createMode);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f2079a87-c322-48f3-8c55-b039dfa6a631&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create new item in ReFungible collection with collection admin permissions&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. createItem(): Create new item in ReFungible collection with collection admin permissions&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;ReFungible&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nawait helpers_1.addCollectionAdminExpectSuccess(alice, newCollectionID, bob);\nawait helpers_1.createItemExpectSuccess(bob, newCollectionID, createMode);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;440acee4-6142-4675-a0c9-8bf8eed167fe&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;d49d97df-b93b-4980-8377-088992f5a97c&quot;,&quot;17151dee-f03e-4576-be19-0bff3dbb99b1&quot;,&quot;a843d3cf-c669-4f8d-ac0f-69ad79f4399f&quot;,&quot;0d53673a-eea6-48cb-a347-58826b2f4e0c&quot;,&quot;f2079a87-c322-48f3-8c55-b039dfa6a631&quot;,&quot;440acee4-6142-4675-a0c9-8bf8eed167fe&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;d8760f1e-4b04-4384-ae6a-1f3f2e98bf80&quot;,&quot;title&quot;:&quot;Negative integration test: ext. createItem():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/createItem.test.ts&quot;,&quot;file&quot;:&quot;/src/createItem.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. createItem(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f7f7d52d-b852-444c-b448-41eedd575398&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Regular user cannot create new item in NFT collection&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. createItem(): Regular user cannot create new item in NFT collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;NFT&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nawait expect(helpers_1.createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;343c1699-ab93-43b5-b20c-9991e6e94c78&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user cannot create new item in Fungible collection&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. createItem(): Regular user cannot create new item in Fungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;Fungible&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode, decimalPoints: 0 } });\nawait expect(helpers_1.createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4a67baef-0ec5-44d9-827f-2db5d6752940&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user cannot create new item in ReFungible collection&quot;,&quot;fullTitle&quot;:&quot;Negative integration test: ext. createItem(): Regular user cannot create new item in ReFungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const createMode = &#x27;ReFungible&#x27;;\nconst newCollectionID = await helpers_1.createCollectionExpectSuccess({ mode: { type: createMode } });\nawait expect(helpers_1.createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;723df5d5-8595-4e32-9ab1-f3d6831235c0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;343c1699-ab93-43b5-b20c-9991e6e94c78&quot;,&quot;4a67baef-0ec5-44d9-827f-2db5d6752940&quot;,&quot;723df5d5-8595-4e32-9ab1-f3d6831235c0&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;64eb7f91-3e10-4ccf-9650-651719037593&quot;,&quot;title&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/createMultipleItems.test.ts&quot;,&quot;file&quot;:&quot;/src/createMultipleItems.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Create  0x31, 0x32, 0x33 items in active NFT collection and verify tokens data in chain&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data): Create  0x31, 0x32, 0x33 items in active NFT collection and verify tokens data in chain&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const args = [{ nft: [&#x27;0x31&#x27;, &#x27;0x31&#x27;] }, { nft: [&#x27;0x32&#x27;, &#x27;0x32&#x27;] }, { nft: [&#x27;0x33&#x27;, &#x27;0x33&#x27;] }];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await substrate_api_1.submitTransactionAsync(Alice, createMultipleItemsTx);\n    const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexAfter.toNumber()).to.be.equal(3);\n    const token1Data = (await api.query.nft.nftItemList(collectionId, 1)).toJSON();\n    const token2Data = (await api.query.nft.nftItemList(collectionId, 2)).toJSON();\n    const token3Data = (await api.query.nft.nftItemList(collectionId, 3)).toJSON();\n    expect(token1Data.Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Alice.address));\n    expect(token2Data.Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Alice.address));\n    expect(token3Data.Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Alice.address));\n    expect(token1Data.ConstData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.ConstData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.ConstData.toString()).to.be.equal(&#x27;0x33&#x27;);\n    expect(token1Data.VariableData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.VariableData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.VariableData.toString()).to.be.equal(&#x27;0x33&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;dde52380-97a1-4527-81e5-6210ed37b0e0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create  0x01, 0x02, 0x03 items in active Fungible collection and verify tokens data in chain&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data): Create  0x01, 0x02, 0x03 items in active Fungible collection and verify tokens data in chain&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const args = [\n        { fungible: { value: 1 } },\n        { fungible: { value: 2 } },\n        { fungible: { value: 3 } },\n    ];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await substrate_api_1.submitTransactionAsync(Alice, createMultipleItemsTx);\n    const token1Data = (await api.query.nft.fungibleItemList(collectionId, Alice.address)).toJSON();\n    expect(token1Data.Value).to.be.equal(6); // 1 + 2 + 3\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2e4b5045-d586-4ea0-886c-48a123adbec8&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create  0x31, 0x32, 0x33 items in active ReFungible collection and verify tokens data in chain&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data): Create  0x31, 0x32, 0x33 items in active ReFungible collection and verify tokens data in chain&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const args = [\n        { refungible: { const_data: [0x31], variable_data: [0x31], pieces: 1 } },\n        { refungible: { const_data: [0x32], variable_data: [0x32], pieces: 1 } },\n        { refungible: { const_data: [0x33], variable_data: [0x33], pieces: 1 } },\n    ];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await substrate_api_1.submitTransactionAsync(Alice, createMultipleItemsTx);\n    const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexAfter.toNumber()).to.be.equal(3);\n    const token1Data = (await api.query.nft.reFungibleItemList(collectionId, 1)).toJSON();\n    const token2Data = (await api.query.nft.reFungibleItemList(collectionId, 2)).toJSON();\n    const token3Data = (await api.query.nft.reFungibleItemList(collectionId, 3)).toJSON();\n    expect(token1Data.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Alice.address));\n    expect(token1Data.Owner[0].Fraction).to.be.equal(1);\n    expect(token2Data.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Alice.address));\n    expect(token2Data.Owner[0].Fraction).to.be.equal(1);\n    expect(token3Data.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Alice.address));\n    expect(token3Data.Owner[0].Fraction).to.be.equal(1);\n    expect(token1Data.ConstData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.ConstData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.ConstData.toString()).to.be.equal(&#x27;0x33&#x27;);\n    expect(token1Data.VariableData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.VariableData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.VariableData.toString()).to.be.equal(&#x27;0x33&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;10ac40e1-7fcc-4104-b52a-f9bb3c5eec14&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can mint amount of items equals to collection limits&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data): Can mint amount of items equals to collection limits&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, {\n        TokenLimit: 2,\n    });\n    const args = [\n        { nft: [&#x27;A&#x27;, &#x27;A&#x27;] },\n        { nft: [&#x27;B&#x27;, &#x27;B&#x27;] },\n    ];\n    const createMultipleItemsTx = api.tx.nft.createMultipleItems(collectionId, helpers_1.normalizeAccountId(alice.address), args);\n    const events = await substrate_api_1.submitTransactionAsync(alice, createMultipleItemsTx);\n    const result = helpers_1.getGenericResult(events);\n    expect(result.success).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d2aa77dc-43c0-4eb1-87ed-99e59b7c8699&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;dde52380-97a1-4527-81e5-6210ed37b0e0&quot;,&quot;2e4b5045-d586-4ea0-886c-48a123adbec8&quot;,&quot;10ac40e1-7fcc-4104-b52a-f9bb3c5eec14&quot;,&quot;d2aa77dc-43c0-4eb1-87ed-99e59b7c8699&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;1d0a4943-7714-4aee-97fb-92e9815a934e&quot;,&quot;title&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data) with collection admin permissions:&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/createMultipleItems.test.ts&quot;,&quot;file&quot;:&quot;/src/createMultipleItems.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data) with collection admin permissions: \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4b8317d6-26d2-4a76-b36f-021b60e22414&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Create  0x31, 0x32, 0x33 items in active NFT collection and verify tokens data in chain&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data) with collection admin permissions: Create  0x31, 0x32, 0x33 items in active NFT collection and verify tokens data in chain&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\n    const args = [{ nft: [&#x27;0x31&#x27;, &#x27;0x31&#x27;] }, { nft: [&#x27;0x32&#x27;, &#x27;0x32&#x27;] }, { nft: [&#x27;0x33&#x27;, &#x27;0x33&#x27;] }];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Bob.address), args);\n    await substrate_api_1.submitTransactionAsync(Bob, createMultipleItemsTx);\n    const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexAfter.toNumber()).to.be.equal(3);\n    const token1Data = (await api.query.nft.nftItemList(collectionId, 1)).toJSON();\n    const token2Data = (await api.query.nft.nftItemList(collectionId, 2)).toJSON();\n    const token3Data = (await api.query.nft.nftItemList(collectionId, 3)).toJSON();\n    expect(token1Data.Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Bob.address));\n    expect(token2Data.Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Bob.address));\n    expect(token3Data.Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Bob.address));\n    expect(token1Data.ConstData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.ConstData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.ConstData.toString()).to.be.equal(&#x27;0x33&#x27;);\n    expect(token1Data.VariableData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.VariableData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.VariableData.toString()).to.be.equal(&#x27;0x33&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bb637f9d-b9ea-451c-a30a-492542fd6843&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create  0x01, 0x02, 0x03 items in active Fungible collection and verify tokens data in chain&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data) with collection admin permissions: Create  0x01, 0x02, 0x03 items in active Fungible collection and verify tokens data in chain&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\n    const args = [\n        { fungible: { value: 1 } },\n        { fungible: { value: 2 } },\n        { fungible: { value: 3 } },\n    ];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Bob.address), args);\n    await substrate_api_1.submitTransactionAsync(Bob, createMultipleItemsTx);\n    const token1Data = (await api.query.nft.fungibleItemList(collectionId, Bob.address)).toJSON();\n    expect(token1Data.Value).to.be.equal(6); // 1 + 2 + 3\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c46c8746-1cc5-453e-90d1-d923be03f694&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create  0x31, 0x32, 0x33 items in active ReFungible collection and verify tokens data in chain&quot;,&quot;fullTitle&quot;:&quot;Integration Test createMultipleItems(collection_id, owner, items_data) with collection admin permissions: Create  0x31, 0x32, 0x33 items in active ReFungible collection and verify tokens data in chain&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\n    const args = [\n        { refungible: { const_data: [0x31], variable_data: [0x31], pieces: 1 } },\n        { refungible: { const_data: [0x32], variable_data: [0x32], pieces: 1 } },\n        { refungible: { const_data: [0x33], variable_data: [0x33], pieces: 1 } },\n    ];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Bob.address), args);\n    await substrate_api_1.submitTransactionAsync(Bob, createMultipleItemsTx);\n    const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexAfter.toNumber()).to.be.equal(3);\n    const token1Data = (await api.query.nft.reFungibleItemList(collectionId, 1)).toJSON();\n    const token2Data = (await api.query.nft.reFungibleItemList(collectionId, 2)).toJSON();\n    const token3Data = (await api.query.nft.reFungibleItemList(collectionId, 3)).toJSON();\n    expect(token1Data.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Bob.address));\n    expect(token1Data.Owner[0].Fraction).to.be.equal(1);\n    expect(token2Data.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Bob.address));\n    expect(token2Data.Owner[0].Fraction).to.be.equal(1);\n    expect(token3Data.Owner[0].Owner).to.be.deep.equal(helpers_1.normalizeAccountId(Bob.address));\n    expect(token3Data.Owner[0].Fraction).to.be.equal(1);\n    expect(token1Data.ConstData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.ConstData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.ConstData.toString()).to.be.equal(&#x27;0x33&#x27;);\n    expect(token1Data.VariableData.toString()).to.be.equal(&#x27;0x31&#x27;);\n    expect(token2Data.VariableData.toString()).to.be.equal(&#x27;0x32&#x27;);\n    expect(token3Data.VariableData.toString()).to.be.equal(&#x27;0x33&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;505dee22-4a1b-4911-b40e-e4b124c5b5fa&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;bb637f9d-b9ea-451c-a30a-492542fd6843&quot;,&quot;c46c8746-1cc5-453e-90d1-d923be03f694&quot;,&quot;505dee22-4a1b-4911-b40e-e4b124c5b5fa&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;8288ec61-5a92-4dc4-95cd-f66b844286ac&quot;,&quot;title&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/createMultipleItems.test.ts&quot;,&quot;file&quot;:&quot;/src/createMultipleItems.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;533cb0fd-f60f-44cc-9049-454848ccdcf8&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Regular user cannot create items in active NFT collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Regular user cannot create items in active NFT collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    const args = [{ nft: [&#x27;0x31&#x27;, &#x27;0x31&#x27;] }, { nft: [&#x27;0x32&#x27;, &#x27;0x32&#x27;] }, { nft: [&#x27;0x33&#x27;, &#x27;0x33&#x27;] }];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await expect(substrate_api_1.submitTransactionAsync(Bob, createMultipleItemsTx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0b0aa09f-6e5c-462f-86e4-86fb59d07e3a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user cannot create items in active Fungible collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Regular user cannot create items in active Fungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    const args = [\n        { fungible: { value: 1 } },\n        { fungible: { value: 2 } },\n        { fungible: { value: 3 } },\n    ];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await expect(substrate_api_1.submitTransactionAsync(Bob, createMultipleItemsTx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3c3fda06-6710-4b6b-b3c3-646378b4ae92&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user cannot create items in active ReFungible collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Regular user cannot create items in active ReFungible collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId);\n    expect(itemsListIndexBefore.toNumber()).to.be.equal(0);\n    const args = [\n        { refungible: { const_data: [0x31], variable_data: [0x31], pieces: 1 } },\n        { refungible: { const_data: [0x32], variable_data: [0x32], pieces: 1 } },\n        { refungible: { const_data: [0x33], variable_data: [0x33], pieces: 1 } },\n    ];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await expect(substrate_api_1.submitTransactionAsync(Bob, createMultipleItemsTx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;baf53ce7-d08d-483e-88d0-a4b2075b3d1f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create token with not existing type&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Create token with not existing type&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    try {\n        const args = [{ invalid: null }, { invalid: null }, { invalid: null }];\n        const createMultipleItemsTx = await api.tx.nft\n            .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n        await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;\n    }\n    catch (e) {\n        // tslint:disable-next-line:no-unused-expression\n        expect(e).to.be.exist;\n    }\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;168fcf78-ea46-4da2-9260-cf769a9ec1b7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create token in not existing collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Create token in not existing collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), [&#x27;NFT&#x27;, &#x27;NFT&#x27;, &#x27;NFT&#x27;]);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;93ac2bab-a5ad-4328-96a9-3f1fdbf33dd8&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create NFT and Re-fungible tokens that has reached the maximum data limit&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Create NFT and Re-fungible tokens that has reached the maximum data limit&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // NFT\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const args = [\n        { nft: [&#x27;A&#x27;.repeat(2049), &#x27;A&#x27;.repeat(2049)] },\n        { nft: [&#x27;B&#x27;.repeat(2049), &#x27;B&#x27;.repeat(2049)] },\n        { nft: [&#x27;C&#x27;.repeat(2049), &#x27;C&#x27;.repeat(2049)] },\n    ];\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;\n    // ReFungible\n    const collectionIdReFungible = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const argsReFungible = [\n        { ReFungible: [&#x27;1&#x27;.repeat(2049), &#x27;1&#x27;.repeat(2049), 10] },\n        { ReFungible: [&#x27;2&#x27;.repeat(2049), &#x27;2&#x27;.repeat(2049), 10] },\n        { ReFungible: [&#x27;3&#x27;.repeat(2049), &#x27;3&#x27;.repeat(2049), 10] },\n    ];\n    const createMultipleItemsTxFungible = api.tx.nft\n        .createMultipleItems(collectionIdReFungible, helpers_1.normalizeAccountId(Alice.address), argsReFungible);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, createMultipleItemsTxFungible)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;88ca0edf-1f0d-4c88-9920-983dec0902f7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create tokens with different types&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Create tokens with different types&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const createMultipleItemsTx = api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), [&#x27;NFT&#x27;, &#x27;Fungible&#x27;, &#x27;ReFungible&#x27;]);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;\n    // garbage collection :-D\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;175de1dd-2b17-4cb8-b061-e5a55b5a50e9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Create tokens with different data limits &lt;&gt; maximum data limit&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Create tokens with different data limits &lt;&gt; maximum data limit&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const args = [\n        { nft: [&#x27;A&#x27;, &#x27;A&#x27;] },\n        { nft: [&#x27;B&#x27;, &#x27;B&#x27;.repeat(2049)] },\n        { nft: [&#x27;C&#x27;.repeat(2049), &#x27;C&#x27;] },\n    ];\n    const createMultipleItemsTx = await api.tx.nft\n        .createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2b4d53f9-f5e7-4a23-949a-3ac95b3fbbcd&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Fails when minting tokens exceeds collectionLimits amount&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test createMultipleItems(collection_id, owner, items_data): Fails when minting tokens exceeds collectionLimits amount&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.setCollectionLimitsExpectSuccess(Alice, collectionId, {\n        TokenLimit: 1,\n    });\n    const args = [\n        { nft: [&#x27;A&#x27;, &#x27;A&#x27;] },\n        { nft: [&#x27;B&#x27;, &#x27;B&#x27;] },\n    ];\n    const createMultipleItemsTx = api.tx.nft.createMultipleItems(collectionId, helpers_1.normalizeAccountId(Alice.address), args);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c08e3a79-415f-432e-ba59-bce028a4fd65&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;0b0aa09f-6e5c-462f-86e4-86fb59d07e3a&quot;,&quot;3c3fda06-6710-4b6b-b3c3-646378b4ae92&quot;,&quot;baf53ce7-d08d-483e-88d0-a4b2075b3d1f&quot;,&quot;168fcf78-ea46-4da2-9260-cf769a9ec1b7&quot;,&quot;93ac2bab-a5ad-4328-96a9-3f1fdbf33dd8&quot;,&quot;88ca0edf-1f0d-4c88-9920-983dec0902f7&quot;,&quot;175de1dd-2b17-4cb8-b061-e5a55b5a50e9&quot;,&quot;2b4d53f9-f5e7-4a23-949a-3ac95b3fbbcd&quot;,&quot;c08e3a79-415f-432e-ba59-bce028a4fd65&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;36c38616-c13a-4557-9cb9-1c3706f3ac7f&quot;,&quot;title&quot;:&quot;integration test: Fees must be credited to Treasury:&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/creditFeesToTreasury.test.ts&quot;,&quot;file&quot;:&quot;/src/creditFeesToTreasury.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;integration test: Fees must be credited to Treasury: \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d82f2f76-897d-4b82-b2fa-668962c68547&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Total issuance does not change&quot;,&quot;fullTitle&quot;:&quot;integration test: Fees must be credited to Treasury: Total issuance does not change&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await skipInflationBlock(api);\n    await wait_new_blocks_1.default(api, 1);\n    const totalBefore = new bignumber_js_1.BigNumber((await api.query.balances.totalIssuance()).toString());\n    const alicePrivateKey = privateKey_1.default(&#x27;//Alice&#x27;);\n    const amount = new bignumber_js_1.BigNumber(1);\n    const transfer = api.tx.balances.transfer(accounts_1.bobsPublicKey, amount.toFixed());\n    const result = helpers_1.getGenericResult(await substrate_api_1.submitTransactionAsync(alicePrivateKey, transfer));\n    const totalAfter = new bignumber_js_1.BigNumber((await api.query.balances.totalIssuance()).toString());\n    expect(result.success).to.be.true;\n    expect(totalAfter.toFixed()).to.be.equal(totalBefore.toFixed());\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;30283cd1-c50d-47fe-a990-3e1bbb81dc54&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Sender balance decreased by fee+sent amount, Treasury balance increased by fee&quot;,&quot;fullTitle&quot;:&quot;integration test: Fees must be credited to Treasury: Sender balance decreased by fee+sent amount, Treasury balance increased by fee&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await skipInflationBlock(api);\n    await wait_new_blocks_1.default(api, 1);\n    const alicePrivateKey = privateKey_1.default(&#x27;//Alice&#x27;);\n    const treasuryBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(Treasury)).data.free.toString());\n    const aliceBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    const amount = new bignumber_js_1.BigNumber(1);\n    const transfer = api.tx.balances.transfer(accounts_1.bobsPublicKey, amount.toFixed());\n    const result = helpers_1.getGenericResult(await substrate_api_1.submitTransactionAsync(alicePrivateKey, transfer));\n    const treasuryBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(Treasury)).data.free.toString());\n    const aliceBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    const fee = aliceBalanceBefore.minus(aliceBalanceAfter).minus(amount);\n    const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);\n    expect(result.success).to.be.true;\n    expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;129ec89e-7233-46b1-9406-e8f837ec7df7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Treasury balance increased by failed tx fee&quot;,&quot;fullTitle&quot;:&quot;integration test: Fees must be credited to Treasury: Treasury balance increased by failed tx fee&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await skipInflationBlock(api);\n    await wait_new_blocks_1.default(api, 1);\n    const bobPrivateKey = privateKey_1.default(&#x27;//Bob&#x27;);\n    const treasuryBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(Treasury)).data.free.toString());\n    const bobBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.bobsPublicKey)).data.free.toString());\n    const badTx = api.tx.balances.setBalance(accounts_1.alicesPublicKey, 0, 0);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(bobPrivateKey, badTx)).to.be.rejected;\n    const treasuryBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(Treasury)).data.free.toString());\n    const bobBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.bobsPublicKey)).data.free.toString());\n    const fee = bobBalanceBefore.minus(bobBalanceAfter);\n    const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);\n    expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;93062bf3-a522-428b-922b-80684d2cc0a0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;NFT Transactions also send fees to Treasury&quot;,&quot;fullTitle&quot;:&quot;integration test: Fees must be credited to Treasury: NFT Transactions also send fees to Treasury&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await skipInflationBlock(api);\n    await wait_new_blocks_1.default(api, 1);\n    const treasuryBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(Treasury)).data.free.toString());\n    const aliceBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    await helpers_1.createCollectionExpectSuccess();\n    const treasuryBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(Treasury)).data.free.toString());\n    const aliceBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    const fee = aliceBalanceBefore.minus(aliceBalanceAfter);\n    const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);\n    expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9f2156c7-beb1-40eb-84fb-754b080e4575&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Fees are sane&quot;,&quot;fullTitle&quot;:&quot;integration test: Fees must be credited to Treasury: Fees are sane&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await skipInflationBlock(api);\n    await wait_new_blocks_1.default(api, 1);\n    const aliceBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    await helpers_1.createCollectionExpectSuccess();\n    const aliceBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    const fee = aliceBalanceBefore.minus(aliceBalanceAfter);\n    expect(fee.dividedBy(1e15).toNumber()).to.be.lessThan(saneMaximumFee + createCollectionDeposit);\n    expect(fee.dividedBy(1e15).toNumber()).to.be.greaterThan(saneMinimumFee + createCollectionDeposit);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b771b916-77d8-4052-a811-a1080c925937&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;NFT Transfer fee is close to 0.1 Unique&quot;,&quot;fullTitle&quot;:&quot;integration test: Fees must be credited to Treasury: NFT Transfer fee is close to 0.1 Unique&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await skipInflationBlock(api);\n    await wait_new_blocks_1.default(api, 1);\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;);\n    const aliceBalanceBefore = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    await helpers_1.transferExpectSuccess(collectionId, tokenId, alice, bob, 1, &#x27;NFT&#x27;);\n    const aliceBalanceAfter = new bignumber_js_1.BigNumber((await api.query.system.account(accounts_1.alicesPublicKey)).data.free.toString());\n    const fee = aliceBalanceBefore.minus(aliceBalanceAfter);\n    // console.log(fee.toString());\n    const expectedTransferFee = 0.1;\n    const tolerance = 0.001;\n    expect(fee.dividedBy(1e15).minus(expectedTransferFee).abs().toNumber()).to.be.lessThan(tolerance);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;959a2708-5f73-4e34-b23b-451db6b792cb&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;30283cd1-c50d-47fe-a990-3e1bbb81dc54&quot;,&quot;129ec89e-7233-46b1-9406-e8f837ec7df7&quot;,&quot;93062bf3-a522-428b-922b-80684d2cc0a0&quot;,&quot;9f2156c7-beb1-40eb-84fb-754b080e4575&quot;,&quot;b771b916-77d8-4052-a811-a1080c925937&quot;,&quot;959a2708-5f73-4e34-b23b-451db6b792cb&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;690f02a6-5932-480d-bdad-909c7451a15d&quot;,&quot;title&quot;:&quot;integration test: ext. destroyCollection():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/destroyCollection.test.ts&quot;,&quot;file&quot;:&quot;/src/destroyCollection.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;NFT collection can be destroyed&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. destroyCollection(): NFT collection can be destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4180464f-22c6-4e68-a585-4c7dfe2f7fde&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Fungible collection can be destroyed&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. destroyCollection(): Fungible collection can be destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2e938b8d-c64e-49e5-a704-3b3ad62f2fd8&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;ReFungible collection can be destroyed&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. destroyCollection(): ReFungible collection can be destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9297b7a6-20c5-49eb-bd2b-c09794ef5792&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;4180464f-22c6-4e68-a585-4c7dfe2f7fde&quot;,&quot;2e938b8d-c64e-49e5-a704-3b3ad62f2fd8&quot;,&quot;9297b7a6-20c5-49eb-bd2b-c09794ef5792&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;d09522f9-f6a3-479f-9398-a62427e9a352&quot;,&quot;title&quot;:&quot;(!negative test!) integration test: ext. destroyCollection():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/destroyCollection.test.ts&quot;,&quot;file&quot;:&quot;/src/destroyCollection.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. destroyCollection(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;029c7b06-9a11-473f-9597-d857bb51b47a&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;(!negative test!) Destroy a collection that never existed&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. destroyCollection(): (!negative test!) Destroy a collection that never existed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // Find the collection that never existed\n    const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n    await helpers_1.destroyCollectionExpectFailure(collectionId);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;53dcbc2e-6a9b-46e6-8548-8a9713b3208c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Destroy a collection that has already been destroyed&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. destroyCollection(): (!negative test!) Destroy a collection that has already been destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);\nawait helpers_1.destroyCollectionExpectFailure(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c9193aa7-25a6-429d-878f-3150a9f87104&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Destroy a collection using non-owner account&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. destroyCollection(): (!negative test!) Destroy a collection using non-owner account&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.destroyCollectionExpectFailure(collectionId, &#x27;//Bob&#x27;);\nawait helpers_1.destroyCollectionExpectSuccess(collectionId, &#x27;//Alice&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;470c05d3-d36a-4638-a972-45af56d80408&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Destroy a collection using collection admin account&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. destroyCollection(): (!negative test!) Destroy a collection using collection admin account&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\nawait helpers_1.destroyCollectionExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d1ef4c9e-3e82-4c0d-a7a1-c4f210d1ab74&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails when OwnerCanDestroy == false&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. destroyCollection(): fails when OwnerCanDestroy == false&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, { OwnerCanDestroy: false });\nawait helpers_1.destroyCollectionExpectFailure(collectionId, &#x27;//Alice&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;903a5aa7-495c-40da-8140-c165911e13dd&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;53dcbc2e-6a9b-46e6-8548-8a9713b3208c&quot;,&quot;c9193aa7-25a6-429d-878f-3150a9f87104&quot;,&quot;470c05d3-d36a-4638-a972-45af56d80408&quot;,&quot;d1ef4c9e-3e82-4c0d-a7a1-c4f210d1ab74&quot;,&quot;903a5aa7-495c-40da-8140-c165911e13dd&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;b82eb7b3-f4de-4127-b330-42ebda6df15a&quot;,&quot;title&quot;:&quot;Integration Test enableContractSponsoring&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/enableContractSponsoring.test.ts&quot;,&quot;file&quot;:&quot;/src/enableContractSponsoring.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;ensure tx fee is paid from endowment&quot;,&quot;fullTitle&quot;:&quot;Integration Test enableContractSponsoring ensure tx fee is paid from endowment&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0ae636f0-531e-47d5-a219-33329a247bef&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;ensure it can be enabled twice&quot;,&quot;fullTitle&quot;:&quot;Integration Test enableContractSponsoring ensure it can be enabled twice&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;810ed4cb-bb60-4225-aecd-8b6f089a5469&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;ensure it can be disabled twice&quot;,&quot;fullTitle&quot;:&quot;Integration Test enableContractSponsoring ensure it can be disabled twice&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;133f6180-6c1c-4a81-a037-2bbc883f6c0e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;ensure it can be re-enabled&quot;,&quot;fullTitle&quot;:&quot;Integration Test enableContractSponsoring ensure it can be re-enabled&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7436de7a-9afc-4b17-b1d5-83d81324757e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;0ae636f0-531e-47d5-a219-33329a247bef&quot;,&quot;810ed4cb-bb60-4225-aecd-8b6f089a5469&quot;,&quot;133f6180-6c1c-4a81-a037-2bbc883f6c0e&quot;,&quot;7436de7a-9afc-4b17-b1d5-83d81324757e&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;0ea1b6f0-3109-4184-92a0-58b87521268a&quot;,&quot;title&quot;:&quot;Negative Integration Test enableContractSponsoring&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/enableContractSponsoring.test.ts&quot;,&quot;file&quot;:&quot;/src/enableContractSponsoring.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails when called for non-contract address&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test enableContractSponsoring fails when called for non-contract address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bb3cf798-d40c-4f39-8cdc-90775e1e3b89&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;fails when called by non-owning user&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test enableContractSponsoring fails when called by non-owning user&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;09fe0e7e-13a1-4d61-a3ed-01016a39b5b6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;bb3cf798-d40c-4f39-8cdc-90775e1e3b89&quot;,&quot;09fe0e7e-13a1-4d61-a3ed-01016a39b5b6&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;f9b63262-28cc-416a-b570-70da5d8f65f4&quot;,&quot;title&quot;:&quot;Enable/Disable Transfers&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/enableDisableTransfer.test.ts&quot;,&quot;file&quot;:&quot;/src/enableDisableTransfer.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;User can transfer token with enabled transfer flag&quot;,&quot;fullTitle&quot;:&quot;Enable/Disable Transfers User can transfer token with enabled transfer flag&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    // explicitely set transfer flag\n    await helpers_1.setTransferFlagExpectSuccess(Alice, nftCollectionId, true);\n    await helpers_1.transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;40955e62-05af-4179-be1d-5f281075f39c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;User can&#x27;n transfer token with disabled transfer flag&quot;,&quot;fullTitle&quot;:&quot;Enable/Disable Transfers User can&#x27;n transfer token with disabled transfer flag&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    // explicitely set transfer flag\n    await helpers_1.setTransferFlagExpectSuccess(Alice, nftCollectionId, false);\n    await helpers_1.transferExpectFailure(nftCollectionId, newNftTokenId, Alice, Bob, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9393b0ed-dc59-4b6b-9934-f48351b5cc36&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;40955e62-05af-4179-be1d-5f281075f39c&quot;,&quot;9393b0ed-dc59-4b6b-9934-f48351b5cc36&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;64ceb3ce-485a-4092-96b9-0918cbcbb806&quot;,&quot;title&quot;:&quot;Negative Enable/Disable Transfers&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/enableDisableTransfer.test.ts&quot;,&quot;file&quot;:&quot;/src/enableDisableTransfer.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Non-owner cannot change transfer flag&quot;,&quot;fullTitle&quot;:&quot;Negative Enable/Disable Transfers Non-owner cannot change transfer flag&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    // Change transfer flag\n    await helpers_1.setTransferFlagExpectFailure(Bob, nftCollectionId, false);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5e8bf0a6-4130-427d-8aa0-a7e5de676d9c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;5e8bf0a6-4130-427d-8aa0-a7e5de676d9c&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;166a2b99-feef-4313-a348-0c84514b7e19&quot;,&quot;title&quot;:&quot;EVM allowlist&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/allowlist.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/allowlist.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Contract allowlist can be toggled&quot;,&quot;fullTitle&quot;:&quot;EVM allowlist Contract allowlist can be toggled&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8a2553da-4d76-4d01-a46b-0c7aeda8f17e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Non-whitelisted user can&#x27;t call contract with allowlist enabled&quot;,&quot;fullTitle&quot;:&quot;EVM allowlist Non-whitelisted user can&#x27;t call contract with allowlist enabled&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6bfb1246-7056-4272-95a5-16c071445167&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;8a2553da-4d76-4d01-a46b-0c7aeda8f17e&quot;,&quot;6bfb1246-7056-4272-95a5-16c071445167&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;1ef94075-5c71-4a69-8fee-0243a30ecf92&quot;,&quot;title&quot;:&quot;Contract calls&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/base.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/base.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Call of simple contract fee is less than 0.2 UNQ&quot;,&quot;fullTitle&quot;:&quot;Contract calls Call of simple contract fee is less than 0.2 UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2e8f1e63-d243-4508-8c90-83fe6bebf0c8&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Balance transfer fee is less than 0.2 UNQ&quot;,&quot;fullTitle&quot;:&quot;Contract calls Balance transfer fee is less than 0.2 UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a49dfe5b-78a8-4972-83c8-8f4838216a25&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;2e8f1e63-d243-4508-8c90-83fe6bebf0c8&quot;,&quot;a49dfe5b-78a8-4972-83c8-8f4838216a25&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;63ceb95a-b882-4cf6-a99a-aa5b4993076b&quot;,&quot;title&quot;:&quot;Token transfer between substrate address and EVM address. Fungible&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/crossTransfer.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/crossTransfer.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;The private key X create a substrate address. Alice sends a token to the corresponding EVM address, and X can send it to Bob in the substrate&quot;,&quot;fullTitle&quot;:&quot;Token transfer between substrate address and EVM address. Fungible The private key X create a substrate address. Alice sends a token to the corresponding EVM address, and X can send it to Bob in the substrate&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;016bdad3-72c1-4b25-a25f-fa786dd3c92d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM&quot;,&quot;fullTitle&quot;:&quot;Token transfer between substrate address and EVM address. Fungible The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;dc9e2f55-1603-434e-8bdc-d3669c24e2e4&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;016bdad3-72c1-4b25-a25f-fa786dd3c92d&quot;,&quot;dc9e2f55-1603-434e-8bdc-d3669c24e2e4&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;3bcae81c-07ce-48a2-aa69-0d8c8e27c623&quot;,&quot;title&quot;:&quot;Token transfer between substrate address and EVM address. NFT&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/crossTransfer.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/crossTransfer.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;The private key X create a substrate address. Alice sends a token to the corresponding EVM address, and X can send it to Bob in the substrate&quot;,&quot;fullTitle&quot;:&quot;Token transfer between substrate address and EVM address. NFT The private key X create a substrate address. Alice sends a token to the corresponding EVM address, and X can send it to Bob in the substrate&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;687f48a8-d2de-4888-98c2-b23c2e116691&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM&quot;,&quot;fullTitle&quot;:&quot;Token transfer between substrate address and EVM address. NFT The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e8feec8e-382f-487c-b76a-5acc10da9bce&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;687f48a8-d2de-4888-98c2-b23c2e116691&quot;,&quot;e8feec8e-382f-487c-b76a-5acc10da9bce&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;e28ed94d-9043-43ab-b3d3-bdada9894d84&quot;,&quot;title&quot;:&quot;Fungible: Information getting&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/fungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/fungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;totalSupply&quot;,&quot;fullTitle&quot;:&quot;Fungible: Information getting totalSupply&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a426de65-2a4a-4b02-9c67-45d296bf7dc1&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;balanceOf&quot;,&quot;fullTitle&quot;:&quot;Fungible: Information getting balanceOf&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c1081390-abe4-4727-b086-68af2d8bd821&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a426de65-2a4a-4b02-9c67-45d296bf7dc1&quot;,&quot;c1081390-abe4-4727-b086-68af2d8bd821&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;38e5c06d-bbc9-4bae-bc0b-45b5475ebd53&quot;,&quot;title&quot;:&quot;Fungible: Plain calls&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/fungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/fungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Can perform approve()&quot;,&quot;fullTitle&quot;:&quot;Fungible: Plain calls Can perform approve()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;61154419-0a48-44b1-ae0f-4b3dd6e3a085&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transferFrom()&quot;,&quot;fullTitle&quot;:&quot;Fungible: Plain calls Can perform transferFrom()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;25aa7368-095b-4f36-849e-2940ca117fba&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transfer()&quot;,&quot;fullTitle&quot;:&quot;Fungible: Plain calls Can perform transfer()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;26bd4d69-70a0-41e3-9019-b1a9c61dd4db&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;61154419-0a48-44b1-ae0f-4b3dd6e3a085&quot;,&quot;25aa7368-095b-4f36-849e-2940ca117fba&quot;,&quot;26bd4d69-70a0-41e3-9019-b1a9c61dd4db&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;f64e15cb-ff19-483f-8370-1717a0e52137&quot;,&quot;title&quot;:&quot;Fungible: Fees&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/fungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/fungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;approve() call fee is less than 0.2UNQ&quot;,&quot;fullTitle&quot;:&quot;Fungible: Fees approve() call fee is less than 0.2UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;18ee49b0-8612-4674-9e66-8e0855b1bed7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom() call fee is less than 0.2UNQ&quot;,&quot;fullTitle&quot;:&quot;Fungible: Fees transferFrom() call fee is less than 0.2UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8604d5a4-bb0d-4ce7-b997-3bb941d2dadc&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transfer() call fee is less than 0.2UNQ&quot;,&quot;fullTitle&quot;:&quot;Fungible: Fees transfer() call fee is less than 0.2UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3b472b88-09a8-499e-8ae3-0082a0fd2b7e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;18ee49b0-8612-4674-9e66-8e0855b1bed7&quot;,&quot;8604d5a4-bb0d-4ce7-b997-3bb941d2dadc&quot;,&quot;3b472b88-09a8-499e-8ae3-0082a0fd2b7e&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;0bd2f0db-3ea7-4d52-b1bd-b39e365c4611&quot;,&quot;title&quot;:&quot;Fungible: Substrate calls&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/fungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/fungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Events emitted for approve()&quot;,&quot;fullTitle&quot;:&quot;Fungible: Substrate calls Events emitted for approve()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;aa6f7c90-68ff-4b90-85cf-a35adfd5df6c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Events emitted for transferFrom()&quot;,&quot;fullTitle&quot;:&quot;Fungible: Substrate calls Events emitted for transferFrom()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cf7b96d6-e4e1-4233-9d7b-4a072c9c200d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Events emitted for transfer()&quot;,&quot;fullTitle&quot;:&quot;Fungible: Substrate calls Events emitted for transfer()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2bba3c20-33bd-4365-bce6-a415c26f86b3&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;aa6f7c90-68ff-4b90-85cf-a35adfd5df6c&quot;,&quot;cf7b96d6-e4e1-4233-9d7b-4a072c9c200d&quot;,&quot;2bba3c20-33bd-4365-bce6-a415c26f86b3&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;ba3b6c83-0f9f-4fb8-8ad4-d53ef53312f7&quot;,&quot;title&quot;:&quot;Helpers sanity check&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/helpersSmoke.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/helpersSmoke.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Contract owner is recorded&quot;,&quot;fullTitle&quot;:&quot;Helpers sanity check Contract owner is recorded&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;051817e6-7916-4f3b-8f07-53399cadceb9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Flipper is working&quot;,&quot;fullTitle&quot;:&quot;Helpers sanity check Flipper is working&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ed6828c4-1e4d-4019-a9ab-09908d92a125&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;051817e6-7916-4f3b-8f07-53399cadceb9&quot;,&quot;ed6828c4-1e4d-4019-a9ab-09908d92a125&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;f55a84b3-636b-41ab-a5b4-bc3c2a5b18d0&quot;,&quot;title&quot;:&quot;Matcher contract usage&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/marketplace/marketplace.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/marketplace/marketplace.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;With UNQ&quot;,&quot;fullTitle&quot;:&quot;Matcher contract usage With UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2f01ebb5-2705-439a-9540-390408e547c0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;With custom ERC20&quot;,&quot;fullTitle&quot;:&quot;Matcher contract usage With custom ERC20&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ccf9e063-ac4a-4c78-a9ed-13deb1d5e2ae&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;With escrow&quot;,&quot;fullTitle&quot;:&quot;Matcher contract usage With escrow&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2ad4094c-5a03-4f59-8140-a973b6f16e87&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;2f01ebb5-2705-439a-9540-390408e547c0&quot;,&quot;ccf9e063-ac4a-4c78-a9ed-13deb1d5e2ae&quot;,&quot;2ad4094c-5a03-4f59-8140-a973b6f16e87&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;9c8dfde9-8dc0-4258-95ec-998c0cbd658b&quot;,&quot;title&quot;:&quot;Common metadata&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/metadata.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/metadata.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Returns collection name&quot;,&quot;fullTitle&quot;:&quot;Common metadata Returns collection name&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6388af9f-2efe-42ba-bfd7-cd29fabd8af9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Returns symbol name&quot;,&quot;fullTitle&quot;:&quot;Common metadata Returns symbol name&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;698a3dfb-824b-4e20-99fa-9ff4a01cc206&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;6388af9f-2efe-42ba-bfd7-cd29fabd8af9&quot;,&quot;698a3dfb-824b-4e20-99fa-9ff4a01cc206&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;621af845-f162-42a3-b591-dfba99fe7e04&quot;,&quot;title&quot;:&quot;Fungible metadata&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/metadata.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/metadata.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Returns fungible decimals&quot;,&quot;fullTitle&quot;:&quot;Fungible metadata Returns fungible decimals&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f09618db-1592-4fb9-acf1-b71ecf10b3d1&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;f09618db-1592-4fb9-acf1-b71ecf10b3d1&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5e6c13ef-795c-416a-9c78-ead6a32d3b7d&quot;,&quot;title&quot;:&quot;EVM Migrations&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/migration.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/migration.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Deploy contract saved state&quot;,&quot;fullTitle&quot;:&quot;EVM Migrations Deploy contract saved state&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a5a57dce-aec7-43f8-a4fb-8b7f28c8b098&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a5a57dce-aec7-43f8-a4fb-8b7f28c8b098&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;29c89e20-ce3a-4cc7-b5ce-cf92a2f775c7&quot;,&quot;title&quot;:&quot;NFT: Information getting&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/nonFungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/nonFungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;totalSupply&quot;,&quot;fullTitle&quot;:&quot;NFT: Information getting totalSupply&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1a7693a8-a035-43a6-ada3-9789e96b8afc&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;balanceOf&quot;,&quot;fullTitle&quot;:&quot;NFT: Information getting balanceOf&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5ed76965-d2ea-4fcb-aca5-b2d941118ca4&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;ownerOf&quot;,&quot;fullTitle&quot;:&quot;NFT: Information getting ownerOf&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;67ee6485-e697-42c9-a3eb-304af1ac2530&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;1a7693a8-a035-43a6-ada3-9789e96b8afc&quot;,&quot;5ed76965-d2ea-4fcb-aca5-b2d941118ca4&quot;,&quot;67ee6485-e697-42c9-a3eb-304af1ac2530&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;dd3c3df9-87e7-4de4-9a10-86603947cd0a&quot;,&quot;title&quot;:&quot;NFT: Plain calls&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/nonFungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/nonFungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Can perform mint()&quot;,&quot;fullTitle&quot;:&quot;NFT: Plain calls Can perform mint()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;17886293-1b92-4e5e-8e87-b877c04eb0d7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform burn()&quot;,&quot;fullTitle&quot;:&quot;NFT: Plain calls Can perform burn()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;777af62f-e701-4586-8b91-3136588eedc3&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform approve()&quot;,&quot;fullTitle&quot;:&quot;NFT: Plain calls Can perform approve()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;87cca972-d2fe-46d3-b8d9-78f13f0eeb56&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transferFrom()&quot;,&quot;fullTitle&quot;:&quot;NFT: Plain calls Can perform transferFrom()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bd6c2bd1-cf7d-417c-8d97-29bb263bd52f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transfer()&quot;,&quot;fullTitle&quot;:&quot;NFT: Plain calls Can perform transfer()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9a9d9fce-0eae-4350-bb31-7bd5cddfa379&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;17886293-1b92-4e5e-8e87-b877c04eb0d7&quot;,&quot;777af62f-e701-4586-8b91-3136588eedc3&quot;,&quot;87cca972-d2fe-46d3-b8d9-78f13f0eeb56&quot;,&quot;bd6c2bd1-cf7d-417c-8d97-29bb263bd52f&quot;,&quot;9a9d9fce-0eae-4350-bb31-7bd5cddfa379&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;2c5ec398-8026-4f53-a652-031d46ae1b99&quot;,&quot;title&quot;:&quot;NFT: Fees&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/nonFungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/nonFungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;approve() call fee is less than 0.2UNQ&quot;,&quot;fullTitle&quot;:&quot;NFT: Fees approve() call fee is less than 0.2UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2a278075-6373-464b-9c11-b9ad67ec0c4a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom() call fee is less than 0.2UNQ&quot;,&quot;fullTitle&quot;:&quot;NFT: Fees transferFrom() call fee is less than 0.2UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f5bdbf22-f3c5-4ed3-8b3b-0b8f888a4658&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transfer() call fee is less than 0.2UNQ&quot;,&quot;fullTitle&quot;:&quot;NFT: Fees transfer() call fee is less than 0.2UNQ&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;69da8472-8f02-4763-9ff6-9c2e60bbd4d9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;2a278075-6373-464b-9c11-b9ad67ec0c4a&quot;,&quot;f5bdbf22-f3c5-4ed3-8b3b-0b8f888a4658&quot;,&quot;69da8472-8f02-4763-9ff6-9c2e60bbd4d9&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;be5044de-17be-4f4f-9c43-8a5c1139142e&quot;,&quot;title&quot;:&quot;NFT: Substrate calls&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/nonFungible.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/nonFungible.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Events emitted for mint()&quot;,&quot;fullTitle&quot;:&quot;NFT: Substrate calls Events emitted for mint()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2bb08a8e-2873-4619-83bb-f39af6239a09&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Events emitted for burn()&quot;,&quot;fullTitle&quot;:&quot;NFT: Substrate calls Events emitted for burn()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d49f6eb8-d101-48fc-a414-491137650956&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Events emitted for approve()&quot;,&quot;fullTitle&quot;:&quot;NFT: Substrate calls Events emitted for approve()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;57983457-a928-4a13-bb30-4802081a6197&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Events emitted for transferFrom()&quot;,&quot;fullTitle&quot;:&quot;NFT: Substrate calls Events emitted for transferFrom()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ddab55e4-95e4-4e59-9b16-ac782e667252&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Events emitted for transfer()&quot;,&quot;fullTitle&quot;:&quot;NFT: Substrate calls Events emitted for transfer()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;14b7b792-d571-4ac5-92a0-c3803e8ffcf7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;2bb08a8e-2873-4619-83bb-f39af6239a09&quot;,&quot;d49f6eb8-d101-48fc-a414-491137650956&quot;,&quot;57983457-a928-4a13-bb30-4802081a6197&quot;,&quot;ddab55e4-95e4-4e59-9b16-ac782e667252&quot;,&quot;14b7b792-d571-4ac5-92a0-c3803e8ffcf7&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;39e4e2ce-c9de-4260-a74f-8585fafecf1a&quot;,&quot;title&quot;:&quot;EVM payable contracts&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/payable.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/payable.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Evm contract can receive wei from eth account&quot;,&quot;fullTitle&quot;:&quot;EVM payable contracts Evm contract can receive wei from eth account&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;822d164c-5ac7-440a-8e76-c165898af1af&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Evm contract can receive wei from substrate account&quot;,&quot;fullTitle&quot;:&quot;EVM payable contracts Evm contract can receive wei from substrate account&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e6b31921-975a-42c4-9675-bcab97445089&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Wei sent directly to backing storage of evm contract balance is unaccounted&quot;,&quot;fullTitle&quot;:&quot;EVM payable contracts Wei sent directly to backing storage of evm contract balance is unaccounted&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6b49958a-fd26-40d3-a188-202fe5e5904a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Balance can be retrieved from evm contract&quot;,&quot;fullTitle&quot;:&quot;EVM payable contracts Balance can be retrieved from evm contract&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1fe5e42d-f3cb-46fd-ad4e-0c1e4525fa4f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;822d164c-5ac7-440a-8e76-c165898af1af&quot;,&quot;e6b31921-975a-42c4-9675-bcab97445089&quot;,&quot;6b49958a-fd26-40d3-a188-202fe5e5904a&quot;,&quot;1fe5e42d-f3cb-46fd-ad4e-0c1e4525fa4f&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;d7123b77-e85e-4f5c-835e-25fb7ea0995c&quot;,&quot;title&quot;:&quot;Fungible (Via EVM proxy): Information getting&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/proxy/fungibleProxy.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/proxy/fungibleProxy.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;totalSupply&quot;,&quot;fullTitle&quot;:&quot;Fungible (Via EVM proxy): Information getting totalSupply&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;44d2365a-a35d-44cc-8cc0-8494474b9d2f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;balanceOf&quot;,&quot;fullTitle&quot;:&quot;Fungible (Via EVM proxy): Information getting balanceOf&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9c9cc56c-a6ab-4f3d-8928-b6a7dac1bef2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;44d2365a-a35d-44cc-8cc0-8494474b9d2f&quot;,&quot;9c9cc56c-a6ab-4f3d-8928-b6a7dac1bef2&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;3d993567-a5f6-41b4-a454-426b2b0ba806&quot;,&quot;title&quot;:&quot;Fungible (Via EVM proxy): Plain calls&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/proxy/fungibleProxy.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/proxy/fungibleProxy.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Can perform approve()&quot;,&quot;fullTitle&quot;:&quot;Fungible (Via EVM proxy): Plain calls Can perform approve()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;85c01938-eb19-409f-9343-c89d4b128af5&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transferFrom()&quot;,&quot;fullTitle&quot;:&quot;Fungible (Via EVM proxy): Plain calls Can perform transferFrom()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;978c10ed-0dcb-412f-b6a0-0e85366de9b1&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transfer()&quot;,&quot;fullTitle&quot;:&quot;Fungible (Via EVM proxy): Plain calls Can perform transfer()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3d203895-5663-4b95-b831-4d497ece8a12&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;85c01938-eb19-409f-9343-c89d4b128af5&quot;,&quot;978c10ed-0dcb-412f-b6a0-0e85366de9b1&quot;,&quot;3d203895-5663-4b95-b831-4d497ece8a12&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;a1237654-d12a-476d-a746-7e1caf639542&quot;,&quot;title&quot;:&quot;NFT (Via EVM proxy): Information getting&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/proxy/nonFungibleProxy.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/proxy/nonFungibleProxy.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;totalSupply&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Information getting totalSupply&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3e71410e-4799-4d58-95bc-6ea860550b52&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;balanceOf&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Information getting balanceOf&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;28d140d6-9e3f-4b98-92fa-f8fa23158060&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;ownerOf&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Information getting ownerOf&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;159d2f85-802f-4728-b7f3-ed156ce034f3&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;3e71410e-4799-4d58-95bc-6ea860550b52&quot;,&quot;28d140d6-9e3f-4b98-92fa-f8fa23158060&quot;,&quot;159d2f85-802f-4728-b7f3-ed156ce034f3&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;6024151e-59e4-4403-bbbb-578984a48786&quot;,&quot;title&quot;:&quot;NFT (Via EVM proxy): Plain calls&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/proxy/nonFungibleProxy.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/proxy/nonFungibleProxy.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Can perform mint()&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Plain calls Can perform mint()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b19fe432-9e66-4d0b-95d3-71c8da071695&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform burn()&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Plain calls Can perform burn()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d9075a45-8e4b-4b0a-859f-7062a3bbfb08&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform approve()&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Plain calls Can perform approve()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1e441b49-2c31-4352-8737-99d9fd0a53ce&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transferFrom()&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Plain calls Can perform transferFrom()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;caa9e0f6-b5f8-4765-9a78-5a57314a93d4&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can perform transfer()&quot;,&quot;fullTitle&quot;:&quot;NFT (Via EVM proxy): Plain calls Can perform transfer()&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9c70266f-3630-4867-bd98-99f85f3ad367&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;b19fe432-9e66-4d0b-95d3-71c8da071695&quot;,&quot;d9075a45-8e4b-4b0a-859f-7062a3bbfb08&quot;,&quot;1e441b49-2c31-4352-8737-99d9fd0a53ce&quot;,&quot;caa9e0f6-b5f8-4765-9a78-5a57314a93d4&quot;,&quot;9c70266f-3630-4867-bd98-99f85f3ad367&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;a6b7f868-6106-44c7-94bd-a23435c69ce8&quot;,&quot;title&quot;:&quot;EVM sponsoring&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/eth/sponsoring.test.ts&quot;,&quot;file&quot;:&quot;/src/eth/sponsoring.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Fee is deducted from contract if sponsoring is enabled&quot;,&quot;fullTitle&quot;:&quot;EVM sponsoring Fee is deducted from contract if sponsoring is enabled&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e7d2b28d-add7-48b9-bb49-0f6e3de0e911&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;...but this doesn&#x27;t applies to payable value&quot;,&quot;fullTitle&quot;:&quot;EVM sponsoring ...but this doesn&#x27;t applies to payable value&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await usingWeb3(async (web3) =&gt; {\n        await cb({ api, web3 });\n    });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3b4ee7bd-ce13-4061-bb00-b42c12a56a51&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;e7d2b28d-add7-48b9-bb49-0f6e3de0e911&quot;,&quot;3b4ee7bd-ce13-4061-bb00-b42c12a56a51&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;3a782123-a540-4917-97ca-acaa03e2ec44&quot;,&quot;title&quot;:&quot;integration test: Inflation&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/inflation.test.ts&quot;,&quot;file&quot;:&quot;/src/inflation.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;First year inflation is 10%&quot;,&quot;fullTitle&quot;:&quot;integration test: Inflation First year inflation is 10%&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const blockInterval = parseInt((await api.consts.inflation.inflationBlockInterval).toString());\n    const totalIssuanceStart = new bignumber_js_1.BigNumber((await api.query.inflation.startingYearTotalIssuance()).toString());\n    const blockInflation = new bignumber_js_1.BigNumber((await api.query.inflation.blockInflation()).toString());\n    const YEAR = 5259600; // Blocks in one year\n    const totalExpectedInflation = totalIssuanceStart.multipliedBy(0.1);\n    const totalActualInflation = blockInflation.multipliedBy(YEAR / blockInterval);\n    const tolerance = 0.00001; // Relative difference per year between theoretical and actual inflation\n    expect(totalExpectedInflation.dividedBy(totalActualInflation).minus(1).abs().toNumber()).to.be.lessThan(tolerance);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4bb3a25e-9223-42c1-b99a-b78e248ac864&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;4bb3a25e-9223-42c1-b99a-b78e248ac864&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;3cb447bc-3795-43d4-ba76-9e96f7c10164&quot;,&quot;title&quot;:&quot;Integration Test fungible overflows&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/overflow.test.ts&quot;,&quot;file&quot;:&quot;/src/overflow.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test fungible overflows \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;87cb3cb2-344b-41dc-ab4e-43a13a6f956a&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails when overflows on transfer&quot;,&quot;fullTitle&quot;:&quot;Integration Test fungible overflows fails when overflows on transfer&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: helpers_1.U128_MAX });\nawait helpers_1.transferExpectSuccess(fungibleCollectionId, 0, alice, bob, helpers_1.U128_MAX, &#x27;Fungible&#x27;);\nawait helpers_1.createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: 1n });\nawait helpers_1.transferExpectFailure(fungibleCollectionId, 0, alice, bob, 1);\nexpect(await helpers_1.getFungibleBalance(fungibleCollectionId, alice.address)).to.equal(1n);\nexpect(await helpers_1.getFungibleBalance(fungibleCollectionId, bob.address)).to.equal(helpers_1.U128_MAX);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;494b4340-c214-43e1-9a60-bf5ed837b911&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on allowance overflow&quot;,&quot;fullTitle&quot;:&quot;Integration Test fungible overflows fails on allowance overflow&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: helpers_1.U128_MAX });\nawait helpers_1.approveExpectSuccess(fungibleCollectionId, 0, alice, bob, helpers_1.U128_MAX);\nawait helpers_1.approveExpectFail(fungibleCollectionId, 0, alice, bob, helpers_1.U128_MAX);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;576bd335-6c12-4c4b-8330-3df79feaebab&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails when overflows on transferFrom&quot;,&quot;fullTitle&quot;:&quot;Integration Test fungible overflows fails when overflows on transferFrom&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: helpers_1.U128_MAX });\nawait helpers_1.approveExpectSuccess(fungibleCollectionId, 0, alice, bob, helpers_1.U128_MAX);\nawait helpers_1.transferFromExpectSuccess(fungibleCollectionId, 0, bob, alice, charlie, helpers_1.U128_MAX, &#x27;Fungible&#x27;);\nexpect(await helpers_1.getFungibleBalance(fungibleCollectionId, charlie.address)).to.equal(helpers_1.U128_MAX);\nexpect((await helpers_1.getAllowance(fungibleCollectionId, 0, alice.address, bob.address)).toString()).to.equal(&#x27;0&#x27;);\nawait helpers_1.createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: helpers_1.U128_MAX });\nawait helpers_1.approveExpectSuccess(fungibleCollectionId, 0, alice, bob, 1n);\nawait helpers_1.transferFromExpectFail(fungibleCollectionId, 0, bob, alice, charlie, 1);\nexpect(await helpers_1.getFungibleBalance(fungibleCollectionId, charlie.address)).to.equal(helpers_1.U128_MAX);\nexpect((await helpers_1.getAllowance(fungibleCollectionId, 0, alice.address, bob.address)).toString()).to.equal(&#x27;1&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a384b326-375e-4c27-96d7-ebb95b0f2952&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;494b4340-c214-43e1-9a60-bf5ed837b911&quot;,&quot;576bd335-6c12-4c4b-8330-3df79feaebab&quot;,&quot;a384b326-375e-4c27-96d7-ebb95b0f2952&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;eb63d35a-61f0-4f4b-97a3-3d752c0ed6ff&quot;,&quot;title&quot;:&quot;Pallet presence&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/pallet-presence.test.ts&quot;,&quot;file&quot;:&quot;/src/pallet-presence.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Required pallets are present&quot;,&quot;fullTitle&quot;:&quot;Pallet presence Required pallets are present&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    for (let i = 0; i &lt; requiredPallets.length; i++) {\n        chai_1.expect(getModuleNames(api)).to.include(requiredPallets[i]);\n    }\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ef7906da-de02-4c50-a4b9-2afeba4cff54&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Governance and consensus pallets are present&quot;,&quot;fullTitle&quot;:&quot;Pallet presence Governance and consensus pallets are present&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    for (let i = 0; i &lt; consensusPallets.length; i++) {\n        chai_1.expect(getModuleNames(api)).to.include(consensusPallets[i]);\n    }\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cdc09d05-ff48-4fa1-9afa-5a868164a7d3&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;No extra pallets are included&quot;,&quot;fullTitle&quot;:&quot;Pallet presence No extra pallets are included&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    chai_1.expect(getModuleNames(api).sort()).to.be.deep.equal([...requiredPallets, ...consensusPallets].sort());\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3e3cc583-e342-44b9-a5c3-7a9101d48118&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;ef7906da-de02-4c50-a4b9-2afeba4cff54&quot;,&quot;cdc09d05-ff48-4fa1-9afa-5a868164a7d3&quot;,&quot;3e3cc583-e342-44b9-a5c3-7a9101d48118&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;dc732f9f-225a-4ac1-b53c-d6d723388d72&quot;,&quot;title&quot;:&quot;Integration Test removeCollectionAdmin(collection_id, account_id):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeCollectionAdmin.test.ts&quot;,&quot;file&quot;:&quot;/src/removeCollectionAdmin.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Remove collection admin.&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeCollectionAdmin(collection_id, account_id): Remove collection admin.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.deep.eq(Alice.address);\n    // first - add collection admin Bob\n    const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await substrate_api_1.submitTransactionAsync(Alice, addAdminTx);\n    const adminListAfterAddAdmin = (await api.query.nft.adminList(collectionId)).toJSON();\n    expect(adminListAfterAddAdmin).to.be.deep.contains(helpers_1.normalizeAccountId(Bob.address));\n    // then remove bob from admins of collection\n    const removeAdminTx = api.tx.nft.removeCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await substrate_api_1.submitTransactionAsync(Alice, removeAdminTx);\n    const adminListAfterRemoveAdmin = (await api.query.nft.adminList(collectionId)).toJSON;\n    expect(adminListAfterRemoveAdmin).not.to.be.deep.contains(helpers_1.normalizeAccountId(Bob.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1e89bb51-7d8b-4059-8bec-06511701d088&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Remove collection admin by admin.&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeCollectionAdmin(collection_id, account_id): Remove collection admin by admin.&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.deep.eq(Alice.address);\n    // first - add collection admin Bob\n    const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await substrate_api_1.submitTransactionAsync(Alice, addAdminTx);\n    const addAdminTx2 = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Charlie.address));\n    await substrate_api_1.submitTransactionAsync(Alice, addAdminTx2);\n    const adminListAfterAddAdmin = (await api.query.nft.adminList(collectionId)).toJSON();\n    expect(adminListAfterAddAdmin).to.be.deep.contains(helpers_1.normalizeAccountId(Bob.address));\n    // then remove bob from admins of collection\n    const removeAdminTx = api.tx.nft.removeCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await substrate_api_1.submitTransactionAsync(Charlie, removeAdminTx);\n    const adminListAfterRemoveAdmin = (await api.query.nft.adminList(collectionId)).toJSON;\n    expect(adminListAfterRemoveAdmin).not.to.be.deep.contains(helpers_1.normalizeAccountId(Bob.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;aa6bb14d-7b07-4c11-8f63-f19f34678e0d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Remove admin from collection that has no admins&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeCollectionAdmin(collection_id, account_id): Remove admin from collection that has no admins&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const adminListBeforeAddAdmin = (await api.query.nft.adminList(collectionId));\n    expect(adminListBeforeAddAdmin).to.have.lengthOf(0);\n    const tx = api.tx.nft.removeCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Alice.address));\n    await substrate_api_1.submitTransactionAsync(Alice, tx);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;19946d54-de8a-4a6b-95bd-05d67da4992a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;1e89bb51-7d8b-4059-8bec-06511701d088&quot;,&quot;aa6bb14d-7b07-4c11-8f63-f19f34678e0d&quot;,&quot;19946d54-de8a-4a6b-95bd-05d67da4992a&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;55dcf9fb-d81f-497c-8e8f-362fe16e8d9b&quot;,&quot;title&quot;:&quot;Negative Integration Test removeCollectionAdmin(collection_id, account_id):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeCollectionAdmin.test.ts&quot;,&quot;file&quot;:&quot;/src/removeCollectionAdmin.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Can&#x27;t remove collection admin from not existing collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeCollectionAdmin(collection_id, account_id): Can&#x27;t remove collection admin from not existing collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = (1 &lt;&lt; 32) - 1;\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const changeOwnerTx = api.tx.nft.removeCollectionAdmin(collectionId, helpers_1.normalizeAccountId(bob.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, changeOwnerTx)).to.be.rejected;\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cb3c0197-2eda-459f-98f2-fb24f0c8682a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Can&#x27;t remove collection admin from deleted collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeCollectionAdmin(collection_id, account_id): Can&#x27;t remove collection admin from deleted collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n    const changeOwnerTx = api.tx.nft.removeCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, changeOwnerTx)).to.be.rejected;\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;10428424-2150-4a02-a617-0b21f301e690&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user Can&#x27;t remove collection admin&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeCollectionAdmin(collection_id, account_id): Regular user Can&#x27;t remove collection admin&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n    const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await substrate_api_1.submitTransactionAsync(Alice, addAdminTx);\n    const changeOwnerTx = api.tx.nft.removeCollectionAdmin(collectionId, helpers_1.normalizeAccountId(Bob.address));\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Charlie, changeOwnerTx)).to.be.rejected;\n    // Verifying that nothing bad happened (network is live, new collections can be created, etc.)\n    await helpers_1.createCollectionExpectSuccess();\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f4f77126-8ff7-41fa-8b6a-0136f721d9b6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;cb3c0197-2eda-459f-98f2-fb24f0c8682a&quot;,&quot;10428424-2150-4a02-a617-0b21f301e690&quot;,&quot;f4f77126-8ff7-41fa-8b6a-0136f721d9b6&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;4964745b-c07c-469a-bd86-3aabe116e79c&quot;,&quot;title&quot;:&quot;integration test: ext. removeCollectionSponsor():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeCollectionSponsor.test.ts&quot;,&quot;file&quot;:&quot;/src/removeCollectionSponsor.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. removeCollectionSponsor(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;073aa191-794a-43ea-afe9-eece5ca6ea5b&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Removing NFT collection sponsor stops sponsorship&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. removeCollectionSponsor(): Removing NFT collection sponsor stops sponsorship&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait helpers_1.removeCollectionSponsorExpectSuccess(collectionId);\nawait substrate_api_1.default(async (api) =&gt; {\n    // Find unused address\n    const zeroBalance = await helpers_1.findUnusedAddress(api);\n    // Mint token for unused address\n    const itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;, zeroBalance.address);\n    // Transfer this tokens from unused address to Alice - should fail\n    const AsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    const zeroToAlice = api.tx.nft.transfer(helpers_1.normalizeAccountId(alice.address), collectionId, itemId, 0);\n    const badTransaction = async function () {\n        await substrate_api_1.submitTransactionExpectFailAsync(zeroBalance, zeroToAlice);\n    };\n    await expect(badTransaction()).to.be.rejectedWith(&#x27;Inability to pay some fees&#x27;);\n    const BsponsorBalance = new bignumber_js_1.BigNumber((await api.query.system.account(bob.address)).data.free.toString());\n    expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7340d2b9-1efe-4571-adb6-2fc324d04587&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Remove a sponsor after it was already removed&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. removeCollectionSponsor(): Remove a sponsor after it was already removed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait helpers_1.removeCollectionSponsorExpectSuccess(collectionId);\nawait helpers_1.removeCollectionSponsorExpectSuccess(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;989ef0aa-29ba-40e5-a468-77743d0450c7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Remove sponsor in a collection that never had the sponsor set&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. removeCollectionSponsor(): Remove sponsor in a collection that never had the sponsor set&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.removeCollectionSponsorExpectSuccess(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;48c44c61-dfae-46bf-9862-a56e3377f5d3&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Remove sponsor for a collection that had the sponsor set, but not confirmed&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. removeCollectionSponsor(): Remove sponsor for a collection that had the sponsor set, but not confirmed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.removeCollectionSponsorExpectSuccess(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;79a34054-2bf6-453f-ab67-996b5a978801&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;7340d2b9-1efe-4571-adb6-2fc324d04587&quot;,&quot;989ef0aa-29ba-40e5-a468-77743d0450c7&quot;,&quot;48c44c61-dfae-46bf-9862-a56e3377f5d3&quot;,&quot;79a34054-2bf6-453f-ab67-996b5a978801&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;46267fd7-8042-4ac8-8efa-9e6b2a450d98&quot;,&quot;title&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeCollectionSponsor.test.ts&quot;,&quot;file&quot;:&quot;/src/removeCollectionSponsor.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ed73243a-c3b3-47dc-accf-cfb8e03021ae&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;(!negative test!) Remove sponsor for a collection that never existed&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor(): (!negative test!) Remove sponsor for a collection that never existed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// Find the collection that never existed\nlet collectionId = 0;\nawait substrate_api_1.default(async (api) =&gt; {\n    collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n});\nawait helpers_1.removeCollectionSponsorExpectFailure(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e35932f4-4d42-4d65-8d46-7246df195d99&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Remove sponsor for a collection with collection admin permissions&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor(): (!negative test!) Remove sponsor for a collection with collection admin permissions&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\nawait helpers_1.removeCollectionSponsorExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;85ae77c3-2b77-4f93-a49c-5b607907004e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Remove sponsor for a collection by regular user&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor(): (!negative test!) Remove sponsor for a collection by regular user&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.removeCollectionSponsorExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7aaae6ca-2617-469d-9192-6689adf16516&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Remove sponsor in a destroyed collection&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor(): (!negative test!) Remove sponsor in a destroyed collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);\nawait helpers_1.removeCollectionSponsorExpectFailure(collectionId);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9d7a6e72-16ef-4ce7-a2a3-adf9ab8682a6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set - remove - confirm: fails&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor(): Set - remove - confirm: fails&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.removeCollectionSponsorExpectSuccess(collectionId);\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;271077e2-6ea6-4690-a3a5-2194bb57a35c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set - confirm - remove - confirm: Sponsor cannot come back&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. removeCollectionSponsor(): Set - confirm - remove - confirm: Sponsor cannot come back&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId, &#x27;//Bob&#x27;);\nawait helpers_1.removeCollectionSponsorExpectSuccess(collectionId);\nawait helpers_1.confirmSponsorshipExpectFailure(collectionId, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cce11642-dcd7-40f6-bfdb-b1da80351677&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;e35932f4-4d42-4d65-8d46-7246df195d99&quot;,&quot;85ae77c3-2b77-4f93-a49c-5b607907004e&quot;,&quot;7aaae6ca-2617-469d-9192-6689adf16516&quot;,&quot;9d7a6e72-16ef-4ce7-a2a3-adf9ab8682a6&quot;,&quot;271077e2-6ea6-4690-a3a5-2194bb57a35c&quot;,&quot;cce11642-dcd7-40f6-bfdb-b1da80351677&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;090e386e-3947-4ceb-b0e9-56c8c3508d7b&quot;,&quot;title&quot;:&quot;Integration Test removeFromContractWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeFromContractWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/removeFromContractWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;user is no longer whitelisted after removal&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromContractWhiteList user is no longer whitelisted after removal&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;30612bcc-b508-4b33-a278-2fe06ac300e1&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;user can&#x27;t execute contract after removal&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromContractWhiteList user can&#x27;t execute contract after removal&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bbd33294-82f8-450b-b4cc-e40250a1abbc&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;can be called twice&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromContractWhiteList can be called twice&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9b422317-c895-4d4d-84e2-d5fcb6691899&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;30612bcc-b508-4b33-a278-2fe06ac300e1&quot;,&quot;bbd33294-82f8-450b-b4cc-e40250a1abbc&quot;,&quot;9b422317-c895-4d4d-84e2-d5fcb6691899&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;d47d209d-7b8e-4624-9853-69ac8edb7cae&quot;,&quot;title&quot;:&quot;Negative Integration Test removeFromContractWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeFromContractWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/removeFromContractWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails when called with non-contract address&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeFromContractWhiteList fails when called with non-contract address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4f24edbc-cc11-419a-beda-b4f5523bbacc&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;fails when executed by non owner&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeFromContractWhiteList fails when executed by non owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bcbccafd-9285-4e64-9284-5f6db30eb825&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;4f24edbc-cc11-419a-beda-b4f5523bbacc&quot;,&quot;bcbccafd-9285-4e64-9284-5f6db30eb825&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5645c742-0df3-48e9-a87e-17c9b86fc529&quot;,&quot;title&quot;:&quot;Integration Test removeFromWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeFromWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/removeFromWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromWhiteList \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;58a47998-94fb-4f5a-b1de-b091d4eb3c89&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;ensure bob is not in whitelist after removal&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromWhiteList ensure bob is not in whitelist after removal&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionId, bob.address);\n    await helpers_1.removeFromWhiteListExpectSuccess(alice, collectionId, helpers_1.normalizeAccountId(bob.address));\n    expect(await helpers_1.isWhitelisted(collectionId, bob.address)).to.be.false;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ce40679f-cb58-4efd-9fab-0c937dbb8a16&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;allows removal from collection with unset whitelist status&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromWhiteList allows removal from collection with unset whitelist status&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionWithoutWhitelistId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionWithoutWhitelistId, bob.address);\n    await helpers_1.disableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);\n    await helpers_1.removeFromWhiteListExpectSuccess(alice, collectionWithoutWhitelistId, helpers_1.normalizeAccountId(bob.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;dde05dbd-559a-45e3-9260-5830c90659ae&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;ce40679f-cb58-4efd-9fab-0c937dbb8a16&quot;,&quot;dde05dbd-559a-45e3-9260-5830c90659ae&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;19ce9466-ea0d-482a-ab0e-6cbdab561771&quot;,&quot;title&quot;:&quot;Negative Integration Test removeFromWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeFromWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/removeFromWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeFromWhiteList \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1a924510-3952-46dd-aa5c-548cfa332fac&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails on removal from not existing collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeFromWhiteList fails on removal from not existing collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.findNotExistingCollection(api);\n    await helpers_1.removeFromWhiteListExpectFailure(alice, collectionId, helpers_1.normalizeAccountId(bob.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3469734c-9e2c-4d43-beb3-f4b29eb1bd46&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on removal from removed collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test removeFromWhiteList fails on removal from removed collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionId, bob.address);\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n    await helpers_1.removeFromWhiteListExpectFailure(alice, collectionId, helpers_1.normalizeAccountId(bob.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bcbedd90-5b70-413f-84db-44643f560207&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;3469734c-9e2c-4d43-beb3-f4b29eb1bd46&quot;,&quot;bcbedd90-5b70-413f-84db-44643f560207&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;e52a884e-26af-4ea4-b808-af59702ee39c&quot;,&quot;title&quot;:&quot;Integration Test removeFromWhiteList with collection admin permissions&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/removeFromWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/removeFromWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromWhiteList with collection admin permissions \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a181856c-c084-4e13-aa7f-c1f70231fe00&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;ensure address is not in whitelist after removal&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromWhiteList with collection admin permissions ensure address is not in whitelist after removal&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\n    await helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionId, charlie.address);\n    await helpers_1.removeFromWhiteListExpectSuccess(bob, collectionId, helpers_1.normalizeAccountId(charlie.address));\n    expect(await helpers_1.isWhitelisted(collectionId, charlie.address)).to.be.false;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;95ab897e-27d4-4d3f-a10b-3c2be388a913&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Collection admin allowed to remove from whitelist with unset whitelist status&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromWhiteList with collection admin permissions Collection admin allowed to remove from whitelist with unset whitelist status&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionWithoutWhitelistId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);\n    await helpers_1.addCollectionAdminExpectSuccess(alice, collectionWithoutWhitelistId, bob);\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionWithoutWhitelistId, charlie.address);\n    await helpers_1.disableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);\n    await helpers_1.removeFromWhiteListExpectSuccess(bob, collectionWithoutWhitelistId, helpers_1.normalizeAccountId(charlie.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;65854ca8-cab8-4bec-bff4-8f2b22f904d0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user can`t remove from whitelist&quot;,&quot;fullTitle&quot;:&quot;Integration Test removeFromWhiteList with collection admin permissions Regular user can`t remove from whitelist&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionWithoutWhitelistId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionWithoutWhitelistId, charlie.address);\n    await helpers_1.removeFromWhiteListExpectFailure(bob, collectionWithoutWhitelistId, helpers_1.normalizeAccountId(charlie.address));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ea3232c6-dc6f-48f1-b0bf-16ff18789fcd&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;95ab897e-27d4-4d3f-a10b-3c2be388a913&quot;,&quot;65854ca8-cab8-4bec-bff4-8f2b22f904d0&quot;,&quot;ea3232c6-dc6f-48f1-b0bf-16ff18789fcd&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;d445ff02-9beb-4d72-a551-3cfcbe03f764&quot;,&quot;title&quot;:&quot;Integration Test scheduler base transaction&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/scheduler.test.ts&quot;,&quot;file&quot;:&quot;/src/scheduler.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;User can transfer owned token with delay (scheduler)&quot;,&quot;fullTitle&quot;:&quot;Integration Test scheduler base transaction User can transfer owned token with delay (scheduler)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    await helpers_1.setCollectionSponsorExpectSuccess(nftCollectionId, Alice.address);\n    await helpers_1.confirmSponsorshipExpectSuccess(nftCollectionId);\n    await helpers_1.scheduleTransferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, 6000, 4);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a7260324-2729-42a7-9a19-8587cc347edd&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a7260324-2729-42a7-9a19-8587cc347edd&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;31bca936-fc7a-4283-a857-2a6b853ab612&quot;,&quot;title&quot;:&quot;Negative Integration Test setChainLimits&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setChainLimits.test.ts&quot;,&quot;file&quot;:&quot;/src/setChainLimits.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setChainLimits \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    dave = privateKey_1.default(&#x27;//Dave&#x27;);\n    limits = {\n        CollectionNumbersLimit: 1,\n        AccountTokenOwnershipLimit: 1,\n        CollectionsAdminsLimit: 1,\n        CustomDataLimit: 1,\n        NftSponsorTransferTimeout: 1,\n        FungibleSponsorTransferTimeout: 1,\n        RefungibleSponsorTransferTimeout: 1,\n        OffchainSchemaLimit: 1,\n        VariableOnChainSchemaLimit: 1,\n        ConstOnChainSchemaLimit: 1,\n    };\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d688f74a-285d-42bc-be8d-681e088bb48b&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Collection owner cannot set chain limits&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setChainLimits Collection owner cannot set chain limits&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nawait helpers_1.setChainLimitsExpectFailure(alice, limits);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4c3a77eb-6b88-43db-87be-aad42e534e5d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Collection admin cannot set chain limits&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setChainLimits Collection admin cannot set chain limits&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nawait helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\nawait helpers_1.setChainLimitsExpectFailure(bob, limits);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e10a746b-5eb2-46b4-83c1-73610192c10d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user cannot set chain limits&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setChainLimits Regular user cannot set chain limits&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.setChainLimitsExpectFailure(dave, limits);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;80a8e621-e260-4231-bd27-e4f4b15c1634&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;4c3a77eb-6b88-43db-87be-aad42e534e5d&quot;,&quot;e10a746b-5eb2-46b4-83c1-73610192c10d&quot;,&quot;80a8e621-e260-4231-bd27-e4f4b15c1634&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;864e8fd6-67ae-4a10-88ad-33850223b651&quot;,&quot;title&quot;:&quot;setCollectionLimits positive&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setCollectionLimits.test.ts&quot;,&quot;file&quot;:&quot;/src/setCollectionLimits.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits positive \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    collectionIdForTesting = await helpers_1.createCollectionExpectSuccess({ name: &#x27;A&#x27;, description: &#x27;B&#x27;, tokenPrefix: &#x27;C&#x27;, mode: { type: &#x27;NFT&#x27; } });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2cc67a48-a83e-49b2-9c6c-cce236dfc6ff&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setCollectionLimits with predefined params &quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits positive execute setCollectionLimits with predefined params &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setCollectionLimits(collectionIdForTesting, {\n        AccountTokenOwnershipLimit: accountTokenOwnershipLimit,\n        SponsoredMintSize: sponsoredDataSize,\n        TokenLimit: tokenLimit,\n        SponsorTimeout: sponsorTimeout,\n        OwnerCanTransfer: true,\n        OwnerCanDestroy: true,\n    });\n    const events = await substrate_api_1.submitTransactionAsync(alice, tx);\n    const result = helpers_1.getCreateItemResult(events);\n    // get collection limits defined previously\n    const collectionInfo = await helpers_1.getDetailedCollectionInfo(api, collectionIdForTesting);\n    // tslint:disable-next-line:no-unused-expression\n    expect(result.success).to.be.true;\n    expect(collectionInfo.Limits.AccountTokenOwnershipLimit).to.be.equal(accountTokenOwnershipLimit);\n    expect(collectionInfo.Limits.SponsoredDataSize).to.be.equal(sponsoredDataSize);\n    expect(collectionInfo.Limits.TokenLimit).to.be.equal(tokenLimit);\n    expect(collectionInfo.Limits.SponsorTimeout).to.be.equal(sponsorTimeout);\n    expect(collectionInfo.Limits.OwnerCanTransfer).to.be.true;\n    expect(collectionInfo.Limits.OwnerCanDestroy).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d32d1982-da29-46d9-8d16-10523cd331b6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set the same token limit twice&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits positive Set the same token limit twice&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionLimits = {\n        AccountTokenOwnershipLimit: accountTokenOwnershipLimit,\n        SponsoredMintSize: sponsoredDataSize,\n        TokenLimit: tokenLimit,\n        SponsorTimeout: sponsorTimeout,\n        OwnerCanTransfer: true,\n        OwnerCanDestroy: true,\n    };\n    // The first time\n    const tx1 = api.tx.nft.setCollectionLimits(collectionIdForTesting, collectionLimits);\n    const events1 = await substrate_api_1.submitTransactionAsync(alice, tx1);\n    const result1 = helpers_1.getCreateItemResult(events1);\n    const collectionInfo1 = await helpers_1.getDetailedCollectionInfo(api, collectionIdForTesting);\n    // The second time\n    const tx2 = api.tx.nft.setCollectionLimits(collectionIdForTesting, collectionLimits);\n    const events2 = await substrate_api_1.submitTransactionAsync(alice, tx2);\n    const result2 = helpers_1.getCreateItemResult(events2);\n    const collectionInfo2 = await helpers_1.getDetailedCollectionInfo(api, collectionIdForTesting);\n    // tslint:disable-next-line:no-unused-expression\n    expect(result1.success).to.be.true;\n    expect(collectionInfo1.Limits.TokenLimit).to.be.equal(tokenLimit);\n    expect(result2.success).to.be.true;\n    expect(collectionInfo2.Limits.TokenLimit).to.be.equal(tokenLimit);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6b883ae8-e9cc-436f-b66f-d589dee3774b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;d32d1982-da29-46d9-8d16-10523cd331b6&quot;,&quot;6b883ae8-e9cc-436f-b66f-d589dee3774b&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;80730974-8aaf-4b53-837e-843c327f5f32&quot;,&quot;title&quot;:&quot;setCollectionLimits negative&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setCollectionLimits.test.ts&quot;,&quot;file&quot;:&quot;/src/setCollectionLimits.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n    collectionIdForTesting = await helpers_1.createCollectionExpectSuccess({ name: &#x27;A&#x27;, description: &#x27;B&#x27;, tokenPrefix: &#x27;C&#x27;, mode: { type: &#x27;NFT&#x27; } });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a19bd118-2c02-44a5-8352-4ba72d5b51ea&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setCollectionLimits for not exists collection&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative execute setCollectionLimits for not exists collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionCount = await helpers_1.getCreatedCollectionCount(api);\n    const nonExistedCollectionId = collectionCount + 1;\n    tx = api.tx.nft.setCollectionLimits(nonExistedCollectionId, {\n        accountTokenOwnershipLimit,\n        sponsoredDataSize,\n        sponsoredMintSize,\n        tokenLimit,\n    });\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;53dc0d8c-321e-4901-9157-3fd66bcc15ab&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;execute setCollectionLimits from user who is not owner of this collection&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative execute setCollectionLimits from user who is not owner of this collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setCollectionLimits(collectionIdForTesting, {\n        accountTokenOwnershipLimit,\n        sponsoredDataSize,\n        sponsoredMintSize,\n        tokenLimit,\n    });\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ddad0ec1-5004-45c0-b755-a8c833b3c744&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;execute setCollectionLimits from admin collection&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative execute setCollectionLimits from admin collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob);\nawait substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setCollectionLimits(collectionIdForTesting, {\n        accountTokenOwnershipLimit,\n        sponsoredDataSize,\n        sponsoredMintSize,\n        tokenLimit,\n    });\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a62c80c1-5434-4801-9a9b-7a901d3a6e12&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;execute setCollectionLimits with incorrect limits&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative execute setCollectionLimits with incorrect limits&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setCollectionLimits(collectionIdForTesting, {\n        accountTokenOwnershipLimit: &#x27;awdawd&#x27;,\n        sponsorTransferTimeout: &#x27;awd&#x27;,\n        sponsoredDataSize: &#x27;12312312312312312&#x27;,\n        tokenLimit: &#x27;-100&#x27;,\n    });\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d2e949e0-7f48-4d3c-a12d-8da0910c3ce3&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails when trying to enable OwnerCanTransfer after it was disabled&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative fails when trying to enable OwnerCanTransfer after it was disabled&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, {\n    AccountTokenOwnershipLimit: accountTokenOwnershipLimit,\n    SponsoredMintSize: sponsoredDataSize,\n    TokenLimit: tokenLimit,\n    SponsorTimeout: sponsorTimeout,\n    OwnerCanTransfer: false,\n    OwnerCanDestroy: true,\n});\nawait helpers_1.setCollectionLimitsExpectFailure(alice, collectionId, {\n    AccountTokenOwnershipLimit: accountTokenOwnershipLimit,\n    SponsoredMintSize: sponsoredDataSize,\n    TokenLimit: tokenLimit,\n    SponsorTimeout: sponsorTimeout,\n    OwnerCanTransfer: true,\n    OwnerCanDestroy: true,\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9520e496-d043-44a3-bb82-d17eb2499334&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails when trying to enable OwnerCanDestroy after it was disabled&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative fails when trying to enable OwnerCanDestroy after it was disabled&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, {\n    AccountTokenOwnershipLimit: accountTokenOwnershipLimit,\n    SponsoredMintSize: sponsoredDataSize,\n    TokenLimit: tokenLimit,\n    SponsorTimeout: sponsorTimeout,\n    OwnerCanTransfer: true,\n    OwnerCanDestroy: false,\n});\nawait helpers_1.setCollectionLimitsExpectFailure(alice, collectionId, {\n    AccountTokenOwnershipLimit: accountTokenOwnershipLimit,\n    SponsoredMintSize: sponsoredDataSize,\n    TokenLimit: tokenLimit,\n    SponsorTimeout: sponsorTimeout,\n    OwnerCanTransfer: true,\n    OwnerCanDestroy: true,\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cbfc2098-3360-4c35-b9a3-1f2459547199&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Setting the higher token limit fails&quot;,&quot;fullTitle&quot;:&quot;setCollectionLimits negative Setting the higher token limit fails&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const collectionLimits = {\n        AccountTokenOwnershipLimit: accountTokenOwnershipLimit,\n        SponsoredMintSize: sponsoredDataSize,\n        TokenLimit: tokenLimit,\n        SponsorTimeout: sponsorTimeout,\n        OwnerCanTransfer: true,\n        OwnerCanDestroy: true,\n    };\n    // The first time\n    await helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, collectionLimits);\n    // The second time - higher token limit\n    collectionLimits.TokenLimit += 1;\n    await helpers_1.setCollectionLimitsExpectFailure(alice, collectionId, collectionLimits);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ac5ff0da-daa7-4509-b527-09cc176b1d40&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;53dc0d8c-321e-4901-9157-3fd66bcc15ab&quot;,&quot;ddad0ec1-5004-45c0-b755-a8c833b3c744&quot;,&quot;a62c80c1-5434-4801-9a9b-7a901d3a6e12&quot;,&quot;d2e949e0-7f48-4d3c-a12d-8da0910c3ce3&quot;,&quot;9520e496-d043-44a3-bb82-d17eb2499334&quot;,&quot;cbfc2098-3360-4c35-b9a3-1f2459547199&quot;,&quot;ac5ff0da-daa7-4509-b527-09cc176b1d40&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;0ec248e7-8ae8-4211-8c0e-048f7bc90578&quot;,&quot;title&quot;:&quot;integration test: ext. setCollectionSponsor():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setCollectionSponsor.test.ts&quot;,&quot;file&quot;:&quot;/src/setCollectionSponsor.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. setCollectionSponsor(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2efa7181-c0db-42f7-9833-9c853fb5a191&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Set NFT collection sponsor&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. setCollectionSponsor(): Set NFT collection sponsor&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6fd9bfef-84c0-41ef-8b43-bd993cfd739f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set Fungible collection sponsor&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. setCollectionSponsor(): Set Fungible collection sponsor&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;61a720d0-0fe1-4b46-967c-c01d70b6242c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set ReFungible collection sponsor&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. setCollectionSponsor(): Set ReFungible collection sponsor&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cb5646f4-5aba-4d98-9817-de2c9bd42fce&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set the same sponsor repeatedly&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. setCollectionSponsor(): Set the same sponsor repeatedly&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;86441019-203b-4476-af25-ccba5b9e2741&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Replace collection sponsor&quot;,&quot;fullTitle&quot;:&quot;integration test: ext. setCollectionSponsor(): Replace collection sponsor&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nconst keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\nconst charlie = keyring.addFromUri(&#x27;//Charlie&#x27;);\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, bob.address);\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, charlie.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;24d56994-b714-4916-a755-bbae2775d2c4&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;6fd9bfef-84c0-41ef-8b43-bd993cfd739f&quot;,&quot;61a720d0-0fe1-4b46-967c-c01d70b6242c&quot;,&quot;cb5646f4-5aba-4d98-9817-de2c9bd42fce&quot;,&quot;86441019-203b-4476-af25-ccba5b9e2741&quot;,&quot;24d56994-b714-4916-a755-bbae2775d2c4&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;cec3e13f-3894-41ae-b288-c60bfcf771dd&quot;,&quot;title&quot;:&quot;(!negative test!) integration test: ext. setCollectionSponsor():&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setCollectionSponsor.test.ts&quot;,&quot;file&quot;:&quot;/src/setCollectionSponsor.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. setCollectionSponsor(): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n    charlie = keyring.addFromUri(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;6e23f95c-a8f1-4af9-905e-d6cd335b614f&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;(!negative test!) Add sponsor with a non-owner&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. setCollectionSponsor(): (!negative test!) Add sponsor with a non-owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectFailure(collectionId, bob.address, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;683d509e-09c6-4df6-928b-aa8f1ca81b8c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Add sponsor to a collection that never existed&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. setCollectionSponsor(): (!negative test!) Add sponsor to a collection that never existed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// Find the collection that never existed\nlet collectionId = 0;\nawait substrate_api_1.default(async (api) =&gt; {\n    collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n});\nawait helpers_1.setCollectionSponsorExpectFailure(collectionId, bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8f54053d-0d3a-4948-ad54-716e75cd82e0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Add sponsor to a collection that was destroyed&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. setCollectionSponsor(): (!negative test!) Add sponsor to a collection that was destroyed&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.destroyCollectionExpectSuccess(collectionId);\nawait helpers_1.setCollectionSponsorExpectFailure(collectionId, bob.address);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;40568762-50de-4901-8db1-050f95fb2b52&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;(!negative test!) Collection admin add sponsor&quot;,&quot;fullTitle&quot;:&quot;(!negative test!) integration test: ext. setCollectionSponsor(): (!negative test!) Collection admin add sponsor&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\nawait helpers_1.setCollectionSponsorExpectFailure(collectionId, charlie.address, &#x27;//Bob&#x27;);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a33535e3-d85d-45f3-a599-7b4b2f2bc4ce&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;683d509e-09c6-4df6-928b-aa8f1ca81b8c&quot;,&quot;8f54053d-0d3a-4948-ad54-716e75cd82e0&quot;,&quot;40568762-50de-4901-8db1-050f95fb2b52&quot;,&quot;a33535e3-d85d-45f3-a599-7b4b2f2bc4ce&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;158f543c-d1ad-433b-a908-e239b62b96d3&quot;,&quot;title&quot;:&quot;Integration Test ext. setConstOnChainSchema()&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setConstOnChainSchema.test.ts&quot;,&quot;file&quot;:&quot;/src/setConstOnChainSchema.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Run extrinsic with parameters of the collection id, set the scheme&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. setConstOnChainSchema() Run extrinsic with parameters of the collection id, set the scheme&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.eq(Alice.address);\n    const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);\n    await substrate_api_1.submitTransactionAsync(Alice, setShema);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d112aefc-3e9d-46fb-b4a9-b0e0b8dc4d28&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Collection admin can set the scheme&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. setConstOnChainSchema() Collection admin can set the scheme&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.eq(Alice.address);\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\n    const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);\n    await substrate_api_1.submitTransactionAsync(Bob, setShema);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9af30569-5854-4062-be4e-a714e755a189&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Checking collection data using the ConstOnChainSchema parameter&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. setConstOnChainSchema() Checking collection data using the ConstOnChainSchema parameter&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);\n    await substrate_api_1.submitTransactionAsync(Alice, setShema);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.ConstOnChainSchema.toString()).to.be.eq(Shema);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;22077b7e-d757-4822-894a-749f8188e9bd&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;d112aefc-3e9d-46fb-b4a9-b0e0b8dc4d28&quot;,&quot;9af30569-5854-4062-be4e-a714e755a189&quot;,&quot;22077b7e-d757-4822-894a-749f8188e9bd&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;28e4fb50-d2ac-49de-81fa-1a240770f61a&quot;,&quot;title&quot;:&quot;Negative Integration Test ext. setConstOnChainSchema()&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setConstOnChainSchema.test.ts&quot;,&quot;file&quot;:&quot;/src/setConstOnChainSchema.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Set a non-existent collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setConstOnChainSchema() Set a non-existent collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: radix\n    const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n    const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7ce3cde5-be29-4d65-9320-46cc0d8a4f31&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set a previously deleted collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setConstOnChainSchema() Set a previously deleted collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n    const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9ee1b42d-b518-4090-a17a-dd57e2186940&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set invalid data in schema (size too large:&gt; 1024b)&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setConstOnChainSchema() Set invalid data in schema (size too large:&gt; 1024b)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const setShema = api.tx.nft.setConstOnChainSchema(collectionId, largeShema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3fb38da2-5f4f-4929-aed8-07146645f2ed&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Execute method not on behalf of the collection owner&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setConstOnChainSchema() Execute method not on behalf of the collection owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.eq(Alice.address);\n    const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Bob, setShema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;75fdd293-994b-4984-b654-f245487e44d2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;7ce3cde5-be29-4d65-9320-46cc0d8a4f31&quot;,&quot;9ee1b42d-b518-4090-a17a-dd57e2186940&quot;,&quot;3fb38da2-5f4f-4929-aed8-07146645f2ed&quot;,&quot;75fdd293-994b-4984-b654-f245487e44d2&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;e78dc91b-d806-46dd-984e-ec046f502cd2&quot;,&quot;title&quot;:&quot;Integration Test setContractSponsoringRateLimit&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setContractSponsoringRateLimit.test.ts&quot;,&quot;file&quot;:&quot;/src/setContractSponsoringRateLimit.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;ensure sponsored contract can&#x27;t be called twice without pause for free&quot;,&quot;fullTitle&quot;:&quot;Integration Test setContractSponsoringRateLimit ensure sponsored contract can&#x27;t be called twice without pause for free&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;135d3e1d-e004-44c4-9e22-3d6a253435c0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;ensure sponsored contract can be called twice with pause for free&quot;,&quot;fullTitle&quot;:&quot;Integration Test setContractSponsoringRateLimit ensure sponsored contract can be called twice with pause for free&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4b560f0c-46d1-49a7-b5a9-5496c91234fc&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;135d3e1d-e004-44c4-9e22-3d6a253435c0&quot;,&quot;4b560f0c-46d1-49a7-b5a9-5496c91234fc&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;bc7ada2a-db31-43ce-a802-033605a598f1&quot;,&quot;title&quot;:&quot;Negative Integration Test setContractSponsoringRateLimit&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setContractSponsoringRateLimit.test.ts&quot;,&quot;file&quot;:&quot;/src/setContractSponsoringRateLimit.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails when called for non-contract address&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setContractSponsoringRateLimit fails when called for non-contract address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e39de7ef-40bc-4d8c-aae1-0b7745bad05e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;fails when called by non-owning user&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setContractSponsoringRateLimit fails when called by non-owning user&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;30b5ab68-1f40-4d2a-b589-6d866974e75c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;e39de7ef-40bc-4d8c-aae1-0b7745bad05e&quot;,&quot;30b5ab68-1f40-4d2a-b589-6d866974e75c&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;eb5cbed0-02a5-444a-93de-c94fef224554&quot;,&quot;title&quot;:&quot;Integration Test setMintPermission&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setMintPermission.test.ts&quot;,&quot;file&quot;:&quot;/src/setMintPermission.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test setMintPermission \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;191f98d5-26a1-4910-8218-af236af77982&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;ensure white-listed non-privileged address can mint tokens&quot;,&quot;fullTitle&quot;:&quot;Integration Test setMintPermission ensure white-listed non-privileged address can mint tokens&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\n    await helpers_1.setMintPermissionExpectSuccess(alice, collectionId, true);\n    await helpers_1.addToWhiteListExpectSuccess(alice, collectionId, bob.address);\n    await helpers_1.createItemExpectSuccess(bob, collectionId, &#x27;NFT&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;884235b9-da39-4217-9f9a-73fac056921c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;can be enabled twice&quot;,&quot;fullTitle&quot;:&quot;Integration Test setMintPermission can be enabled twice&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.setMintPermissionExpectSuccess(alice, collectionId, true);\n    await helpers_1.setMintPermissionExpectSuccess(alice, collectionId, true);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;98173ea4-9d53-4b14-a61c-78b6c9158132&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;can be disabled twice&quot;,&quot;fullTitle&quot;:&quot;Integration Test setMintPermission can be disabled twice&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.setMintPermissionExpectSuccess(alice, collectionId, true);\n    await helpers_1.setMintPermissionExpectSuccess(alice, collectionId, false);\n    await helpers_1.setMintPermissionExpectSuccess(alice, collectionId, false);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2aa44b95-b911-4a5e-9f3d-fda7b0c3fbda&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;884235b9-da39-4217-9f9a-73fac056921c&quot;,&quot;98173ea4-9d53-4b14-a61c-78b6c9158132&quot;,&quot;2aa44b95-b911-4a5e-9f3d-fda7b0c3fbda&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;cbc6e3f1-5d78-4769-9afd-72998c570eb6&quot;,&quot;title&quot;:&quot;Negative Integration Test setMintPermission&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setMintPermission.test.ts&quot;,&quot;file&quot;:&quot;/src/setMintPermission.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setMintPermission \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;34da7a1c-2588-45e4-a3dd-8238f60e2e11&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails on not existing collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setMintPermission fails on not existing collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const nonExistingCollection = await helpers_1.findNotExistingCollection(api);\n    await helpers_1.setMintPermissionExpectFailure(alice, nonExistingCollection, true);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2646ad83-06be-4fee-92b4-0316359e4d47&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on removed collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setMintPermission fails on removed collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const removedCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.destroyCollectionExpectSuccess(removedCollectionId);\n    await helpers_1.setMintPermissionExpectFailure(alice, removedCollectionId, true);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;06542d72-bd12-4943-a060-726f91838cf6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails when not collection owner tries to set mint status&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setMintPermission fails when not collection owner tries to set mint status&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nawait helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\nawait helpers_1.setMintPermissionExpectFailure(bob, collectionId, true);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b5f2f65c-cebf-4155-8a5b-f64db02dfd8b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Collection admin fails on set&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setMintPermission Collection admin fails on set&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\n    await helpers_1.setMintPermissionExpectFailure(bob, collectionId, true);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d5919771-6a70-4e9b-978f-dae88e7bb206&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;ensure non-white-listed non-privileged address can&#x27;t mint tokens&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setMintPermission ensure non-white-listed non-privileged address can&#x27;t mint tokens&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    await helpers_1.enableWhiteListExpectSuccess(alice, collectionId);\n    await helpers_1.setMintPermissionExpectSuccess(alice, collectionId, true);\n    await helpers_1.createItemExpectFailure(bob, collectionId, &#x27;NFT&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;17be383a-4cda-4426-9104-ca99e965bccc&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;2646ad83-06be-4fee-92b4-0316359e4d47&quot;,&quot;06542d72-bd12-4943-a060-726f91838cf6&quot;,&quot;b5f2f65c-cebf-4155-8a5b-f64db02dfd8b&quot;,&quot;d5919771-6a70-4e9b-978f-dae88e7bb206&quot;,&quot;17be383a-4cda-4426-9104-ca99e965bccc&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;8ee811c1-d214-486c-9cf1-2457e3e040d0&quot;,&quot;title&quot;:&quot;Integration Test setOffchainSchema&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setOffchainSchema.test.ts&quot;,&quot;file&quot;:&quot;/src/setOffchainSchema.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test setOffchainSchema \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;784ee8b7-3378-496c-9630-39ea92fb5387&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setOffchainSchema, verify data was set&quot;,&quot;fullTitle&quot;:&quot;Integration Test setOffchainSchema execute setOffchainSchema, verify data was set&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nawait helpers_1.setOffchainSchemaExpectSuccess(alice, collectionId, DATA);\nconst collection = await helpers_1.queryCollectionExpectSuccess(collectionId);\nexpect(collection.OffchainSchema).to.be.equal(&#x27;0x&#x27; + Buffer.from(DATA).toString(&#x27;hex&#x27;));&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;74df46ab-1974-4c14-b1c8-b44107edf519&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;execute setOffchainSchema (collection admin), verify data was set&quot;,&quot;fullTitle&quot;:&quot;Integration Test setOffchainSchema execute setOffchainSchema (collection admin), verify data was set&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nawait helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\nawait helpers_1.setOffchainSchemaExpectSuccess(bob, collectionId, DATA);\nconst collection = await helpers_1.queryCollectionExpectSuccess(collectionId);\nexpect(collection.OffchainSchema).to.be.equal(&#x27;0x&#x27; + Buffer.from(DATA).toString(&#x27;hex&#x27;));&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a96f3c18-592c-4597-9516-3f5186e54953&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;74df46ab-1974-4c14-b1c8-b44107edf519&quot;,&quot;a96f3c18-592c-4597-9516-3f5186e54953&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;128add77-4dab-49aa-93c8-f00f156e2fe8&quot;,&quot;title&quot;:&quot;Negative Integration Test setOffchainSchema&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setOffchainSchema.test.ts&quot;,&quot;file&quot;:&quot;/src/setOffchainSchema.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setOffchainSchema \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    validCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;42ceb947-54d1-43bd-818f-e2e6579f5bf4&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails on not existing collection id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setOffchainSchema fails on not existing collection id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nonExistingCollectionId = await substrate_api_1.default(helpers_1.findNotExistingCollection);\nawait helpers_1.setOffchainSchemaExpectFailure(alice, nonExistingCollectionId, DATA);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;57ef09b4-431d-44db-b422-f551119d8a58&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on destroyed collection id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setOffchainSchema fails on destroyed collection id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const destroyedCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nawait helpers_1.destroyCollectionExpectSuccess(destroyedCollectionId);\nawait helpers_1.setOffchainSchemaExpectFailure(alice, destroyedCollectionId, DATA);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;03fec951-9f04-44e6-bd91-b3db5006f811&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on too long data&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setOffchainSchema fails on too long data&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const tooLongData = new Array(4097).fill(0xff);\nawait helpers_1.setOffchainSchemaExpectFailure(alice, validCollectionId, tooLongData);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0c79ca69-2103-4006-807b-ca84b88a4d3f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on execution by non-owner&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setOffchainSchema fails on execution by non-owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.setOffchainSchemaExpectFailure(bob, validCollectionId, DATA);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e24a2704-3e4b-4e16-9bbf-8469e1075273&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;57ef09b4-431d-44db-b422-f551119d8a58&quot;,&quot;03fec951-9f04-44e6-bd91-b3db5006f811&quot;,&quot;0c79ca69-2103-4006-807b-ca84b88a4d3f&quot;,&quot;e24a2704-3e4b-4e16-9bbf-8469e1075273&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;21cd6275-d772-43e4-8107-49172c63e008&quot;,&quot;title&quot;:&quot;Integration Test setPublicAccessMode(): &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setPublicAccessMode.test.ts&quot;,&quot;file&quot;:&quot;/src/setPublicAccessMode.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test setPublicAccessMode():  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;2c502666-f62e-4258-b153-af208488ecd1&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Run extrinsic with collection id parameters, set the whitelist mode for the collection&quot;,&quot;fullTitle&quot;:&quot;Integration Test setPublicAccessMode():  Run extrinsic with collection id parameters, set the whitelist mode for the collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(Alice, collectionId);\n    await helpers_1.enablePublicMintingExpectSuccess(Alice, collectionId);\n    await helpers_1.addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);\n    await helpers_1.createItemExpectSuccess(Bob, collectionId, &#x27;NFT&#x27;, Bob.address);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;55b032ac-9618-4054-95ea-d81ba90b0c90&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Whitelisted collection limits&quot;,&quot;fullTitle&quot;:&quot;Integration Test setPublicAccessMode():  Whitelisted collection limits&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(Alice, collectionId);\n    await helpers_1.enablePublicMintingExpectSuccess(Alice, collectionId);\n    const tx = api.tx.nft.createItem(collectionId, helpers_1.normalizeAccountId(Bob.address), &#x27;NFT&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Bob, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1a73aee5-8fbf-4c9e-8597-1fd85d8535b9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;55b032ac-9618-4054-95ea-d81ba90b0c90&quot;,&quot;1a73aee5-8fbf-4c9e-8597-1fd85d8535b9&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;2b95666d-f34b-4ed3-acf5-fdd7ea14f453&quot;,&quot;title&quot;:&quot;Negative Integration Test ext. setPublicAccessMode(): &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setPublicAccessMode.test.ts&quot;,&quot;file&quot;:&quot;/src/setPublicAccessMode.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Set a non-existent collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setPublicAccessMode():  Set a non-existent collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: radix\n    const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n    const tx = api.tx.nft.setPublicAccessMode(collectionId, &#x27;WhiteList&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bf038639-2b3a-4e55-8fd8-87fc2dd2079f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set the collection that has been deleted&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setPublicAccessMode():  Set the collection that has been deleted&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n    const tx = api.tx.nft.setPublicAccessMode(collectionId, &#x27;WhiteList&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0869df88-a579-4e57-82e3-ed0cec2df308&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Re-set the list mode already set in quantity&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setPublicAccessMode():  Re-set the list mode already set in quantity&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.enableWhiteListExpectSuccess(Alice, collectionId);\n    await helpers_1.enableWhiteListExpectSuccess(Alice, collectionId);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c15c0080-3c65-4afd-89e5-b6ac7c08880a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Execute method not on behalf of the collection owner&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setPublicAccessMode():  Execute method not on behalf of the collection owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const tx = api.tx.nft.setPublicAccessMode(collectionId, &#x27;WhiteList&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Bob, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;65f44b07-e980-4937-a64e-966cc44cdfd0&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;bf038639-2b3a-4e55-8fd8-87fc2dd2079f&quot;,&quot;0869df88-a579-4e57-82e3-ed0cec2df308&quot;,&quot;c15c0080-3c65-4afd-89e5-b6ac7c08880a&quot;,&quot;65f44b07-e980-4937-a64e-966cc44cdfd0&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;fe633113-3571-4966-8ef2-f21169ed6919&quot;,&quot;title&quot;:&quot;Negative Integration Test ext. collection admin setPublicAccessMode(): &quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setPublicAccessMode.test.ts&quot;,&quot;file&quot;:&quot;/src/setPublicAccessMode.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. collection admin setPublicAccessMode():  \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;67f09b42-dea1-4c38-ae29-14ec5b16ac2f&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;setPublicAccessMode by collection admin&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. collection admin setPublicAccessMode():  setPublicAccessMode by collection admin&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: no-bitwise\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\n    const tx = api.tx.nft.setPublicAccessMode(collectionId, &#x27;WhiteList&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Bob, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f7f2e202-851a-4608-8011-59ed6f8cfd89&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;f7f2e202-851a-4608-8011-59ed6f8cfd89&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;95210d41-0381-4266-a470-6b1c1a8dd7d9&quot;,&quot;title&quot;:&quot;hooks&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setSchemaVersion.test.ts&quot;,&quot;file&quot;:&quot;/src/setSchemaVersion.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;hooks \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;65514693-ecaf-402a-a914-8207dc6e0e64&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;choose or create collection for testing&quot;,&quot;fullTitle&quot;:&quot;hooks choose or create collection for testing&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    collectionIdForTesting = await helpers_1.createCollectionExpectSuccess({ name: &#x27;A&#x27;, description: &#x27;B&#x27;, tokenPrefix: &#x27;C&#x27;, mode: { type: &#x27;NFT&#x27; } });\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5dd8b15a-e1e3-432c-a2d1-c3f239c17777&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;5dd8b15a-e1e3-432c-a2d1-c3f239c17777&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;b29cdf70-5c2b-4f4f-b53e-72c1180da4f5&quot;,&quot;title&quot;:&quot;setSchemaVersion positive&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setSchemaVersion.test.ts&quot;,&quot;file&quot;:&quot;/src/setSchemaVersion.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;setSchemaVersion positive \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9013432b-5ba4-4bc8-a7a2-cde5e009de3e&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setSchemaVersion with image url and unique &quot;,&quot;fullTitle&quot;:&quot;setSchemaVersion positive execute setSchemaVersion with image url and unique &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, &#x27;Unique&#x27;);\n    const events = await substrate_api_1.submitTransactionAsync(alice, tx);\n    const result = helpers_1.getCreateItemResult(events);\n    const collectionInfo = await helpers_1.getDetailedCollectionInfo(api, collectionIdForTesting);\n    // tslint:disable-next-line:no-unused-expression\n    expect(result.success).to.be.true;\n    // tslint:disable-next-line:no-unused-expression\n    expect(collectionInfo).to.be.exist;\n    // tslint:disable-next-line:no-unused-expression\n    expect(collectionInfo ? collectionInfo.SchemaVersion.toString() : &#x27;&#x27;).to.be.equal(&#x27;Unique&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b1f37795-e81d-406d-87f8-c5dadaa5624e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;b1f37795-e81d-406d-87f8-c5dadaa5624e&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;6b9969df-88db-40ee-8830-8ae2d4577acb&quot;,&quot;title&quot;:&quot;Collection admin setSchemaVersion positive&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setSchemaVersion.test.ts&quot;,&quot;file&quot;:&quot;/src/setSchemaVersion.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Collection admin setSchemaVersion positive \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    bob = keyring.addFromUri(&#x27;//Bob&#x27;);\n    await helpers_1.addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;499d6f5d-3966-4b81-b3a1-e140c0f46819&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setSchemaVersion with image url and unique &quot;,&quot;fullTitle&quot;:&quot;Collection admin setSchemaVersion positive execute setSchemaVersion with image url and unique &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, &#x27;Unique&#x27;);\n    const events = await substrate_api_1.submitTransactionAsync(bob, tx);\n    const result = helpers_1.getCreateItemResult(events);\n    const collectionInfo = await helpers_1.getDetailedCollectionInfo(api, collectionIdForTesting);\n    // tslint:disable-next-line:no-unused-expression\n    expect(result.success).to.be.true;\n    // tslint:disable-next-line:no-unused-expression\n    expect(collectionInfo).to.be.exist;\n    // tslint:disable-next-line:no-unused-expression\n    expect(collectionInfo ? collectionInfo.SchemaVersion.toString() : &#x27;&#x27;).to.be.equal(&#x27;Unique&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;01b1449a-50b5-4294-b820-94be9a867866&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;validate schema version with just entered data&quot;,&quot;fullTitle&quot;:&quot;Collection admin setSchemaVersion positive validate schema version with just entered data&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, &#x27;ImageURL&#x27;);\n    const events = await substrate_api_1.submitTransactionAsync(bob, tx);\n    const result = helpers_1.getCreateItemResult(events);\n    const collectionInfo = await helpers_1.getDetailedCollectionInfo(api, collectionIdForTesting);\n    // tslint:disable-next-line:no-unused-expression\n    expect(result.success).to.be.true;\n    // tslint:disable-next-line:no-unused-expression\n    expect(collectionInfo).to.be.exist;\n    // tslint:disable-next-line:no-unused-expression\n    expect(collectionInfo ? collectionInfo.SchemaVersion.toString() : &#x27;&#x27;).to.be.equal(&#x27;ImageURL&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f3f49e1a-d105-4784-a94b-f19feafab72e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;01b1449a-50b5-4294-b820-94be9a867866&quot;,&quot;f3f49e1a-d105-4784-a94b-f19feafab72e&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;cca36752-479c-4b26-9c41-9ab7c1f97063&quot;,&quot;title&quot;:&quot;setSchemaVersion negative&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setSchemaVersion.test.ts&quot;,&quot;file&quot;:&quot;/src/setSchemaVersion.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;setSchemaVersion negative \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const keyring = new api_1.Keyring({ type: &#x27;sr25519&#x27; });\n    alice = keyring.addFromUri(&#x27;//Alice&#x27;);\n    charlie = keyring.addFromUri(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b4dad0a8-e978-4a1f-9a29-5c2bc9f8b228&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setSchemaVersion for not exists collection&quot;,&quot;fullTitle&quot;:&quot;setSchemaVersion negative execute setSchemaVersion for not exists collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionCount = await helpers_1.getCreatedCollectionCount(api);\n    const nonExistedCollectionId = collectionCount + 1;\n    tx = api.tx.nft.setSchemaVersion(nonExistedCollectionId, &#x27;ImageURL&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;711dd282-06df-4b27-ad74-4817c4199cbe&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;execute setSchemaVersion with not correct schema version&quot;,&quot;fullTitle&quot;:&quot;setSchemaVersion negative execute setSchemaVersion with not correct schema version&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const consoleError = console.error;\n    console.error = () =&gt; { };\n    try {\n        tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, &#x27;Test&#x27;);\n        await substrate_api_1.submitTransactionAsync(alice, tx);\n    }\n    catch (e) {\n        // tslint:disable-next-line:no-unused-expression\n        expect(e).to.be.exist;\n    }\n    finally {\n        console.error = consoleError;\n    }\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;03934978-2e4a-416e-a7bd-322c1bf6998d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;execute setSchemaVersion for deleted collection&quot;,&quot;fullTitle&quot;:&quot;setSchemaVersion negative execute setSchemaVersion for deleted collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    await helpers_1.destroyCollectionExpectSuccess(collectionIdForTesting);\n    tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, &#x27;ImageURL&#x27;);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0f71035a-7ee8-49d5-9108-8c3a8cb20746&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Regular user can`t execute setSchemaVersion with image url and unique &quot;,&quot;fullTitle&quot;:&quot;setSchemaVersion negative Regular user can`t execute setSchemaVersion with image url and unique &quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, &#x27;Unique&#x27;);\n    await expect(substrate_api_1.submitTransactionAsync(charlie, tx)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3340ff9a-6b05-4d6f-8008-742400241c25&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;711dd282-06df-4b27-ad74-4817c4199cbe&quot;,&quot;03934978-2e4a-416e-a7bd-322c1bf6998d&quot;,&quot;0f71035a-7ee8-49d5-9108-8c3a8cb20746&quot;,&quot;3340ff9a-6b05-4d6f-8008-742400241c25&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;0e1d8b18-361d-486f-b15e-c942702380ce&quot;,&quot;title&quot;:&quot;Integration Test setVariableMetaData&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setVariableMetaData.test.ts&quot;,&quot;file&quot;:&quot;/src/setVariableMetaData.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetaData \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;fda3fb20-122c-4c58-a568-38d5df352f10&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setVariableMetaData&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetaData execute setVariableMetaData&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.setVariableMetaDataExpectSuccess(alice, collectionId, tokenId, data);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;e6809f64-bb74-4063-af89-26ec8b8ccfa1&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;verify data was set&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetaData verify data was set&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const item = (await api.query.nft.nftItemList(collectionId, tokenId)).unwrap();\n    expect(Array.from(item.VariableData)).to.deep.equal(Array.from(data));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;41676afc-1825-4f06-91ba-7d86efc503d2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;e6809f64-bb74-4063-af89-26ec8b8ccfa1&quot;,&quot;41676afc-1825-4f06-91ba-7d86efc503d2&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5d5baf3a-85e8-457a-837c-aad3479ae0fa&quot;,&quot;title&quot;:&quot;Integration Test collection admin setVariableMetaData&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setVariableMetaData.test.ts&quot;,&quot;file&quot;:&quot;/src/setVariableMetaData.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test collection admin setVariableMetaData \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    collectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    tokenId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;);\n    await helpers_1.addCollectionAdminExpectSuccess(alice, collectionId, bob);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;80e76546-37db-4019-a7d4-7c55efa8c3c7&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;execute setVariableMetaData&quot;,&quot;fullTitle&quot;:&quot;Integration Test collection admin setVariableMetaData execute setVariableMetaData&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.setVariableMetaDataExpectSuccess(bob, collectionId, tokenId, data);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a729be6d-0a5f-453a-b96c-0abe0920eb11&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;verify data was set&quot;,&quot;fullTitle&quot;:&quot;Integration Test collection admin setVariableMetaData verify data was set&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const item = (await api.query.nft.nftItemList(collectionId, tokenId)).unwrap();\n    expect(Array.from(item.VariableData)).to.deep.equal(Array.from(data));\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5d706d87-49db-4147-9b21-896aafd8a741&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a729be6d-0a5f-453a-b96c-0abe0920eb11&quot;,&quot;5d706d87-49db-4147-9b21-896aafd8a741&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;8c8b8314-a60a-46d6-9f74-eedbe192ba40&quot;,&quot;title&quot;:&quot;Negative Integration Test setVariableMetaData&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setVariableMetaData.test.ts&quot;,&quot;file&quot;:&quot;/src/setVariableMetaData.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    validCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\n    validTokenId = await helpers_1.createItemExpectSuccess(alice, validCollectionId, &#x27;NFT&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5f12f2fd-31df-495d-aea7-4b99d560b28c&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;fails on not existing collection id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData fails on not existing collection id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const nonExistingCollectionId = await helpers_1.findNotExistingCollection(api);\n    await helpers_1.setVariableMetaDataExpectFailure(alice, nonExistingCollectionId, 1, data);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1520d86b-d0f4-4a03-93a4-c4d141613a26&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on removed collection id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData fails on removed collection id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const removedCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nconst removedCollectionTokenId = await helpers_1.createItemExpectSuccess(alice, removedCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.destroyCollectionExpectSuccess(removedCollectionId);\nawait helpers_1.setVariableMetaDataExpectFailure(alice, removedCollectionId, removedCollectionTokenId, data);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;44afa873-e07e-407c-bf4b-b79bb327ba52&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on removed token&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData fails on removed token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const removedTokenCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;NFT&#x27; } });\nconst removedTokenId = await helpers_1.createItemExpectSuccess(alice, removedTokenCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.burnItemExpectSuccess(alice, removedTokenCollectionId, removedTokenId);\nawait helpers_1.setVariableMetaDataExpectFailure(alice, removedTokenCollectionId, removedTokenId, data);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;98e556c2-b933-484b-9d00-54f72c66bfb4&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on not existing token&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData fails on not existing token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const nonExistingTokenId = validTokenId + 1;\nawait helpers_1.setVariableMetaDataExpectFailure(alice, validCollectionId, nonExistingTokenId, data);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;00979659-a78e-45e7-a73d-18cb03a61c77&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on too long data&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData fails on too long data&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const tooLongData = new Array(4097).fill(0xff);\nawait helpers_1.setVariableMetaDataExpectFailure(alice, validCollectionId, validTokenId, tooLongData);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;30efa555-6e64-4176-b43c-59aca9e238cf&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on fungible token&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData fails on fungible token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst fungibleTokenId = await helpers_1.createItemExpectSuccess(alice, fungibleCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.setVariableMetaDataExpectFailure(alice, fungibleCollectionId, fungibleTokenId, data);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9487f809-f766-46d8-810c-db65c513e39d&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails on bad sender&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test setVariableMetaData fails on bad sender&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await helpers_1.setVariableMetaDataExpectFailure(bob, validCollectionId, validTokenId, data);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;303cec06-511c-4cb9-82d5-f8d2a651a289&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;1520d86b-d0f4-4a03-93a4-c4d141613a26&quot;,&quot;44afa873-e07e-407c-bf4b-b79bb327ba52&quot;,&quot;98e556c2-b933-484b-9d00-54f72c66bfb4&quot;,&quot;00979659-a78e-45e7-a73d-18cb03a61c77&quot;,&quot;30efa555-6e64-4176-b43c-59aca9e238cf&quot;,&quot;9487f809-f766-46d8-810c-db65c513e39d&quot;,&quot;303cec06-511c-4cb9-82d5-f8d2a651a289&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;1a362ae9-3751-4449-8623-b41905efddb4&quot;,&quot;title&quot;:&quot;Integration Test setVariableMetadataSponsoringRateLimit&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setVariableMetadataSponsoringRateLimit.test.ts&quot;,&quot;file&quot;:&quot;/src/setVariableMetadataSponsoringRateLimit.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetadataSponsoringRateLimit \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    userWithNoBalance = await helpers_1.findUnusedAddress(api);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;b007713b-7a18-47e7-b3a0-93019aa5eac5&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;sponsored setVariableMetaData can be called twice with pause for free&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetadataSponsoringRateLimit sponsored setVariableMetaData can be called twice with pause for free&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, alice.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId);\nawait helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, {\n    SponsoredDataRateLimit: 0,\n});\nconst itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;, userWithNoBalance.address);\nawait helpers_1.setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);\nawait helpers_1.setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a9c7a852-b054-41d0-9b46-81c6230b994e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;sponsored setVariableMetaData can&#x27;t be called twice without pause for free&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetadataSponsoringRateLimit sponsored setVariableMetaData can&#x27;t be called twice without pause for free&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, alice.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId);\nawait helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, {\n    SponsoredDataRateLimit: 10,\n});\nconst itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;, userWithNoBalance.address);\nawait helpers_1.setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);\nawait helpers_1.setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2, 3]);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f044ca9e-d444-4740-b72d-1be45413342f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;sponsored setVariableMetaData can&#x27;t be called for free with variable metadata above collection limits&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetadataSponsoringRateLimit sponsored setVariableMetaData can&#x27;t be called for free with variable metadata above collection limits&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, alice.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId);\nawait helpers_1.setCollectionLimitsExpectSuccess(alice, collectionId, {\n    SponsoredDataRateLimit: 0,\n    SponsoredDataSize: 1,\n});\nconst itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;, userWithNoBalance.address);\nawait helpers_1.setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1]);\nawait helpers_1.setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2]);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8441ac2e-8b88-415d-8be9-2064b1c0e265&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Default value of rate limit does not sponsor setting variable metadata&quot;,&quot;fullTitle&quot;:&quot;Integration Test setVariableMetadataSponsoringRateLimit Default value of rate limit does not sponsor setting variable metadata&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.setCollectionSponsorExpectSuccess(collectionId, alice.address);\nawait helpers_1.confirmSponsorshipExpectSuccess(collectionId);\nconst itemId = await helpers_1.createItemExpectSuccess(alice, collectionId, &#x27;NFT&#x27;, userWithNoBalance.address);\nawait helpers_1.setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1]);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;5af868e4-77c9-4ddf-8715-0f4d88aa7632&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a9c7a852-b054-41d0-9b46-81c6230b994e&quot;,&quot;f044ca9e-d444-4740-b72d-1be45413342f&quot;,&quot;8441ac2e-8b88-415d-8be9-2064b1c0e265&quot;,&quot;5af868e4-77c9-4ddf-8715-0f4d88aa7632&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;18086b2e-2832-425b-9558-bc1e65fafd91&quot;,&quot;title&quot;:&quot;Integration Test ext. setVariableOnChainSchema()&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setVariableOnChainSchema.test.ts&quot;,&quot;file&quot;:&quot;/src/setVariableOnChainSchema.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Run extrinsic with parameters of the collection id, set the scheme&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. setVariableOnChainSchema() Run extrinsic with parameters of the collection id, set the scheme&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.eq(Alice.address);\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);\n    await substrate_api_1.submitTransactionAsync(Alice, setSchema);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3e84ac33-edf8-463b-a798-9bd566c1923a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Checking collection data using the setVariableOnChainSchema parameter&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. setVariableOnChainSchema() Checking collection data using the setVariableOnChainSchema parameter&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);\n    await substrate_api_1.submitTransactionAsync(Alice, setSchema);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.VariableOnChainSchema.toString()).to.be.eq(Schema);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;dcff870a-5f53-4ad5-8be3-00122f9d3f97&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;3e84ac33-edf8-463b-a798-9bd566c1923a&quot;,&quot;dcff870a-5f53-4ad5-8be3-00122f9d3f97&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5758eb2f-a731-428e-b6df-220ca5552865&quot;,&quot;title&quot;:&quot;Integration Test ext. collection admin setVariableOnChainSchema()&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setVariableOnChainSchema.test.ts&quot;,&quot;file&quot;:&quot;/src/setVariableOnChainSchema.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Run extrinsic with parameters of the collection id, set the scheme&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. collection admin setVariableOnChainSchema() Run extrinsic with parameters of the collection id, set the scheme&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.eq(Alice.address);\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);\n    await substrate_api_1.submitTransactionAsync(Bob, setSchema);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c72d5119-bb01-455c-8ec7-9cbc3f68acf9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Checking collection data using the setVariableOnChainSchema parameter&quot;,&quot;fullTitle&quot;:&quot;Integration Test ext. collection admin setVariableOnChainSchema() Checking collection data using the setVariableOnChainSchema parameter&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, collectionId, Bob);\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);\n    await substrate_api_1.submitTransactionAsync(Bob, setSchema);\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.VariableOnChainSchema.toString()).to.be.eq(Schema);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ab94900d-3da5-4bf8-96b9-f765ea577a32&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;c72d5119-bb01-455c-8ec7-9cbc3f68acf9&quot;,&quot;ab94900d-3da5-4bf8-96b9-f765ea577a32&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;159c6c9c-e143-4ec8-b00c-9a6065bb7444&quot;,&quot;title&quot;:&quot;Negative Integration Test ext. setVariableOnChainSchema()&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/setVariableOnChainSchema.test.ts&quot;,&quot;file&quot;:&quot;/src/setVariableOnChainSchema.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Set a non-existent collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setVariableOnChainSchema() Set a non-existent collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // tslint:disable-next-line: radix\n    const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, setSchema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;bc86c05c-a512-4230-9b61-d1f6c76a4501&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set a previously deleted collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setVariableOnChainSchema() Set a previously deleted collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.destroyCollectionExpectSuccess(collectionId);\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, setSchema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f082d5ab-8d6f-43cd-a23d-f89109a56116&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Set invalid data in schema (size too large:&gt; 1024b)&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setVariableOnChainSchema() Set invalid data in schema (size too large:&gt; 1024b)&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, largeSchema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Alice, setSchema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;8cc68f97-6041-4842-b0fd-04dad9d20a74&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Execute method not on behalf of the collection owner&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test ext. setVariableOnChainSchema() Execute method not on behalf of the collection owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const collectionId = await helpers_1.createCollectionExpectSuccess();\n    const collection = (await api.query.nft.collectionById(collectionId)).toJSON();\n    expect(collection.Owner).to.be.eq(Alice.address);\n    const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);\n    await expect(substrate_api_1.submitTransactionExpectFailAsync(Bob, setSchema)).to.be.rejected;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;721fe6f1-7388-4602-b44f-b306e4a80dc9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;bc86c05c-a512-4230-9b61-d1f6c76a4501&quot;,&quot;f082d5ab-8d6f-43cd-a23d-f89109a56116&quot;,&quot;8cc68f97-6041-4842-b0fd-04dad9d20a74&quot;,&quot;721fe6f1-7388-4602-b44f-b306e4a80dc9&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;5a1340ed-9a0e-4ec0-af62-ee259c4f8d77&quot;,&quot;title&quot;:&quot;Integration Test toggleContractWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/toggleContractWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/toggleContractWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Enable white list contract mode&quot;,&quot;fullTitle&quot;:&quot;Integration Test toggleContractWhiteList Enable white list contract mode&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3b1ce9c7-2447-420c-b474-ac3ca85fc507&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Only whitelisted account can call contract&quot;,&quot;fullTitle&quot;:&quot;Integration Test toggleContractWhiteList Only whitelisted account can call contract&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4b092e32-c2e5-4bc7-81d9-8efadf917431&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Enabling white list repeatedly should not produce errors&quot;,&quot;fullTitle&quot;:&quot;Integration Test toggleContractWhiteList Enabling white list repeatedly should not produce errors&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;30f63030-adec-4500-b814-5da7eacddec7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;3b1ce9c7-2447-420c-b474-ac3ca85fc507&quot;,&quot;4b092e32-c2e5-4bc7-81d9-8efadf917431&quot;,&quot;30f63030-adec-4500-b814-5da7eacddec7&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;3f130c5f-721a-473d-b977-74ca9fdab991&quot;,&quot;title&quot;:&quot;Negative Integration Test toggleContractWhiteList&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/toggleContractWhiteList.test.ts&quot;,&quot;file&quot;:&quot;/src/toggleContractWhiteList.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Enable white list for a non-contract&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test toggleContractWhiteList Enable white list for a non-contract&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;dda7fd05-b1e8-4974-a8df-a32680f561ac&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;Enable white list using a non-owner address&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test toggleContractWhiteList Enable white list using a non-owner address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:true,&quot;code&quot;:&quot;&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;cf1a94b5-348b-4963-9504-b79dbdc57f5b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[&quot;dda7fd05-b1e8-4974-a8df-a32680f561ac&quot;,&quot;cf1a94b5-348b-4963-9504-b79dbdc57f5b&quot;],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;9c8d5c0f-ed60-46ea-8dc8-d02454d960a4&quot;,&quot;title&quot;:&quot;Integration Test Transfer(recipient, collection_id, item_id, value)&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/transfer.test.ts&quot;,&quot;file&quot;:&quot;/src/transfer.test.ts&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Balance transfers and check balance&quot;,&quot;fullTitle&quot;:&quot;Integration Test Transfer(recipient, collection_id, item_id, value) Balance transfers and check balance&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    const [alicesBalanceBefore, bobsBalanceBefore] = await get_balance_1.default(api, [accounts_1.alicesPublicKey, accounts_1.bobsPublicKey]);\n    const alicePrivateKey = privateKey_1.default(&#x27;//Alice&#x27;);\n    const transfer = api.tx.balances.transfer(accounts_1.bobsPublicKey, 1n);\n    const events = await substrate_api_1.submitTransactionAsync(alicePrivateKey, transfer);\n    const result = helpers_1.getCreateItemResult(events);\n    // tslint:disable-next-line:no-unused-expression\n    chai_1.expect(result.success).to.be.true;\n    const [alicesBalanceAfter, bobsBalanceAfter] = await get_balance_1.default(api, [accounts_1.alicesPublicKey, accounts_1.bobsPublicKey]);\n    // tslint:disable-next-line:no-unused-expression\n    chai_1.expect(alicesBalanceAfter &lt; alicesBalanceBefore).to.be.true;\n    // tslint:disable-next-line:no-unused-expression\n    chai_1.expect(bobsBalanceAfter &gt; bobsBalanceBefore).to.be.true;\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ff5f089a-e6f0-4da1-9411-b0d0808e8007&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Inability to pay fees error message is correct&quot;,&quot;fullTitle&quot;:&quot;Integration Test Transfer(recipient, collection_id, item_id, value) Inability to pay fees error message is correct&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // Find unused address\n    const pk = await helpers_1.findUnusedAddress(api);\n    const badTransfer = api.tx.balances.transfer(accounts_1.bobsPublicKey, 1n);\n    // const events = await submitTransactionAsync(pk, badTransfer);\n    const badTransaction = async () =&gt; {\n        const events = await substrate_api_1.submitTransactionAsync(pk, badTransfer);\n        const result = helpers_1.getCreateCollectionResult(events);\n        // tslint:disable-next-line:no-unused-expression\n        chai_1.expect(result.success).to.be.false;\n    };\n    chai_1.expect(badTransaction()).to.be.rejectedWith(&#x27;Inability to pay some fees , e.g. account balance too low&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c05ffbdf-f157-4424-8a79-abaf1629a4b9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;User can transfer owned token&quot;,&quot;fullTitle&quot;:&quot;Integration Test Transfer(recipient, collection_id, item_id, value) User can transfer owned token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    await helpers_1.transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, &#x27;NFT&#x27;);\n    // fungible\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\n    await helpers_1.transferExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1, &#x27;Fungible&#x27;);\n    // reFungible\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\n    await helpers_1.transferExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 100, &#x27;ReFungible&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;fe4480f5-d2ee-460a-a77f-d93a648df0a7&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Collection admin can transfer owned token&quot;,&quot;fullTitle&quot;:&quot;Integration Test Transfer(recipient, collection_id, item_id, value) Collection admin can transfer owned token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Bob, nftCollectionId, &#x27;NFT&#x27;, Bob.address);\n    await helpers_1.transferExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, 1, &#x27;NFT&#x27;);\n    // fungible\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, fungibleCollectionId, Bob);\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;, Bob.address);\n    await helpers_1.transferExpectSuccess(fungibleCollectionId, newFungibleTokenId, Bob, Alice, 1, &#x27;Fungible&#x27;);\n    // reFungible\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    await helpers_1.addCollectionAdminExpectSuccess(Alice, reFungibleCollectionId, Bob);\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Bob, reFungibleCollectionId, &#x27;ReFungible&#x27;, Bob.address);\n    await helpers_1.transferExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, 100, &#x27;ReFungible&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;fd485e0b-791b-41be-b8f6-67d6d90a2832&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;ff5f089a-e6f0-4da1-9411-b0d0808e8007&quot;,&quot;c05ffbdf-f157-4424-8a79-abaf1629a4b9&quot;,&quot;fe4480f5-d2ee-460a-a77f-d93a648df0a7&quot;,&quot;fd485e0b-791b-41be-b8f6-67d6d90a2832&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;6a098daf-9cfd-4d12-a0d0-dce0047c4b5a&quot;,&quot;title&quot;:&quot;Negative Integration Test Transfer(recipient, collection_id, item_id, value)&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/transfer.test.ts&quot;,&quot;file&quot;:&quot;/src/transfer.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test Transfer(recipient, collection_id, item_id, value) \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f1154bc2-86d1-41f5-a635-80a9ea654c9c&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Transfer with not existed collection_id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test Transfer(recipient, collection_id, item_id, value) Transfer with not existed collection_id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // nft\n    const nftCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.transferExpectFailure(nftCollectionCount + 1, 1, Alice, Bob, 1);\n    // fungible\n    const fungibleCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.transferExpectFailure(fungibleCollectionCount + 1, 1, Alice, Bob, 1);\n    // reFungible\n    const reFungibleCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.transferExpectFailure(reFungibleCollectionCount + 1, 1, Alice, Bob, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;c33a248a-96db-4899-a133-4b0b38537e2f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Transfer with deleted collection_id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test Transfer(recipient, collection_id, item_id, value) Transfer with deleted collection_id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// nft\nconst nftCollectionId = await helpers_1.createCollectionExpectSuccess();\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.destroyCollectionExpectSuccess(nftCollectionId);\nawait helpers_1.transferExpectFailure(nftCollectionId, newNftTokenId, Alice, Bob, 1);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.destroyCollectionExpectSuccess(fungibleCollectionId);\nawait helpers_1.transferExpectFailure(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nconst newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\nawait helpers_1.destroyCollectionExpectSuccess(reFungibleCollectionId);\nawait helpers_1.transferExpectFailure(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 1);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;287947b2-8b40-4497-a405-e5912ca3021c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Transfer with not existed item_id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test Transfer(recipient, collection_id, item_id, value) Transfer with not existed item_id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// nft\nconst nftCollectionId = await helpers_1.createCollectionExpectSuccess();\nawait helpers_1.transferExpectFailure(nftCollectionId, 2, Alice, Bob, 1);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nawait helpers_1.transferExpectFailure(fungibleCollectionId, 2, Alice, Bob, 1);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nawait helpers_1.transferExpectFailure(reFungibleCollectionId, 2, Alice, Bob, 1);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;29c0307e-a6ae-4634-9f53-df09beed96ea&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Transfer with deleted item_id&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test Transfer(recipient, collection_id, item_id, value) Transfer with deleted item_id&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// nft\nconst nftCollectionId = await helpers_1.createCollectionExpectSuccess();\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.burnItemExpectSuccess(Alice, nftCollectionId, newNftTokenId, 1);\nawait helpers_1.transferExpectFailure(nftCollectionId, newNftTokenId, Alice, Bob, 1);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.burnItemExpectSuccess(Alice, fungibleCollectionId, newFungibleTokenId, 10);\nawait helpers_1.transferExpectFailure(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nconst newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\nawait helpers_1.burnItemExpectSuccess(Alice, reFungibleCollectionId, newReFungibleTokenId, 1);\nawait helpers_1.transferExpectFailure(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 1);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1cf9d8b1-7447-465a-9660-fd7c2ed5bf99&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Transfer with recipient that is not owner&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test Transfer(recipient, collection_id, item_id, value) Transfer with recipient that is not owner&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;// nft\nconst nftCollectionId = await helpers_1.createCollectionExpectSuccess();\nconst newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\nawait helpers_1.transferExpectFailure(nftCollectionId, newNftTokenId, Charlie, Bob, 1);\n// fungible\nconst fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\nconst newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\nawait helpers_1.transferExpectFailure(fungibleCollectionId, newFungibleTokenId, Charlie, Bob, 1);\n// reFungible\nconst reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\nconst newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\nawait helpers_1.transferExpectFailure(reFungibleCollectionId, newReFungibleTokenId, Charlie, Bob, 1);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;0e1fedb7-69b8-4481-b42b-8cc79765c4c2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;c33a248a-96db-4899-a133-4b0b38537e2f&quot;,&quot;287947b2-8b40-4497-a405-e5912ca3021c&quot;,&quot;29c0307e-a6ae-4634-9f53-df09beed96ea&quot;,&quot;1cf9d8b1-7447-465a-9660-fd7c2ed5bf99&quot;,&quot;0e1fedb7-69b8-4481-b42b-8cc79765c4c2&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;0410e3f4-f36a-43d0-8d60-8b2e0be7c8d1&quot;,&quot;title&quot;:&quot;Integration Test transferFrom(from, recipient, collection_id, item_id, value):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/transferFrom.test.ts&quot;,&quot;file&quot;:&quot;/src/transferFrom.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Integration Test transferFrom(from, recipient, collection_id, item_id, value): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a7536c7c-5474-4888-afc7-521bef185f82&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;Execute the extrinsic and check nftItemList - owner of token&quot;,&quot;fullTitle&quot;:&quot;Integration Test transferFrom(from, recipient, collection_id, item_id, value): Execute the extrinsic and check nftItemList - owner of token&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    await helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1, &#x27;NFT&#x27;);\n    // fungible\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\n    await helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectSuccess(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1, &#x27;Fungible&#x27;);\n    // reFungible\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\n    await helpers_1.approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 100);\n    await helpers_1.transferFromExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, Charlie, 100, &#x27;ReFungible&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;404522b7-6b2c-4cab-a92f-51701c8d5e56&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;Should reduce allowance if value is big&quot;,&quot;fullTitle&quot;:&quot;Integration Test transferFrom(from, recipient, collection_id, item_id, value): Should reduce allowance if value is big&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    const bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    const charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n    // fungible\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: 500000n });\n    await helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob, 500000n);\n    await helpers_1.transferFromExpectSuccess(fungibleCollectionId, newFungibleTokenId, bob, alice, charlie, 500000n, &#x27;Fungible&#x27;);\n    expect((await helpers_1.getAllowance(fungibleCollectionId, newFungibleTokenId, alice.address, bob.address)).toString()).to.equal(&#x27;0&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;67cc81b1-6b4d-4368-a5a8-4f53f3ed0401&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;can be called by collection owner on non-owned item when OwnerCanTransfer == true&quot;,&quot;fullTitle&quot;:&quot;Integration Test transferFrom(from, recipient, collection_id, item_id, value): can be called by collection owner on non-owned item when OwnerCanTransfer == true&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nconst itemId = await helpers_1.createItemExpectSuccess(Alice, collectionId, &#x27;NFT&#x27;, Bob.address);\nawait helpers_1.transferFromExpectSuccess(collectionId, itemId, Alice, Bob, Charlie);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f796b3fb-c283-49e4-af9d-a0d155adb5b9&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;404522b7-6b2c-4cab-a92f-51701c8d5e56&quot;,&quot;67cc81b1-6b4d-4368-a5a8-4f53f3ed0401&quot;,&quot;f796b3fb-c283-49e4-af9d-a0d155adb5b9&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999},{&quot;uuid&quot;:&quot;da6c9c5d-e934-43c6-b4f5-d81ee5822d3d&quot;,&quot;title&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value):&quot;,&quot;fullFile&quot;:&quot;/nft_parachain/tests/src/transferFrom.test.ts&quot;,&quot;file&quot;:&quot;/src/transferFrom.test.ts&quot;,&quot;beforeHooks&quot;:[{&quot;title&quot;:&quot;\&quot;before all\&quot; hook&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): \&quot;before all\&quot; hook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    Alice = privateKey_1.default(&#x27;//Alice&#x27;);\n    Bob = privateKey_1.default(&#x27;//Bob&#x27;);\n    Charlie = privateKey_1.default(&#x27;//Charlie&#x27;);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;16c7cbf7-e6c2-4528-9716-20bce579c2c0&quot;,&quot;isHook&quot;:true,&quot;skipped&quot;:false}],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;transferFrom for a collection that does not exist&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom for a collection that does not exist&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async (api) =&gt; {\n    // nft\n    const nftCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.approveExpectFail(nftCollectionCount + 1, 1, Alice, Bob);\n    await helpers_1.transferFromExpectFail(nftCollectionCount + 1, 1, Bob, Alice, Charlie, 1);\n    // fungible\n    const fungibleCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.approveExpectFail(fungibleCollectionCount + 1, 1, Alice, Bob);\n    await helpers_1.transferFromExpectFail(fungibleCollectionCount + 1, 1, Bob, Alice, Charlie, 1);\n    // reFungible\n    const reFungibleCollectionCount = await api.query.nft.createdCollectionCount();\n    await helpers_1.approveExpectFail(reFungibleCollectionCount + 1, 1, Alice, Bob);\n    await helpers_1.transferFromExpectFail(reFungibleCollectionCount + 1, 1, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;a5d44056-808b-4e47-ade8-bd1895df0d4a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom for not approved address&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom for not approved address&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    await helpers_1.transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1);\n    // fungible\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\n    await helpers_1.transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1);\n    // reFungible\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\n    await helpers_1.transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;4b7c8080-6427-4e7e-afa5-0bf79d02c87b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom incorrect token count&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom incorrect token count&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    await helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 2);\n    // fungible\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\n    await helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 2);\n    // reFungible\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\n    await helpers_1.approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, Charlie, 2);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;ec426f3f-098a-4625-81db-114d31d1a074&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;execute transferFrom from account that is not owner of collection&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): execute transferFrom from account that is not owner of collection&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const Dave = privateKey_1.default(&#x27;//Dave&#x27;);\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    try {\n        await helpers_1.approveExpectFail(nftCollectionId, newNftTokenId, Dave, Bob);\n        await helpers_1.transferFromExpectFail(nftCollectionId, newNftTokenId, Dave, Alice, Charlie, 1);\n    }\n    catch (e) {\n        // tslint:disable-next-line:no-unused-expression\n        expect(e).to.be.exist;\n    }\n    // await transferFromExpectFail(nftCollectionId, newNftTokenId, Dave, Alice, Charlie, 1);\n    // fungible\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\n    try {\n        await helpers_1.approveExpectFail(fungibleCollectionId, newFungibleTokenId, Dave, Bob);\n        await helpers_1.transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Dave, Alice, Charlie, 1);\n    }\n    catch (e) {\n        // tslint:disable-next-line:no-unused-expression\n        expect(e).to.be.exist;\n    }\n    // reFungible\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\n    try {\n        await helpers_1.approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, Dave, Bob);\n        await helpers_1.transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Dave, Alice, Charlie, 1);\n    }\n    catch (e) {\n        // tslint:disable-next-line:no-unused-expression\n        expect(e).to.be.exist;\n    }\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;3f42770c-0612-4bda-9549-e6fd8f5ddc02&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom burnt token before approve NFT&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom burnt token before approve NFT&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    await helpers_1.burnItemExpectSuccess(Alice, nftCollectionId, newNftTokenId, 1);\n    await helpers_1.approveExpectFail(nftCollectionId, newNftTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;f2ba3a52-2534-41d8-9030-8cb7882140ef&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom burnt token before approve Fungible&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom burnt token before approve Fungible&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\n    await helpers_1.burnItemExpectSuccess(Alice, fungibleCollectionId, 1, 10);\n    await helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;d50d2028-3c93-4588-a866-c4f15bddb4ca&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom burnt token before approve ReFungible&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom burnt token before approve ReFungible&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\n    await helpers_1.burnItemExpectSuccess(Alice, reFungibleCollectionId, newReFungibleTokenId, 1);\n    await helpers_1.approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);\n    await helpers_1.transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1b9fb2ec-9327-436e-b5aa-2331c5e7af30&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom burnt token after approve NFT&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom burnt token after approve NFT&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    // nft\n    const nftCollectionId = await helpers_1.createCollectionExpectSuccess();\n    const newNftTokenId = await helpers_1.createItemExpectSuccess(Alice, nftCollectionId, &#x27;NFT&#x27;);\n    await helpers_1.approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);\n    await helpers_1.burnItemExpectSuccess(Alice, nftCollectionId, newNftTokenId, 1);\n    await helpers_1.transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;7321a1d8-58d6-40f8-a8f6-64a521b2b004&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom burnt token after approve Fungible&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom burnt token after approve Fungible&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const fungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;Fungible&#x27;, decimalPoints: 0 } });\n    const newFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, fungibleCollectionId, &#x27;Fungible&#x27;);\n    await helpers_1.approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);\n    await helpers_1.burnItemExpectSuccess(Alice, fungibleCollectionId, 1, 10);\n    await helpers_1.transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;9e0127f4-4609-415d-8aed-07f00745e523&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;transferFrom burnt token after approve ReFungible&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): transferFrom burnt token after approve ReFungible&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;await substrate_api_1.default(async () =&gt; {\n    const reFungibleCollectionId = await helpers_1.createCollectionExpectSuccess({ mode: { type: &#x27;ReFungible&#x27; } });\n    const newReFungibleTokenId = await helpers_1.createItemExpectSuccess(Alice, reFungibleCollectionId, &#x27;ReFungible&#x27;);\n    await helpers_1.approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);\n    await helpers_1.burnItemExpectSuccess(Alice, reFungibleCollectionId, newReFungibleTokenId, 1);\n    await helpers_1.transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, Charlie, 1);\n});&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;245c015f-866e-4a94-947f-24831361053c&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true},{&quot;title&quot;:&quot;fails when called by collection owner on non-owned item when OwnerCanTransfer == false&quot;,&quot;fullTitle&quot;:&quot;Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value): fails when called by collection owner on non-owned item when OwnerCanTransfer == false&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:0,&quot;pass&quot;:false,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;const collectionId = await helpers_1.createCollectionExpectSuccess();\nconst itemId = await helpers_1.createItemExpectSuccess(Alice, collectionId, &#x27;NFT&#x27;, Bob.address);\nawait helpers_1.setCollectionLimitsExpectSuccess(Alice, collectionId, { OwnerCanTransfer: false });\nawait helpers_1.transferFromExpectFail(collectionId, itemId, Alice, Bob, Charlie);&quot;,&quot;err&quot;:{},&quot;uuid&quot;:&quot;1ce5816b-f248-446a-80e8-a5cf15efd54f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:true}],&quot;suites&quot;:[],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[&quot;a5d44056-808b-4e47-ade8-bd1895df0d4a&quot;,&quot;4b7c8080-6427-4e7e-afa5-0bf79d02c87b&quot;,&quot;ec426f3f-098a-4625-81db-114d31d1a074&quot;,&quot;3f42770c-0612-4bda-9549-e6fd8f5ddc02&quot;,&quot;f2ba3a52-2534-41d8-9030-8cb7882140ef&quot;,&quot;d50d2028-3c93-4588-a866-c4f15bddb4ca&quot;,&quot;1b9fb2ec-9327-436e-b5aa-2331c5e7af30&quot;,&quot;7321a1d8-58d6-40f8-a8f6-64a521b2b004&quot;,&quot;9e0127f4-4609-415d-8aed-07f00745e523&quot;,&quot;245c015f-866e-4a94-947f-24831361053c&quot;,&quot;1ce5816b-f248-446a-80e8-a5cf15efd54f&quot;],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:9999999}],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:true,&quot;rootEmpty&quot;:true,&quot;_timeout&quot;:9999999}],&quot;meta&quot;:{&quot;mocha&quot;:{&quot;version&quot;:&quot;8.4.0&quot;},&quot;mochawesome&quot;:{&quot;options&quot;:{&quot;quiet&quot;:false,&quot;reportFilename&quot;:&quot;mochawesome&quot;,&quot;saveHtml&quot;:true,&quot;saveJson&quot;:true,&quot;consoleReporter&quot;:&quot;spec&quot;,&quot;useInlineDiffs&quot;:false,&quot;code&quot;:true},&quot;version&quot;:&quot;6.2.2&quot;},&quot;marge&quot;:{&quot;version&quot;:&quot;5.2.0&quot;}}}" data-config="{&quot;reportFilename&quot;:&quot;mochawesome&quot;,&quot;reportDir&quot;:&quot;mochawesome-report&quot;,&quot;reportTitle&quot;:&quot;tests&quot;,&quot;reportPageTitle&quot;:&quot;Mochawesome Report&quot;,&quot;inline&quot;:false,&quot;inlineAssets&quot;:false,&quot;cdn&quot;:false,&quot;charts&quot;:false,&quot;enableCharts&quot;:false,&quot;code&quot;:true,&quot;enableCode&quot;:true,&quot;autoOpen&quot;:false,&quot;overwrite&quot;:true,&quot;timestamp&quot;:false,&quot;ts&quot;:false,&quot;showPassed&quot;:true,&quot;showFailed&quot;:true,&quot;showPending&quot;:true,&quot;showSkipped&quot;:false,&quot;showHooks&quot;:&quot;failed&quot;,&quot;saveJson&quot;:true,&quot;saveHtml&quot;:true,&quot;dev&quot;:false,&quot;assetsDir&quot;:&quot;mochawesome-report/assets&quot;,&quot;jsonFile&quot;:&quot;/nft_parachain/tests/mochawesome-report/mochawesome.json&quot;,&quot;htmlFile&quot;:&quot;/nft_parachain/tests/mochawesome-report/mochawesome.html&quot;}"><div id="report"></div><script src="assets/app.js"></script></body></html>