From 6396c8df8048e7282895407cbf69ead57f874779 Mon Sep 17 00:00:00 2001 From: Amaury Martiny Date: Tue, 7 May 2019 15:35:15 +0200 Subject: [PATCH] Fix linked maps (#878) * Fix linked maps * Line breaks --- packages/api/test/e2e/promise-queries.spec.js | 13 +++++++++++-- .../src/fromMetadata/v4/createFunction.ts | 2 +- packages/types/src/Metadata/v0/Storage.ts | 10 +++------- packages/types/src/Metadata/v2/Storage.ts | 12 +++++++++--- packages/types/src/Metadata/v3/Storage.ts | 12 +++++++++--- packages/types/src/Metadata/v4/Storage.ts | 12 +++++++++--- 6 files changed, 42 insertions(+), 19 deletions(-) diff --git a/packages/api/test/e2e/promise-queries.spec.js b/packages/api/test/e2e/promise-queries.spec.js index 1532330bb3..af6b6191a2 100644 --- a/packages/api/test/e2e/promise-queries.spec.js +++ b/packages/api/test/e2e/promise-queries.spec.js @@ -4,6 +4,7 @@ import BN from 'bn.js'; import testingPairs from '@polkadot/keyring/testingPairs'; +import { LinkageResult } from '@polkadot/types/codec/Linkage'; import Api from '../../src/promise'; @@ -78,6 +79,14 @@ describe.skip('e2e queries', () => { }); }); + it('subscribes to a linked map (staking.validators)', (done) => { + api.query.staking.validators((prefs) => { + expect(prefs instanceof LinkageResult).toBe(true); + + done(); + }); + }); + it('subscribes to multiple results (freeBalance.multi)', (done) => { api.query.balances.freeBalance.multi([ keyring.alice.address(), @@ -87,9 +96,9 @@ describe.skip('e2e queries', () => { ], (balances) => { expect(balances).toHaveLength(4); - console.error(balances); + console.error(balances); - done(); + done(); }); }); diff --git a/packages/type-storage/src/fromMetadata/v4/createFunction.ts b/packages/type-storage/src/fromMetadata/v4/createFunction.ts index fb80f089cf..8dada084ef 100644 --- a/packages/type-storage/src/fromMetadata/v4/createFunction.ts +++ b/packages/type-storage/src/fromMetadata/v4/createFunction.ts @@ -45,7 +45,7 @@ export default function createFunction (section: Text | string, method: Text | s assert(!isUndefined(arg) && !isNull(arg), `${meta.name} expects one argument`); const type = meta.type.asMap.key.toString(); - const param = createType(type, arg).toU8a(false); + const param = createType(type, arg).toU8a(); key = u8aConcat(key, param); } diff --git a/packages/types/src/Metadata/v0/Storage.ts b/packages/types/src/Metadata/v0/Storage.ts index e0803942cc..3d6649dff5 100644 --- a/packages/types/src/Metadata/v0/Storage.ts +++ b/packages/types/src/Metadata/v0/Storage.ts @@ -102,13 +102,9 @@ export class StorageFunctionType extends EnumType { * @description Returns the string representation of the value */ toString (): string { - if (this.isMap) { - if (this.asMap.isLinked) { - return `(${this.asMap.value.toString()}, Linkage<${this.asMap.key.toString()}>)`; - } - return this.asMap.value.toString(); - } - return this.asType.toString(); + return this.isMap + ? this.asMap.value.toString() + : this.asType.toString(); } } diff --git a/packages/types/src/Metadata/v2/Storage.ts b/packages/types/src/Metadata/v2/Storage.ts index 10e02cd37a..aabaa7a3b2 100644 --- a/packages/types/src/Metadata/v2/Storage.ts +++ b/packages/types/src/Metadata/v2/Storage.ts @@ -83,9 +83,15 @@ export class StorageFunctionType extends EnumType { * @description Returns the string representation of the value */ toString (): string { - return this.isMap - ? this.asMap.value.toString() - : this.asType.toString(); + if (this.isMap) { + if (this.asMap.isLinked) { + return `(${this.asMap.value.toString()}, Linkage<${this.asMap.key.toString()}>)`; + } + + return this.asMap.value.toString(); + } + + return this.asType.toString(); } } diff --git a/packages/types/src/Metadata/v3/Storage.ts b/packages/types/src/Metadata/v3/Storage.ts index 5537aceb6d..8d37106113 100644 --- a/packages/types/src/Metadata/v3/Storage.ts +++ b/packages/types/src/Metadata/v3/Storage.ts @@ -113,9 +113,15 @@ export class StorageFunctionType extends EnumType)`; + } + + return this.asMap.value.toString(); + } + + return this.asType.toString(); } } diff --git a/packages/types/src/Metadata/v4/Storage.ts b/packages/types/src/Metadata/v4/Storage.ts index b1ad9183b0..c90299d63d 100644 --- a/packages/types/src/Metadata/v4/Storage.ts +++ b/packages/types/src/Metadata/v4/Storage.ts @@ -207,9 +207,15 @@ export class StorageFunctionType extends EnumType)`; + } + + return this.asMap.value.toString(); + } + + return this.asType.toString(); } }