Rework contract ABI environment option (#5661)

This commit is contained in:
Jaco
2023-05-30 08:39:29 +03:00
committed by GitHub
parent dbcb39734a
commit 2494801d50
7 changed files with 153 additions and 119 deletions
+7
View File
@@ -1,5 +1,12 @@
# CHANGELOG
## master
Contributed:
- Added support for extended Contracts ABI V4 definitions (Thanks to https://github.com/statictype)
## 10.7.3 May 28, 2023
Changes:
+1 -1
View File
@@ -40,7 +40,7 @@
"test:one": "polkadot-dev-run-test --env node"
},
"devDependencies": {
"@polkadot/dev": "^0.75.10",
"@polkadot/dev": "^0.75.11",
"@polkadot/typegen": "workspace:packages/typegen",
"@types/node": "^20.2.5"
},
+47 -28
View File
@@ -2,13 +2,13 @@
// SPDX-License-Identifier: Apache-2.0
import type { Bytes } from '@polkadot/types';
import type { ChainProperties, ContractConstructorSpecLatest, ContractEventSpecLatest, ContractMessageParamSpecLatest, ContractMessageSpecLatest, ContractMetadata, ContractMetadataLatest, ContractProjectInfo } from '@polkadot/types/interfaces';
import type { ChainProperties, ContractConstructorSpecLatest, ContractEventSpecLatest, ContractMessageParamSpecLatest, ContractMessageSpecLatest, ContractMetadata, ContractMetadataLatest, ContractProjectInfo, ContractTypeSpec } from '@polkadot/types/interfaces';
import type { Codec, Registry, TypeDef } from '@polkadot/types/types';
import type { AbiConstructor, AbiEvent, AbiMessage, AbiParam, DecodedEvent, DecodedMessage } from '../types.js';
import { TypeRegistry } from '@polkadot/types';
import { Option, TypeRegistry } from '@polkadot/types';
import { TypeDefInfo } from '@polkadot/types-create';
import { assertReturn, compactAddLength, compactStripLength, isNumber, isObject, isString, logger, stringCamelCase, stringify, u8aConcat, u8aToHex } from '@polkadot/util';
import { assertReturn, compactAddLength, compactStripLength, isBn, isNumber, isObject, isString, isUndefined, logger, stringCamelCase, stringify, u8aConcat, u8aToHex } from '@polkadot/util';
import { convertVersions, enumVersions } from './toLatest.js';
@@ -74,6 +74,22 @@ function parseJson (json: Record<string, unknown>, chainProperties?: ChainProper
return [json, registry, latest, info];
}
/**
* @internal
* Determines if the given input value is a ContractTypeSpec
*/
function isTypeSpec (value: Codec): value is ContractTypeSpec {
return !!value && value instanceof Map && !isUndefined((value as ContractTypeSpec).type) && !isUndefined((value as ContractTypeSpec).displayName);
}
/**
* @internal
* Determines if the given input value is an Option
*/
function isOption (value: Codec): value is Option<Codec> {
return !!value && value instanceof Option;
}
export class Abi {
readonly events: AbiEvent[];
readonly constructors: AbiConstructor[];
@@ -82,7 +98,7 @@ export class Abi {
readonly messages: AbiMessage[];
readonly metadata: ContractMetadataLatest;
readonly registry: Registry;
readonly environment: Map<string, TypeDef | number> = new Map();
readonly environment: Map<string, TypeDef | Codec> = new Map();
constructor (abiJson: Record<string, unknown> | string, chainProperties?: ChainProperties) {
[this.json, this.registry, this.metadata, this.info] = parseJson(
@@ -91,45 +107,48 @@ export class Abi {
: abiJson,
chainProperties
);
this.constructors = this.metadata.spec.constructors.map((spec: ContractConstructorSpecLatest, index) => {
const typeSpec = spec.returnType.unwrapOr(null);
return this.#createMessage(spec, index, {
this.constructors = this.metadata.spec.constructors.map((spec: ContractConstructorSpecLatest, index) =>
this.#createMessage(spec, index, {
isConstructor: true,
isDefault: spec.default.isTrue,
isPayable: spec.payable.isTrue,
returnType: typeSpec
? this.registry.lookup.getTypeDef(typeSpec.type)
returnType: spec.returnType.isSome
? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type)
: null
});
}
})
);
this.events = this.metadata.spec.events.map((spec: ContractEventSpecLatest, index) =>
this.#createEvent(spec, index)
);
this.messages = this.metadata.spec.messages.map((spec: ContractMessageSpecLatest, index): AbiMessage => {
const typeSpec = spec.returnType.unwrapOr(null);
return this.#createMessage(spec, index, {
this.messages = this.metadata.spec.messages.map((spec: ContractMessageSpecLatest, index): AbiMessage =>
this.#createMessage(spec, index, {
isDefault: spec.default.isTrue,
isMutating: spec.mutates.isTrue,
isPayable: spec.payable.isTrue,
returnType: typeSpec
? this.registry.lookup.getTypeDef(typeSpec.type)
returnType: spec.returnType.isSome
? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type)
: null
});
});
const rawEnv = this.metadata.spec.environment.unwrapOr(null);
})
);
if (rawEnv) {
for (const [key, value] of rawEnv.entries()) {
const typeSpec = value.toPrimitive();
// NOTE See the rationale for having Option<...> values in the actual
// ContractEnvironmentV4 structure definition in interfaces/contractsAbi
// (Due to conversions, the fields may not exist)
for (const [key, opt] of this.metadata.spec.environment.entries()) {
if (isOption(opt)) {
if (opt.isSome) {
const value = opt.unwrap();
if (typeof typeSpec === 'object' && typeSpec !== null && 'type' in typeSpec) {
this.environment.set(key, this.registry.lookup.getTypeDef(typeSpec.type as number));
} else {
this.environment.set(key, typeSpec as number);
if (isBn(value)) {
this.environment.set(key, value);
} else if (isTypeSpec(value)) {
this.environment.set(key, this.registry.lookup.getTypeDef(value.type));
} else {
throw new Error(`Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`);
}
}
} else {
throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`);
}
}
}
@@ -24,7 +24,7 @@ import type { StatementKind } from '@polkadot/types/interfaces/claims';
import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective';
import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';
import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractExecResultU64, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractInstantiateResultU64, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';
import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractConstructorSpecV4, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractContractSpecV4, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEnvironment, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMessageSpecV3, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractMetadataV4, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';
import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractConstructorSpecV4, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractContractSpecV4, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEnvironmentV4, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMessageSpecV3, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractMetadataV4, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';
import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';
import type { CollationInfo, CollationInfoV1, ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';
import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy';
@@ -262,7 +262,7 @@ declare module '@polkadot/types/types/registry' {
ContractCryptoHasher: ContractCryptoHasher;
ContractDiscriminant: ContractDiscriminant;
ContractDisplayName: ContractDisplayName;
ContractEnvironment: ContractEnvironment;
ContractEnvironmentV4: ContractEnvironmentV4;
ContractEventParamSpecLatest: ContractEventParamSpecLatest;
ContractEventParamSpecV0: ContractEventParamSpecV0;
ContractEventParamSpecV2: ContractEventParamSpecV2;
@@ -118,7 +118,7 @@ const spec = {
messages: 'Vec<ContractMessageSpecV3>',
events: 'Vec<ContractEventSpecV2>',
docs: 'Vec<Text>',
environment: 'Option<ContractEnvironment>'
environment: 'ContractEnvironmentV4'
},
ContractDisplayName: 'SiPath',
@@ -280,16 +280,24 @@ export default {
compiler: 'Text',
wasm: 'Raw'
},
ContractEnvironment: {
ContractEnvironmentV4: {
_alias: {
hashType: 'hash'
},
accountId: 'ContractTypeSpec',
balance: 'ContractTypeSpec',
blockNumber: 'ContractTypeSpec',
hashType: 'ContractTypeSpec',
timestamp: 'ContractTypeSpec',
maxEventTopics: 'u32'
// NOTE These are not marked optional in the Rust code, however since we
// convert from older versions to newer, we may not have these fields.
// The Option<...> works since our inputs are always JSON, so it will
// be None when not specified.
//
// Additionally we don't mark the full structure as Option, rather we
// do it on a per-field basis since fields may be added as the versions
// progress.
accountId: 'Option<ContractTypeSpec>',
balance: 'Option<ContractTypeSpec>',
blockNumber: 'Option<ContractTypeSpec>',
hashType: 'Option<ContractTypeSpec>',
timestamp: 'Option<ContractTypeSpec>',
maxEventTopics: 'Option<u32>'
}
}
} as Definitions;
@@ -91,7 +91,7 @@ export interface ContractContractSpecV4 extends Struct {
readonly messages: Vec<ContractMessageSpecV3>;
readonly events: Vec<ContractEventSpecV2>;
readonly docs: Vec<Text>;
readonly environment: Option<ContractEnvironment>;
readonly environment: ContractEnvironmentV4;
}
/** @name ContractCryptoHasher */
@@ -108,14 +108,14 @@ export interface ContractDiscriminant extends u32 {}
/** @name ContractDisplayName */
export interface ContractDisplayName extends SiPath {}
/** @name ContractEnvironment */
export interface ContractEnvironment extends Struct {
readonly accountId: ContractTypeSpec;
readonly balance: ContractTypeSpec;
readonly blockNumber: ContractTypeSpec;
readonly hashType: ContractTypeSpec;
readonly timestamp: ContractTypeSpec;
readonly maxEventTopics: u32;
/** @name ContractEnvironmentV4 */
export interface ContractEnvironmentV4 extends Struct {
readonly accountId: Option<ContractTypeSpec>;
readonly balance: Option<ContractTypeSpec>;
readonly blockNumber: Option<ContractTypeSpec>;
readonly hashType: Option<ContractTypeSpec>;
readonly timestamp: Option<ContractTypeSpec>;
readonly maxEventTopics: Option<u32>;
}
/** @name ContractEventParamSpecLatest */
+71 -71
View File
@@ -468,34 +468,34 @@ __metadata:
languageName: unknown
linkType: soft
"@polkadot/dev-test@npm:^0.75.10":
version: 0.75.10
resolution: "@polkadot/dev-test@npm:0.75.10"
"@polkadot/dev-test@npm:^0.75.11":
version: 0.75.11
resolution: "@polkadot/dev-test@npm:0.75.11"
dependencies:
jsdom: ^22.1.0
tslib: ^2.5.2
checksum: 171663d09348ab99de3df6dec803ba46171b48095bb5aac661674cee242d4968e75688469d650c2ce7ff5c3e99af69742a84ca3e342474fffc6780e6c69aa01c
checksum: 2342e72802c761eecb0ba26435070b2bfd14d05fa28c5b8e35962a160a0b4ab2a55955bf03f3e0449ea08a102fb82b424e0a24b3ee87ebc05a6ea72e41c37d08
languageName: node
linkType: hard
"@polkadot/dev-ts@npm:^0.75.10":
version: 0.75.10
resolution: "@polkadot/dev-ts@npm:0.75.10"
"@polkadot/dev-ts@npm:^0.75.11":
version: 0.75.11
resolution: "@polkadot/dev-ts@npm:0.75.11"
dependencies:
json5: ^2.2.3
tslib: ^2.5.2
typescript: ^5.0.4
checksum: ee42e299cb2c9aa86b2e313bfb78225f998e13d1816dc7b3627cdc7660fcbc0f4114c574a6e4f2aeb2c43f81b0378353bcd2c191b8d98e7b1349ae0719b1bb22
checksum: f15d902adb68c473d3306f9caf4e0dd5472b56ae0dc4dbc119cb681168b0b0aa113f43e888b9ccea926cc5df836a410e474f3f7bc87cb53514a7af3c6dfa9a9f
languageName: node
linkType: hard
"@polkadot/dev@npm:^0.75.10":
version: 0.75.10
resolution: "@polkadot/dev@npm:0.75.10"
"@polkadot/dev@npm:^0.75.11":
version: 0.75.11
resolution: "@polkadot/dev@npm:0.75.11"
dependencies:
"@eslint/js": ^8.41.0
"@polkadot/dev-test": ^0.75.10
"@polkadot/dev-ts": ^0.75.10
"@polkadot/dev-test": ^0.75.11
"@polkadot/dev-ts": ^0.75.11
"@rollup/plugin-alias": ^5.0.0
"@rollup/plugin-commonjs": ^25.0.0
"@rollup/plugin-dynamic-import-vars": ^2.0.3
@@ -503,10 +503,10 @@ __metadata:
"@rollup/plugin-json": ^6.0.0
"@rollup/plugin-node-resolve": ^15.0.2
"@tsconfig/strictest": ^2.0.1
"@typescript-eslint/eslint-plugin": ^5.59.7
"@typescript-eslint/parser": ^5.59.7
"@typescript-eslint/eslint-plugin": ^5.59.8
"@typescript-eslint/parser": ^5.59.8
eslint: ^8.41.0
eslint-config-standard: ^17.0.0
eslint-config-standard: ^17.1.0
eslint-import-resolver-node: ^0.3.7
eslint-import-resolver-typescript: ^3.5.5
eslint-plugin-deprecation: ^1.4.1
@@ -560,7 +560,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: fe47a76ccf4b7c1d16a85bd28b72297200561c642f3394da3d65b878a39f84cd0da646a884f39b798db070d916d721fc8fc5f427c695f0d2f54469bb06ebe704
checksum: fcdc8fe4f3d2e8837a69344ed360e7289e92d54be6f12e5f70fbc97df85e6d888d70055a4483613b66451a18357f0624acc10400906b84f0a7791acd41a0e880
languageName: node
linkType: hard
@@ -1358,14 +1358,14 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^5.59.7":
version: 5.59.7
resolution: "@typescript-eslint/eslint-plugin@npm:5.59.7"
"@typescript-eslint/eslint-plugin@npm:^5.59.8":
version: 5.59.8
resolution: "@typescript-eslint/eslint-plugin@npm:5.59.8"
dependencies:
"@eslint-community/regexpp": ^4.4.0
"@typescript-eslint/scope-manager": 5.59.7
"@typescript-eslint/type-utils": 5.59.7
"@typescript-eslint/utils": 5.59.7
"@typescript-eslint/scope-manager": 5.59.8
"@typescript-eslint/type-utils": 5.59.8
"@typescript-eslint/utils": 5.59.8
debug: ^4.3.4
grapheme-splitter: ^1.0.4
ignore: ^5.2.0
@@ -1378,43 +1378,43 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10d28bac7a5af9e41767be0bb9c270ee3dcdfeaa38d1b036c6822e7260b88821c460699ba943664eb1ef272d00de6a81b99d7d955332044ea87b624e7ead84a1
checksum: 3e05cd06149ec3741c3c2fb638e2d19a55687b4614a5c8820433db82997687650297e51c17828d320162ccf4241798cf5712c405561e7605cb17e984a6967f7b
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^5.59.7":
version: 5.59.7
resolution: "@typescript-eslint/parser@npm:5.59.7"
"@typescript-eslint/parser@npm:^5.59.8":
version: 5.59.8
resolution: "@typescript-eslint/parser@npm:5.59.8"
dependencies:
"@typescript-eslint/scope-manager": 5.59.7
"@typescript-eslint/types": 5.59.7
"@typescript-eslint/typescript-estree": 5.59.7
"@typescript-eslint/scope-manager": 5.59.8
"@typescript-eslint/types": 5.59.8
"@typescript-eslint/typescript-estree": 5.59.8
debug: ^4.3.4
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: bc44f37a11a44f84ae5f0156213f3e2e49aef2ecac94d9e161a0c721acd29462e288f306ad4648095ac1c0e5a5f62b78280c1735883cf39f79ee3afcba312119
checksum: bac9f09d8552086ceb882a7b87ce4d98dfaa41579249216c75d97e3fc07af33cddc4cbbd07a127a5823c826a258882643aaf658bec19cb2a434002b55c5f0d12
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:5.59.7":
version: 5.59.7
resolution: "@typescript-eslint/scope-manager@npm:5.59.7"
"@typescript-eslint/scope-manager@npm:5.59.8":
version: 5.59.8
resolution: "@typescript-eslint/scope-manager@npm:5.59.8"
dependencies:
"@typescript-eslint/types": 5.59.7
"@typescript-eslint/visitor-keys": 5.59.7
checksum: 43f7ea93fddbe2902122a41050677fe3eff2ea468f435b981592510cfc6136e8c28ac7d3a3e05fb332c0b3078a29bd0c91c35b2b1f4e788b4eb9aaeb70e21583
"@typescript-eslint/types": 5.59.8
"@typescript-eslint/visitor-keys": 5.59.8
checksum: e1e810ee991cfeb433330b04ee949bb6784abe4dbdb7d9480aa7a7536671b4fec914b7803edf662516c8ecb1b31dcff126797f9923270a529c26e2b00b0ea96f
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:5.59.7":
version: 5.59.7
resolution: "@typescript-eslint/type-utils@npm:5.59.7"
"@typescript-eslint/type-utils@npm:5.59.8":
version: 5.59.8
resolution: "@typescript-eslint/type-utils@npm:5.59.8"
dependencies:
"@typescript-eslint/typescript-estree": 5.59.7
"@typescript-eslint/utils": 5.59.7
"@typescript-eslint/typescript-estree": 5.59.8
"@typescript-eslint/utils": 5.59.8
debug: ^4.3.4
tsutils: ^3.21.0
peerDependencies:
@@ -1422,7 +1422,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 9cbeffad27b145b478e4cbbab2b44c5b246a9b922f01fd06d401ea4c41a4fa6dc8ba75d13a6409b3b4474ccaf2018770a4c6c599172e22ec2004110e00f4e721
checksum: d9fde31397da0f0e62a5568f64bad99d06bcd324b7e3aac7fd997a3d045a0fe4c084b2e85d440e0a39645acd2269ad6593f196399c2c0f880d293417fec894e3
languageName: node
linkType: hard
@@ -1433,19 +1433,19 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/types@npm:5.59.7":
version: 5.59.7
resolution: "@typescript-eslint/types@npm:5.59.7"
checksum: 52eccec9e2d631eb2808e48b5dc33a837b5e242fa9eddace89fc707c9f2283b5364f1d38b33d418a08d64f45f6c22f051800898e1881a912f8aac0c3ae300d0a
"@typescript-eslint/types@npm:5.59.8":
version: 5.59.8
resolution: "@typescript-eslint/types@npm:5.59.8"
checksum: 559473d5601c849eb0da1874a2ac67c753480beed484ad6f6cda62fa6023273f2c3005c7f2864d9c2afb7c6356412d0d304b57db10c53597207f18a7f6cd4f18
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:5.59.7, @typescript-eslint/typescript-estree@npm:^5.13.0":
version: 5.59.7
resolution: "@typescript-eslint/typescript-estree@npm:5.59.7"
"@typescript-eslint/typescript-estree@npm:5.59.8, @typescript-eslint/typescript-estree@npm:^5.13.0":
version: 5.59.8
resolution: "@typescript-eslint/typescript-estree@npm:5.59.8"
dependencies:
"@typescript-eslint/types": 5.59.7
"@typescript-eslint/visitor-keys": 5.59.7
"@typescript-eslint/types": 5.59.8
"@typescript-eslint/visitor-keys": 5.59.8
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
@@ -1454,7 +1454,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: eefe82eedf9ee2e14463c3f2b5b18df084c1328a859b245ee897a9a7075acce7cca0216a21fd7968b75aa64189daa008bfde1e2f9afbcc336f3dfe856e7f342e
checksum: d93371cc866f573a6a1ddc0eb10d498a8e59f36763a99ce21da0737fff2b4c942eef1587216aad273f8d896ebc0b19003677cba63a27d2646aa2c087638963eb
languageName: node
linkType: hard
@@ -1476,21 +1476,21 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:5.59.7, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.57.0":
version: 5.59.7
resolution: "@typescript-eslint/utils@npm:5.59.7"
"@typescript-eslint/utils@npm:5.59.8, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.57.0":
version: 5.59.8
resolution: "@typescript-eslint/utils@npm:5.59.8"
dependencies:
"@eslint-community/eslint-utils": ^4.2.0
"@types/json-schema": ^7.0.9
"@types/semver": ^7.3.12
"@typescript-eslint/scope-manager": 5.59.7
"@typescript-eslint/types": 5.59.7
"@typescript-eslint/typescript-estree": 5.59.7
"@typescript-eslint/scope-manager": 5.59.8
"@typescript-eslint/types": 5.59.8
"@typescript-eslint/typescript-estree": 5.59.8
eslint-scope: ^5.1.1
semver: ^7.3.7
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
checksum: d8682700187ca94cc6441480cb6b87d0514a9748103c15dd93206c5b1c6fefa59063662f27a4103e16abbcfb654a61d479bc55af8f23d96f342431b87f31bb4e
checksum: cbaa057485c7f52c45d0dfb4f5a8e9273abccb1c52dcb4426a79f9e71d2c1062cf2525bad6d4aca5ec42db3fe723d749843bcade5a323bde7fbe4b5d5b5d5c3b
languageName: node
linkType: hard
@@ -1504,13 +1504,13 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:5.59.7":
version: 5.59.7
resolution: "@typescript-eslint/visitor-keys@npm:5.59.7"
"@typescript-eslint/visitor-keys@npm:5.59.8":
version: 5.59.8
resolution: "@typescript-eslint/visitor-keys@npm:5.59.8"
dependencies:
"@typescript-eslint/types": 5.59.7
"@typescript-eslint/types": 5.59.8
eslint-visitor-keys: ^3.3.0
checksum: 4367f2ea68dd96a0520485434ad11e1bd26239eeeb3a2150bee7478a0f1df3c2099a39f96486722932be0456bcb7a47a483b452876d1d30bdeb9b81d354eef3d
checksum: 6bfa7918dbb0e08d8a7404aeeef7bcd1a85736dc8d01614d267c0c5ec10f94d2746b50a945bf5c82c54fda67926e8deaeba8565c919da17f725fc11209ef8987
languageName: node
linkType: hard
@@ -3492,15 +3492,15 @@ __metadata:
languageName: node
linkType: hard
"eslint-config-standard@npm:^17.0.0":
version: 17.0.0
resolution: "eslint-config-standard@npm:17.0.0"
"eslint-config-standard@npm:^17.1.0":
version: 17.1.0
resolution: "eslint-config-standard@npm:17.1.0"
peerDependencies:
eslint: ^8.0.1
eslint-plugin-import: ^2.25.2
eslint-plugin-n: ^15.0.0
eslint-plugin-n: "^15.0.0 || ^16.0.0 "
eslint-plugin-promise: ^6.0.0
checksum: dc0ed51e186fd963ff2c0819d33ef580afce11b11036cbcf5e74427e26e514c2b1be96b8ffe74fd2fd00263554a0d49cc873fcf76f17c3dfdba614b45d7fd7da
checksum: 8ed14ffe424b8a7e67b85e44f75c46dc4c6954f7c474c871c56fb0daf40b6b2a7af2db55102b12a440158b2be898e1fb8333b05e3dbeaeaef066fdbc863eaa88
languageName: node
linkType: hard
@@ -7515,7 +7515,7 @@ fsevents@~2.3.2:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
"@polkadot/dev": ^0.75.10
"@polkadot/dev": ^0.75.11
"@polkadot/typegen": "workspace:packages/typegen"
"@types/node": ^20.2.5
languageName: unknown