Bump metadata (#5233)
* Bump metadata * historyDepth as const * bagsList rename * CHANGELOG
This commit is contained in:
@@ -13,6 +13,7 @@ import { map, of, switchMap } from 'rxjs';
|
||||
import { BN_ZERO, bnToBn, objectSpread } from '@polkadot/util';
|
||||
|
||||
import { memo } from '../util';
|
||||
import { getQueryInterface } from './util';
|
||||
|
||||
function orderBags (ids: BN[], bags: Option<PalletBagsListListBag>[]): Bag[] {
|
||||
const sorted = ids
|
||||
@@ -36,11 +37,13 @@ function orderBags (ids: BN[], bags: Option<PalletBagsListListBag>[]): Bag[] {
|
||||
}
|
||||
|
||||
export function _getIds (instanceId: string, api: DeriveApi): (ids: (BN | number)[]) => Observable<Bag[]> {
|
||||
const query = getQueryInterface(api);
|
||||
|
||||
return memo(instanceId, (_ids: (BN | number)[]): Observable<Bag[]> => {
|
||||
const ids = _ids.map((id) => bnToBn(id));
|
||||
|
||||
return ids.length
|
||||
? (api.query.voterList || api.query.bagsList).listBags.multi<Option<PalletBagsListListBag>>(ids).pipe(
|
||||
? query.listBags.multi<Option<PalletBagsListListBag>>(ids).pipe(
|
||||
map((bags) => orderBags(ids, bags))
|
||||
)
|
||||
: of([]);
|
||||
@@ -48,8 +51,10 @@ export function _getIds (instanceId: string, api: DeriveApi): (ids: (BN | number
|
||||
}
|
||||
|
||||
export function all (instanceId: string, api: DeriveApi): () => Observable<Bag[]> {
|
||||
const query = getQueryInterface(api);
|
||||
|
||||
return memo(instanceId, (): Observable<Bag[]> =>
|
||||
(api.query.voterList || api.query.bagsList).listBags.keys<[u64]>().pipe(
|
||||
query.listBags.keys<[u64]>().pipe(
|
||||
switchMap((keys) =>
|
||||
api.derive.bagsList._getIds(keys.map(({ args: [id] }) => id))
|
||||
),
|
||||
|
||||
@@ -12,13 +12,15 @@ import { BehaviorSubject, map, of, switchMap, tap, toArray } from 'rxjs';
|
||||
import { nextTick } from '@polkadot/util';
|
||||
|
||||
import { memo } from '../util';
|
||||
import { getQueryInterface } from './util';
|
||||
|
||||
function traverseLinks (api: DeriveApi, head: AccountId32 | string): Observable<PalletBagsListListNode[]> {
|
||||
const subject = new BehaviorSubject<AccountId32 | string>(head);
|
||||
const query = getQueryInterface(api);
|
||||
|
||||
return subject.pipe(
|
||||
switchMap((account) =>
|
||||
(api.query.voterList || api.query.bagsList).listNodes<Option<PalletBagsListListNode>>(account)
|
||||
query.listNodes<Option<PalletBagsListListNode>>(account)
|
||||
),
|
||||
tap((node: Option<PalletBagsListListNode>): void => {
|
||||
nextTick((): void => {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// Copyright 2017-2022 @polkadot/api-derive authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { QueryableStorage } from '@polkadot/api-base/types';
|
||||
import type { DeriveApi } from '../types';
|
||||
|
||||
export function getQueryInterface (api: DeriveApi): QueryableStorage<'rxjs'>['voterBagsList'] {
|
||||
return (
|
||||
// latest substrate (latest always first)
|
||||
api.query.voterBagsList ||
|
||||
// previous substrate
|
||||
api.query.bagsList ||
|
||||
// latest polkadot
|
||||
api.query.voterList
|
||||
);
|
||||
}
|
||||
@@ -27,7 +27,7 @@ const checks: Record<string, Avail> = {
|
||||
methods: []
|
||||
},
|
||||
bagsList: {
|
||||
instances: ['voterList', 'bagsList'],
|
||||
instances: ['voterBagsList', 'voterList', 'bagsList'],
|
||||
methods: [],
|
||||
withDetect: true
|
||||
},
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { Observable } from 'rxjs';
|
||||
import type { Option, u32 } from '@polkadot/types';
|
||||
import type { ActiveEraInfo, EraIndex } from '@polkadot/types/interfaces';
|
||||
import type { u32 } from '@polkadot/types';
|
||||
import type { EraIndex } from '@polkadot/types/interfaces';
|
||||
import type { BN } from '@polkadot/util';
|
||||
import type { DeriveApi } from '../types';
|
||||
|
||||
import { map } from 'rxjs';
|
||||
import { combineLatest, map, of } from 'rxjs';
|
||||
|
||||
import { BN_ONE, BN_ZERO } from '@polkadot/util';
|
||||
|
||||
@@ -15,9 +15,11 @@ import { memo } from '../util';
|
||||
|
||||
export function erasHistoric (instanceId: string, api: DeriveApi): (withActive?: boolean) => Observable<EraIndex[]> {
|
||||
return memo(instanceId, (withActive?: boolean): Observable<EraIndex[]> =>
|
||||
api.queryMulti<[Option<ActiveEraInfo>, u32]>([
|
||||
api.query.staking.activeEra,
|
||||
api.query.staking.historyDepth
|
||||
combineLatest([
|
||||
api.query.staking.activeEra(),
|
||||
api.consts.staking.historyDepth
|
||||
? of(api.consts.staking.historyDepth)
|
||||
: api.query.staking.historyDepth<u32>()
|
||||
]).pipe(
|
||||
map(([activeEraOpt, historyDepth]): EraIndex[] => {
|
||||
const result: EraIndex[] = [];
|
||||
|
||||
Reference in New Issue
Block a user