git.delta.rocks / unique-network / refs/commits / 47f1fe8177c4

difftreelog

fix eslint errors in playgrounds

Maksandre2022-08-08parent: #d944b14.patch.diff
in: master

2 files changed

modifiedtests/src/util/playgrounds/index.tsdiffbeforeafterboth
9class SilentLogger {9class SilentLogger {
10 log(msg: any, level: any): void {}10 log(msg: any, level: any): void {}
11 level = {11 level = {
12 ERROR: 'ERROR' as 'ERROR',12 ERROR: 'ERROR' as const,
13 WARNING: 'WARNING' as 'WARNING',13 WARNING: 'WARNING' as const,
14 INFO: 'INFO' as 'INFO'14 INFO: 'INFO' as const,
15 }15 };
16}16}
1717
1818
87 console.log = consoleLog;87 console.log = consoleLog;
88 console.warn = consoleWarn;88 console.warn = consoleWarn;
89 }89 }
90}90};
modifiedtests/src/util/playgrounds/unique.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.ts
+++ b/tests/src/util/playgrounds/unique.ts
@@ -1,16 +1,19 @@
+/* eslint-disable @typescript-eslint/no-var-requires */
+/* eslint-disable function-call-argument-newline */
+/* eslint-disable no-prototype-builtins */
 
-import { ApiPromise, WsProvider, Keyring } from '@polkadot/api';
-import { ApiInterfaceEvents } from '@polkadot/api/types';
-import { IKeyringPair } from '@polkadot/types/types';
-import { encodeAddress, decodeAddress, keccakAsHex, evmToAddress, addressToEvm } from '@polkadot/util-crypto';
+import {ApiPromise, WsProvider, Keyring} from '@polkadot/api';
+import {ApiInterfaceEvents} from '@polkadot/api/types';
+import {IKeyringPair} from '@polkadot/types/types';
+import {encodeAddress, decodeAddress, keccakAsHex, evmToAddress, addressToEvm} from '@polkadot/util-crypto';
 
 
 const crossAccountIdFromLower = (lowerAddress: ICrossAccountIdLower): ICrossAccountId => {
-  let address = {} as ICrossAccountId;
+  const address = {} as ICrossAccountId;
   if(lowerAddress.substrate) address.Substrate = lowerAddress.substrate;
   if(lowerAddress.ethereum) address.Ethereum = lowerAddress.ethereum;
   return address;
-}
+};
 
 
 const nesting = {
@@ -21,9 +24,9 @@
 
     address = address.toLowerCase().replace(/^0x/i,'');
     const addressHash = keccakAsHex(address).replace(/^0x/i,'');
-    let checksumAddress = ['0x'];
+    const checksumAddress = ['0x'];
 
-    for (let i = 0; i < address.length; i++ ) {
+    for (let i = 0; i < address.length; i++) {
       // If ith character is 8 to f then make it uppercase
       if (parseInt(addressHash[i], 16) > 7) {
         checksumAddress.push(address[i].toUpperCase());
@@ -34,10 +37,8 @@
     return checksumAddress.join('');
   },
   tokenIdToAddress(collectionId: number, tokenId: number) {
-    return this.toChecksumAddress(
-      `0xf8238ccfff8ed887463fd5e0${collectionId.toString(16).padStart(8, '0')}${tokenId.toString(16).padStart(8, '0')}`
-    );
-  }
+    return this.toChecksumAddress(`0xf8238ccfff8ed887463fd5e0${collectionId.toString(16).padStart(8, '0')}${tokenId.toString(16).padStart(8, '0')}`);
+  },
 };
 
 
@@ -171,13 +172,13 @@
   static transactionStatus = {
     NOT_READY: 'NotReady',
     FAIL: 'Fail',
-    SUCCESS: 'Success'
-  }
+    SUCCESS: 'Success',
+  };
 
   static chainLogType = {
     EXTRINSIC: 'extrinsic',
-    RPC: 'rpc'
-  }
+    RPC: 'rpc',
+  };
 
   static getNestingTokenAddress(collectionId: number, tokenId: number) {
     return nesting.tokenIdToAddress(collectionId, tokenId);
@@ -191,8 +192,8 @@
       level: {
         ERROR: 'ERROR',
         WARNING: 'WARNING',
-        INFO: 'INFO'
-      }
+        INFO: 'INFO',
+      },
     };
   }
 
@@ -227,7 +228,7 @@
     });
 
     if (collectionId === null) {
-      throw Error(`No CollectionCreated event for ${label}`)
+      throw Error(`No CollectionCreated event for ${label}`);
     }
 
     return collectionId;
@@ -237,7 +238,8 @@
     if (creationResult.status !== this.transactionStatus.SUCCESS) {
       throw Error(`Unable to create tokens for ${label}`);
     }
-    let success = false, tokens = [] as any;
+    let success = false;
+    const tokens = [] as any;
     creationResult.result.events.forEach(({event: {data, method, section}}) => {
       if (method === 'ExtrinsicSuccess') {
         success = true;
@@ -245,7 +247,7 @@
         tokens.push({
           collectionId: parseInt(data[0].toString(), 10),
           tokenId: parseInt(data[1].toString(), 10),
-          owner: data[2].toJSON()
+          owner: data[2].toJSON(),
         });
       }
     });
@@ -256,7 +258,8 @@
     if (burnResult.status !== this.transactionStatus.SUCCESS) {
       throw Error(`Unable to burn tokens for ${label}`);
     }
-    let success = false, tokens = [] as any;
+    let success = false;
+    const tokens = [] as any;
     burnResult.result.events.forEach(({event: {data, method, section}}) => {
       if (method === 'ExtrinsicSuccess') {
         success = true;
@@ -264,7 +267,7 @@
         tokens.push({
           collectionId: parseInt(data[0].toString(), 10),
           tokenId: parseInt(data[1].toString(), 10),
-          owner: data[2].toJSON()
+          owner: data[2].toJSON(),
         });
       }
     });
@@ -288,24 +291,24 @@
   static isTokenTransferSuccess(events: {event: IChainEvent}[], collectionId: number, tokenId: number, fromAddressObj: ICrossAccountId, toAddressObj: ICrossAccountId, amount=1n) {
     const normalizeAddress = (address: string | ICrossAccountId) => {
       if(typeof address === 'string') return address;
-      let obj = {} as any;
+      const obj = {} as any;
       Object.keys(address).forEach(k => {
         obj[k.toLocaleLowerCase()] = address[k as 'Substrate' | 'Ethereum'];
       });
       if(obj.substrate) return {Substrate: this.normalizeSubstrateAddress(obj.substrate)};
       if(obj.ethereum) return {Ethereum: obj.ethereum.toLocaleLowerCase()};
       return address;
-    }
+    };
     let transfer = {collectionId: null, tokenId: null, from: null, to: null, amount: 1} as any;
     events.forEach(({event: {data, method, section}}) => {
       if ((section === 'common') && (method === 'Transfer')) {
-        let hData = (data as any).toJSON();
+        const hData = (data as any).toJSON();
         transfer = {
           collectionId: hData[0],
           tokenId: hData[1],
           from: normalizeAddress(hData[2]),
           to: normalizeAddress(hData[3]),
-          amount: BigInt(hData[4])
+          amount: BigInt(hData[4]),
         };
       }
     });
@@ -348,7 +351,7 @@
 
   async connect(wsEndpoint: string, listeners?: IApiListeners) {
     if (this.api !== null) throw Error('Already connected');
-    const { api, network } = await ChainHelperBase.createConnection(wsEndpoint, listeners, this.forcedNetwork);
+    const {api, network} = await ChainHelperBase.createConnection(wsEndpoint, listeners, this.forcedNetwork);
     this.api = api;
     this.network = network;
   }
@@ -361,13 +364,13 @@
   }
 
   static async detectNetwork(api: ApiPromise): Promise<TUniqueNetworks> {
-    let spec = (await api.query.system.lastRuntimeUpgrade()).toJSON() as any;
+    const spec = (await api.query.system.lastRuntimeUpgrade()).toJSON() as any;
     if(['quartz', 'unique'].indexOf(spec.specName) > -1) return spec.specName;
     return 'opal';
   }
 
   static async detectNetworkByWsEndpoint(wsEndpoint: string): Promise<TUniqueNetworks> {
-    let api = new ApiPromise({provider: new WsProvider(wsEndpoint)});
+    const api = new ApiPromise({provider: new WsProvider(wsEndpoint)});
     await api.isReady;
 
     const network = await this.detectNetwork(api);
@@ -384,15 +387,15 @@
     if(typeof network === 'undefined' || network === null) network = 'opal';
     const supportedRPC = {
       opal: {
-        unique: require('@unique-nft/opal-testnet-types/definitions').unique.rpc
+        unique: require('@unique-nft/opal-testnet-types/definitions').unique.rpc,
       },
       quartz: {
-        unique: require('@unique-nft/quartz-mainnet-types/definitions').unique.rpc
+        unique: require('@unique-nft/quartz-mainnet-types/definitions').unique.rpc,
       },
       unique: {
-        unique: require('@unique-nft/unique-mainnet-types/definitions').unique.rpc
-      }
-    }
+        unique: require('@unique-nft/unique-mainnet-types/definitions').unique.rpc,
+      },
+    };
     if(!supportedRPC.hasOwnProperty(network)) network = await this.detectNetworkByWsEndpoint(wsEndpoint);
     const rpc = supportedRPC[network];
 
@@ -404,7 +407,7 @@
     await api.isReadyOrError;
 
     if (typeof listeners === 'undefined') listeners = {};
-    for (let event of ['connected', 'disconnected', 'error', 'ready', 'decorated']) {
+    for (const event of ['connected', 'disconnected', 'error', 'ready', 'decorated']) {
       if (!listeners.hasOwnProperty(event) || typeof listeners[event as TApiAllowedListeners] === 'undefined') continue;
       api.on(event as ApiInterfaceEvents, listeners[event as TApiAllowedListeners] as (...args: any[]) => any);
     }
@@ -437,10 +440,10 @@
     const sign = (callback: any) => {
       if(options !== null) return transaction.signAndSend(sender, options, callback);
       return transaction.signAndSend(sender, callback);
-    }
+    };
     return new Promise(async (resolve, reject) => {
       try {
-        let unsub = await sign((result: any) => {
+        const unsub = await sign((result: any) => {
           const status = this.getTransactionStatus(result);
 
           if (status === this.transactionStatus.SUCCESS) {
@@ -479,7 +482,7 @@
   constructApiCall(apiCall: string, params: any[]) {
     if(!apiCall.startsWith('api.')) throw Error(`Invalid api call: ${apiCall}`);
     let call = this.api as any;
-    for(let part of apiCall.slice(4).split('.')) {
+    for(const part of apiCall.slice(4).split('.')) {
       call = call[part];
     }
     return call(...params);
@@ -503,13 +506,13 @@
 
     const endTime = (new Date()).getTime();
 
-    let log = {
+    const log = {
       executedAt: endTime,
       executionTime: endTime - startTime,
       type: this.chainLogType.EXTRINSIC,
       status: result.status,
       call: extrinsic,
-      params
+      params,
     } as IUniqueHelperLog;
 
     if(result.status !== this.transactionStatus.SUCCESS && result.moduleError) log.moduleError = result.moduleError;
@@ -527,11 +530,13 @@
     if(!rpc.startsWith('api.rpc.') && !rpc.startsWith('api.query.')) throw Error(`${rpc} is not RPC call`);
 
     const startTime = (new Date()).getTime();
-    let result, log = {
+    let result;
+    let error = null;
+    const log = {
       type: this.chainLogType.RPC,
       call: rpc,
-      params
-    } as IUniqueHelperLog, error = null;
+      params,
+    } as IUniqueHelperLog;
 
     try {
       result = await this.constructApiCall(rpc, params);
@@ -607,15 +612,15 @@
     raw: any
   } | null> {
     const collection = await this.helper.callRpc('api.rpc.unique.collectionById', [collectionId]);
-    let humanCollection = collection.toHuman(), collectionData = {
+    const humanCollection = collection.toHuman(), collectionData = {
       id: collectionId, name: null, description: null, tokensCount: 0, admins: [],
-      raw: humanCollection
+      raw: humanCollection,
     } as any, jsonCollection = collection.toJSON();
     if (humanCollection === null) return null;
     collectionData.raw.limits = jsonCollection.limits;
     collectionData.raw.permissions = jsonCollection.permissions;
     collectionData.normalizedOwner = this.helper.address.normalizeSubstrate(collectionData.raw.owner);
-    for (let key of ['name', 'description']) {
+    for (const key of ['name', 'description']) {
       collectionData[key] = this.helper.util.vec2str(humanCollection[key]);
     }
 
@@ -632,8 +637,8 @@
    * @returns array of administrators
    */
   async getAdmins(collectionId: number): Promise<ICrossAccountId[]> {
-    let normalized = [];
-    for(let admin of (await this.helper.callRpc('api.rpc.unique.adminlist', [collectionId])).toHuman()) {
+    const normalized = [];
+    for(const admin of (await this.helper.callRpc('api.rpc.unique.adminlist', [collectionId])).toHuman()) {
       if(admin.Substrate) normalized.push({Substrate: this.helper.address.normalizeSubstrate(admin.Substrate)});
       else normalized.push(admin);
     }
@@ -663,7 +668,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.destroyCollection', [collectionId],
-      true, `Unable to burn collection for ${label}`
+      true, `Unable to burn collection for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'common', 'CollectionDestroyed', label);
@@ -683,7 +688,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.setCollectionSponsor', [collectionId, sponsorAddress],
-      true, `Unable to set collection sponsor for ${label}`
+      true, `Unable to set collection sponsor for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'unique', 'CollectionSponsorSet', label);
@@ -702,7 +707,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.confirmSponsorship', [collectionId],
-      true, `Unable to confirm collection sponsorship for ${label}`
+      true, `Unable to confirm collection sponsorship for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'unique', 'SponsorshipConfirmed', label);
@@ -722,7 +727,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.setCollectionLimits', [collectionId, limits],
-      true, `Unable to set collection limits for ${label}`
+      true, `Unable to set collection limits for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'unique', 'CollectionLimitSet', label);
@@ -742,7 +747,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.changeCollectionOwner', [collectionId, ownerAddress],
-      true, `Unable to change collection owner for ${label}`
+      true, `Unable to change collection owner for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'unique', 'CollectionOwnedChanged', label);
@@ -762,7 +767,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.addCollectionAdmin', [collectionId, adminAddressObj],
-      true, `Unable to add collection admin for ${label}`
+      true, `Unable to add collection admin for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'unique', 'CollectionAdminAdded', label);
@@ -782,7 +787,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.removeCollectionAdmin', [collectionId, adminAddressObj],
-      true, `Unable to remove collection admin for ${label}`
+      true, `Unable to remove collection admin for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'unique', 'CollectionAdminRemoved', label);
@@ -802,7 +807,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.setCollectionPermissions', [collectionId, permissions],
-      true, `Unable to set collection permissions for ${label}`
+      true, `Unable to set collection permissions for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'unique', 'CollectionPermissionSet', label);
@@ -847,7 +852,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.setCollectionProperties', [collectionId, properties],
-      true, `Unable to set collection properties for ${label}`
+      true, `Unable to set collection properties for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'common', 'CollectionPropertySet', label);
@@ -867,7 +872,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.deleteCollectionProperties', [collectionId, propertyKeys],
-      true, `Unable to delete collection properties for ${label}`
+      true, `Unable to delete collection properties for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'common', 'CollectionPropertyDeleted', label);
@@ -877,7 +882,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.transfer', [addressObj, collectionId, tokenId, amount],
-      true, `Unable to transfer token #${tokenId} from collection #${collectionId}`
+      true, `Unable to transfer token #${tokenId} from collection #${collectionId}`,
     );
 
     return this.helper.util.isTokenTransferSuccess(result.result.events, collectionId, tokenId, {Substrate: typeof signer === 'string' ? signer : signer.address}, addressObj, amount);
@@ -887,7 +892,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.transferFrom', [fromAddressObj, toAddressObj, collectionId, tokenId, amount],
-      true, `Unable to transfer token #${tokenId} from collection #${collectionId}`
+      true, `Unable to transfer token #${tokenId} from collection #${collectionId}`,
     );
     return this.helper.util.isTokenTransferSuccess(result.result.events, collectionId, tokenId, fromAddressObj, toAddressObj, amount);
   }
@@ -900,7 +905,7 @@
     const burnResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.burnItem', [collectionId, tokenId, amount],
-      true, `Unable to burn token for ${label}`
+      true, `Unable to burn token for ${label}`,
     );
     const burnedTokens = this.helper.util.extractTokensFromBurnResult(burnResult, label);
     if (burnedTokens.tokens.length > 1) throw Error('Burned multiple tokens');
@@ -912,7 +917,7 @@
     const burnResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.burnFrom', [collectionId, fromAddressObj, tokenId, amount],
-      true, `Unable to burn token from for ${label}`
+      true, `Unable to burn token from for ${label}`,
     );
     const burnedTokens = this.helper.util.extractTokensFromBurnResult(burnResult, label);
     return burnedTokens.success && burnedTokens.tokens.length > 0;
@@ -923,7 +928,7 @@
     const approveResult = await this.helper.executeExtrinsic(
       signer, 
       'api.tx.unique.approve', [toAddressObj, collectionId, tokenId, amount],
-      true, `Unable to approve token for ${label}`
+      true, `Unable to approve token for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(approveResult.result.events, collectionId, 'common', 'Approved', label);
@@ -938,13 +943,13 @@
   }
 
   async isTokenExists(collectionId: number, tokenId: number): Promise<boolean> {
-    return (await this.helper.callRpc('api.rpc.unique.tokenExists', [collectionId, tokenId])).toJSON()
+    return (await this.helper.callRpc('api.rpc.unique.tokenExists', [collectionId, tokenId])).toJSON();
   }
 }
 
 class NFTnRFT extends CollectionGroup {
   async getTokensByAddress(collectionId: number, addressObj: ICrossAccountId): Promise<number[]> {
-    return (await this.helper.callRpc('api.rpc.unique.accountTokens', [collectionId, addressObj])).toJSON()
+    return (await this.helper.callRpc('api.rpc.unique.accountTokens', [collectionId, addressObj])).toJSON();
   }
 
   async getToken(collectionId: number, tokenId: number, blockHashAt?: string, propertyKeys?: string[]): Promise<{
@@ -958,7 +963,7 @@
     }
     else {
       if(typeof propertyKeys === 'undefined') {
-        let collection = (await this.helper.callRpc('api.rpc.unique.collectionById', [collectionId])).toHuman();
+        const collection = (await this.helper.callRpc('api.rpc.unique.collectionById', [collectionId])).toHuman();
         if(!collection) return null;
         propertyKeys = collection.tokenPropertyPermissions.map((x: ITokenPropertyPermission) => x.key);
       }
@@ -966,8 +971,8 @@
     }
     tokenData = tokenData.toHuman();
     if (tokenData === null || tokenData.owner === null) return null;
-    let owner = {} as any;
-    for (let key of Object.keys(tokenData.owner)) {
+    const owner = {} as any;
+    for (const key of Object.keys(tokenData.owner)) {
       owner[key.toLocaleLowerCase()] = key.toLocaleLowerCase() === 'substrate' ? this.helper.address.normalizeSubstrate(tokenData.owner[key]) : tokenData.owner[key];
     }
     tokenData.normalizedOwner = crossAccountIdFromLower(owner);
@@ -979,7 +984,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.setTokenPropertyPermissions', [collectionId, permissions],
-      true, `Unable to set token property permissions for ${label}`
+      true, `Unable to set token property permissions for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'common', 'PropertyPermissionSet', label);
@@ -990,7 +995,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.setTokenProperties', [collectionId, tokenId, properties],
-      true, `Unable to set token properties for ${label}`
+      true, `Unable to set token properties for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'common', 'TokenPropertySet', label);
@@ -1001,7 +1006,7 @@
     const result = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.deleteTokenProperties', [collectionId, tokenId, propertyKeys],
-      true, `Unable to delete token properties for ${label}`
+      true, `Unable to delete token properties for ${label}`,
     );
 
     return this.helper.util.findCollectionInEvents(result.result.events, collectionId, 'common', 'TokenPropertyDeleted', label);
@@ -1010,13 +1015,13 @@
   async mintCollection(signer: TSigner, collectionOptions: ICollectionCreationOptions, mode: 'NFT' | 'RFT', errorLabel = 'Unable to mint collection'): Promise<UniqueCollectionBase> {
     collectionOptions = JSON.parse(JSON.stringify(collectionOptions)) as ICollectionCreationOptions; // Clone object
     collectionOptions.mode = (mode === 'NFT') ? {nft: null} : {refungible: null};
-    for (let key of ['name', 'description', 'tokenPrefix']) {
+    for (const key of ['name', 'description', 'tokenPrefix']) {
       if (typeof collectionOptions[key as 'name' | 'description' | 'tokenPrefix'] === 'string') collectionOptions[key as 'name' | 'description' | 'tokenPrefix'] = this.helper.util.str2vec(collectionOptions[key as 'name' | 'description' | 'tokenPrefix'] as string);
     }
     const creationResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.createCollectionEx', [collectionOptions],
-      true, errorLabel
+      true, errorLabel,
     );
     return this.getCollectionObject(this.helper.util.extractCollectionIdFromCreationResult(creationResult, errorLabel));
   }
@@ -1118,10 +1123,10 @@
       signer,
       'api.tx.unique.createItem', [data.collectionId, (typeof data.owner === 'string') ? {Substrate: data.owner} : data.owner, {
         nft: {
-          properties: data.properties
-        }
+          properties: data.properties,
+        },
       }],
-      true, `Unable to mint NFT token for ${label}`
+      true, `Unable to mint NFT token for ${label}`,
     );
     const createdTokens = this.helper.util.extractTokensFromCreationResult(creationResult, label);
     if (createdTokens.tokens.length > 1) throw Error('Minted multiple tokens');
@@ -1134,7 +1139,7 @@
     const creationResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.createMultipleItemsEx', [collectionId, {NFT: tokens}],
-      true, `Unable to mint NFT tokens for ${label}`
+      true, `Unable to mint NFT tokens for ${label}`,
     );
     const collection = this.getCollectionObject(collectionId);
     return this.helper.util.extractTokensFromCreationResult(creationResult, label).tokens.map((x: IToken) => collection.getTokenObject(x.tokenId));
@@ -1142,15 +1147,15 @@
 
   async mintMultipleTokensWithOneOwner(signer: TSigner, collectionId: number, owner: ICrossAccountId, tokens: {properties?: IProperty[]}[], label?: string): Promise<UniqueNFTToken[]> {
     if(typeof label === 'undefined') label = `collection #${collectionId}`;
-    let rawTokens = [];
-    for (let token of tokens) {
-      let raw = {NFT: {properties: token.properties}};
+    const rawTokens = [];
+    for (const token of tokens) {
+      const raw = {NFT: {properties: token.properties}};
       rawTokens.push(raw);
     }
     const creationResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.createMultipleItems', [collectionId, owner, rawTokens],
-      true, `Unable to mint NFT tokens for ${label}`
+      true, `Unable to mint NFT tokens for ${label}`,
     );
     const collection = this.getCollectionObject(collectionId);
     return this.helper.util.extractTokensFromCreationResult(creationResult, label).tokens.map((x: IToken) => collection.getTokenObject(x.tokenId));
@@ -1202,10 +1207,10 @@
       'api.tx.unique.createItem', [data.collectionId, (typeof data.owner === 'string') ? {Substrate: data.owner} : data.owner, {
         refungible: {
           pieces: data.pieces,
-          properties: data.properties
-        }
+          properties: data.properties,
+        },
       }],
-      true, `Unable to mint RFT token for ${label}`
+      true, `Unable to mint RFT token for ${label}`,
     );
     const createdTokens = this.helper.util.extractTokensFromCreationResult(creationResult, label);
     if (createdTokens.tokens.length > 1) throw Error('Minted multiple tokens');
@@ -1219,7 +1224,7 @@
     const creationResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.createMultipleItemsEx', [collectionId, {RefungibleMultipleOwners: tokens}],
-      true, `Unable to mint RFT tokens for ${label}`
+      true, `Unable to mint RFT tokens for ${label}`,
     );
     const collection = this.getCollectionObject(collectionId);
     return this.helper.util.extractTokensFromCreationResult(creationResult, label).tokens.map((x: IToken) => collection.getTokenObject(x.tokenId));
@@ -1227,15 +1232,15 @@
 
   async mintMultipleTokensWithOneOwner(signer: TSigner, collectionId: number, owner: ICrossAccountId, tokens: {pieces: bigint, properties?: IProperty[]}[], label?: string): Promise<UniqueRFTToken[]> {
     if(typeof label === 'undefined') label = `collection #${collectionId}`;
-    let rawTokens = [];
-    for (let token of tokens) {
-      let raw = {ReFungible: {pieces: token.pieces, properties: token.properties}};
+    const rawTokens = [];
+    for (const token of tokens) {
+      const raw = {ReFungible: {pieces: token.pieces, properties: token.properties}};
       rawTokens.push(raw);
     }
     const creationResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.createMultipleItems', [collectionId, owner, rawTokens],
-      true, `Unable to mint RFT tokens for ${label}`
+      true, `Unable to mint RFT tokens for ${label}`,
     );
     const collection = this.getCollectionObject(collectionId);
     return this.helper.util.extractTokensFromCreationResult(creationResult, label).tokens.map((x: IToken) => collection.getTokenObject(x.tokenId));
@@ -1259,7 +1264,7 @@
     const repartitionResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.repartition', [collectionId, tokenId, amount],
-      true, `Unable to repartition RFT token for ${label}`
+      true, `Unable to repartition RFT token for ${label}`,
     );
     if(currentAmount < amount) return this.helper.util.findCollectionInEvents(repartitionResult.result.events, collectionId, 'common', 'ItemCreated', label);
     return this.helper.util.findCollectionInEvents(repartitionResult.result.events, collectionId, 'common', 'ItemDestroyed', label);
@@ -1272,17 +1277,17 @@
     return new UniqueFTCollection(collectionId, this.helper);
   }
 
-  async mintCollection(signer: TSigner, collectionOptions: ICollectionCreationOptions, decimalPoints: number = 0, errorLabel = 'Unable to mint collection'): Promise<UniqueFTCollection> {
+  async mintCollection(signer: TSigner, collectionOptions: ICollectionCreationOptions, decimalPoints = 0, errorLabel = 'Unable to mint collection'): Promise<UniqueFTCollection> {
     collectionOptions = JSON.parse(JSON.stringify(collectionOptions)) as ICollectionCreationOptions; // Clone object
     if(collectionOptions.tokenPropertyPermissions) throw Error('Fungible collections has no tokenPropertyPermissions');
     collectionOptions.mode = {fungible: decimalPoints};
-    for (let key of ['name', 'description', 'tokenPrefix']) {
+    for (const key of ['name', 'description', 'tokenPrefix']) {
       if (typeof collectionOptions[key as 'name' | 'description' | 'tokenPrefix'] === 'string') collectionOptions[key as 'name' | 'description' | 'tokenPrefix'] = this.helper.util.str2vec(collectionOptions[key as 'name' | 'description' | 'tokenPrefix'] as string);
     }
     const creationResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.createCollectionEx', [collectionOptions],
-      true, errorLabel
+      true, errorLabel,
     );
     return this.getCollectionObject(this.helper.util.extractCollectionIdFromCreationResult(creationResult, errorLabel));
   }
@@ -1293,25 +1298,25 @@
       signer,
       'api.tx.unique.createItem', [collectionId, (typeof owner === 'string') ? {Substrate: owner} : owner, {
         fungible: {
-          value: amount
-        }
+          value: amount,
+        },
       }],
-      true, `Unable to mint fungible tokens for ${label}`
+      true, `Unable to mint fungible tokens for ${label}`,
     );
     return this.helper.util.findCollectionInEvents(creationResult.result.events, collectionId, 'common', 'ItemCreated', label);
   }
 
   async mintMultipleTokensWithOneOwner(signer: TSigner, collectionId: number, owner: ICrossAccountId, tokens: {value: bigint}[], label?: string): Promise<boolean> {
     if(typeof label === 'undefined') label = `collection #${collectionId}`;
-    let rawTokens = [];
-    for (let token of tokens) {
-      let raw = {Fungible: {Value: token.value}};
+    const rawTokens = [];
+    for (const token of tokens) {
+      const raw = {Fungible: {Value: token.value}};
       rawTokens.push(raw);
     }
     const creationResult = await this.helper.executeExtrinsic(
       signer,
       'api.tx.unique.createMultipleItems', [collectionId, owner, rawTokens],
-      true, `Unable to mint RFT tokens for ${label}`
+      true, `Unable to mint RFT tokens for ${label}`,
     );
     return this.helper.util.findCollectionInEvents(creationResult.result.events, collectionId, 'common', 'ItemCreated', label);
   }
@@ -1360,7 +1365,7 @@
     return {
       ss58Format: properties.ss58Format.toJSON(),
       tokenDecimals: properties.tokenDecimals.toJSON(),
-      tokenSymbol: properties.tokenSymbol.toJSON()
+      tokenSymbol: properties.tokenSymbol.toJSON(),
     };
   }
 
@@ -1403,7 +1408,7 @@
         transfer = {
           from: this.helper.address.normalizeSubstrate(data[0]),
           to: this.helper.address.normalizeSubstrate(data[1]),
-          amount: BigInt(data[2])
+          amount: BigInt(data[2]),
         };
       }
     });
@@ -1421,13 +1426,13 @@
   }
 
   async normalizeSubstrateToChainFormat(address: TSubstrateAccount): Promise<TSubstrateAccount> {
-    let info = this.helper.chain.getChainProperties();
+    const info = this.helper.chain.getChainProperties();
     return encodeAddress(decodeAddress(address), info.ss58Format);
   }
 
   async ethToSubstrate(ethAddress: TEthereumAccount, toChainFormat=false): Promise<TSubstrateAccount> {
     if(!toChainFormat) return evmToAddress(ethAddress);
-    let info = this.helper.chain.getChainProperties();
+    const info = this.helper.chain.getChainProperties();
     return evmToAddress(ethAddress, info.ss58Format);
   }