From 668ad3dfe56d1c7d790563d54758cb4fbf809251 Mon Sep 17 00:00:00 2001 From: Jaco Date: Fri, 1 Oct 2021 11:29:12 +0300 Subject: [PATCH] Handle plain multi queries diguised as map-form (#4011) --- packages/api/src/base/Decorate.ts | 8 +++++--- packages/types/src/primitive/StorageKey.ts | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/api/src/base/Decorate.ts b/packages/api/src/base/Decorate.ts index 257751a43b..287624ba4e 100644 --- a/packages/api/src/base/Decorate.ts +++ b/packages/api/src/base/Decorate.ts @@ -373,9 +373,11 @@ export abstract class Decorate extends Events { : this._rpcCore.state.queryStorageAt)( calls.map((args: QueryableStorageMultiArg) => Array.isArray(args) - ? args[0].creator.meta.type.asMap.hashers.length === 1 - ? [args[0].creator, args.slice(1)] - : [args[0].creator, ...args.slice(1)] + ? args[0].creator.meta.type.isPlain + ? [args[0].creator] + : args[0].creator.meta.type.asMap.hashers.length === 1 + ? [args[0].creator, args.slice(1)] + : [args[0].creator, ...args.slice(1)] : [args.creator]))); } diff --git a/packages/types/src/primitive/StorageKey.ts b/packages/types/src/primitive/StorageKey.ts index 1f1c94080b..212b1576f7 100644 --- a/packages/types/src/primitive/StorageKey.ts +++ b/packages/types/src/primitive/StorageKey.ts @@ -51,7 +51,7 @@ export function unwrapStorageType (registry: Registry, type: StorageEntryTypeLat } /** @internal */ -function decodeStorageKey (registry: Registry, value?: string | Uint8Array | StorageKey | StorageEntry | [StorageEntry, unknown[]?]): Decoded { +function decodeStorageKey (value?: string | Uint8Array | StorageKey | StorageEntry | [StorageEntry, unknown[]?]): Decoded { // eslint-disable-next-line @typescript-eslint/no-use-before-define if (value instanceof StorageKey) { return { @@ -174,7 +174,7 @@ export class StorageKey extends Bytes implements private _section?: string; constructor (registry: Registry, value?: string | Uint8Array | StorageKey | StorageEntry | [StorageEntry, unknown[]?], override: Partial = {}) { - const { key, method, section } = decodeStorageKey(registry, value); + const { key, method, section } = decodeStorageKey(value); super(registry, key);