diff --git a/package.json b/package.json index 8f934c3310..dafbcf21f0 100644 --- a/package.json +++ b/package.json @@ -28,12 +28,12 @@ } }, "resolutions": { - "@polkadot/api": "^1.15.1", - "@polkadot/api-contract": "^1.15.1", - "@polkadot/keyring": "^2.10.1", - "@polkadot/types": "^1.15.1", - "@polkadot/util": "^2.10.1", - "@polkadot/util-crypto": "^2.10.1", + "@polkadot/api": "^1.16.0-beta.2", + "@polkadot/api-contract": "^1.16.0-beta.2", + "@polkadot/keyring": "^2.11.0-beta.2", + "@polkadot/types": "^1.16.0-beta.2", + "@polkadot/util": "^2.11.0-beta.2", + "@polkadot/util-crypto": "^2.11.0-beta.2", "babel-core": "^7.0.0-bridge.0" }, "scripts": { @@ -75,8 +75,8 @@ "@babel/register": "^7.9.0", "@babel/runtime": "^7.9.6", "@pinata/sdk": "^1.1.9", - "@polkadot/dev": "^0.53.5", - "@polkadot/ts": "^0.3.22", + "@polkadot/dev": "^0.54.1", + "@polkadot/ts": "^0.3.23", "@types/bn.js": "^4.11.6", "@types/chart.js": "^2.9.21", "@types/file-saver": "^2.0.1", diff --git a/packages/apps-config/src/api/chain/berlin.ts b/packages/apps-config/src/api/chain/berlin.ts index 2ec4bdef22..f7acd231d7 100644 --- a/packages/apps-config/src/api/chain/berlin.ts +++ b/packages/apps-config/src/api/chain/berlin.ts @@ -9,7 +9,7 @@ import * as edgewareDefinitions from 'edgeware-node-types/dist/definitions'; const edgTypes = Object .values(edgewareDefinitions) - .reduce((res, { default: { types } }): object => ({ ...res, ...types }), {}); + .reduce((res, { default: { types } }) => ({ ...res, ...types }), {}); export default { ...edgTypes, diff --git a/packages/apps-config/src/api/index.ts b/packages/apps-config/src/api/index.ts index 7231b05d25..e70c807a35 100644 --- a/packages/apps-config/src/api/index.ts +++ b/packages/apps-config/src/api/index.ts @@ -5,7 +5,7 @@ import typesChain from './chain'; import typesSpec from './spec'; -export function getChainTypes (specName: string, chainName: string): Record { +export function getChainTypes (specName: string, chainName: string): Record> { return { ...(typesSpec[specName as 'edgeware'] || {}), ...(typesChain[chainName as 'Berlin'] || {}) diff --git a/packages/apps-config/src/api/spec/edgeware.ts b/packages/apps-config/src/api/spec/edgeware.ts index 2ec4bdef22..f7acd231d7 100644 --- a/packages/apps-config/src/api/spec/edgeware.ts +++ b/packages/apps-config/src/api/spec/edgeware.ts @@ -9,7 +9,7 @@ import * as edgewareDefinitions from 'edgeware-node-types/dist/definitions'; const edgTypes = Object .values(edgewareDefinitions) - .reduce((res, { default: { types } }): object => ({ ...res, ...types }), {}); + .reduce((res, { default: { types } }) => ({ ...res, ...types }), {}); export default { ...edgTypes, diff --git a/packages/apps-config/src/api/spec/encointer-node.ts b/packages/apps-config/src/api/spec/encointer-node.ts index 7ffc0647e4..a37b4150a5 100644 --- a/packages/apps-config/src/api/spec/encointer-node.ts +++ b/packages/apps-config/src/api/spec/encointer-node.ts @@ -4,7 +4,7 @@ // structs need to be in order /* eslint-disable sort-keys */ -/* eslint-disable @typescript-eslint/camelcase */ +/* eslint-disable camelcase */ export default { Address: 'AccountId', diff --git a/packages/apps-config/src/api/util.ts b/packages/apps-config/src/api/util.ts index d83775cbd0..451b492788 100644 --- a/packages/apps-config/src/api/util.ts +++ b/packages/apps-config/src/api/util.ts @@ -2,10 +2,10 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. -export function typesFromDefs (definitions: Record): object { +export function typesFromDefs (definitions: Record }>): Record { return Object .values(definitions) - .reduce((res, { types }): object => ({ + .reduce((res: Record, { types }): Record => ({ ...res, ...types }), {}); diff --git a/packages/apps-config/src/links/commonwealth.ts b/packages/apps-config/src/links/commonwealth.ts index 4b3f240099..92c82dfeca 100644 --- a/packages/apps-config/src/links/commonwealth.ts +++ b/packages/apps-config/src/links/commonwealth.ts @@ -13,7 +13,7 @@ export default { 'Kusama CC3': 'kusama' }, create: (chain: string, path: string, data: BN | number | string, hash?: string): string => - `https://commonwealth.im/${chain}/${path}/${HASH_PATHS.includes(path) ? hash : data.toString()}`, + `https://commonwealth.im/${chain}/${path}/${HASH_PATHS.includes(path) ? (hash || '') : data.toString()}`, isActive: true, paths: { council: 'proposal/councilmotion', diff --git a/packages/apps-config/src/settings/endpoints.ts b/packages/apps-config/src/settings/endpoints.ts index 1566f0233f..027640d734 100644 --- a/packages/apps-config/src/settings/endpoints.ts +++ b/packages/apps-config/src/settings/endpoints.ts @@ -4,66 +4,66 @@ import { Option } from './types'; -function createDev (t: (key: string, text: string, options: { ns: string }) => string): Option[] { +function createDev (t: (key: string, text: string, options: { ns: string }) => T): Option[] { return [ { info: 'local', - text: t('rpc.local', 'Local Node (Own, 127.0.0.1:9944)', { ns: 'apps-config' }), + text: t('rpc.local', 'Local Node (Own, 127.0.0.1:9944)', { ns: 'apps-config' }), value: 'ws://127.0.0.1:9944/' } ]; } -function createLive (t: (key: string, text: string, options: { ns: string }) => string): Option[] { +function createLive (t: (key: string, text: string, options: { ns: string }) => T): Option[] { return [ { info: 'kusama', - text: t('rpc.kusama.parity', 'Kusama (Polkadot Canary, hosted by Parity)', { ns: 'apps-config' }), + text: t('rpc.kusama.parity', 'Kusama (Polkadot Canary, hosted by Parity)', { ns: 'apps-config' }), value: 'wss://kusama-rpc.polkadot.io/' }, { info: 'kusama', - text: t('rpc.kusama.w3f', 'Kusama (Polkadot Canary, hosted by Web3 Foundation)', { ns: 'apps-config' }), + text: t('rpc.kusama.w3f', 'Kusama (Polkadot Canary, hosted by Web3 Foundation)', { ns: 'apps-config' }), value: 'wss://cc3-5.kusama.network/' }, { info: 'kusama', - text: t('rpc.kusama.ava', 'Kusama (Polkadot Canary, user-run public nodes; see https://status.cloud.ava.do/)', { ns: 'apps-config' }), + text: t('rpc.kusama.ava', 'Kusama (Polkadot Canary, user-run public nodes; see https://status.cloud.ava.do/)', { ns: 'apps-config' }), value: 'wss://kusama.polkadot.cloud.ava.do/' }, { info: 'edgeware', - text: t('rpc.edgeware', 'Edgeware (Edgeware Mainnet, hosted by Commonwealth Labs)', { ns: 'apps-config' }), + text: t('rpc.edgeware', 'Edgeware (Edgeware Mainnet, hosted by Commonwealth Labs)', { ns: 'apps-config' }), value: 'wss://mainnet1.edgewa.re' }, { info: 'substrate', - text: t('rpc.kulupu', 'Kulupu (Kulupu Mainnet, hosted by Kulupu)', { ns: 'apps-config' }), + text: t('rpc.kulupu', 'Kulupu (Kulupu Mainnet, hosted by Kulupu)', { ns: 'apps-config' }), value: 'wss://rpc.kulupu.network/ws' } ]; } -function createTest (t: (key: string, text: string, options: { ns: string }) => string): Option[] { +function createTest (t: (key: string, text: string, options: { ns: string }) => T): Option[] { return [ { info: 'westend', - text: t('rpc.westend', 'Westend (Polkadot Testnet, hosted by Parity)', { ns: 'apps-config' }), + text: t('rpc.westend', 'Westend (Polkadot Testnet, hosted by Parity)', { ns: 'apps-config' }), value: 'wss://westend-rpc.polkadot.io' }, { info: 'edgeware', - text: t('rpc.berlin', 'Berlin (Edgeware Testnet, hosted by Commonwealth Labs)', { ns: 'apps-config' }), + text: t('rpc.berlin', 'Berlin (Edgeware Testnet, hosted by Commonwealth Labs)', { ns: 'apps-config' }), value: 'wss://berlin1.edgewa.re' }, { info: 'substrate', - text: t('rpc.flamingfir', 'Flaming Fir (Substrate Testnet, hosted by Parity)', { ns: 'apps-config' }), + text: t('rpc.flamingfir', 'Flaming Fir (Substrate Testnet, hosted by Parity)', { ns: 'apps-config' }), value: 'wss://substrate-rpc.parity.io/' }, { info: 'nodle', - text: t('rpc.arcadia', 'Arcadia (Nodle Testnet, hosted by Nodle)', { ns: 'apps-config' }), + text: t('rpc.arcadia', 'Arcadia (Nodle Testnet, hosted by Nodle)', { ns: 'apps-config' }), value: 'wss://arcadia1.nodleprotocol.io/' } ]; @@ -74,14 +74,15 @@ function createTest (t: (key: string, text: string, options: { ns: string }) => // info: The chain logo name as defined in ../logos, specifically in namedLogos // text: The text to display on teh dropdown // value: The actual hosted secure websocket endpoint -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Option[] { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Option[] { const ENV: Option[] = []; - const WS_URL = process.env.WS_URL || (window as any).process_env?.WS_URL; + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access + const WS_URL = process.env.WS_URL || (window as any).process_env?.WS_URL as string; if (WS_URL) { ENV.push({ info: 'WS_URL', - text: 'WS_URL: ' + WS_URL, + text: `WS_URL: ${WS_URL}`, value: WS_URL }); } @@ -89,19 +90,19 @@ export default function create (t: (key: string, text: string, options: { ns: st let endpoints = [ { isHeader: true, - text: t('rpc.header.live', 'Live networks', { ns: 'apps-config' }), + text: t('rpc.header.live', 'Live networks', { ns: 'apps-config' }), value: '' }, ...createLive(t), { isHeader: true, - text: t('rpc.header.test', 'Test networks', { ns: 'apps-config' }), + text: t('rpc.header.test', 'Test networks', { ns: 'apps-config' }), value: '' }, ...createTest(t), { isHeader: true, - text: t('rpc.header.dev', 'Development', { ns: 'apps-config' }), + text: t('rpc.header.dev', 'Development', { ns: 'apps-config' }), value: '' }, ...createDev(t) @@ -111,7 +112,7 @@ export default function create (t: (key: string, text: string, options: { ns: st endpoints = [ { isHeader: true, - text: t('rpc.custom', 'Custom environment', { ns: 'apps-config' }), + text: t('rpc.custom', 'Custom environment', { ns: 'apps-config' }), value: '' }, ...ENV diff --git a/packages/apps-config/src/settings/languages.ts b/packages/apps-config/src/settings/languages.ts index 84c27ee24a..bfe5eae539 100644 --- a/packages/apps-config/src/settings/languages.ts +++ b/packages/apps-config/src/settings/languages.ts @@ -4,10 +4,10 @@ import { Option } from './types'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Option[] { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Option[] { return [ { - text: t('lng.detect', 'Default browser language (auto-detect)', { ns: 'apps-config' }), + text: t('lng.detect', 'Default browser language (auto-detect)', { ns: 'apps-config' }), value: 'default' }, { diff --git a/packages/apps-config/src/settings/ss58.ts b/packages/apps-config/src/settings/ss58.ts index ccdbe58371..4dc30649cd 100644 --- a/packages/apps-config/src/settings/ss58.ts +++ b/packages/apps-config/src/settings/ss58.ts @@ -8,36 +8,36 @@ import { Option } from './types'; // info: the name of a logo as defined in ../logos, specifically in namedLogos // text: The text you wish to display in the dropdown // value: The actual ss5Format value (as registered) -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Option[] { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Option[] { return [ { info: 'default', - text: t('ss58.default', 'Default for the connected node', { ns: 'apps-config' }), + text: t('ss58.default', 'Default for the connected node', { ns: 'apps-config' }), value: -1 }, { info: 'substrate', - text: t('ss58.substrate', 'Substrate (generic)', { ns: 'apps-config' }), + text: t('ss58.substrate', 'Substrate (generic)', { ns: 'apps-config' }), value: 42 }, { info: 'polkadot', - text: t('ss58.polkadot', 'Polkadot (live)', { ns: 'apps-config' }), + text: t('ss58.polkadot', 'Polkadot (live)', { ns: 'apps-config' }), value: 0 }, { info: 'kusama', - text: t('ss58.kusmaa', 'Kusama (canary)', { ns: 'apps-config' }), + text: t('ss58.kusmaa', 'Kusama (canary)', { ns: 'apps-config' }), value: 2 }, { info: 'edgeware', - text: t('ss58.edgeware', 'Edgeware (live)', { ns: 'apps-config' }), + text: t('ss58.edgeware', 'Edgeware (live)', { ns: 'apps-config' }), value: 7 }, { info: 'centrifuge', - text: t('ss58.centrifuge', 'Centrifuge (live)', { ns: 'apps-config' }), + text: t('ss58.centrifuge', 'Centrifuge (live)', { ns: 'apps-config' }), value: 36 } ]; diff --git a/packages/apps-config/src/ui/index.ts b/packages/apps-config/src/ui/index.ts index 2af027ddec..c5b15d0661 100644 --- a/packages/apps-config/src/ui/index.ts +++ b/packages/apps-config/src/ui/index.ts @@ -14,5 +14,6 @@ export function getSystemIcon (systemName: string): 'beachball' | 'polkadot' | ' } export const getSystemChainColor = (systemChain: string, systemName: string): string | undefined => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return return chainColors[sanitize(systemChain)] || nodeColors[sanitize(systemName)]; }; diff --git a/packages/apps-config/src/ui/logos/index.ts b/packages/apps-config/src/ui/logos/index.ts index f0a00e4e38..768ddf3992 100644 --- a/packages/apps-config/src/ui/logos/index.ts +++ b/packages/apps-config/src/ui/logos/index.ts @@ -2,6 +2,8 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ + // anything for a specific chain, most would probably fit into the node category (but allow for chain-specific) import chainKusama from './chains/kusama-128.gif'; @@ -28,7 +30,7 @@ const chainLogos: Record = [ ['Kusama CC3', chainKusama] ].reduce((logos, [chain, logo]): Record => ({ ...logos, - [chain.toLowerCase()]: logo + [(chain as string).toLowerCase()]: logo }), {}); // overrides based on the actual software node type (all '-' converted to ' ') @@ -44,7 +46,7 @@ const nodeLogos: Record = [ ['substrate-node', nodeSubstrate] ].reduce((logos, [node, logo]): Record => ({ ...logos, - [node.toLowerCase().replace(/-/g, ' ')]: logo + [(node as string).toLowerCase().replace(/-/g, ' ')]: logo }), {}); // overrides when we pass an explicit logo name diff --git a/packages/apps-electron/package.json b/packages/apps-electron/package.json index 84fcc6579c..a78c1bc83d 100644 --- a/packages/apps-electron/package.json +++ b/packages/apps-electron/package.json @@ -5,7 +5,7 @@ "version": "0.43.0-beta.2", "dependencies": { "@babel/polyfill": "^7.8.7", - "@polkadot/dev": "^0.53.5", + "@polkadot/dev": "^0.54.1", "@polkadot/react-components": "0.43.0-beta.2" }, "devDependencies": { diff --git a/packages/apps-electron/src/electron.ts b/packages/apps-electron/src/electron.ts index 2495645d42..ada4cbb2d3 100644 --- a/packages/apps-electron/src/electron.ts +++ b/packages/apps-electron/src/electron.ts @@ -7,7 +7,7 @@ import path from 'path'; const environment = process.env.NODE_ENV || 'production'; -function createWindow (): void { +function createWindow (): Promise { // Create the browser window. const win = new BrowserWindow({ height: 600, @@ -18,13 +18,14 @@ function createWindow (): void { }); if (environment === 'development') { - win.loadURL('http://0.0.0.0:9000/'); win.webContents.openDevTools(); - } else { - const mainFilePath = path.resolve(__dirname, 'index.html'); - win.loadFile(mainFilePath); + return win.loadURL('http://0.0.0.0:9000/'); } + + const mainFilePath = path.resolve(__dirname, 'index.html'); + + return win.loadFile(mainFilePath); } -app.whenReady().then(createWindow); +app.whenReady().then(createWindow).catch(console.error); diff --git a/packages/apps-electron/webpack.main.config.js b/packages/apps-electron/webpack.main.config.js index 4e522aa556..5dee58cbe7 100644 --- a/packages/apps-electron/webpack.main.config.js +++ b/packages/apps-electron/webpack.main.config.js @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. -/* eslint-disable @typescript-eslint/camelcase */ +/* eslint-disable camelcase */ const TerserPlugin = require('terser-webpack-plugin'); const path = require('path'); diff --git a/packages/apps-electron/webpack.renderer.config.js b/packages/apps-electron/webpack.renderer.config.js index 17b0d504e4..bb68521d62 100644 --- a/packages/apps-electron/webpack.renderer.config.js +++ b/packages/apps-electron/webpack.renderer.config.js @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. -/* eslint-disable @typescript-eslint/camelcase */ +/* eslint-disable camelcase */ const merge = require('webpack-merge'); const baseConfig = require('@polkadot/apps/webpack.base.config'); diff --git a/packages/apps-routing/src/123code.ts b/packages/apps-routing/src/123code.ts index 176460eedd..8cd644f070 100644 --- a/packages/apps-routing/src/123code.ts +++ b/packages/apps-routing/src/123code.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Template from '@polkadot/app-123code'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Template, display: { @@ -18,6 +18,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'th', name: '123code', - text: t('nav.123-code', 'Template', { ns: 'apps-routing' }) + text: t('nav.123-code', 'Template', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/accounts.ts b/packages/apps-routing/src/accounts.ts index a1a61727b6..f673609635 100644 --- a/packages/apps-routing/src/accounts.ts +++ b/packages/apps-routing/src/accounts.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Accounts, { useCounter } from '@polkadot/app-accounts'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Accounts, display: { @@ -14,7 +14,7 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'users', name: 'accounts', - text: t('nav.accounts', 'Accounts', { ns: 'apps-routing' }), + text: t('nav.accounts', 'Accounts', { ns: 'apps-routing' }), useCounter }; } diff --git a/packages/apps-routing/src/claims.ts b/packages/apps-routing/src/claims.ts index 0e8bc587ca..1e6a144685 100644 --- a/packages/apps-routing/src/claims.ts +++ b/packages/apps-routing/src/claims.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Claims from '@polkadot/app-claims'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Claims, display: { @@ -17,6 +17,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'star', name: 'claims', - text: t('nav.claims', 'Claim Tokens', { ns: 'apps-routing' }) + text: t('nav.claims', 'Claim Tokens', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/contracts.ts b/packages/apps-routing/src/contracts.ts index 1203b1b48e..6d3c51f2d0 100644 --- a/packages/apps-routing/src/contracts.ts +++ b/packages/apps-routing/src/contracts.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Contracts from '@polkadot/app-contracts'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Contracts, display: { @@ -17,6 +17,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'compress', name: 'contracts', - text: t('nav.contracts', 'Contracts', { ns: 'apps-routing' }) + text: t('nav.contracts', 'Contracts', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/council.ts b/packages/apps-routing/src/council.ts index d50c8082df..fb227738cd 100644 --- a/packages/apps-routing/src/council.ts +++ b/packages/apps-routing/src/council.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Council, { useCounter } from '@polkadot/app-council'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Council, display: { @@ -19,7 +19,7 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'building', name: 'council', - text: t('nav.council', 'Council', { ns: 'apps-routing' }), + text: t('nav.council', 'Council', { ns: 'apps-routing' }), useCounter }; } diff --git a/packages/apps-routing/src/dashboard.ts b/packages/apps-routing/src/dashboard.ts index 43eff7b449..f5fcef7a18 100644 --- a/packages/apps-routing/src/dashboard.ts +++ b/packages/apps-routing/src/dashboard.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Dashboard from '@polkadot/app-dashboard'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Dashboard, display: { @@ -14,6 +14,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'th', name: 'dashboard', - text: t('nav.dashboard', 'Dashboard', { ns: 'apps-routing' }) + text: t('nav.dashboard', 'Dashboard', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/democracy.ts b/packages/apps-routing/src/democracy.ts index cbb4683669..e18ad35504 100644 --- a/packages/apps-routing/src/democracy.ts +++ b/packages/apps-routing/src/democracy.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Democracy, { useCounter } from '@polkadot/app-democracy'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Democracy, display: { @@ -16,7 +16,7 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'calendar check', name: 'democracy', - text: t('nav.democracy', 'Democracy', { ns: 'apps-routing' }), + text: t('nav.democracy', 'Democracy', { ns: 'apps-routing' }), useCounter }; } diff --git a/packages/apps-routing/src/explorer.ts b/packages/apps-routing/src/explorer.ts index 79768c6a7b..ca7fad2128 100644 --- a/packages/apps-routing/src/explorer.ts +++ b/packages/apps-routing/src/explorer.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Explorer from '@polkadot/app-explorer'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Explorer, display: { @@ -14,6 +14,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'braille', name: 'explorer', - text: t('nav.explorer', 'Explorer', { ns: 'apps-routing' }) + text: t('nav.explorer', 'Explorer', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/extrinsics.ts b/packages/apps-routing/src/extrinsics.ts index 9201030b17..36c72cbb37 100644 --- a/packages/apps-routing/src/extrinsics.ts +++ b/packages/apps-routing/src/extrinsics.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Extrinsics from '@polkadot/app-extrinsics'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Extrinsics, display: { @@ -15,6 +15,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'sync', name: 'extrinsics', - text: t('nav.extrinsics', 'Extrinsics', { ns: 'apps-routing' }) + text: t('nav.extrinsics', 'Extrinsics', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/generic-asset.ts b/packages/apps-routing/src/generic-asset.ts index e4d5c1e95e..70b59f4997 100644 --- a/packages/apps-routing/src/generic-asset.ts +++ b/packages/apps-routing/src/generic-asset.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import GenericAsset from '@polkadot/app-generic-asset'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: GenericAsset, display: { @@ -18,6 +18,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'cubes', name: 'generic-asset', - text: t('nav.generic-asset', 'Generic asset', { ns: 'apps-routing' }) + text: t('nav.generic-asset', 'Generic asset', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/i18n.ts b/packages/apps-routing/src/i18n.ts index d8e8ec5c14..6e752a52b9 100644 --- a/packages/apps-routing/src/i18n.ts +++ b/packages/apps-routing/src/i18n.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Translator from '@polkadot/app-i18n'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Translator, display: { @@ -14,6 +14,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'th', name: 'i18n', - text: t('nav.i18n', 'I18n Translator', { ns: 'apps-routing' }) + text: t('nav.i18n', 'I18n Translator', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/index.ts b/packages/apps-routing/src/index.ts index e1cad7ebdf..135845ac6f 100644 --- a/packages/apps-routing/src/index.ts +++ b/packages/apps-routing/src/index.ts @@ -31,7 +31,7 @@ import toolbox from './toolbox'; import transfer from './transfer'; import treasury from './treasury'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Routes { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Routes { return appSettings.uiMode === 'light' ? [ // dashboard, diff --git a/packages/apps-routing/src/js.ts b/packages/apps-routing/src/js.ts index 7559469481..452e5b0ba7 100644 --- a/packages/apps-routing/src/js.ts +++ b/packages/apps-routing/src/js.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Js from '@polkadot/app-js'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Js, display: { @@ -14,6 +14,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'code', name: 'js', - text: t('nav.js', 'Javascript', { ns: 'apps-routing' }) + text: t('nav.js', 'Javascript', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/parachains.ts b/packages/apps-routing/src/parachains.ts index 2e26be07b5..f868cd988e 100644 --- a/packages/apps-routing/src/parachains.ts +++ b/packages/apps-routing/src/parachains.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Parachains from '@polkadot/app-parachains'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Parachains, display: { @@ -16,6 +16,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'chain', name: 'parachains', - text: t('nav.parachains', 'Parachains', { ns: 'apps-routing' }) + text: t('nav.parachains', 'Parachains', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/settings.ts b/packages/apps-routing/src/settings.ts index 7ac3c273ed..705789ebf1 100644 --- a/packages/apps-routing/src/settings.ts +++ b/packages/apps-routing/src/settings.ts @@ -6,13 +6,13 @@ import { Route } from './types'; import Settings, { useCounter } from '@polkadot/app-settings'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Settings, display: {}, icon: 'settings', name: 'settings', - text: t('nav.settings', 'Settings', { ns: 'apps-routing' }), + text: t('nav.settings', 'Settings', { ns: 'apps-routing' }), useCounter }; } diff --git a/packages/apps-routing/src/society.ts b/packages/apps-routing/src/society.ts index 6dba631dde..8006919d2f 100644 --- a/packages/apps-routing/src/society.ts +++ b/packages/apps-routing/src/society.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Society from '@polkadot/app-society'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Society, display: { @@ -17,6 +17,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'grab', name: 'society', - text: t('nav.society', 'Society', { ns: 'apps-routing' }) + text: t('nav.society', 'Society', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/staking.ts b/packages/apps-routing/src/staking.ts index 03340fb62e..1aff88861d 100644 --- a/packages/apps-routing/src/staking.ts +++ b/packages/apps-routing/src/staking.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Staking from '@polkadot/app-staking'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Staking, display: { @@ -16,6 +16,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'certificate', name: 'staking', - text: t('nav.staking', 'Staking', { ns: 'apps-routing' }) + text: t('nav.staking', 'Staking', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/storage.ts b/packages/apps-routing/src/storage.ts index ced0a7b640..a259935eae 100644 --- a/packages/apps-routing/src/storage.ts +++ b/packages/apps-routing/src/storage.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Storage from '@polkadot/app-storage'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Storage, display: { @@ -14,6 +14,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'database', name: 'chainstate', - text: t('nav.storage', 'Chain state', { ns: 'apps-routing' }) + text: t('nav.storage', 'Chain state', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/sudo.ts b/packages/apps-routing/src/sudo.ts index a5c8266050..cc09008ef1 100644 --- a/packages/apps-routing/src/sudo.ts +++ b/packages/apps-routing/src/sudo.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Sudo from '@polkadot/app-sudo'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Sudo, display: { @@ -18,6 +18,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'unlock', name: 'sudo', - text: t('nav.sudo', 'Sudo', { ns: 'apps-routing' }) + text: t('nav.sudo', 'Sudo', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/techcomm.ts b/packages/apps-routing/src/techcomm.ts index 6235b18ecd..53e0677471 100644 --- a/packages/apps-routing/src/techcomm.ts +++ b/packages/apps-routing/src/techcomm.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import TechComm, { useCounter } from '@polkadot/app-tech-comm'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: TechComm, display: { @@ -17,7 +17,7 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'microchip', name: 'techcomm', - text: t('nav.tech-comm', 'Tech. comm.', { ns: 'apps-routing' }), + text: t('nav.tech-comm', 'Tech. comm.', { ns: 'apps-routing' }), useCounter }; } diff --git a/packages/apps-routing/src/toolbox.ts b/packages/apps-routing/src/toolbox.ts index d75d76073e..b8df520fdf 100644 --- a/packages/apps-routing/src/toolbox.ts +++ b/packages/apps-routing/src/toolbox.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Toolbox from '@polkadot/app-toolbox'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Toolbox, display: { @@ -14,6 +14,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'configure', name: 'toolbox', - text: t('nav.toolbox', 'Toolbox', { ns: 'apps-routing' }) + text: t('nav.toolbox', 'Toolbox', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/transfer.ts b/packages/apps-routing/src/transfer.ts index 22c85fa7c4..aab0643c7b 100644 --- a/packages/apps-routing/src/transfer.ts +++ b/packages/apps-routing/src/transfer.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import TransferModal from '@polkadot/app-accounts/Accounts/modals/Transfer'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: TransferModal, Modal: TransferModal, @@ -19,6 +19,6 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'send', name: 'transfer', - text: t('nav.transfer', 'Transfer', { ns: 'apps-routing' }) + text: t('nav.transfer', 'Transfer', { ns: 'apps-routing' }) }; } diff --git a/packages/apps-routing/src/treasury.ts b/packages/apps-routing/src/treasury.ts index f0ba4aa8da..269ec896cd 100644 --- a/packages/apps-routing/src/treasury.ts +++ b/packages/apps-routing/src/treasury.ts @@ -6,7 +6,7 @@ import { Route } from './types'; import Treasury, { useCounter } from '@polkadot/app-treasury'; -export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { +export default function create (t: (key: string, text: string, options: { ns: string }) => T): Route { return { Component: Treasury, display: { @@ -16,7 +16,7 @@ export default function create (t: (key: string, text: string, options: { ns: st }, icon: 'gem', name: 'treasury', - text: t('nav.treasury', 'Treasury', { ns: 'apps-routing' }), + text: t('nav.treasury', 'Treasury', { ns: 'apps-routing' }), useCounter }; } diff --git a/packages/apps/package.json b/packages/apps/package.json index 0fa6c0617f..153a8ee678 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -15,7 +15,7 @@ "dependencies": { "@babel/polyfill": "^7.8.7", "@babel/runtime": "^7.9.6", - "@polkadot/dev": "^0.53.5", + "@polkadot/dev": "^0.54.1", "@polkadot/react-components": "0.43.0-beta.2", "@polkadot/react-signer": "0.43.0-beta.2", "query-string": "^6.12.1" diff --git a/packages/apps/public/locales/en/app-parachains.json b/packages/apps/public/locales/en/app-parachains.json index f40c623146..0a5836dac2 100644 --- a/packages/apps/public/locales/en/app-parachains.json +++ b/packages/apps/public/locales/en/app-parachains.json @@ -5,6 +5,7 @@ "Message data": "Message data", "Message origin.": "Message origin.", "Most recent head data": "Most recent head data", + "Not updated in the last block": "Not updated in the last block", "Parachains overview": "Parachains overview", "Positive number greater than or equal to {{nextFreeId}}": "Positive number greater than or equal to {{nextFreeId}}", "Register a parachain": "Register a parachain", @@ -19,6 +20,7 @@ "The scheduling setting for this parachain.": "The scheduling setting for this parachain.", "There are no registered parachains": "There are no registered parachains", "Unknown": "Unknown", + "Updated in the latest block": "Updated in the latest block", "best block": "best block", "code": "code", "data": "data", diff --git a/packages/apps/src/Apps.tsx b/packages/apps/src/Apps.tsx index 8bc4869b98..f4de21f05a 100644 --- a/packages/apps/src/Apps.tsx +++ b/packages/apps/src/Apps.tsx @@ -29,10 +29,10 @@ interface SidebarState { export const PORTAL_ID = 'portals'; function saveSidebar (sidebar: SidebarState): SidebarState { - return store.set('sidebar', sidebar); + return store.set('sidebar', sidebar) as SidebarState; } -function Apps ({ className }: Props): React.ReactElement { +function Apps ({ className = '' }: Props): React.ReactElement { const { systemChain, systemName } = useApi(); const [sidebar, setSidebar] = useState({ isCollapsed: false, @@ -75,7 +75,7 @@ function Apps ({ className }: Props): React.ReactElement { return ( <> -
+
{ +function NotFound (): React.ReactElement { return ( ); diff --git a/packages/apps/src/Content/Status.tsx b/packages/apps/src/Content/Status.tsx index fdc3689591..9e5a19b2d1 100644 --- a/packages/apps/src/Content/Status.tsx +++ b/packages/apps/src/Content/Status.tsx @@ -23,7 +23,7 @@ interface Props { let prevEventHash: string; -function filterEvents (allAccounts: string[], t: (key: string, opts?: object) => string, optionsAll?: KeyringOptions, events?: EventRecord[]): ActionStatus[] | null { +function filterEvents (allAccounts: string[], t: (key: string, opts?: Record) => T, optionsAll?: KeyringOptions, events?: EventRecord[]): ActionStatus[] | null { const eventHash = xxhashAsHex(stringToU8a(JSON.stringify(events))); if (!optionsAll || !events || eventHash === prevEventHash) { @@ -41,7 +41,7 @@ function filterEvents (allAccounts: string[], t: (key: string, opts?: object) => return { account, action: `${section}.${method}`, - message: t('transfer received'), + message: t('transfer received'), status: 'event' }; } @@ -50,7 +50,7 @@ function filterEvents (allAccounts: string[], t: (key: string, opts?: object) => return { action: `${section}.${method}`, - message: t('update on #{{index}}', { + message: t('update on #{{index}}', { replace: { index } diff --git a/packages/apps/src/Content/index.tsx b/packages/apps/src/Content/index.tsx index 09ae1b5a5c..5b74a35331 100644 --- a/packages/apps/src/Content/index.tsx +++ b/packages/apps/src/Content/index.tsx @@ -50,7 +50,7 @@ function Content ({ className }: Props): React.ReactElement { {needsApi && (!isApiReady || !isApiConnected) ? (
- + ('Initializing connection')} />
) : ( diff --git a/packages/apps/src/SideBar/ChainInfo.tsx b/packages/apps/src/SideBar/ChainInfo.tsx index 8b4ce51f2d..183ba6b469 100644 --- a/packages/apps/src/SideBar/ChainInfo.tsx +++ b/packages/apps/src/SideBar/ChainInfo.tsx @@ -17,7 +17,7 @@ interface Props { onClick?: () => void; } -function ChainInfo ({ className, onClick }: Props): React.ReactElement { +function ChainInfo ({ className = '', onClick }: Props): React.ReactElement { const { t } = useTranslation(); const { api } = useApi(); const runtimeVersion = useCall(api.rpc.state.subscribeRuntimeVersion, []); @@ -32,7 +32,7 @@ function ChainInfo ({ className, onClick }: Props): React.ReactElement {
{runtimeVersion && ( -
{t('version {{version}}', { replace: { version: runtimeVersion.specVersion.toNumber() } })}
+
{t('version {{version}}', { replace: { version: runtimeVersion.specVersion.toNumber() } })}
)}
diff --git a/packages/apps/src/SideBar/Item.tsx b/packages/apps/src/SideBar/Item.tsx index 5606bf884a..abea7b3355 100644 --- a/packages/apps/src/SideBar/Item.tsx +++ b/packages/apps/src/SideBar/Item.tsx @@ -21,7 +21,7 @@ interface Props { route: Route; } -const disabledLog: Map = new Map(); +const disabledLog = new Map(); const TOOLTIP_OFFSET = { right: -4 }; function logDisabled (route: string, message: string): void { @@ -36,6 +36,7 @@ function hasEndpoint (api: ApiPromise, endpoint: string): boolean { const [area, section, method] = endpoint.split('.'); try { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access return isFunction((api as any)[area][section][method]); } catch (error) { return false; @@ -66,7 +67,7 @@ function checkVisible (name: string, { api, isApiConnected, isApiReady }: ApiPro }); if (notFound.length !== 0) { - logDisabled(name, `API not available: ${notFound}`); + logDisabled(name, `API not available: ${notFound.toString()}`); } return notFound.length === 0; diff --git a/packages/apps/src/SideBar/NodeInfo.tsx b/packages/apps/src/SideBar/NodeInfo.tsx index eb7d640292..787c3a2900 100644 --- a/packages/apps/src/SideBar/NodeInfo.tsx +++ b/packages/apps/src/SideBar/NodeInfo.tsx @@ -10,7 +10,7 @@ import { useApi } from '@polkadot/react-hooks'; import { NodeName, NodeVersion } from '@polkadot/react-query'; // eslint-disable-next-line @typescript-eslint/no-var-requires -const pkgJson = require('../../package.json'); +const pkgJson = require('../../package.json') as { version: string }; const uiInfo = `apps v${pkgJson.version}`; diff --git a/packages/apps/src/SideBar/index.tsx b/packages/apps/src/SideBar/index.tsx index 3fc06a30d3..523bd4c2ba 100644 --- a/packages/apps/src/SideBar/index.tsx +++ b/packages/apps/src/SideBar/index.tsx @@ -9,7 +9,6 @@ import styled from 'styled-components'; import { Responsive } from 'semantic-ui-react'; import createRoutes from '@polkadot/apps-routing'; import { Button, ChainImg, Icon, Menu, media } from '@polkadot/react-components'; -import { classes } from '@polkadot/react-components/util'; import { SIDEBAR_MENU_THRESHOLD } from '../constants'; import NetworkModal from '../modals/Network'; @@ -27,7 +26,7 @@ interface Props { toggleMenu: () => void; } -function SideBar ({ className, collapse, handleResize, isCollapsed, isMenuOpen, toggleMenu }: Props): React.ReactElement { +function SideBar ({ className = '', collapse, handleResize, isCollapsed, isMenuOpen, toggleMenu }: Props): React.ReactElement { const { t } = useTranslation(); const [modals, setModals] = useState>( createRoutes(t).reduce((result: Record, route): Record => { @@ -55,7 +54,7 @@ function SideBar ({ className, collapse, handleResize, isCollapsed, isMenuOpen, return ( - {t('nav.github', 'GitHub', { ns: 'apps-routing' })} + {t('nav.github', 'GitHub', { ns: 'apps-routing' })} @@ -123,7 +122,7 @@ function SideBar ({ className, collapse, handleResize, isCollapsed, isMenuOpen, rel='noopener noreferrer' target='_blank' > - {t('nav.wiki', 'Wiki', { ns: 'apps-routing' })} + {t('nav.wiki', 'Wiki', { ns: 'apps-routing' })}