From d8136a8e61337d03fa156006cfbffee0a57c35d3 Mon Sep 17 00:00:00 2001 From: Jaco Date: Wed, 16 Aug 2023 11:00:52 +0300 Subject: [PATCH] Bump dev (w/ ts-eslint updates) (#5691) --- package.json | 4 +- packages/api-base/src/types/base.ts | 2 +- packages/api-base/src/types/calls.ts | 9 +- packages/api-base/src/types/consts.ts | 5 +- packages/api-base/src/types/errors.ts | 5 +- packages/api-base/src/types/events.ts | 5 +- packages/api-base/src/types/storage.ts | 30 +- packages/api-base/src/types/submittable.ts | 5 +- packages/api-contract/src/Abi/index.ts | 2 +- packages/api-contract/src/base/Blueprint.ts | 4 +- packages/api-contract/src/base/Code.ts | 4 +- packages/api-contract/src/base/Contract.ts | 4 +- packages/api-contract/src/base/types.ts | 16 +- packages/api-contract/src/base/util.ts | 2 +- packages/api-contract/src/types.ts | 6 +- packages/api-derive/src/accounts/flags.ts | 2 +- packages/api-derive/src/accounts/idToIndex.ts | 2 +- packages/api-derive/src/accounts/identity.ts | 2 +- packages/api-derive/src/balances/account.ts | 8 +- packages/api-derive/src/balances/all.ts | 8 +- .../api-derive/src/balances/votingBalances.ts | 2 +- .../api-derive/src/bounties/bounties.spec.ts | 2 +- packages/api-derive/src/collective/helpers.ts | 2 +- packages/api-derive/src/staking/cache.ts | 10 +- packages/api-derive/src/staking/query.ts | 2 +- .../api-derive/src/staking/stakerRewards.ts | 10 +- packages/api-derive/src/util/blockNumber.ts | 2 +- packages/api/src/base/Init.ts | 24 +- packages/api/src/base/index.ts | 2 +- packages/api/src/promise/Combinator.ts | 4 +- packages/api/src/promise/decorateMethod.ts | 2 +- packages/rpc-core/src/replay.spec.ts | 2 +- packages/rpc-provider/package.json | 6 +- packages/rpc-provider/src/http/index.ts | 8 +- packages/rpc-provider/src/lru.ts | 4 +- packages/rpc-provider/src/mock/index.ts | 6 +- packages/rpc-provider/src/mock/mockWs.ts | 2 +- .../src/substrate-connect/index.ts | 12 +- packages/rpc-provider/src/ws/index.ts | 12 +- packages/typegen/src/extractChain.ts | 2 +- packages/typegen/src/fromChain.ts | 2 +- packages/typegen/src/fromDefs.ts | 2 +- .../typegen/src/generate/interfaceRegistry.ts | 2 +- packages/typegen/src/generate/runtime.ts | 2 +- packages/typegen/src/generate/tsDef.ts | 4 +- packages/typegen/src/metadataMd.ts | 11 +- packages/typegen/src/util/index.ts | 2 +- packages/types-codec/src/base/Enum.ts | 6 +- packages/types-codec/src/base/Tuple.ts | 4 +- packages/types-codec/src/base/Vec.spec.ts | 2 +- packages/types-codec/src/extended/BitVec.ts | 2 +- .../types-codec/src/extended/OptionBool.ts | 2 +- packages/types-codec/src/native/Bool.ts | 2 +- packages/types-codec/src/native/Json.ts | 2 +- packages/types-codec/src/native/Struct.ts | 2 +- packages/types-create/src/create/class.ts | 22 +- packages/types-create/src/create/type.ts | 2 +- packages/types-create/src/util/encodeTypes.ts | 8 +- packages/types-create/src/util/getTypeDef.ts | 2 +- packages/types/src/create/registry.ts | 2 +- packages/types/src/extrinsic/ExtrinsicEra.ts | 2 +- packages/types/src/extrinsic/SignerPayload.ts | 4 +- .../src/extrinsic/signedExtensions/types.ts | 2 +- packages/types/src/extrinsic/v4/Extrinsic.ts | 2 +- .../src/extrinsic/v4/ExtrinsicSignature.ts | 2 +- packages/types/src/generic/Call.ts | 2 +- packages/types/src/generic/Event.ts | 2 +- .../types/src/interfaces/definitions.spec.ts | 2 +- .../decorate/storage/createFunction.spec.ts | 2 +- packages/types/src/types/codec.ts | 2 +- packages/types/src/types/definitions.ts | 2 +- packages/types/src/types/detect.ts | 8 +- yarn.lock | 270 ++++++++++++------ 73 files changed, 358 insertions(+), 268 deletions(-) diff --git a/package.json b/package.json index c0086b6b93..e32febdf14 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,9 @@ "test:one": "polkadot-dev-run-test --env node" }, "devDependencies": { - "@polkadot/dev": "^0.75.26", + "@polkadot/dev": "^0.76.1", "@polkadot/typegen": "workspace:packages/typegen", - "@types/node": "^20.4.0" + "@types/node": "^20.4.2" }, "resolutions": { "typescript": "^5.0.4" diff --git a/packages/api-base/src/types/base.ts b/packages/api-base/src/types/base.ts index f733b7f5a7..6afe8995a4 100644 --- a/packages/api-base/src/types/base.ts +++ b/packages/api-base/src/types/base.ts @@ -65,7 +65,7 @@ export interface PaginationOptions { export type DecorateMethod<_ApiType extends ApiTypes, T = any> = Observable>(method: M, options?: DecorateMethodOptions) => T; -type AsCodec = R extends Codec +type AsCodec = R extends Codec ? R : Codec; diff --git a/packages/api-base/src/types/calls.ts b/packages/api-base/src/types/calls.ts index 98ae1a9a3a..4fa4506643 100644 --- a/packages/api-base/src/types/calls.ts +++ b/packages/api-base/src/types/calls.ts @@ -7,8 +7,8 @@ import type { ApiTypes, EmptyBase, ReturnCodec } from './base.js'; export type DecoratedCallBase Observable> = ApiType extends 'rxjs' - ? > (...args: Parameters) => Observable - : > (...args: Parameters) => Promise; + ? > (...args: Parameters) => Observable + : > (...args: Parameters) => Promise; export type AugmentedCall Observable> = DecoratedCallBase & { /** The metadata/description/definition for this method */ @@ -22,11 +22,10 @@ export interface AugmentedCalls extends EmptyBase extends AugmentedCalls { // when non-augmented, we need to at least have Codec results [key: string]: QueryableModuleCalls; } -export interface QueryableModuleCalls { - [key: string]: DecoratedCallBase; -} +export type QueryableModuleCalls = Record>; diff --git a/packages/api-base/src/types/consts.ts b/packages/api-base/src/types/consts.ts index 920a2e20f2..94e56a07a0 100644 --- a/packages/api-base/src/types/consts.ts +++ b/packages/api-base/src/types/consts.ts @@ -16,11 +16,10 @@ export interface AugmentedConsts extends EmptyBase extends AugmentedConsts { // when non-augmented, we need to at least have Codec results [key: string]: QueryableModuleConsts; } -export interface QueryableModuleConsts { - [key: string]: Codec; -} +export type QueryableModuleConsts = Record; diff --git a/packages/api-base/src/types/errors.ts b/packages/api-base/src/types/errors.ts index 396a784070..ed3b307f41 100644 --- a/packages/api-base/src/types/errors.ts +++ b/packages/api-base/src/types/errors.ts @@ -13,11 +13,10 @@ export interface AugmentedErrors extends EmptyBase extends AugmentedErrors { // when non-augmented, we need to at least have Codec results [key: string]: ModuleErrors; } -export interface ModuleErrors { - [key: string]: AugmentedError; -} +export type ModuleErrors = Record>; diff --git a/packages/api-base/src/types/events.ts b/packages/api-base/src/types/events.ts index ee5b7e0ef8..feb2de04b4 100644 --- a/packages/api-base/src/types/events.ts +++ b/packages/api-base/src/types/events.ts @@ -14,11 +14,10 @@ export interface AugmentedEvents extends EmptyBase extends AugmentedEvents { // when non-augmented, we need to at least have Codec results [key: string]: ModuleEvents; } -export interface ModuleEvents { - [key: string]: AugmentedEvent; -} +export type ModuleEvents = Record>; diff --git a/packages/api-base/src/types/storage.ts b/packages/api-base/src/types/storage.ts index abbf502a0b..74f519239e 100644 --- a/packages/api-base/src/types/storage.ts +++ b/packages/api-base/src/types/storage.ts @@ -8,13 +8,11 @@ import type { StorageEntry } from '@polkadot/types/primitive/types'; import type { AnyFunction, AnyTuple, Callback, Codec, IStorageKey } from '@polkadot/types/types'; import type { ApiTypes, DropLast, EmptyBase, MethodResult, PaginationOptions, PromiseOrObs, ReturnCodec, UnsubscribePromise } from './base.js'; -interface StorageEntryObservableMulti { - (args: (unknown[] | unknown)[]): Observable; -} +type StorageEntryObservableMulti = (args: unknown[]) => Observable; interface StorageEntryPromiseMulti { - (args: (unknown[] | unknown)[]): Promise; - (args: (unknown[] | unknown)[], callback: Callback): UnsubscribePromise; + (args: unknown[]): Promise; + (args: unknown[], callback: Callback): UnsubscribePromise; } export interface StorageEntryPromiseOverloads { @@ -48,12 +46,12 @@ export interface StorageEntryBase) */ - at: >(hash: Hash | Uint8Array | string, ...args: Parameters) => PromiseOrObs; + at: >(hash: Hash | Uint8Array | string, ...args: Parameters) => PromiseOrObs; creator: StorageEntry; /** * @deprecated Use api.at() */ - entriesAt: , K extends AnyTuple = A>(hash: Hash | Uint8Array | string, ...args: DropLast>) => PromiseOrObs, T][]>; + entriesAt: , K extends AnyTuple = A>(hash: Hash | Uint8Array | string, ...args: DropLast>) => PromiseOrObs, T][]>; /** * @deprecated Use api.at() */ @@ -68,8 +66,8 @@ export interface StorageEntryBase { - entries: , K extends AnyTuple = A>(...args: DropLast>) => PromiseOrObs, T][]>; - entriesPaged: , K extends AnyTuple = A>(opts: PaginationOptions[0]>) => PromiseOrObs, T][]>; + entries: , K extends AnyTuple = A>(...args: DropLast>) => PromiseOrObs, T][]>; + entriesPaged: , K extends AnyTuple = A>(opts: PaginationOptions[0]>) => PromiseOrObs, T][]>; hash: (...args: Parameters) => PromiseOrObs; is: (key: IStorageKey) => key is IStorageKey; key: (...args: Parameters) => string; @@ -79,21 +77,15 @@ export interface StorageEntryBaseAt) => PromiseOrObs; } -export interface QueryableModuleStorage { - [key: string]: QueryableStorageEntry; -} +export type QueryableModuleStorage = Record>; -export interface QueryableModuleStorageAt { - [key: string]: QueryableStorageEntryAt; -} +export type QueryableModuleStorageAt = Record>; export type QueryableStorageMultiArg = QueryableStorageEntry | [QueryableStorageEntry, ...unknown[]]; -export interface QueryableStorageMultiBase { - (calls: QueryableStorageMultiArg[]): Observable; -} +export type QueryableStorageMultiBase = (calls: QueryableStorageMultiArg[]) => Observable; export interface QueryableStorageMultiPromise { (calls: QueryableStorageMultiArg[], callback: Callback): UnsubscribePromise; @@ -119,11 +111,13 @@ export interface AugmentedQueries extends EmptyBase extends AugmentedQueries { // when non-augmented, we need to at least have Codec results [key: string]: QueryableModuleStorage; } +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style export interface QueryableStorageAt extends AugmentedQueries { [key: string]: QueryableModuleStorageAt; } diff --git a/packages/api-base/src/types/submittable.ts b/packages/api-base/src/types/submittable.ts index 8e61bca48a..aa48f83ad4 100644 --- a/packages/api-base/src/types/submittable.ts +++ b/packages/api-base/src/types/submittable.ts @@ -92,7 +92,4 @@ export interface SubmittableExtrinsics extends Augment [key: string]: SubmittableModuleExtrinsics; } -export interface SubmittableModuleExtrinsics { - // only with is augmentation - [key: string]: SubmittableExtrinsicFunction; -} +export type SubmittableModuleExtrinsics = Record>; diff --git a/packages/api-contract/src/Abi/index.ts b/packages/api-contract/src/Abi/index.ts index 3a4aa4d558..9cd1ba6a70 100644 --- a/packages/api-contract/src/Abi/index.ts +++ b/packages/api-contract/src/Abi/index.ts @@ -104,7 +104,7 @@ export class Abi { readonly messages: AbiMessage[]; readonly metadata: ContractMetadataLatest; readonly registry: Registry; - readonly environment: Map = new Map(); + readonly environment = new Map(); constructor (abiJson: Record | string, chainProperties?: ChainProperties) { [this.json, this.registry, this.metadata, this.info] = parseJson( diff --git a/packages/api-contract/src/base/Blueprint.ts b/packages/api-contract/src/base/Blueprint.ts index 6350592836..9ffb2b361e 100644 --- a/packages/api-contract/src/base/Blueprint.ts +++ b/packages/api-contract/src/base/Blueprint.ts @@ -18,9 +18,7 @@ import { Base } from './Base.js'; import { Contract } from './Contract.js'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export interface BlueprintConstructor { - new(api: ApiBase, abi: string | Record | Abi, codeHash: string | Hash | Uint8Array): Blueprint; -} +export type BlueprintConstructor = new(api: ApiBase, abi: string | Record | Abi, codeHash: string | Hash | Uint8Array) => Blueprint; export class BlueprintSubmittableResult extends SubmittableResult { readonly contract?: Contract | undefined; diff --git a/packages/api-contract/src/base/Code.ts b/packages/api-contract/src/base/Code.ts index 69e9660425..ef5a346913 100644 --- a/packages/api-contract/src/base/Code.ts +++ b/packages/api-contract/src/base/Code.ts @@ -20,9 +20,7 @@ import { Blueprint } from './Blueprint.js'; import { Contract } from './Contract.js'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export interface CodeConstructor { - new(api: ApiBase, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined): Code; -} +export type CodeConstructor = new(api: ApiBase, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined) => Code; export class CodeSubmittableResult extends SubmittableResult { readonly blueprint?: Blueprint | undefined; diff --git a/packages/api-contract/src/base/Contract.ts b/packages/api-contract/src/base/Contract.ts index d19a69869a..76b6237e5d 100644 --- a/packages/api-contract/src/base/Contract.ts +++ b/packages/api-contract/src/base/Contract.ts @@ -20,9 +20,7 @@ import { applyOnEvent } from '../util.js'; import { Base } from './Base.js'; import { convertWeight, withMeta } from './util.js'; -export interface ContractConstructor { - new(api: ApiBase, abi: string | Record | Abi, address: string | AccountId): Contract; -} +export type ContractConstructor = new(api: ApiBase, abi: string | Record | Abi, address: string | AccountId) => Contract; // As per Rust, 5 * GAS_PER_SEC const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); diff --git a/packages/api-contract/src/base/types.ts b/packages/api-contract/src/base/types.ts index c6d7321768..42c68b4595 100644 --- a/packages/api-contract/src/base/types.ts +++ b/packages/api-contract/src/base/types.ts @@ -23,9 +23,7 @@ export interface ContractTx extends MessageMeta { (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; } -export interface ContractGeneric { - (messageOrId: AbiMessage | string | number, options: O, ...params: unknown[]): T; -} +export type ContractGeneric = (messageOrId: AbiMessage | string | number, options: O, ...params: unknown[]) => T; export type ContractCallResult = ApiType extends 'rxjs' ? Observable @@ -35,14 +33,8 @@ export interface ContractCallSend { send (account: string | AccountId | Uint8Array): ContractCallResult; } -export interface MapConstructorExec { - [message: string]: BlueprintDeploy; -} +export type MapConstructorExec = Record>; -export interface MapMessageTx { - [message: string]: ContractTx; -} +export type MapMessageTx = Record>; -export interface MapMessageQuery { - [message: string]: ContractQuery; -} +export type MapMessageQuery = Record>; diff --git a/packages/api-contract/src/base/util.ts b/packages/api-contract/src/base/util.ts index bb47d958fd..2f72a2eeeb 100644 --- a/packages/api-contract/src/base/util.ts +++ b/packages/api-contract/src/base/util.ts @@ -35,7 +35,7 @@ export function createBluePrintWithId (fn: (constructorOrId: AbiConstructor export function encodeSalt (salt: Uint8Array | string | null = randomAsU8a()): Uint8Array { return salt instanceof Bytes ? salt - : salt && salt.length + : salt?.length ? compactAddLength(u8aToU8a(salt)) : EMPTY_SALT; } diff --git a/packages/api-contract/src/types.ts b/packages/api-contract/src/types.ts index 049dc11103..173b1f14d2 100644 --- a/packages/api-contract/src/types.ts +++ b/packages/api-contract/src/types.ts @@ -49,10 +49,8 @@ export interface AbiMessage { export type AbiConstructor = AbiMessage; -export interface InterfaceContractCalls { - // eslint-disable-next-line @typescript-eslint/ban-types - [index: string]: Function; -} +// eslint-disable-next-line @typescript-eslint/ban-types +export type InterfaceContractCalls = Record; export interface ContractCallOutcome { debugMessage: Text; diff --git a/packages/api-derive/src/accounts/flags.ts b/packages/api-derive/src/accounts/flags.ts index adc60ed1a9..24dc0ab728 100644 --- a/packages/api-derive/src/accounts/flags.ts +++ b/packages/api-derive/src/accounts/flags.ts @@ -23,7 +23,7 @@ type FlagsIntermediate = [ ]; function parseFlags (address: AccountId | Address | string | null | undefined, [electionsMembers, councilMembers, technicalCommitteeMembers, societyMembers, sudoKey]: FlagsIntermediate): DeriveAccountFlags { - const addrStr = address && address.toString(); + const addrStr = address?.toString(); const isIncluded = (id: AccountId | Address | string) => id.toString() === addrStr; diff --git a/packages/api-derive/src/accounts/idToIndex.ts b/packages/api-derive/src/accounts/idToIndex.ts index e54f9dbe94..851327c1c6 100644 --- a/packages/api-derive/src/accounts/idToIndex.ts +++ b/packages/api-derive/src/accounts/idToIndex.ts @@ -27,7 +27,7 @@ export function idToIndex (instanceId: string, api: DeriveApi): (accountId: Acco return memo(instanceId, (accountId: AccountId | string): Observable => api.derive.accounts.indexes().pipe( map((indexes: AccountIndexes): AccountIndex | undefined => - (indexes || {})[accountId.toString()] + indexes[accountId.toString()] ) )); } diff --git a/packages/api-derive/src/accounts/identity.ts b/packages/api-derive/src/accounts/identity.ts index 026a8ebb11..d6e6383b96 100644 --- a/packages/api-derive/src/accounts/identity.ts +++ b/packages/api-derive/src/accounts/identity.ts @@ -56,7 +56,7 @@ function extractIdentity (identityOfOpt?: Option, su judgements, legal: dataAsString(info.legal), other: extractOther(info.additional), - parent: superOf && superOf[0], + parent: superOf?.[0], pgp: info.pgpFingerprint.unwrapOr(UNDEF_HEX).toHex(), riot: dataAsString(info.riot), twitter: dataAsString(info.twitter), diff --git a/packages/api-derive/src/balances/account.ts b/packages/api-derive/src/balances/account.ts index 6805e4dfc6..fe83d162ac 100644 --- a/packages/api-derive/src/balances/account.ts +++ b/packages/api-derive/src/balances/account.ts @@ -17,11 +17,9 @@ type BalanceResult = [Balance, Balance, Balance, Balance]; type Result = [Index, BalanceResult[]]; -type DeriveCustomAccount = DeriveApi['derive'] & { - [custom: string]: { - customAccount?: DeriveApi['query']['balances']['account'] - } -} +type DeriveCustomAccount = DeriveApi['derive'] & Record function zeroBalance (api: DeriveApi) { return api.registry.createType('Balance'); diff --git a/packages/api-derive/src/balances/all.ts b/packages/api-derive/src/balances/all.ts index 9897458182..35a3d28574 100644 --- a/packages/api-derive/src/balances/all.ts +++ b/packages/api-derive/src/balances/all.ts @@ -23,11 +23,9 @@ interface AllLocked { vestingLocked: Balance } -type DeriveCustomLocks = DeriveApi['derive'] & { - [custom: string]: { - customLocks?: DeriveApi['query']['balances']['locks'] - } -} +type DeriveCustomLocks = DeriveApi['derive'] & Record const VESTING_ID = '0x76657374696e6720'; diff --git a/packages/api-derive/src/balances/votingBalances.ts b/packages/api-derive/src/balances/votingBalances.ts index e67f3613b3..5d31480af2 100644 --- a/packages/api-derive/src/balances/votingBalances.ts +++ b/packages/api-derive/src/balances/votingBalances.ts @@ -11,7 +11,7 @@ import { memo } from '../util/index.js'; export function votingBalances (instanceId: string, api: DeriveApi): (addresses?: (AccountId | AccountIndex | Address | string)[]) => Observable { return memo(instanceId, (addresses?: (AccountId | AccountIndex | Address | string)[]): Observable => - !addresses || !addresses.length + !addresses?.length ? of([] as DeriveBalancesAccount[]) : combineLatest( addresses.map((accountId): Observable => diff --git a/packages/api-derive/src/bounties/bounties.spec.ts b/packages/api-derive/src/bounties/bounties.spec.ts index 222f5a7f50..a7167a61a1 100644 --- a/packages/api-derive/src/bounties/bounties.spec.ts +++ b/packages/api-derive/src/bounties/bounties.spec.ts @@ -157,6 +157,6 @@ describe('bounties derive', () => { expect(result).toHaveLength(2); expect(result[0].proposals).toHaveLength(0); expect(result[1].proposals).toHaveLength(1); - expect(result[1].proposals[0].proposal && result[1].proposals[0].proposal.method).toEqual('approveBounty'); + expect(result[1].proposals[0].proposal?.method).toEqual('approveBounty'); }); }); diff --git a/packages/api-derive/src/collective/helpers.ts b/packages/api-derive/src/collective/helpers.ts index 3cd1214577..bc16a1108d 100644 --- a/packages/api-derive/src/collective/helpers.ts +++ b/packages/api-derive/src/collective/helpers.ts @@ -13,7 +13,7 @@ import { memo } from '../util/index.js'; export function getInstance (api: DeriveApi, section: string): DeriveApi['query']['council'] { const instances = api.registry.getModuleInstances(api.runtimeVersion.specName, section); - const name = instances && instances.length + const name = instances?.length ? instances[0] : section; diff --git a/packages/api-derive/src/staking/cache.ts b/packages/api-derive/src/staking/cache.ts index a2de109f92..a055006f8c 100644 --- a/packages/api-derive/src/staking/cache.ts +++ b/packages/api-derive/src/staking/cache.ts @@ -39,8 +39,10 @@ export function setEraMultiCache (CACHE_KEY: strin } export function filterCachedEras (eras: EraIndex[], cached: T[], query: T[]): T[] { - return eras.map((e) => - cached.find(({ era }) => e.eq(era)) || - query.find(({ era }) => e.eq(era)) as T - ); + return eras + .map((e) => + cached.find(({ era }) => e.eq(era)) || + query.find(({ era }) => e.eq(era)) + ) + .filter((e): e is T => !!e); } diff --git a/packages/api-derive/src/staking/query.ts b/packages/api-derive/src/staking/query.ts index 8a23daa5a3..d17c11470c 100644 --- a/packages/api-derive/src/staking/query.ts +++ b/packages/api-derive/src/staking/query.ts @@ -14,7 +14,7 @@ import { firstMemo, memo } from '../util/index.js'; function parseDetails (stashId: AccountId, controllerIdOpt: Option | null, nominatorsOpt: Option, rewardDestination: PalletStakingRewardDestination, validatorPrefs: PalletStakingValidatorPrefs, exposure: PalletStakingExposure, stakingLedgerOpt: Option): DeriveStakingQuery { return { accountId: stashId, - controllerId: controllerIdOpt && controllerIdOpt.unwrapOr(null), + controllerId: controllerIdOpt?.unwrapOr(null) || null, exposure, nominators: nominatorsOpt.isSome ? nominatorsOpt.unwrap().targets diff --git a/packages/api-derive/src/staking/stakerRewards.ts b/packages/api-derive/src/staking/stakerRewards.ts index 9d89f5f903..0e7df15c04 100644 --- a/packages/api-derive/src/staking/stakerRewards.ts +++ b/packages/api-derive/src/staking/stakerRewards.ts @@ -167,10 +167,12 @@ export function _stakerRewards (instanceId: string, api: DeriveApi): (accountIds queries.map(({ stakingLedger }, index): DeriveStakerReward[] => filterRewards( eras, - stashValidators[index].map((validatorId): [string, DeriveStakingQuery] => [ - validatorId, - queriedVals.find((q) => q.accountId.eq(validatorId)) as DeriveStakingQuery - ]), + stashValidators[index] + .map((validatorId): [string, DeriveStakingQuery | undefined] => [ + validatorId, + queriedVals.find((q) => q.accountId.eq(validatorId)) + ]) + .filter((v): v is [string, DeriveStakingQuery] => !!v[1]), { rewards: allRewards[index], stakingLedger diff --git a/packages/api-derive/src/util/blockNumber.ts b/packages/api-derive/src/util/blockNumber.ts index 89e957d7e7..b161510c25 100644 --- a/packages/api-derive/src/util/blockNumber.ts +++ b/packages/api-derive/src/util/blockNumber.ts @@ -6,7 +6,7 @@ import type { BlockNumber } from '@polkadot/types/interfaces'; import { isCompact } from '@polkadot/util'; -type CompatHeader = { number: Compact | BlockNumber }; +interface CompatHeader { number: Compact | BlockNumber } export function unwrapBlockNumber (hdr: CompatHeader): BlockNumber { return isCompact(hdr.number) diff --git a/packages/api/src/base/Init.ts b/packages/api/src/base/Init.ts index e44cab5960..83ac695f9d 100644 --- a/packages/api/src/base/Init.ts +++ b/packages/api/src/base/Init.ts @@ -128,8 +128,13 @@ export abstract class Init extends Decorate { const metadata = new Metadata(registry, await firstValueFrom(this._rpcCore.state.getMetadata.raw(header.parentHash)) ); + const runtimeChain = this._runtimeChain; - this._initRegistry(registry, this._runtimeChain as Text, version, metadata); + if (!runtimeChain) { + throw new Error('Invalid initializion order, runtimeChain is not available'); + } + + this._initRegistry(registry, runtimeChain, version, metadata); // add our new registry const result = { counter: 0, lastBlockHash: blockHash, metadata, registry, runtimeVersion: version }; @@ -299,12 +304,17 @@ export abstract class Init extends Decorate { // update the default registry version const thisRegistry = this._getDefaultRegistry(); + const runtimeChain = this._runtimeChain; + + if (!runtimeChain) { + throw new Error('Invalid initializion order, runtimeChain is not available'); + } // setup the data as per the current versions thisRegistry.metadata = metadata; thisRegistry.runtimeVersion = version; - this._initRegistry(this.registry, this._runtimeChain as Text, version, metadata); + this._initRegistry(this.registry, runtimeChain, version, metadata); this._injectMetadata(thisRegistry, true); return true; @@ -334,7 +344,7 @@ export abstract class Init extends Decorate { // retrieve metadata, either from chain or as pass-in via options const metadataKey = `${genesisHash.toHex() || '0x'}-${runtimeVersion.specVersion.toString()}`; const metadata = chainMetadata || ( - optMetadata && optMetadata[metadataKey] + optMetadata?.[metadataKey] ? new Metadata(this.registry, optMetadata[metadataKey]) : await firstValueFrom(this._rpcCore.state.getMetadata()) ); @@ -356,10 +366,16 @@ export abstract class Init extends Decorate { } private _initFromMeta (metadata: Metadata): boolean { + const runtimeVersion = this._runtimeVersion; + + if (!runtimeVersion) { + throw new Error('Invalid initializion order, runtimeVersion is not available'); + } + this._extrinsicType = metadata.asLatest.extrinsic.version.toNumber(); this._rx.extrinsicType = this._extrinsicType; this._rx.genesisHash = this._genesisHash; - this._rx.runtimeVersion = this._runtimeVersion as RuntimeVersion; // must be set here + this._rx.runtimeVersion = runtimeVersion; // inject metadata and adjust the types as detected this._injectMetadata(this._getDefaultRegistry(), true); diff --git a/packages/api/src/base/index.ts b/packages/api/src/base/index.ts index c9645d15c3..e5f68a5ba6 100644 --- a/packages/api/src/base/index.ts +++ b/packages/api/src/base/index.ts @@ -69,7 +69,7 @@ export abstract class ApiBase extends Getters if (isString(address)) { const _signer = signer || this._rx.signer; - if (!_signer || !_signer.signRaw) { + if (!_signer?.signRaw) { throw new Error('No signer exists with a signRaw interface. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.'); } diff --git a/packages/api/src/promise/Combinator.ts b/packages/api/src/promise/Combinator.ts index 936abbbcff..b0575818ac 100644 --- a/packages/api/src/promise/Combinator.ts +++ b/packages/api/src/promise/Combinator.ts @@ -8,9 +8,7 @@ import { isFunction, noop } from '@polkadot/util'; export type CombinatorCallback = Callback; -export interface CombinatorFunction { - (cb: Callback): UnsubscribePromise; -} +export type CombinatorFunction = (cb: Callback) => UnsubscribePromise; export class Combinator { #allHasFired = false; diff --git a/packages/api/src/promise/decorateMethod.ts b/packages/api/src/promise/decorateMethod.ts index 011a92255b..694a4575c5 100644 --- a/packages/api/src/promise/decorateMethod.ts +++ b/packages/api/src/promise/decorateMethod.ts @@ -106,7 +106,7 @@ function decorateSubscribe>> (method: M, * @description Decorate method for ApiPromise, where the results are converted to the Promise equivalent */ export function toPromiseMethod>> (method: M, options?: DecorateMethodOptions): StorageEntryPromiseOverloads { - const needsCallback = !!(options && options.methodName && options.methodName.includes('subscribe')); + const needsCallback = !!(options?.methodName && options.methodName.includes('subscribe')); return function (...args: unknown[]): Promise> | UnsubscribePromise { const [actualArgs, resultCb] = extractArgs(args, needsCallback); diff --git a/packages/rpc-core/src/replay.spec.ts b/packages/rpc-core/src/replay.spec.ts index e645121452..fe85d27441 100644 --- a/packages/rpc-core/src/replay.spec.ts +++ b/packages/rpc-core/src/replay.spec.ts @@ -38,7 +38,7 @@ describe('replay', (): void => { it('replay(1) works as expected', async (): Promise => { const observable = rpc.system.chain(); - let a: any | undefined; + let a: any; observable.subscribe((value?: unknown): void => { a = value; diff --git a/packages/rpc-provider/package.json b/packages/rpc-provider/package.json index 0f2376ec6b..b84ed1495b 100644 --- a/packages/rpc-provider/package.json +++ b/packages/rpc-provider/package.json @@ -31,13 +31,13 @@ "@polkadot/x-ws": "^12.3.2", "eventemitter3": "^5.0.1", "mock-socket": "^9.2.1", - "nock": "^13.3.1", + "nock": "^13.3.2", "tslib": "^2.6.0" }, "devDependencies": { - "@substrate/connect": "0.7.29" + "@substrate/connect": "0.7.30" }, "optionalDependencies": { - "@substrate/connect": "0.7.29" + "@substrate/connect": "0.7.30" } } diff --git a/packages/rpc-provider/src/http/index.ts b/packages/rpc-provider/src/http/index.ts index e8ab326baf..42d4f004d0 100644 --- a/packages/rpc-provider/src/http/index.ts +++ b/packages/rpc-provider/src/http/index.ts @@ -62,7 +62,7 @@ export class HttpProvider implements ProviderInterface { * @summary `true` when this provider supports subscriptions */ public get hasSubscriptions (): boolean { - return false; + return !!false; } /** @@ -97,7 +97,7 @@ export class HttpProvider implements ProviderInterface { * @summary `true` when this provider supports clone() */ public get isClonable (): boolean { - return true; + return !!true; } /** @@ -105,7 +105,7 @@ export class HttpProvider implements ProviderInterface { * @return {boolean} true if connected */ public get isConnected (): boolean { - return true; + return !!true; } /** @@ -126,7 +126,7 @@ export class HttpProvider implements ProviderInterface { const [, body] = this.#coder.encodeJson(method, params); let resultPromise: Promise | null = isCacheable - ? this.#callCache.get(body) as Promise + ? this.#callCache.get(body) : null; if (!resultPromise) { diff --git a/packages/rpc-provider/src/lru.ts b/packages/rpc-provider/src/lru.ts index 70fcab7091..426fcfa4eb 100644 --- a/packages/rpc-provider/src/lru.ts +++ b/packages/rpc-provider/src/lru.ts @@ -22,8 +22,8 @@ class LRUNode { export class LRUCache { readonly capacity: number; - readonly #data: Map = new Map(); - readonly #refs: Map = new Map(); + readonly #data = new Map(); + readonly #refs = new Map(); #length = 0; #head: LRUNode; diff --git a/packages/rpc-provider/src/mock/index.ts b/packages/rpc-provider/src/mock/index.ts index b295761f11..60f8a0dfda 100644 --- a/packages/rpc-provider/src/mock/index.ts +++ b/packages/rpc-provider/src/mock/index.ts @@ -96,7 +96,7 @@ export class MockProvider implements ProviderInterface { } public get hasSubscriptions (): boolean { - return true; + return !!true; } public clone (): MockProvider { @@ -116,11 +116,11 @@ export class MockProvider implements ProviderInterface { } public get isClonable (): boolean { - return false; + return !!false; } public get isConnected (): boolean { - return true; + return !!true; } public on (type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void { diff --git a/packages/rpc-provider/src/mock/mockWs.ts b/packages/rpc-provider/src/mock/mockWs.ts index 9fbc33cf20..e8cbfa3814 100644 --- a/packages/rpc-provider/src/mock/mockWs.ts +++ b/packages/rpc-provider/src/mock/mockWs.ts @@ -6,7 +6,7 @@ import { Server, WebSocket } from 'mock-socket'; import { stringify } from '@polkadot/util'; interface Scope { - body: { [index: string]: Record }; + body: Record>; requests: number; server: Server; done: any; diff --git a/packages/rpc-provider/src/substrate-connect/index.ts b/packages/rpc-provider/src/substrate-connect/index.ts index 60fc48cbe0..28ef1cb342 100644 --- a/packages/rpc-provider/src/substrate-connect/index.ts +++ b/packages/rpc-provider/src/substrate-connect/index.ts @@ -55,9 +55,9 @@ export class ScProvider implements ProviderInterface { readonly #coder: RpcCoder = new RpcCoder(); readonly #spec: string | ScType.WellKnownChain; readonly #sharedSandbox?: ScProvider | undefined; - readonly #subscriptions: Map = new Map(); - readonly #resubscribeMethods: Map = new Map(); - readonly #requests: Map = new Map(); + readonly #subscriptions = new Map(); + readonly #resubscribeMethods = new Map(); + readonly #requests = new Map(); readonly #wellKnownChains: Set; readonly #eventemitter: EventEmitter = new EventEmitter(); @@ -77,11 +77,11 @@ export class ScProvider implements ProviderInterface { public get hasSubscriptions (): boolean { // Indicates that subscriptions are supported - return true; + return !!true; } public get isClonable (): boolean { - return false; + return !!false; } public get isConnected (): boolean { @@ -276,7 +276,7 @@ export class ScProvider implements ProviderInterface { } try { - const promise: Promise = new Promise((resolve) => { + const promise = new Promise((resolve) => { this.subscribe(subDetails.type, subDetails.method, subDetails.params, subDetails.callback).catch((error) => console.log(error)); resolve(); }); diff --git a/packages/rpc-provider/src/ws/index.ts b/packages/rpc-provider/src/ws/index.ts index 850e52a9d6..6ba926715f 100644 --- a/packages/rpc-provider/src/ws/index.ts +++ b/packages/rpc-provider/src/ws/index.ts @@ -33,7 +33,7 @@ interface WsStateSubscription extends SubscriptionHandler { params: unknown[]; } -const ALIASES: { [index: string]: string } = { +const ALIASES: Record = { chain_finalisedHead: 'chain_finalizedHead', chain_subscribeFinalisedHeads: 'chain_subscribeFinalizedHeads', chain_unsubscribeFinalisedHeads: 'chain_unsubscribeFinalizedHeads' @@ -152,14 +152,14 @@ export class WsProvider implements ProviderInterface { * @summary `true` when this provider supports subscriptions */ public get hasSubscriptions (): boolean { - return true; + return !!true; } /** * @summary `true` when this provider supports clone() */ public get isClonable (): boolean { - return true; + return !!true; } /** @@ -531,7 +531,11 @@ export class WsProvider implements ProviderInterface { }; #onSocketMessageSubscribe = (response: JsonRpcResponse): void => { - const method = ALIASES[response.method as string] || response.method || 'invalid'; + if (!response.method) { + throw new Error('No method found in JSONRPC response'); + } + + const method = ALIASES[response.method] || response.method; const subId = `${method}::${response.params.subscription}`; const handler = this.#subscriptions[subId]; diff --git a/packages/typegen/src/extractChain.ts b/packages/typegen/src/extractChain.ts index cfefe8fb98..2b512ab50c 100644 --- a/packages/typegen/src/extractChain.ts +++ b/packages/typegen/src/extractChain.ts @@ -26,7 +26,7 @@ async function run (ws: string): Promise { api.runtimeMetadata.getUniqTypes(false); } -type ArgV = { ws: string }; +interface ArgV { ws: string } export function main (): void { // retrieve and parse arguments - we do this globally, since this is a single command diff --git a/packages/typegen/src/fromChain.ts b/packages/typegen/src/fromChain.ts index c3683484d8..4b9c3c5430 100644 --- a/packages/typegen/src/fromChain.ts +++ b/packages/typegen/src/fromChain.ts @@ -70,7 +70,7 @@ async function generate (metaHex: HexString, pkg: string | undefined, output: st process.exit(0); } -type ArgV = { endpoint: string; output: string; package?: string; strict?: boolean }; +interface ArgV { endpoint: string; output: string; package?: string; strict?: boolean } async function mainPromise (): Promise { const { endpoint, output, package: pkg, strict: isStrict } = yargs(hideBin(process.argv)).strict().options({ diff --git a/packages/typegen/src/fromDefs.ts b/packages/typegen/src/fromDefs.ts index d6ae80d792..d8e508af97 100644 --- a/packages/typegen/src/fromDefs.ts +++ b/packages/typegen/src/fromDefs.ts @@ -16,7 +16,7 @@ import { generateInterfaceTypes } from './generate/interfaceRegistry.js'; import { generateTsDef } from './generate/tsDef.js'; import { assertDir, assertFile, getMetadataViaWs } from './util/index.js'; -type ArgV = { input: string; package: string; endpoint?: string; }; +interface ArgV { input: string; package: string; endpoint?: string; } async function mainPromise (): Promise { const { endpoint, input, package: pkg } = yargs(hideBin(process.argv)).strict().options({ diff --git a/packages/typegen/src/generate/interfaceRegistry.ts b/packages/typegen/src/generate/interfaceRegistry.ts index efc39380f8..3a212579c1 100644 --- a/packages/typegen/src/generate/interfaceRegistry.ts +++ b/packages/typegen/src/generate/interfaceRegistry.ts @@ -21,7 +21,7 @@ const primitiveClasses = { const generateInterfaceTypesTemplate = Handlebars.compile(readTemplate('interfaceRegistry')); /** @internal */ -export function generateInterfaceTypes (importDefinitions: { [importPath: string]: Record }, dest: string): void { +export function generateInterfaceTypes (importDefinitions: Record>, dest: string): void { const registry = new TypeRegistry(); writeFile(dest, (): string => { diff --git a/packages/typegen/src/generate/runtime.ts b/packages/typegen/src/generate/runtime.ts index 77c40f5d2e..49dae33f8c 100644 --- a/packages/typegen/src/generate/runtime.ts +++ b/packages/typegen/src/generate/runtime.ts @@ -33,7 +33,7 @@ function getDefs (apis: Apis | null, defs: Record): Record< for (let i = 0, scount = sections.length; i < scount; i++) { const [_section, sec] = sections[i]; const sectionHash = blake2AsHex(_section, 64); - const api = apis && apis.find(([h]) => h === sectionHash); + const api = apis?.find(([h]) => h === sectionHash); if (api) { const ver = sec.find(({ version }) => version === api[1]); diff --git a/packages/typegen/src/generate/tsDef.ts b/packages/typegen/src/generate/tsDef.ts index 80acfa89cd..4f77967c78 100644 --- a/packages/typegen/src/generate/tsDef.ts +++ b/packages/typegen/src/generate/tsDef.ts @@ -253,7 +253,7 @@ function generateInterfaces (registry: Registry, definitions: Record }, defName: string, { types }: { types: Record }, outputDir: string): void { +export function generateTsDefFor (registry: Registry, importDefinitions: Record>, defName: string, { types }: { types: Record }, outputDir: string): void { const imports = { ...createImports(importDefinitions, { types }), interfaces: [] } as Imports; const definitions = imports.definitions; const interfaces = generateInterfaces(registry, definitions, { types }, imports); @@ -275,7 +275,7 @@ export function generateTsDefFor (registry: Registry, importDefinitions: { [impo } /** @internal */ -export function generateTsDef (importDefinitions: { [importPath: string]: Record }, outputDir: string, generatingPackage: string): void { +export function generateTsDef (importDefinitions: Record>, outputDir: string, generatingPackage: string): void { const registry = new TypeRegistry(); writeFile(path.join(outputDir, 'types.ts'), (): string => { diff --git a/packages/typegen/src/metadataMd.ts b/packages/typegen/src/metadataMd.ts index e8c76feafb..a19fb082f4 100644 --- a/packages/typegen/src/metadataMd.ts +++ b/packages/typegen/src/metadataMd.ts @@ -92,7 +92,7 @@ function docsVecToMarkdown (docLines: Vec, indent = 0): string { .replace(/#### Weight:/g, 'Weight:'); // prefix each line with indentation - return md && md.split('\n\n').map((line) => `${' '.repeat(indent)}${line}`).join('\n\n'); + return md?.split('\n\n').map((line) => `${' '.repeat(indent)}${line}`).join('\n\n'); } function renderPage (page: Page): string { @@ -169,7 +169,12 @@ function addRpc (_runtimeDesc: string, rpcMethods?: string[]): string { .keys(section.rpc || {}) .sort() .forEach((methodName) => { - const method = (section.rpc || {})[methodName]; + const method = section.rpc?.[methodName]; + + if (!method) { + throw new Error(`No ${methodName} RPC found in ${_sectionName}`); + } + const sectionName = method.aliasSection || _sectionName; const jsonrpc = (method.endpoint || `${sectionName}_${methodName}`); @@ -455,7 +460,7 @@ function writeFile (name: string, ...chunks: any[]): void { writeStream.end(); } -type ArgV = { chain?: string; endpoint?: string; }; +interface ArgV { chain?: string; endpoint?: string; } async function mainPromise (): Promise { const { chain, endpoint } = yargs(hideBin(process.argv)).strict().options({ diff --git a/packages/typegen/src/util/index.ts b/packages/typegen/src/util/index.ts index 7ac2b420dc..58b6c54439 100644 --- a/packages/typegen/src/util/index.ts +++ b/packages/typegen/src/util/index.ts @@ -11,7 +11,7 @@ export * from './initMeta.js'; export * from './register.js'; export * from './wsMeta.js'; -type Cmp = { name: { toString(): string } }; +interface Cmp { name: { toString(): string } } export function compareName (a: Cmp, b: Cmp): number { return a.name.toString().localeCompare(b.name.toString()); diff --git a/packages/types-codec/src/base/Enum.ts b/packages/types-codec/src/base/Enum.ts index 0c8aba3f77..f0b6255ace 100644 --- a/packages/types-codec/src/base/Enum.ts +++ b/packages/types-codec/src/base/Enum.ts @@ -10,9 +10,7 @@ import { mapToTypeMap, typesToMap } from '../utils/index.js'; import { Null } from './Null.js'; // export interface, this is used in Enum.with, so required as public by TS -export interface EnumCodecClass { - new(registry: Registry, value?: any, index?: number): T; -} +export type EnumCodecClass = new(registry: Registry, value?: any, index?: number) => T; interface Definition { def: TypesDef; @@ -90,7 +88,7 @@ function extractDef (registry: Registry, _def: Record; type Definition = [CodecClass[], string[]]; diff --git a/packages/types-codec/src/base/Vec.spec.ts b/packages/types-codec/src/base/Vec.spec.ts index 7e8fdce768..3b7046cc46 100644 --- a/packages/types-codec/src/base/Vec.spec.ts +++ b/packages/types-codec/src/base/Vec.spec.ts @@ -118,7 +118,7 @@ describe('Vec', (): void => { }); it('exposes a working forEach', (): void => { - const result: { [index: number]: string } = {}; + const result: Record = {}; vector.forEach((e, i): void => { result[i] = e.toString(); diff --git a/packages/types-codec/src/extended/BitVec.ts b/packages/types-codec/src/extended/BitVec.ts index 503129b7ff..64a8c5c396 100644 --- a/packages/types-codec/src/extended/BitVec.ts +++ b/packages/types-codec/src/extended/BitVec.ts @@ -9,7 +9,7 @@ import { Raw } from '../native/Raw.js'; /** @internal */ function decodeBitVecU8a (value?: Uint8Array): [number, Uint8Array] { - if (!value || !value.length) { + if (!value?.length) { return [0, new Uint8Array()]; } diff --git a/packages/types-codec/src/extended/OptionBool.ts b/packages/types-codec/src/extended/OptionBool.ts index 23b63f268c..0e4b715f0e 100644 --- a/packages/types-codec/src/extended/OptionBool.ts +++ b/packages/types-codec/src/extended/OptionBool.ts @@ -40,7 +40,7 @@ export class OptionBool extends Option { * @description The length of the value when encoded as a Uint8Array */ public override get encodedLength (): number { - return 1; + return 1 | 0; } /** diff --git a/packages/types-codec/src/native/Bool.ts b/packages/types-codec/src/native/Bool.ts index b569ded687..67f3b609f8 100644 --- a/packages/types-codec/src/native/Bool.ts +++ b/packages/types-codec/src/native/Bool.ts @@ -35,7 +35,7 @@ export class bool extends Boolean implements Codec { * @description The length of the value when encoded as a Uint8Array */ public get encodedLength (): number { - return 1; + return 1 | 0; } /** diff --git a/packages/types-codec/src/native/Json.ts b/packages/types-codec/src/native/Json.ts index 2cc5e6b919..891b4cd454 100644 --- a/packages/types-codec/src/native/Json.ts +++ b/packages/types-codec/src/native/Json.ts @@ -42,7 +42,7 @@ export class Json extends Map implements Codec { * @description Always 0, never encodes as a Uint8Array */ public get encodedLength (): number { - return 0; + return 0 | 0; } /** diff --git a/packages/types-codec/src/native/Struct.ts b/packages/types-codec/src/native/Struct.ts index ea62da39b6..161069091e 100644 --- a/packages/types-codec/src/native/Struct.ts +++ b/packages/types-codec/src/native/Struct.ts @@ -225,7 +225,7 @@ export class Struct< /** * @description Returns the a types value by name */ - public getT (key: string): T { + public getT (key: string): T { return super.get(key) as unknown as T; } diff --git a/packages/types-create/src/create/class.ts b/packages/types-create/src/create/class.ts index f550173924..76dfa2c8ee 100644 --- a/packages/types-create/src/create/class.ts +++ b/packages/types-create/src/create/class.ts @@ -40,7 +40,13 @@ function getTypeClassMap (value: TypeDef): Record { const map: Record = {}; for (let i = 0, count = subs.length; i < count; i++) { - map[subs[i].name as string] = getTypeDefType(subs[i]); + const sub = subs[i]; + + if (!sub.name) { + throw new Error(`No name found in definition ${stringify(sub)}`); + } + + map[sub.name] = getTypeDefType(sub); } return map; @@ -88,7 +94,11 @@ const infoMapping: Record C return Enum.with( subs.every(({ type }) => type === 'Null') ? subs.reduce>((out, { index, name }, count) => { - out[name as string] = index || count; + if (!name) { + throw new Error('No name found in sub definition'); + } + + out[name] = index || count; return out; }, {}) @@ -152,7 +162,11 @@ const infoMapping: Record C [TypeDefInfo.Set]: (_registry: Registry, value: TypeDef): CodecClass => CodecSet.with( getSubDefArray(value).reduce>((result, { index, name }) => { - result[name as string] = index as number; + if (!name || !isNumber(index)) { + throw new Error('No name found in sub definition'); + } + + result[name] = index; return result; }, {}), @@ -225,7 +239,7 @@ export function constructTypeClass (registry: Registry, // Returns the type Class for construction export function getTypeClass (registry: Registry, typeDef: TypeDef): CodecClass { - return registry.getUnsafe(typeDef.type, false, typeDef) as CodecClass; + return registry.getUnsafe(typeDef.type, false, typeDef) as unknown as CodecClass; } export function createClassUnsafe (registry: Registry, type: K): CodecClass { diff --git a/packages/types-create/src/create/type.ts b/packages/types-create/src/create/type.ts index 1d57448f9f..766dd5b73d 100644 --- a/packages/types-create/src/create/type.ts +++ b/packages/types-create/src/create/type.ts @@ -80,7 +80,7 @@ export function createTypeUnsafe string }; +interface ToString { toString: () => string } const stringIdentity = (value: T): string => value.toString(); @@ -56,7 +56,11 @@ function encodeSubTypes (registry: Registry, sub: TypeDef[], asEnum?: boolean, e for (let i = 0, count = sub.length; i < count; i++) { const def = sub[i]; - inner[def.name as string] = encodeTypeDef(registry, def); + if (!def.name) { + throw new Error(`No name found in ${stringify(def)}`); + } + + inner[def.name] = encodeTypeDef(registry, def); } return stringify( diff --git a/packages/types-create/src/util/getTypeDef.ts b/packages/types-create/src/util/getTypeDef.ts index 906c09e587..da3fe5e23f 100644 --- a/packages/types-create/src/util/getTypeDef.ts +++ b/packages/types-create/src/util/getTypeDef.ts @@ -218,7 +218,7 @@ function _decodeDoNotConstruct (value: TypeDef, type: string, _: string): TypeDe } function hasWrapper (type: string, [start, end]: [string, string, TypeDefInfo, any?]): boolean { - return (type.substring(0, start.length) === start) && (type.slice(-1 * end.length) === end); + return (type.startsWith(start)) && (type.slice(-1 * end.length) === end); } const nestedExtraction: [string, string, TypeDefInfo, (value: TypeDef, type: string, subType: string, count: number) => TypeDef][] = [ diff --git a/packages/types/src/create/registry.ts b/packages/types/src/create/registry.ts index e76d8742d1..e49fdffa51 100644 --- a/packages/types/src/create/registry.ts +++ b/packages/types/src/create/registry.ts @@ -343,7 +343,7 @@ export class TypeRegistry implements Registry { } public get (name: K, withUnknown?: boolean, knownTypeDef?: TypeDef): CodecClass | undefined { - return this.getUnsafe(name, withUnknown, knownTypeDef) as CodecClass; + return this.getUnsafe(name, withUnknown, knownTypeDef); } public getUnsafe (name: K, withUnknown?: boolean, knownTypeDef?: TypeDef): CodecClass | undefined { diff --git a/packages/types/src/extrinsic/ExtrinsicEra.ts b/packages/types/src/extrinsic/ExtrinsicEra.ts index be4629907f..c77354c6b1 100644 --- a/packages/types/src/extrinsic/ExtrinsicEra.ts +++ b/packages/types/src/extrinsic/ExtrinsicEra.ts @@ -142,7 +142,7 @@ export class MortalEra extends Tuple { * @description Encoded length for mortals occupy 2 bytes, different from the actual Tuple since it is encoded. This is a shortcut fro `toU8a().length` */ public override get encodedLength (): number { - return 2; + return 2 | 0; } /** diff --git a/packages/types/src/extrinsic/SignerPayload.ts b/packages/types/src/extrinsic/SignerPayload.ts index e0bf5956f0..d81ac31d52 100644 --- a/packages/types/src/extrinsic/SignerPayload.ts +++ b/packages/types/src/extrinsic/SignerPayload.ts @@ -46,7 +46,7 @@ const knownTypes: Record = { export class GenericSignerPayload extends Struct implements ISignerPayload, SignerPayloadType { readonly #extraTypes: Record; - constructor (registry: Registry, value?: HexString | { [x: string]: unknown; } | Map | unknown[]) { + constructor (registry: Registry, value?: HexString | Record | Map | unknown[]) { const extensionTypes = objectSpread>({}, registry.getSignedExtensionTypes(), registry.getSignedExtensionExtra()); super(registry, objectSpread>({}, extensionTypes, knownTypes), value); @@ -118,7 +118,7 @@ export class GenericSignerPayload extends Struct implements ISignerPayload, Sign // add any explicit overrides we may have for (let i = 0, count = keys.length; i < count; i++) { const key = keys[i]; - const value = this.get(key) as Codec; + const value = this.getT(key); const isOption = value instanceof Option; // Don't include Option.isNone diff --git a/packages/types/src/extrinsic/signedExtensions/types.ts b/packages/types/src/extrinsic/signedExtensions/types.ts index 92a3a726a8..53fbfd0ce1 100644 --- a/packages/types/src/extrinsic/signedExtensions/types.ts +++ b/packages/types/src/extrinsic/signedExtensions/types.ts @@ -3,7 +3,7 @@ export type ExtTypes = Record; -export type ExtInfo = { +export interface ExtInfo { extrinsic: ExtTypes; payload: ExtTypes; } diff --git a/packages/types/src/extrinsic/v4/Extrinsic.ts b/packages/types/src/extrinsic/v4/Extrinsic.ts index 7921919773..358d0e5e69 100644 --- a/packages/types/src/extrinsic/v4/Extrinsic.ts +++ b/packages/types/src/extrinsic/v4/Extrinsic.ts @@ -48,7 +48,7 @@ export class GenericExtrinsicV4 extends Struct implements IExtrinsicImpl { }; } - return (value as ExtrinsicValueV4) || {}; + return value || {}; } /** diff --git a/packages/types/src/extrinsic/v4/ExtrinsicSignature.ts b/packages/types/src/extrinsic/v4/ExtrinsicSignature.ts index 04910c1c64..e13b297da2 100644 --- a/packages/types/src/extrinsic/v4/ExtrinsicSignature.ts +++ b/packages/types/src/extrinsic/v4/ExtrinsicSignature.ts @@ -165,7 +165,7 @@ export class GenericExtrinsicSignatureV4 extends Struct implements IExtrinsicSig * @description Generate a payload and applies the signature from a keypair */ public sign (method: Call, account: IKeyringPair, options: SignatureOptions): IExtrinsicSignature { - if (!account || !account.addressRaw) { + if (!account?.addressRaw) { throw new Error(`Expected a valid keypair for signing, found ${stringify(account)}`); } diff --git a/packages/types/src/generic/Call.ts b/packages/types/src/generic/Call.ts index 8d6daa3a2b..315654c159 100644 --- a/packages/types/src/generic/Call.ts +++ b/packages/types/src/generic/Call.ts @@ -85,7 +85,7 @@ function decodeCallViaU8a (registry: Registry, value: Uint8Array, _meta?: Functi * necessary. * @internal */ -function decodeCall (registry: Registry, value: unknown | DecodedMethod | Uint8Array | string = new Uint8Array(), _meta?: FunctionMetadataLatest): DecodedMethod { +function decodeCall (registry: Registry, value: unknown = new Uint8Array(), _meta?: FunctionMetadataLatest): DecodedMethod { if (isU8a(value) || isHex(value)) { return decodeCallViaU8a(registry, u8aToU8a(value), _meta); } else if (isObject(value) && value.callIndex && value.args) { diff --git a/packages/types/src/generic/Event.ts b/packages/types/src/generic/Event.ts index 9378825669..d78b16b2c5 100644 --- a/packages/types/src/generic/Event.ts +++ b/packages/types/src/generic/Event.ts @@ -20,7 +20,7 @@ interface Decoded { /** @internal */ function decodeEvent (registry: Registry, value?: Uint8Array): Decoded { - if (!value || !value.length) { + if (!value?.length) { return { DataType: Null }; } diff --git a/packages/types/src/interfaces/definitions.spec.ts b/packages/types/src/interfaces/definitions.spec.ts index ca871b124a..c32ea23a36 100644 --- a/packages/types/src/interfaces/definitions.spec.ts +++ b/packages/types/src/interfaces/definitions.spec.ts @@ -34,7 +34,7 @@ function inspectType (type: string): void { // inspect the subs if (Array.isArray(sub)) { - for (let i = 0; i < sub.length; i++) { + for (let i = 0, count = sub.length; i < count; i++) { inspectType(sub[i].type); } } else if (sub) { diff --git a/packages/types/src/metadata/decorate/storage/createFunction.spec.ts b/packages/types/src/metadata/decorate/storage/createFunction.spec.ts index ba4b4114a7..8176b563da 100644 --- a/packages/types/src/metadata/decorate/storage/createFunction.spec.ts +++ b/packages/types/src/metadata/decorate/storage/createFunction.spec.ts @@ -88,7 +88,7 @@ describe('createFunction', (): void => { '1a7938fede32e1275281b3eee5708706d88444a6dc898a4dec463f1eb298463f' // AccountId ); expect( - storageFn.iterKey && storageFn.iterKey.meta.type.asPlain.toNumber() + storageFn.iterKey?.meta.type.asPlain.toNumber() ).toEqual(0); }); diff --git a/packages/types/src/types/codec.ts b/packages/types/src/types/codec.ts index e0693b9437..f9b3c4b977 100644 --- a/packages/types/src/types/codec.ts +++ b/packages/types/src/types/codec.ts @@ -6,7 +6,7 @@ import type { Codec } from '@polkadot/types-codec/types'; export type { AnyFunction, AnyJson, AnyNumber, AnyString, AnyTuple, AnyU8a, ArgsDef, BareOpts, Codec, CodecClass, CodecTo, Inspect } from '@polkadot/types-codec/types'; // helper to extract keys from an array -export type ArrayElementType> = T extends ReadonlyArray +export type ArrayElementType = T extends readonly (infer ElementType)[] ? ElementType : never; diff --git a/packages/types/src/types/definitions.ts b/packages/types/src/types/definitions.ts index a67db16218..1c8a6eb6e8 100644 --- a/packages/types/src/types/definitions.ts +++ b/packages/types/src/types/definitions.ts @@ -7,7 +7,7 @@ export type DefinitionTypeType = string; export type DefinitionTypeEnum = { _fallback?: DefinitionTypeType } & ({ _enum: DefinitionTypeType[] } | { _enum: Record }); -export type DefinitionTypeSet = { _fallback?: DefinitionTypeType, _set: Record }; +export interface DefinitionTypeSet { _fallback?: DefinitionTypeType, _set: Record } type DefinitionTypeStructExtra = { _alias?: Record; diff --git a/packages/types/src/types/detect.ts b/packages/types/src/types/detect.ts index d293299f00..e91a59682e 100644 --- a/packages/types/src/types/detect.ts +++ b/packages/types/src/types/detect.ts @@ -33,7 +33,7 @@ export type __Sanitize = export type __Value = string | Record | __Value[]; -export type __MapWrapOne = { +export interface __MapWrapOne { 'BTreeSet<': BTreeSet; 'Compact<': C extends INumber ? Compact : Codec; 'Linkage<': Linkage; @@ -42,15 +42,15 @@ export type __MapWrapOne = { 'RangeInclusive<': C extends INumber ? RangeInclusive : Codec; 'Vec<': C extends u8 ? Bytes : Vec; '[': C extends u8 ? U8aFixed : VecFixed; -}; +} // FIXME We don't cater for Int< & UInt< here. These could be problematic, since it has // a variable number of inner arguments, better would be to just strip them inside the sanitize -export type __MapWrapTwo = { +export interface __MapWrapTwo { 'BTreeMap<': BTreeMap; 'HashMap<': HashMap; 'Result<': Result; -}; +} export type __WrapOne = keyof __MapWrapOne; diff --git a/yarn.lock b/yarn.lock index 155deb55a5..ca144fb9d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -73,7 +73,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.3.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -475,43 +475,43 @@ __metadata: languageName: unknown linkType: soft -"@polkadot/dev-test@npm:^0.75.26": - version: 0.75.26 - resolution: "@polkadot/dev-test@npm:0.75.26" +"@polkadot/dev-test@npm:^0.76.1": + version: 0.76.1 + resolution: "@polkadot/dev-test@npm:0.76.1" dependencies: jsdom: ^22.1.0 tslib: ^2.6.0 - checksum: 060c2e074e07039d87c4274767e8ee0e0278fe77ee3e6649612371cd62babf141446be97b7b99a0762b9c59317f8e6c39e9f532486b46dfcd44e9910ea7cd49f + checksum: 212837e63a90267245ddcff34f812d677e1437a734a4f99ad07af50e5fbeb8b780aa87f1b396d28d6355fd4ab35725d02fc90a1c8f96f5873019e914dafbab97 languageName: node linkType: hard -"@polkadot/dev-ts@npm:^0.75.26": - version: 0.75.26 - resolution: "@polkadot/dev-ts@npm:0.75.26" +"@polkadot/dev-ts@npm:^0.76.1": + version: 0.76.1 + resolution: "@polkadot/dev-ts@npm:0.76.1" dependencies: json5: ^2.2.3 tslib: ^2.6.0 typescript: ^5.1.6 - checksum: b7743c43634acefc6044fc16c9af252b2cc8c5df3ed92ed64bd00b00907140ab50645dea86c9f60eca3a0182aae0ac1eae372d3f643046fab3cb28ccb0bff99d + checksum: 3f13c55540a29a398940bc11dd134d233cf9b634bd5a0eea889510fed05e2ae9626841192e8d468d4694a678a7aad89ff65f5a68082422d8afbab72a3e521b36 languageName: node linkType: hard -"@polkadot/dev@npm:^0.75.26": - version: 0.75.26 - resolution: "@polkadot/dev@npm:0.75.26" +"@polkadot/dev@npm:^0.76.1": + version: 0.76.1 + resolution: "@polkadot/dev@npm:0.76.1" dependencies: "@eslint/js": ^8.44.0 - "@polkadot/dev-test": ^0.75.26 - "@polkadot/dev-ts": ^0.75.26 + "@polkadot/dev-test": ^0.76.1 + "@polkadot/dev-ts": ^0.76.1 "@rollup/plugin-alias": ^5.0.0 "@rollup/plugin-commonjs": ^25.0.2 - "@rollup/plugin-dynamic-import-vars": ^2.0.3 + "@rollup/plugin-dynamic-import-vars": ^2.0.4 "@rollup/plugin-inject": ^5.0.3 "@rollup/plugin-json": ^6.0.0 "@rollup/plugin-node-resolve": ^15.1.0 "@tsconfig/strictest": ^2.0.1 - "@typescript-eslint/eslint-plugin": ^5.61.0 - "@typescript-eslint/parser": ^5.61.0 + "@typescript-eslint/eslint-plugin": ^6.0.0 + "@typescript-eslint/parser": ^6.0.0 eslint: ^8.44.0 eslint-config-standard: ^17.1.0 eslint-import-resolver-node: ^0.3.7 @@ -520,7 +520,7 @@ __metadata: eslint-plugin-header: ^3.1.1 eslint-plugin-import: ^2.27.5 eslint-plugin-import-newlines: ^1.3.4 - eslint-plugin-jest: ^27.2.2 + eslint-plugin-jest: ^27.2.3 eslint-plugin-n: ^16.0.1 eslint-plugin-promise: ^6.1.1 eslint-plugin-react: ^7.32.2 @@ -533,7 +533,7 @@ __metadata: globals: ^13.20.0 json5: ^2.2.3 madge: ^6.1.0 - rollup: ^3.26.1 + rollup: ^3.26.2 rollup-plugin-cleanup: ^3.2.1 tslib: ^2.6.0 typescript: ^5.1.6 @@ -567,7 +567,7 @@ __metadata: polkadot-exec-rollup: scripts/polkadot-exec-rollup.mjs polkadot-exec-tsc: scripts/polkadot-exec-tsc.mjs polkadot-exec-webpack: scripts/polkadot-exec-webpack.mjs - checksum: 35b301f4e8db97770198ef2118ede790f798af2742227f3f79a90346fe912ad3eb0fc2db840877e67f56ee7aa162246c8c7f12c70e4a2e8ecf9a32a7da6945cd + checksum: c73176a1e187c19efa4432048bdee40b8a0ca0753e596e834a129dbdad4d3cf35067abd72f03907415fb875dd62a170f294a953665a5fee50473ff275c6cb889 languageName: node linkType: hard @@ -634,10 +634,10 @@ __metadata: "@polkadot/x-fetch": ^12.3.2 "@polkadot/x-global": ^12.3.2 "@polkadot/x-ws": ^12.3.2 - "@substrate/connect": 0.7.29 + "@substrate/connect": 0.7.30 eventemitter3: ^5.0.1 mock-socket: ^9.2.1 - nock: ^13.3.1 + nock: ^13.3.2 tslib: ^2.6.0 dependenciesMeta: "@substrate/connect": @@ -972,9 +972,9 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-dynamic-import-vars@npm:^2.0.3": - version: 2.0.3 - resolution: "@rollup/plugin-dynamic-import-vars@npm:2.0.3" +"@rollup/plugin-dynamic-import-vars@npm:^2.0.4": + version: 2.0.4 + resolution: "@rollup/plugin-dynamic-import-vars@npm:2.0.4" dependencies: "@rollup/pluginutils": ^5.0.1 estree-walker: ^2.0.2 @@ -985,7 +985,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 53d4ed4c3c5cc78804eb38584d844983ea7f9af7e445a60814f865994f222d079f4ac5f73424ca5acb5f719340fd0a1c161a9cbd80c6d9ed9e778472972d839d + checksum: 8775ff85762c124e98e766533a02e7a3f7e6a729bf5c8c4f6746efe72cf7b1138b167aebf080783b687470edd5c36a635a27c2caa3ef1ef3f023bf980e3fe175 languageName: node linkType: hard @@ -1075,14 +1075,13 @@ __metadata: languageName: node linkType: hard -"@substrate/connect@npm:0.7.29": - version: 0.7.29 - resolution: "@substrate/connect@npm:0.7.29" +"@substrate/connect@npm:0.7.30": + version: 0.7.30 + resolution: "@substrate/connect@npm:0.7.30" dependencies: "@substrate/connect-extension-protocol": ^1.0.1 - eventemitter3: ^4.0.7 - smoldot: 1.0.9 - checksum: 60511199ef96c84b193ad9d3e166c6689135bffbb384a376a75bcc7ba26f28e1b3b5e3ff06bbeb2a73a5e237d17aacb2f3d0bb2d19f8c2253c01ccaeac1d7aee + smoldot: 1.0.11 + checksum: 5fdaf0cb6b4e4dcee53382c6796edf4ec5d14c9a183270ce67b1dfd50b2a5bbaae2ab843ee6c594b29c08b2ac117ff8d7f711ac36c159b37dbabdab9f8bf5526 languageName: node linkType: hard @@ -1222,10 +1221,10 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.12 + resolution: "@types/json-schema@npm:7.0.12" + checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 languageName: node linkType: hard @@ -1252,10 +1251,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.4.0": - version: 20.4.0 - resolution: "@types/node@npm:20.4.0" - checksum: 8ad632ee131611651fc5f4ac3a47427640e2492ab314fe1c4d0c3b97af71784ef48c53221d5f9922aab4724375dcb4f33137b3107ba2c356d9366216a31678aa +"@types/node@npm:*, @types/node@npm:^20.4.2": + version: 20.4.2 + resolution: "@types/node@npm:20.4.2" + checksum: 99e544ea7560d51f01f95627fc40394c24a13da8f041121a0da13e4ef0a2aa332932eaf9a5e8d0e30d1c07106e96a183be392cbba62e8cf0bf6a085d5c0f4149 languageName: node linkType: hard @@ -1365,44 +1364,48 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.61.0" +"@typescript-eslint/eslint-plugin@npm:^6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.0.0" dependencies: - "@eslint-community/regexpp": ^4.4.0 - "@typescript-eslint/scope-manager": 5.61.0 - "@typescript-eslint/type-utils": 5.61.0 - "@typescript-eslint/utils": 5.61.0 + "@eslint-community/regexpp": ^4.5.0 + "@typescript-eslint/scope-manager": 6.0.0 + "@typescript-eslint/type-utils": 6.0.0 + "@typescript-eslint/utils": 6.0.0 + "@typescript-eslint/visitor-keys": 6.0.0 debug: ^4.3.4 + grapheme-splitter: ^1.0.4 graphemer: ^1.4.0 - ignore: ^5.2.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 natural-compare-lite: ^1.4.0 - semver: ^7.3.7 - tsutils: ^3.21.0 + semver: ^7.5.0 + ts-api-utils: ^1.0.1 peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: d9e891fb43ccb75322fc40d58d02479f98bd3c962db71075438868b13f579643d714a24b5477a827be7ca2e7e9f6058c406241b6696a6395c6fcbd6de76e015c + checksum: 863f30b8ceb24d104fc8a41774e4f597a35525533aa99721198293b51628a2d986dcc6413893f27eb9db5a49c2fd2cc91d3aece8ed23d590f3eb4e9939c3d6ad languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/parser@npm:5.61.0" +"@typescript-eslint/parser@npm:^6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/parser@npm:6.0.0" dependencies: - "@typescript-eslint/scope-manager": 5.61.0 - "@typescript-eslint/types": 5.61.0 - "@typescript-eslint/typescript-estree": 5.61.0 + "@typescript-eslint/scope-manager": 6.0.0 + "@typescript-eslint/types": 6.0.0 + "@typescript-eslint/typescript-estree": 6.0.0 + "@typescript-eslint/visitor-keys": 6.0.0 debug: ^4.3.4 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 2422bca03ecc6830700aaa739ec46b8e9ab6c0a47a67f140dc6b62a42a8b98997e73bce52c6a010b8a9b461211c46ba865d5b7f680a7823cf5c245d3b61f7fd5 + checksum: a22f0c8f67eb244134f9d79d78faf1b6e2c0965495d78eef94a5680868f3d0fd9446a3ce5dc1e36dde02587da5d962944f3d83679c712d0b819ac99cdb9f7143 languageName: node linkType: hard @@ -1416,20 +1419,30 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/type-utils@npm:5.61.0" +"@typescript-eslint/scope-manager@npm:6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/scope-manager@npm:6.0.0" dependencies: - "@typescript-eslint/typescript-estree": 5.61.0 - "@typescript-eslint/utils": 5.61.0 + "@typescript-eslint/types": 6.0.0 + "@typescript-eslint/visitor-keys": 6.0.0 + checksum: 450015be6454f953d0ea0da020ab47597e96a7a15c1002eed16c57430783bd7b045513d57a126606fb35e8971f1ce65fbefd845e3b5496bf75284cbe1681d0b9 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/type-utils@npm:6.0.0" + dependencies: + "@typescript-eslint/typescript-estree": 6.0.0 + "@typescript-eslint/utils": 6.0.0 debug: ^4.3.4 - tsutils: ^3.21.0 + ts-api-utils: ^1.0.1 peerDependencies: - eslint: "*" + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: f0203fd48c6218f004dd73a9a71ba4cf97f015d0f13a7b3c821a3ba7ec814839bae270a1db589184ca7091fe54815a3171d1993e8a25200bf33e131bd6e855d4 + checksum: 53f46237891cfa738f6a4bc766a4dbb8d745b1cb9cbe2d2b40f2a4abcf0327d4aa92d9ce5361e87cd26d82e0159f358e28b0c67759eb053c4fd752654dc9dcb1 languageName: node linkType: hard @@ -1447,6 +1460,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/types@npm:6.0.0" + checksum: a2e232b66b0b057152f4a94d7e0be75f32e389c9c1ec9ed9901ed5aab6e5df08c07bde9865710e315d835e4400ec2232f9c3c525b6edf8a85675ebfbfb69d3a5 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.61.0, @typescript-eslint/typescript-estree@npm:^5.13.0": version: 5.61.0 resolution: "@typescript-eslint/typescript-estree@npm:5.61.0" @@ -1465,6 +1485,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.0.0" + dependencies: + "@typescript-eslint/types": 6.0.0 + "@typescript-eslint/visitor-keys": 6.0.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.5.0 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: 6214ff9cc3c4fd7fe03f846e96a498ecf85916083bb60d419bc5a12142cff912670032b1de5ea52ab353ca7eeb4e1cc8fa475a22958b010043c88e274df49859 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:^4.8.2": version: 4.33.0 resolution: "@typescript-eslint/typescript-estree@npm:4.33.0" @@ -1483,7 +1521,25 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.61.0, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.57.0": +"@typescript-eslint/utils@npm:6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/utils@npm:6.0.0" + dependencies: + "@eslint-community/eslint-utils": ^4.3.0 + "@types/json-schema": ^7.0.11 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 6.0.0 + "@typescript-eslint/types": 6.0.0 + "@typescript-eslint/typescript-estree": 6.0.0 + eslint-scope: ^5.1.1 + semver: ^7.5.0 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: 94b9b616282f6fa1ae50ba371a482a3c8c50268ef8039b4e86d29c445e95025c819358a5cc9955c4668482d97ef026e7a49e7f4b3a4685347136ef5bbd297e4d + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.57.0": version: 5.61.0 resolution: "@typescript-eslint/utils@npm:5.61.0" dependencies: @@ -1521,6 +1577,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:6.0.0": + version: 6.0.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.0.0" + dependencies: + "@typescript-eslint/types": 6.0.0 + eslint-visitor-keys: ^3.4.1 + checksum: b0d9848a4490174db1d25b5f336548bb11dde4e0ce664c3dc341bed89fb3a3ada091aeb7f5d2d371433815332d93339c6cb77f7a24469c329c3d055b15237bfa + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.11.5, @webassemblyjs/ast@npm:^1.11.5": version: 1.11.5 resolution: "@webassemblyjs/ast@npm:1.11.5" @@ -3624,13 +3690,13 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^27.2.2": - version: 27.2.2 - resolution: "eslint-plugin-jest@npm:27.2.2" +"eslint-plugin-jest@npm:^27.2.3": + version: 27.2.3 + resolution: "eslint-plugin-jest@npm:27.2.3" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 eslint: ^7.0.0 || ^8.0.0 jest: "*" peerDependenciesMeta: @@ -3638,7 +3704,7 @@ __metadata: optional: true jest: optional: true - checksum: 98b63252d985f5dedf36ce9587dd4a0d24daf71ca8a997258343402c0d33ddd5070502378dafd9ac7fc0ef2e0d557b5c77f18e09ad73c71a52de8061db88293f + checksum: 4c7e07f52f17749ac6fd0ff5fcd5ce30b88983ba31eeee322e4d48859f55eaa112f06172e586ad2031c00ff28bb2dfdc3d35c83895251b9c0e860fa47dfc5ff4 languageName: node linkType: hard @@ -3887,7 +3953,7 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.7": +"eventemitter3@npm:^4.0.0": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 @@ -4710,6 +4776,13 @@ fsevents@~2.3.2: languageName: node linkType: hard +"grapheme-splitter@npm:^1.0.4": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 + languageName: node + linkType: hard + "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" @@ -6282,15 +6355,15 @@ fsevents@~2.3.2: languageName: node linkType: hard -"nock@npm:^13.3.1": - version: 13.3.1 - resolution: "nock@npm:13.3.1" +"nock@npm:^13.3.2": + version: 13.3.2 + resolution: "nock@npm:13.3.2" dependencies: debug: ^4.1.0 json-stringify-safe: ^5.0.1 lodash: ^4.17.21 propagate: ^2.0.0 - checksum: 0f2a73e8432f6b5650656c53eef99f9e5bbde3df538dc2f07057edc4438cfc61a394c9d06dd82e60f6e86d42433f20f3c04364a1f088beee7bf03a24e3f0fdd0 + checksum: 1d7d5fda1816a3a0d2cb47f10283db139fcd15be6975db6f9b260efa781d5f0eeadf9bd7aab6db61191c519dd99bcd4c5c061e77880341be60abc39cd6163c1f languageName: node linkType: hard @@ -7495,9 +7568,9 @@ fsevents@~2.3.2: languageName: node linkType: hard -"rollup@npm:^3.26.1": - version: 3.26.1 - resolution: "rollup@npm:3.26.1" +"rollup@npm:^3.26.2": + version: 3.26.2 + resolution: "rollup@npm:3.26.2" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -7505,7 +7578,7 @@ fsevents@~2.3.2: optional: true bin: rollup: dist/bin/rollup - checksum: 3fd4f88510ec1b54b07309ee63b7b363a1cd4ed6d05e93ec0e883a73df1ffe8bb88169538cb4f2c1ec2d4a7340216f9a8b4b8ce7c2ee054ded725f39d9e3ba36 + checksum: 7186beeba0e6fd33b37aa33ede7157e77af0a0be4b75d345a51dab4be5962a8e7a1c5ec8868e7c4cd361b456eb1b47bdb75e5db32ab37a546bed383d06b40384 languageName: node linkType: hard @@ -7513,9 +7586,9 @@ fsevents@~2.3.2: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@polkadot/dev": ^0.75.26 + "@polkadot/dev": ^0.76.1 "@polkadot/typegen": "workspace:packages/typegen" - "@types/node": ^20.4.0 + "@types/node": ^20.4.2 languageName: unknown linkType: soft @@ -7676,14 +7749,14 @@ fsevents@~2.3.2: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3": - version: 7.5.3 - resolution: "semver@npm:7.5.3" +"semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.0, semver@npm:^7.5.3": + version: 7.5.4 + resolution: "semver@npm:7.5.4" dependencies: lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7 + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 languageName: node linkType: hard @@ -7867,12 +7940,12 @@ fsevents@~2.3.2: languageName: node linkType: hard -"smoldot@npm:1.0.9": - version: 1.0.9 - resolution: "smoldot@npm:1.0.9" +"smoldot@npm:1.0.11": + version: 1.0.11 + resolution: "smoldot@npm:1.0.11" dependencies: ws: ^8.8.1 - checksum: 7dff98c8d5e7ea14b60a1eaaa1dcb68d47e6bcf01fe004e387676041a0f1c65b079ee94aebd068c81a7899329d9c69c6b442a86c8e6acd0801996a4af5facff0 + checksum: 53c60eb8ae3c7d083285115f5094a538c0c1ffeff9d1a20b178a272807d24880f8724eabda0956c1f2d1df11de46b61d30d3821140d98910140e9d01f69e89c9 languageName: node linkType: hard @@ -8441,6 +8514,15 @@ fsevents@~2.3.2: languageName: node linkType: hard +"ts-api-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "ts-api-utils@npm:1.0.1" + peerDependencies: + typescript: ">=4.2.0" + checksum: 78794fc7270d295b36c1ac613465b5dc7e7226907a533125b30f177efef9dd630d4e503b00be31b44335eb2ebf9e136ebe97353f8fc5d383885d5fead9d54c09 + languageName: node + linkType: hard + "ts-graphviz@npm:^1.5.0": version: 1.5.2 resolution: "ts-graphviz@npm:1.5.2"