From 8e65545a3c7bd064dda073dd7b39aca063fb697b Mon Sep 17 00:00:00 2001 From: Jaco Date: Mon, 12 Jul 2021 13:04:41 +0300 Subject: [PATCH] Allow nested struct generation (#3760) * Allow nested struct generation * CHANGELOG * Update packages/typegen/src/util/formatting.ts * Rebuild --- CHANGELOG.md | 1 + packages/typegen/src/generate/tsDef.ts | 8 +- packages/typegen/src/util/formatting.ts | 33 +++-- packages/types/src/augment/registry.ts | 44 +------ .../src/interfaces/metadata/definitions.ts | 117 +++++++++--------- .../types/src/interfaces/metadata/types.ts | 97 ++------------- 6 files changed, 99 insertions(+), 201 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25ee27f673..b57e798584 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Changes: - Update `ParaPastCodeMeta` with `ReplacementTimes` +- Allow nested struct in enum definitions ## 5.0.1 Jul 11, 2021 diff --git a/packages/typegen/src/generate/tsDef.ts b/packages/typegen/src/generate/tsDef.ts index 4463f8c6cc..6115239071 100644 --- a/packages/typegen/src/generate/tsDef.ts +++ b/packages/typegen/src/generate/tsDef.ts @@ -50,12 +50,13 @@ const tsTuple = tsExport; function tsEnum (definitions: Record, { name: enumName, sub }: TypeDef, imports: TypeImports): string { setImports(definitions, imports, ['Enum']); - const keys = (sub as TypeDef[]).map(({ info, name = '', type }): string => { + const keys = (sub as TypeDef[]).map((def, index): string => { + const { info, name = `unknown${index}`, type } = def; const getter = stringUpperFirst(stringCamelCase(name.replace(' ', '_'))); - const isComplexType = [TypeDefInfo.Tuple, TypeDefInfo.Vec, TypeDefInfo.VecFixed].includes(info); + const isComplex = [TypeDefInfo.Struct, TypeDefInfo.Tuple, TypeDefInfo.Vec, TypeDefInfo.VecFixed].includes(info); const asGetter = type === 'Null' || info === TypeDefInfo.DoNotConstruct ? '' - : createGetter(definitions, `as${getter}`, isComplexType ? formatType(definitions, type, imports) : type, imports); + : createGetter(definitions, `as${getter}`, isComplex ? formatType(definitions, info === TypeDefInfo.Struct ? def : type, imports) : type, imports); const isGetter = info === TypeDefInfo.DoNotConstruct ? '' : createGetter(definitions, `is${getter}`, 'boolean', imports); @@ -63,6 +64,7 @@ function tsEnum (definitions: Record, { name: enumName, sub switch (info) { case TypeDefInfo.Compact: case TypeDefInfo.Plain: + case TypeDefInfo.Struct: case TypeDefInfo.Tuple: case TypeDefInfo.Vec: case TypeDefInfo.Option: diff --git a/packages/typegen/src/util/formatting.ts b/packages/typegen/src/util/formatting.ts index d94541ac3c..2db9a93e3a 100644 --- a/packages/typegen/src/util/formatting.ts +++ b/packages/typegen/src/util/formatting.ts @@ -131,6 +131,14 @@ function formatLinkage (inner: string): string { return paramsNotation('Linkage', inner); } +/** + * Given the inner `T`, return a `Option` string + */ +/** @internal */ +function formatOption (inner: string): string { + return paramsNotation('Option', inner); +} + /** * Given the inner `O` & `E`, return a `Result` string */ @@ -140,11 +148,11 @@ function formatResult (innerOk: string, innerError: string): string { } /** - * Given the inner `T`, return a `Option` string + * Given the entries `[string, T][]`, return a `{ name: T; ... }` string */ /** @internal */ -function formatOption (inner: string): string { - return paramsNotation('Option', inner); +function formatStruct (inners: [string, string][]): string { + return `{ ${inners.map(([k, t]) => `${k}: ${t};`).join(' ')} } & Struct`; } /** @@ -211,10 +219,15 @@ export function formatType (definitions: Record, type: stri return typeDef.type; } - case TypeDefInfo.Vec: { - setImports(definitions, imports, ['Vec']); + case TypeDefInfo.Struct: { + setImports(definitions, imports, ['Struct']); - return formatVec(formatType(definitions, (typeDef.sub as TypeDef).type, imports)); + return formatStruct( + ((typeDef.sub as TypeDef[]).map(({ name, type }, index) => [ + name || `unknown${index}`, + formatType(definitions, type, imports) + ])) + ); } case TypeDefInfo.Tuple: { @@ -222,10 +235,16 @@ export function formatType (definitions: Record, type: stri // `(a,b)` gets transformed into `ITuple<[a, b]>` return formatTuple( - ((typeDef.sub as TypeDef[]).map((sub) => formatType(definitions, sub.type, imports))) + ((typeDef.sub as TypeDef[]).map(({ type }) => formatType(definitions, type, imports))) ); } + case TypeDefInfo.Vec: { + setImports(definitions, imports, ['Vec']); + + return formatVec(formatType(definitions, (typeDef.sub as TypeDef).type, imports)); + } + case TypeDefInfo.VecFixed: { const type = (typeDef.sub as TypeDef).type; diff --git a/packages/types/src/augment/registry.ts b/packages/types/src/augment/registry.ts index 3100e0abee..cc3c170f9b 100644 --- a/packages/types/src/augment/registry.ts +++ b/packages/types/src/augment/registry.ts @@ -32,7 +32,7 @@ import type { AuthorityIndex, AuthorityList, AuthoritySet, AuthoritySetChange, A import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement } from '@polkadot/types/interfaces/identity'; import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline'; import type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery'; -import type { DoubleMapTypeLatest, DoubleMapTypeV10, DoubleMapTypeV11, DoubleMapTypeV12, DoubleMapTypeV13, DoubleMapTypeV9, ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV9, MapTypeLatest, MapTypeV10, MapTypeV11, MapTypeV12, MapTypeV13, MapTypeV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV9, ModuleConstantMetadataLatest, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataLatest, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, NMapTypeLatest, NMapTypeV13, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV9, StorageMetadataLatest, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata'; +import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV9, ModuleConstantMetadataLatest, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataLatest, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV9, StorageMetadataLatest, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata'; import type { MmrLeafProof } from '@polkadot/types/interfaces/mmr'; import type { StorageKind } from '@polkadot/types/interfaces/offchain'; import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences'; @@ -371,12 +371,6 @@ declare module '@polkadot/types/types/registry' { 'Option': Option; 'Option': Option; 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; 'Option': Option; 'Option': Option; 'Option': Option; @@ -594,12 +588,6 @@ declare module '@polkadot/types/types/registry' { 'Option': Option; 'Option': Option; 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; - 'Option': Option; 'Option': Option; 'Option': Option; 'Option': Option; @@ -655,8 +643,6 @@ declare module '@polkadot/types/types/registry' { 'Option': Option; 'Option': Option; 'Option': Option; - 'Option': Option; - 'Option': Option; 'Option': Option; 'Option': Option; 'Option': Option; @@ -1255,12 +1241,6 @@ declare module '@polkadot/types/types/registry' { 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; @@ -1478,12 +1458,6 @@ declare module '@polkadot/types/types/registry' { 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; @@ -1539,8 +1513,6 @@ declare module '@polkadot/types/types/registry' { 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; - 'Vec': Vec; - 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; 'Vec': Vec; @@ -2139,12 +2111,6 @@ declare module '@polkadot/types/types/registry' { DisputeStatement: DisputeStatement; DisputeStatementSet: DisputeStatementSet; DoubleEncodedCall: DoubleEncodedCall; - DoubleMapTypeLatest: DoubleMapTypeLatest; - DoubleMapTypeV10: DoubleMapTypeV10; - DoubleMapTypeV11: DoubleMapTypeV11; - DoubleMapTypeV12: DoubleMapTypeV12; - DoubleMapTypeV13: DoubleMapTypeV13; - DoubleMapTypeV9: DoubleMapTypeV9; DoubleVoteReport: DoubleVoteReport; DownwardMessage: DownwardMessage; EcdsaSignature: EcdsaSignature; @@ -2362,12 +2328,6 @@ declare module '@polkadot/types/types/registry' { LookupSource: LookupSource; LookupTarget: LookupTarget; LotteryConfig: LotteryConfig; - MapTypeLatest: MapTypeLatest; - MapTypeV10: MapTypeV10; - MapTypeV11: MapTypeV11; - MapTypeV12: MapTypeV12; - MapTypeV13: MapTypeV13; - MapTypeV9: MapTypeV9; MaybeRandomness: MaybeRandomness; MaybeVrf: MaybeVrf; MemberCount: MemberCount; @@ -2423,8 +2383,6 @@ declare module '@polkadot/types/types/registry' { NextAuthority: NextAuthority; NextConfigDescriptor: NextConfigDescriptor; NextConfigDescriptorV1: NextConfigDescriptorV1; - NMapTypeLatest: NMapTypeLatest; - NMapTypeV13: NMapTypeV13; NodeRole: NodeRole; Nominations: Nominations; NominatorIndex: NominatorIndex; diff --git a/packages/types/src/interfaces/metadata/definitions.ts b/packages/types/src/interfaces/metadata/definitions.ts index e0f74751a9..033d335aee 100644 --- a/packages/types/src/interfaces/metadata/definitions.ts +++ b/packages/types/src/interfaces/metadata/definitions.ts @@ -21,13 +21,6 @@ export default { rpc: {}, types: { // v9 - DoubleMapTypeV9: { - hasher: 'StorageHasherV9', - key1: 'Type', - key2: 'Type', - value: 'Type', - key2Hasher: 'StorageHasherV9' - }, ErrorMetadataV9: { name: 'Text', documentation: 'Vec' @@ -46,12 +39,6 @@ export default { args: 'Vec', documentation: 'Vec' }, - MapTypeV9: { - hasher: 'StorageHasherV9', - key: 'Type', - value: 'Type', - linked: 'bool' - }, MetadataV9: { modules: 'Vec' }, @@ -82,8 +69,19 @@ export default { StorageEntryTypeV9: { _enum: { Plain: 'Type', - Map: 'MapTypeV9', - DoubleMap: 'DoubleMapTypeV9' + Map: { + hasher: 'StorageHasherV9', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV9', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV9' + } } }, StorageHasherV9: { @@ -101,23 +99,10 @@ export default { }, // v10 - DoubleMapTypeV10: { - hasher: 'StorageHasherV10', - key1: 'Type', - key2: 'Type', - value: 'Type', - key2Hasher: 'StorageHasherV10' - }, ErrorMetadataV10: 'ErrorMetadataV9', EventMetadataV10: 'EventMetadataV9', FunctionArgumentMetadataV10: 'FunctionArgumentMetadataV9', FunctionMetadataV10: 'FunctionMetadataV9', - MapTypeV10: { - hasher: 'StorageHasherV10', - key: 'Type', - value: 'Type', - linked: 'bool' - }, MetadataV10: { modules: 'Vec' }, @@ -141,8 +126,19 @@ export default { StorageEntryTypeV10: { _enum: { Plain: 'Type', - Map: 'MapTypeV10', - DoubleMap: 'DoubleMapTypeV10' + Map: { + hasher: 'StorageHasherV10', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV10', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV10' + } } }, StorageMetadataV10: { @@ -161,13 +157,6 @@ export default { }, // v11 - DoubleMapTypeV11: { - hasher: 'StorageHasherV11', - key1: 'Type', - key2: 'Type', - value: 'Type', - key2Hasher: 'StorageHasherV11' - }, ErrorMetadataV11: 'ErrorMetadataV10', EventMetadataV11: 'EventMetadataV10', ExtrinsicMetadataV11: { @@ -176,12 +165,6 @@ export default { }, FunctionArgumentMetadataV11: 'FunctionArgumentMetadataV10', FunctionMetadataV11: 'FunctionMetadataV10', - MapTypeV11: { - hasher: 'StorageHasherV11', - key: 'Type', - value: 'Type', - linked: 'bool' - }, MetadataV11: { modules: 'Vec', extrinsic: 'ExtrinsicMetadataV11' @@ -206,8 +189,19 @@ export default { StorageEntryTypeV11: { _enum: { Plain: 'Type', - Map: 'MapTypeV11', - DoubleMap: 'DoubleMapTypeV11' + Map: { + hasher: 'StorageHasherV11', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV11', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV11' + } } }, StorageMetadataV11: { @@ -219,13 +213,11 @@ export default { }, // v12 - DoubleMapTypeV12: 'DoubleMapTypeV11', ErrorMetadataV12: 'ErrorMetadataV11', EventMetadataV12: 'EventMetadataV11', ExtrinsicMetadataV12: 'ExtrinsicMetadataV11', FunctionArgumentMetadataV12: 'FunctionArgumentMetadataV11', FunctionMetadataV12: 'FunctionMetadataV11', - MapTypeV12: 'MapTypeV11', MetadataV12: { modules: 'Vec', extrinsic: 'ExtrinsicMetadataV12' @@ -247,13 +239,11 @@ export default { StorageHasherV12: 'StorageHasherV11', // v13 - DoubleMapTypeV13: 'DoubleMapTypeV12', ErrorMetadataV13: 'ErrorMetadataV12', EventMetadataV13: 'EventMetadataV12', ExtrinsicMetadataV13: 'ExtrinsicMetadataV12', FunctionArgumentMetadataV13: 'FunctionArgumentMetadataV12', FunctionMetadataV13: 'FunctionMetadataV12', - MapTypeV13: 'MapTypeV12', MetadataV13: { modules: 'Vec', extrinsic: 'ExtrinsicMetadataV13' @@ -268,11 +258,6 @@ export default { errors: 'Vec', index: 'u8' }, - NMapTypeV13: { - keyVec: 'Vec', - hashers: 'Vec', - value: 'Type' - }, StorageEntryModifierV13: 'StorageEntryModifierV12', StorageEntryMetadataV13: { name: 'Text', @@ -284,9 +269,24 @@ export default { StorageEntryTypeV13: { _enum: { Plain: 'Type', - Map: 'MapTypeV13', - DoubleMap: 'DoubleMapTypeV13', - NMap: 'NMapTypeV13' + Map: { + hasher: 'StorageHasherV13', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV13', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV13' + }, + NMap: { + keyVec: 'Vec', + hashers: 'Vec', + value: 'Type' + } } }, StorageMetadataV13: { @@ -296,17 +296,14 @@ export default { StorageHasherV13: 'StorageHasherV12', // This always maps to the latest - DoubleMapTypeLatest: 'DoubleMapTypeV13', ErrorMetadataLatest: 'ErrorMetadataV13', EventMetadataLatest: 'EventMetadataV13', ExtrinsicMetadataLatest: 'ExtrinsicMetadataV13', FunctionArgumentMetadataLatest: 'FunctionArgumentMetadataV13', FunctionMetadataLatest: 'FunctionMetadataV13', - MapTypeLatest: 'MapTypeV13', MetadataLatest: 'MetadataV13', ModuleConstantMetadataLatest: 'ModuleConstantMetadataV13', ModuleMetadataLatest: 'ModuleMetadataV13', - NMapTypeLatest: 'NMapTypeV13', StorageEntryMetadataLatest: 'StorageEntryMetadataV13', StorageEntryModifierLatest: 'StorageEntryModifierV13', StorageEntryTypeLatest: 'StorageEntryTypeV13', diff --git a/packages/types/src/interfaces/metadata/types.ts b/packages/types/src/interfaces/metadata/types.ts index eb80284e90..914795dbef 100644 --- a/packages/types/src/interfaces/metadata/types.ts +++ b/packages/types/src/interfaces/metadata/types.ts @@ -3,42 +3,6 @@ import type { Bytes, Enum, Option, Struct, Text, Type, Vec, bool, u8 } from '@polkadot/types'; -/** @name DoubleMapTypeLatest */ -export interface DoubleMapTypeLatest extends DoubleMapTypeV13 {} - -/** @name DoubleMapTypeV10 */ -export interface DoubleMapTypeV10 extends Struct { - readonly hasher: StorageHasherV10; - readonly key1: Type; - readonly key2: Type; - readonly value: Type; - readonly key2Hasher: StorageHasherV10; -} - -/** @name DoubleMapTypeV11 */ -export interface DoubleMapTypeV11 extends Struct { - readonly hasher: StorageHasherV11; - readonly key1: Type; - readonly key2: Type; - readonly value: Type; - readonly key2Hasher: StorageHasherV11; -} - -/** @name DoubleMapTypeV12 */ -export interface DoubleMapTypeV12 extends DoubleMapTypeV11 {} - -/** @name DoubleMapTypeV13 */ -export interface DoubleMapTypeV13 extends DoubleMapTypeV12 {} - -/** @name DoubleMapTypeV9 */ -export interface DoubleMapTypeV9 extends Struct { - readonly hasher: StorageHasherV9; - readonly key1: Type; - readonly key2: Type; - readonly value: Type; - readonly key2Hasher: StorageHasherV9; -} - /** @name ErrorMetadataLatest */ export interface ErrorMetadataLatest extends ErrorMetadataV13 {} @@ -140,39 +104,6 @@ export interface FunctionMetadataV9 extends Struct { readonly documentation: Vec; } -/** @name MapTypeLatest */ -export interface MapTypeLatest extends MapTypeV13 {} - -/** @name MapTypeV10 */ -export interface MapTypeV10 extends Struct { - readonly hasher: StorageHasherV10; - readonly key: Type; - readonly value: Type; - readonly linked: bool; -} - -/** @name MapTypeV11 */ -export interface MapTypeV11 extends Struct { - readonly hasher: StorageHasherV11; - readonly key: Type; - readonly value: Type; - readonly linked: bool; -} - -/** @name MapTypeV12 */ -export interface MapTypeV12 extends MapTypeV11 {} - -/** @name MapTypeV13 */ -export interface MapTypeV13 extends MapTypeV12 {} - -/** @name MapTypeV9 */ -export interface MapTypeV9 extends Struct { - readonly hasher: StorageHasherV9; - readonly key: Type; - readonly value: Type; - readonly linked: bool; -} - /** @name MetadataAll */ export interface MetadataAll extends Enum { readonly isV9: boolean; @@ -296,16 +227,6 @@ export interface ModuleMetadataV9 extends Struct { readonly errors: Vec; } -/** @name NMapTypeLatest */ -export interface NMapTypeLatest extends NMapTypeV13 {} - -/** @name NMapTypeV13 */ -export interface NMapTypeV13 extends Struct { - readonly keyVec: Vec; - readonly hashers: Vec; - readonly value: Type; -} - /** @name StorageEntryMetadataLatest */ export interface StorageEntryMetadataLatest extends StorageEntryMetadataV13 {} @@ -378,9 +299,9 @@ export interface StorageEntryTypeV10 extends Enum { readonly isPlain: boolean; readonly asPlain: Type; readonly isMap: boolean; - readonly asMap: MapTypeV10; + readonly asMap: { hasher: StorageHasherV10; key: Type; value: Type; linked: bool; } & Struct; readonly isDoubleMap: boolean; - readonly asDoubleMap: DoubleMapTypeV10; + readonly asDoubleMap: { hasher: StorageHasherV10; key1: Type; key2: Type; value: Type; key2Hasher: StorageHasherV10; } & Struct; } /** @name StorageEntryTypeV11 */ @@ -388,9 +309,9 @@ export interface StorageEntryTypeV11 extends Enum { readonly isPlain: boolean; readonly asPlain: Type; readonly isMap: boolean; - readonly asMap: MapTypeV11; + readonly asMap: { hasher: StorageHasherV11; key: Type; value: Type; linked: bool; } & Struct; readonly isDoubleMap: boolean; - readonly asDoubleMap: DoubleMapTypeV11; + readonly asDoubleMap: { hasher: StorageHasherV11; key1: Type; key2: Type; value: Type; key2Hasher: StorageHasherV11; } & Struct; } /** @name StorageEntryTypeV12 */ @@ -401,11 +322,11 @@ export interface StorageEntryTypeV13 extends Enum { readonly isPlain: boolean; readonly asPlain: Type; readonly isMap: boolean; - readonly asMap: MapTypeV13; + readonly asMap: { hasher: StorageHasherV13; key: Type; value: Type; linked: bool; } & Struct; readonly isDoubleMap: boolean; - readonly asDoubleMap: DoubleMapTypeV13; + readonly asDoubleMap: { hasher: StorageHasherV13; key1: Type; key2: Type; value: Type; key2Hasher: StorageHasherV13; } & Struct; readonly isNMap: boolean; - readonly asNMap: NMapTypeV13; + readonly asNMap: { keyVec: Vec; hashers: Vec; value: Type; } & Struct; } /** @name StorageEntryTypeV9 */ @@ -413,9 +334,9 @@ export interface StorageEntryTypeV9 extends Enum { readonly isPlain: boolean; readonly asPlain: Type; readonly isMap: boolean; - readonly asMap: MapTypeV9; + readonly asMap: { hasher: StorageHasherV9; key: Type; value: Type; linked: bool; } & Struct; readonly isDoubleMap: boolean; - readonly asDoubleMap: DoubleMapTypeV9; + readonly asDoubleMap: { hasher: StorageHasherV9; key1: Type; key2: Type; value: Type; key2Hasher: StorageHasherV9; } & Struct; } /** @name StorageHasher */