difftreelog
Add no-floating-promises rule to eslint
in: master
6 files changed
tests/.eslintrc.jsondiffbeforeafterboth--- a/tests/.eslintrc.json
+++ b/tests/.eslintrc.json
@@ -18,6 +18,9 @@
"mocha"
],
"rules": {
+ "@typescript-eslint/no-floating-promises": [
+ "error"
+ ],
"indent": [
"error",
2,
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -11,8 +11,8 @@
"@types/chai-subset": "^1.3.3",
"@types/mocha": "^10.0.0",
"@types/node": "^18.11.2",
- "@typescript-eslint/eslint-plugin": "^5.40.1",
- "@typescript-eslint/parser": "^5.40.1",
+ "@typescript-eslint/eslint-plugin": "^5.47.0",
+ "@typescript-eslint/parser": "^5.47.0",
"chai": "^4.3.6",
"chai-subset": "^1.6.0",
"eslint": "^8.25.0",
tests/src/calibrate.tsdiffbeforeafterboth--- a/tests/src/calibrate.ts
+++ b/tests/src/calibrate.ts
@@ -295,6 +295,7 @@
}
}
+// eslint-disable-next-line @typescript-eslint/no-floating-promises
(async () => {
await usingEthPlaygrounds(async (helper: EthUniqueHelper, privateKey) => {
// Subsequent runs reduce error, as price line is not actually straight, this is a curve
tests/src/transfer.nload.tsdiffbeforeafterboth--- a/tests/src/transfer.nload.ts
+++ b/tests/src/transfer.nload.ts
@@ -14,6 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+/* eslint-disable @typescript-eslint/no-floating-promises */
import os from 'os';
import {IKeyringPair} from '@polkadot/types/types';
import {usingPlaygrounds} from './util';
tests/src/util/globalSetup.tsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// SPDX-License-Identifier: Apache-2.034import {5 usingPlaygrounds, Pallets, DONOR_FUNDING, MINIMUM_DONOR_FUND, LOCKING_PERIOD, UNLOCKING_PERIOD,6} from './index';7import * as path from 'path';8import {promises as fs} from 'fs';910// This function should be called before running test suites.11const globalSetup = async (): Promise<void> => {12 await usingPlaygrounds(async (helper, privateKey) => {13 try {14 // 1. Wait node producing blocks15 await helper.wait.newBlocks(1, 600_000);1617 // 2. Create donors for test files18 await fundFilenamesWithRetries(3)19 .then((result) => {20 if (!result) Promise.reject();21 });2223 // 3. Configure App Promotion24 const missingPallets = helper.fetchMissingPalletNames([Pallets.AppPromotion]);25 if (missingPallets.length === 0) {26 const superuser = await privateKey('//Alice');27 const palletAddress = helper.arrange.calculatePalletAddress('appstake');28 const palletAdmin = await privateKey('//PromotionAdmin');29 const api = helper.getApi();30 await helper.signTransaction(superuser, api.tx.sudo.sudo(api.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})));31 const nominal = helper.balance.getOneTokenNominal();32 await helper.balance.transferToSubstrate(superuser, palletAdmin.address, 1000n * nominal);33 await helper.balance.transferToSubstrate(superuser, palletAddress, 1000n * nominal);34 await helper.executeExtrinsic(superuser, 'api.tx.sudo.sudo', [api.tx.configuration35 .setAppPromotionConfigurationOverride({36 recalculationInterval: LOCKING_PERIOD,37 pendingInterval: UNLOCKING_PERIOD})], true);38 }39 } catch (error) {40 console.error(error);41 Promise.reject();42 }43 });44};4546async function getFiles(rootPath: string): Promise<string[]> {47 const files = await fs.readdir(rootPath, {withFileTypes: true});48 const filenames: string[] = [];49 for (const entry of files) {50 const res = path.resolve(rootPath, entry.name);51 if (entry.isDirectory()) {52 filenames.push(...await getFiles(res));53 } else {54 filenames.push(res);55 }56 }57 return filenames;58}5960const fundFilenames = async () => {61 await usingPlaygrounds(async (helper, privateKey) => {62 const oneToken = helper.balance.getOneTokenNominal();63 const alice = await privateKey('//Alice');64 const nonce = await helper.chain.getNonce(alice.address);65 const filenames = await getFiles(path.resolve(__dirname, '..'));6667 // batching is actually undesireable, it takes away the time while all the transactions actually succeed68 const batchSize = 300;69 let balanceGrantedCounter = 0;70 for (let b = 0; b < filenames.length; b += batchSize) {71 const tx = [];72 let batchBalanceGrantedCounter = 0;73 for (let i = 0; batchBalanceGrantedCounter < batchSize && b + i < filenames.length; i++) {74 const f = filenames[b + i];75 if (!f.endsWith('.test.ts') && !f.endsWith('seqtest.ts') || f.includes('.outdated')) continue;76 const account = await privateKey({filename: f, ignoreFundsPresence: true});77 const aliceBalance = await helper.balance.getSubstrate(account.address);7879 if (aliceBalance < MINIMUM_DONOR_FUND * oneToken) {80 tx.push(helper.executeExtrinsic(81 alice,82 'api.tx.balances.transfer',83 [account.address, DONOR_FUNDING * oneToken],84 true,85 {nonce: nonce + balanceGrantedCounter++},86 ).then(() => true).catch(() => {console.error(`Transaction to ${path.basename(f)} registered as failed. Strange.`); return false;}));87 batchBalanceGrantedCounter++;88 }89 }9091 if(tx.length > 0) {92 console.log(`Granting funds to ${batchBalanceGrantedCounter} filename accounts.`);93 const result = await Promise.all(tx);94 if (result && result.lastIndexOf(false) > -1) throw new Error('The transactions actually probably succeeded, should check the balances.');95 }96 }9798 if (balanceGrantedCounter == 0) console.log('No account needs additional funding.');99 });100};101102const fundFilenamesWithRetries = (retriesLeft: number): Promise<boolean> => {103 if (retriesLeft <= 0) return Promise.resolve(false);104 return fundFilenames()105 .then(() => Promise.resolve(true))106 .catch(e => {107 console.error(e);108 console.error(`Some transactions might have failed. ${retriesLeft>1'Retrying...''Something is wrong.'}\n`);109 return fundFilenamesWithRetries(--retriesLeft);110 });111};112113globalSetup().catch(() => process.exit(1));1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// SPDX-License-Identifier: Apache-2.034import {5 usingPlaygrounds, Pallets, DONOR_FUNDING, MINIMUM_DONOR_FUND, LOCKING_PERIOD, UNLOCKING_PERIOD,6} from './index';7import * as path from 'path';8import {promises as fs} from 'fs';910// This function should be called before running test suites.11const globalSetup = async (): Promise<void> => {12 await usingPlaygrounds(async (helper, privateKey) => {13 try {14 // 1. Wait node producing blocks15 await helper.wait.newBlocks(1, 600_000);1617 // 2. Create donors for test files18 await fundFilenamesWithRetries(3)19 .then((result) => {20 if (!result) throw Error('Some problems with fundFilenamesWithRetries');21 });2223 // 3. Configure App Promotion24 const missingPallets = helper.fetchMissingPalletNames([Pallets.AppPromotion]);25 if (missingPallets.length === 0) {26 const superuser = await privateKey('//Alice');27 const palletAddress = helper.arrange.calculatePalletAddress('appstake');28 const palletAdmin = await privateKey('//PromotionAdmin');29 const api = helper.getApi();30 await helper.signTransaction(superuser, api.tx.sudo.sudo(api.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})));31 const nominal = helper.balance.getOneTokenNominal();32 await helper.balance.transferToSubstrate(superuser, palletAdmin.address, 1000n * nominal);33 await helper.balance.transferToSubstrate(superuser, palletAddress, 1000n * nominal);34 await helper.executeExtrinsic(superuser, 'api.tx.sudo.sudo', [api.tx.configuration35 .setAppPromotionConfigurationOverride({36 recalculationInterval: LOCKING_PERIOD,37 pendingInterval: UNLOCKING_PERIOD})], true);38 }39 } catch (error) {40 console.error(error);41 throw Error('Error during globalSetup');42 }43 });44};4546async function getFiles(rootPath: string): Promise<string[]> {47 const files = await fs.readdir(rootPath, {withFileTypes: true});48 const filenames: string[] = [];49 for (const entry of files) {50 const res = path.resolve(rootPath, entry.name);51 if (entry.isDirectory()) {52 filenames.push(...await getFiles(res));53 } else {54 filenames.push(res);55 }56 }57 return filenames;58}5960const fundFilenames = async () => {61 await usingPlaygrounds(async (helper, privateKey) => {62 const oneToken = helper.balance.getOneTokenNominal();63 const alice = await privateKey('//Alice');64 const nonce = await helper.chain.getNonce(alice.address);65 const filenames = await getFiles(path.resolve(__dirname, '..'));6667 // batching is actually undesireable, it takes away the time while all the transactions actually succeed68 const batchSize = 300;69 let balanceGrantedCounter = 0;70 for (let b = 0; b < filenames.length; b += batchSize) {71 const tx = [];72 let batchBalanceGrantedCounter = 0;73 for (let i = 0; batchBalanceGrantedCounter < batchSize && b + i < filenames.length; i++) {74 const f = filenames[b + i];75 if (!f.endsWith('.test.ts') && !f.endsWith('seqtest.ts') || f.includes('.outdated')) continue;76 const account = await privateKey({filename: f, ignoreFundsPresence: true});77 const aliceBalance = await helper.balance.getSubstrate(account.address);7879 if (aliceBalance < MINIMUM_DONOR_FUND * oneToken) {80 tx.push(helper.executeExtrinsic(81 alice,82 'api.tx.balances.transfer',83 [account.address, DONOR_FUNDING * oneToken],84 true,85 {nonce: nonce + balanceGrantedCounter++},86 ).then(() => true).catch(() => {console.error(`Transaction to ${path.basename(f)} registered as failed. Strange.`); return false;}));87 batchBalanceGrantedCounter++;88 }89 }9091 if(tx.length > 0) {92 console.log(`Granting funds to ${batchBalanceGrantedCounter} filename accounts.`);93 const result = await Promise.all(tx);94 if (result && result.lastIndexOf(false) > -1) throw new Error('The transactions actually probably succeeded, should check the balances.');95 }96 }9798 if (balanceGrantedCounter == 0) console.log('No account needs additional funding.');99 });100};101102const fundFilenamesWithRetries = (retriesLeft: number): Promise<boolean> => {103 if (retriesLeft <= 0) return Promise.resolve(false);104 return fundFilenames()105 .then(() => Promise.resolve(true))106 .catch(e => {107 console.error(e);108 console.error(`Some transactions might have failed. ${retriesLeft>1'Retrying...''Something is wrong.'}\n`);109 return fundFilenamesWithRetries(--retriesLeft);110 });111};112113globalSetup().catch(() => process.exit(1));tests/yarn.lockdiffbeforeafterboth--- a/tests/yarn.lock
+++ b/tests/yarn.lock
@@ -1064,14 +1064,14 @@
dependencies:
"@types/node" "*"
-"@typescript-eslint/eslint-plugin@^5.40.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz#098abb4c9354e19f460d57ab18bff1f676a6cff0"
- integrity sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==
+"@typescript-eslint/eslint-plugin@^5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz#dadb79df3b0499699b155839fd6792f16897d910"
+ integrity sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==
dependencies:
- "@typescript-eslint/scope-manager" "5.46.1"
- "@typescript-eslint/type-utils" "5.46.1"
- "@typescript-eslint/utils" "5.46.1"
+ "@typescript-eslint/scope-manager" "5.47.0"
+ "@typescript-eslint/type-utils" "5.47.0"
+ "@typescript-eslint/utils" "5.47.0"
debug "^4.3.4"
ignore "^5.2.0"
natural-compare-lite "^1.4.0"
@@ -1079,72 +1079,72 @@
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/parser@^5.40.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.46.1.tgz#1fc8e7102c1141eb64276c3b89d70da8c0ba5699"
- integrity sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==
+"@typescript-eslint/parser@^5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.47.0.tgz#62e83de93499bf4b500528f74bf2e0554e3a6c8d"
+ integrity sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==
dependencies:
- "@typescript-eslint/scope-manager" "5.46.1"
- "@typescript-eslint/types" "5.46.1"
- "@typescript-eslint/typescript-estree" "5.46.1"
+ "@typescript-eslint/scope-manager" "5.47.0"
+ "@typescript-eslint/types" "5.47.0"
+ "@typescript-eslint/typescript-estree" "5.47.0"
debug "^4.3.4"
-"@typescript-eslint/scope-manager@5.46.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz#70af8425c79bbc1178b5a63fb51102ddf48e104a"
- integrity sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==
+"@typescript-eslint/scope-manager@5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz#f58144a6b0ff58b996f92172c488813aee9b09df"
+ integrity sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==
dependencies:
- "@typescript-eslint/types" "5.46.1"
- "@typescript-eslint/visitor-keys" "5.46.1"
+ "@typescript-eslint/types" "5.47.0"
+ "@typescript-eslint/visitor-keys" "5.47.0"
-"@typescript-eslint/type-utils@5.46.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz#195033e4b30b51b870dfcf2828e88d57b04a11cc"
- integrity sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==
+"@typescript-eslint/type-utils@5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz#2b440979c574e317d3473225ae781f292c99e55d"
+ integrity sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==
dependencies:
- "@typescript-eslint/typescript-estree" "5.46.1"
- "@typescript-eslint/utils" "5.46.1"
+ "@typescript-eslint/typescript-estree" "5.47.0"
+ "@typescript-eslint/utils" "5.47.0"
debug "^4.3.4"
tsutils "^3.21.0"
-"@typescript-eslint/types@5.46.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.46.1.tgz#4e9db2107b9a88441c4d5ecacde3bb7a5ebbd47e"
- integrity sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==
+"@typescript-eslint/types@5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.47.0.tgz#67490def406eaa023dbbd8da42ee0d0c9b5229d3"
+ integrity sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==
-"@typescript-eslint/typescript-estree@5.46.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz#5358088f98a8f9939355e0996f9c8f41c25eced2"
- integrity sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==
+"@typescript-eslint/typescript-estree@5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz#ed971a11c5c928646d6ba7fc9dfdd6e997649aca"
+ integrity sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==
dependencies:
- "@typescript-eslint/types" "5.46.1"
- "@typescript-eslint/visitor-keys" "5.46.1"
+ "@typescript-eslint/types" "5.47.0"
+ "@typescript-eslint/visitor-keys" "5.47.0"
debug "^4.3.4"
globby "^11.1.0"
is-glob "^4.0.3"
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/utils@5.46.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.46.1.tgz#7da3c934d9fd0eb4002a6bb3429f33298b469b4a"
- integrity sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==
+"@typescript-eslint/utils@5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.47.0.tgz#b5005f7d2696769a1fdc1e00897005a25b3a0ec7"
+ integrity sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==
dependencies:
"@types/json-schema" "^7.0.9"
"@types/semver" "^7.3.12"
- "@typescript-eslint/scope-manager" "5.46.1"
- "@typescript-eslint/types" "5.46.1"
- "@typescript-eslint/typescript-estree" "5.46.1"
+ "@typescript-eslint/scope-manager" "5.47.0"
+ "@typescript-eslint/types" "5.47.0"
+ "@typescript-eslint/typescript-estree" "5.47.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
semver "^7.3.7"
-"@typescript-eslint/visitor-keys@5.46.1":
- version "5.46.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz#126cc6fe3c0f83608b2b125c5d9daced61394242"
- integrity sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==
+"@typescript-eslint/visitor-keys@5.47.0":
+ version "5.47.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz#4aca4efbdf6209c154df1f7599852d571b80bb45"
+ integrity sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==
dependencies:
- "@typescript-eslint/types" "5.46.1"
+ "@typescript-eslint/types" "5.47.0"
eslint-visitor-keys "^3.3.0"
abortcontroller-polyfill@^1.7.3: