From 9da875b49ff67c8db232fc51043c396606504c1a Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 22 Jan 2019 17:44:15 +0100 Subject: [PATCH] Add api.query.
..key(...) => string (#615) --- packages/api/src/Base.ts | 11 ++++++----- packages/api/src/types.ts | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/api/src/Base.ts b/packages/api/src/Base.ts index 0a993b97e1..3990e0f5fb 100644 --- a/packages/api/src/Base.ts +++ b/packages/api/src/Base.ts @@ -26,7 +26,7 @@ import { Event, Hash, Metadata, Method, RuntimeVersion } from '@polkadot/types/i import { MethodFunction, ModulesWithMethods } from '@polkadot/types/Method'; import { StorageFunction } from '@polkadot/types/StorageKey'; import { Codec } from '@polkadot/types/types'; -import { assert, isFunction, isObject, isUndefined, logger } from '@polkadot/util'; +import { assert, compactStripLength, isFunction, isObject, isUndefined, logger, u8aToHex } from '@polkadot/util'; import SubmittableExtrinsic from './SubmittableExtrinsic'; @@ -410,9 +410,8 @@ export default abstract class ApiBase implements ApiBaseInterface>, params: Array, isSubscription?: boolean) => T ): QueryableStorageFunction { - const decorated: any = (...args: any): T => { - - return onCall( + const decorated: any = (...args: any): T => + onCall( (...args: any) => this._rpcRx.state .subscribeStorage([[method, args[0]]]) .pipe( @@ -426,7 +425,6 @@ export default abstract class ApiBase implements ApiBaseInterface onCall( @@ -439,6 +437,9 @@ export default abstract class ApiBase implements ApiBaseInterface + u8aToHex(compactStripLength(method(arg))[1]); + return this.decorateFunctionMeta(method, decorated) as QueryableStorageFunction; } diff --git a/packages/api/src/types.ts b/packages/api/src/types.ts index b91700683e..64887612e4 100644 --- a/packages/api/src/types.ts +++ b/packages/api/src/types.ts @@ -30,6 +30,7 @@ export interface DecoratedRpc { export interface QueryableStorageFunction extends StorageFunction { (arg?: any): OnCall; at: (hash: Uint8Array | string, arg?: any) => OnCall; + key: (arg?: any) => string; } export interface QueryableModuleStorage {