From 60640b4c6c6a7d79236dc190e992af41b0c2dada Mon Sep 17 00:00:00 2001 From: Jaco Date: Wed, 8 Jun 2022 15:45:48 +0200 Subject: [PATCH] Update `derive.bagsList` to detect `voterList` pallet (#4910) * Update `derive.bagsList` to detect `voterList` pallet * Adjust * Adjust --- CHANGELOG.md | 2 ++ packages/api-derive/src/bagsList/get.ts | 6 +++--- packages/api-derive/src/bagsList/listNodes.ts | 2 +- packages/api-derive/src/bundle.ts | 5 +++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71bfe2f803..8794f87ff8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,10 @@ Changes: - Add aliases for `DispatchError{U8, U8a}` (default to new `U8a` variant) - Align `DispatchError` definition with latest Substrate - Adjust contracts RPC definitions with `DispatchError` return +- Ensure `blockHash` is passed through with `era` sign options - Workaround for default calls on chains with non-standard indexes - Optimization for value returns on merged queries +- Update `derive.bagsList` to detect `voterList` pallet ## 8.7.1 Jun 4, 2022 diff --git a/packages/api-derive/src/bagsList/get.ts b/packages/api-derive/src/bagsList/get.ts index 42018e8afa..78c4a42450 100644 --- a/packages/api-derive/src/bagsList/get.ts +++ b/packages/api-derive/src/bagsList/get.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import type { Observable } from 'rxjs'; -import type { Option } from '@polkadot/types'; +import type { Option, u64 } from '@polkadot/types'; import type { PalletBagsListListBag } from '@polkadot/types/lookup'; import type { BN } from '@polkadot/util'; import type { DeriveApi } from '../types'; @@ -43,7 +43,7 @@ export function _getIds (instanceId: string, api: DeriveApi): (ids: (BN | number const ids = _ids.map((id) => bnToBn(id)); return ids.length - ? api.query.listBags.multi[]>(ids).pipe( + ? (api.query.voterList || api.query.bagsList).listBags.multi>(ids).pipe( map((bags) => orderBags(ids, bags)) ) : of([]); @@ -52,7 +52,7 @@ export function _getIds (instanceId: string, api: DeriveApi): (ids: (BN | number export function all (instanceId: string, api: DeriveApi): () => Observable { return memo(instanceId, (): Observable => - api.query.bagsList.listBags.keys().pipe( + (api.query.voterList || api.query.bagsList).listBags.keys<[u64]>().pipe( switchMap((keys) => api.derive.bagsList._getIds(keys.map(({ args: [id] }) => id)) ), diff --git a/packages/api-derive/src/bagsList/listNodes.ts b/packages/api-derive/src/bagsList/listNodes.ts index 8c681e58ef..b55f30728e 100644 --- a/packages/api-derive/src/bagsList/listNodes.ts +++ b/packages/api-derive/src/bagsList/listNodes.ts @@ -18,7 +18,7 @@ function traverseLinks (api: DeriveApi, head: AccountId32 | string): Observable< return subject.pipe( switchMap((account) => - api.query.bagsList.listNodes(account) + (api.query.voterList || api.query.bagsList).listNodes>(account) ), tap((node: Option): void => { nextTick((): void => { diff --git a/packages/api-derive/src/bundle.ts b/packages/api-derive/src/bundle.ts index 174e312589..8d847c07c1 100644 --- a/packages/api-derive/src/bundle.ts +++ b/packages/api-derive/src/bundle.ts @@ -23,8 +23,9 @@ export { lazyDeriveSection }; // Enable derive only if some of these modules are available const checks: Record = { bagsList: { - instances: ['bagsList'], - methods: [] + instances: ['voterList', 'bagsList'], + methods: [], + withDetect: true }, contracts: { instances: ['contracts'],