From 20ee80bb1cbec6c1be70c73e52bcfcdf3a93cee6 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 10 Apr 2021 09:13:56 +0300 Subject: [PATCH] Adjust Westend known & detection --- packages/api/src/base/Init.ts | 2 +- .../api/src/base/{util.ts => capabilities.ts} | 20 +++++++++++-------- packages/types-known/src/spec/westend.ts | 19 ++++++++++-------- 3 files changed, 24 insertions(+), 17 deletions(-) rename packages/api/src/base/{util.ts => capabilities.ts} (91%) diff --git a/packages/api/src/base/Init.ts b/packages/api/src/base/Init.ts index ab8beac3e0da..25cf509f084a 100644 --- a/packages/api/src/base/Init.ts +++ b/packages/api/src/base/Init.ts @@ -18,8 +18,8 @@ import { cryptoWaitReady } from '@polkadot/util-crypto'; import { of } from '@polkadot/x-rxjs'; import { map, switchMap } from '@polkadot/x-rxjs/operators'; +import { detectedCapabilities } from './capabilities'; import { Decorate } from './Decorate'; -import { detectedCapabilities } from './util'; const KEEPALIVE_INTERVAL = 15000; const DEFAULT_BLOCKNUMBER = { unwrap: () => BN_ZERO }; diff --git a/packages/api/src/base/util.ts b/packages/api/src/base/capabilities.ts similarity index 91% rename from packages/api/src/base/util.ts rename to packages/api/src/base/capabilities.ts index 452364e3019e..45ba4b1b7ef9 100644 --- a/packages/api/src/base/util.ts +++ b/packages/api/src/base/capabilities.ts @@ -144,22 +144,26 @@ export function detectedCapabilities (api: ApiInterfaceRx, blockHash?: Uint8Arra api.query.system?.upgradedToTripleRefCount, api.query.staking?.storageVersion ]); - const keyed = filterEntries([ + const raws = filterEntries([ api.query.session?.queuedKeys ]); return combineLatest([ - // FIXME consts don't have .at as of yet... - of(extractResults(consts.original, consts)), + consts.filtered.length + ? blockHash + // FIXME consts don't have .at as of yet... + ? of([]) + : of(consts.filtered) + : of([]), queries.filtered.length ? blockHash ? combineLatest(queries.filtered.map((c) => c.at(blockHash))) : api.queryMulti(queries.filtered) : of([]), - keyed.filtered.length + raws.filtered.length ? blockHash - ? combineLatest(keyed.filtered.map((k) => api.rpc.state.getStorage.raw(k.key(), blockHash))) - : combineLatest(keyed.filtered.map((k) => api.rpc.state.getStorage.raw(k.key()))) + ? combineLatest(raws.filtered.map((k) => api.rpc.state.getStorage.raw(k.key(), blockHash))) + : combineLatest(raws.filtered.map((k) => api.rpc.state.getStorage.raw(k.key()))) : of([]) ]).pipe( map(([cResults, qResults, rResults]): Partial => @@ -167,9 +171,9 @@ export function detectedCapabilities (api: ApiInterfaceRx, blockHash?: Uint8Arra { accountIdLength: api.registry.createType('AccountId').encodedLength }, - cResults, + extractResults(cResults, consts), extractResults(qResults, queries), - extractResults(rResults, keyed) + extractResults(rResults, raws) ) ), take(1) diff --git a/packages/types-known/src/spec/westend.ts b/packages/types-known/src/spec/westend.ts index 793a970fbad4..899e62d263a5 100644 --- a/packages/types-known/src/spec/westend.ts +++ b/packages/types-known/src/spec/westend.ts @@ -6,15 +6,10 @@ import type { OverrideVersionedType } from '@polkadot/types/types'; const sharedTypes = { - AccountInfo: 'AccountInfoWithDualRefCount', - Address: 'MultiAddress', Keys: 'SessionKeys7B', - LookupSource: 'MultiAddress', ProxyType: { - _enum: ['Any', 'NonTransfer', 'Staking', 'SudoBalances', 'IdentityJudgement', 'CancelProxy' - ] - }, - ValidatorPrefs: 'ValidatorPrefsWithBlocked' + _enum: ['Any', 'NonTransfer', 'Staking', 'SudoBalances', 'IdentityJudgement', 'CancelProxy'] + } }; const addrAccountIdTypes = { @@ -72,9 +67,17 @@ const versioned: OverrideVersionedType[] = [ ...addrAccountIdTypes } }, + { + minmax: [48, 49], + types: { + ...sharedTypes, + AccountInfo: 'AccountInfoWithDualRefCount', + Keys: 'SessionKeys6' + } + }, { // 50 was supposed to have Beefy, didn't - minmax: [48, 50], + minmax: [50, 50], types: { ...sharedTypes, Keys: 'SessionKeys6'