diff --git a/packages/api-derive/src/democracy/referendums.ts b/packages/api-derive/src/democracy/referendums.ts index c78584f4e7..d46429da16 100644 --- a/packages/api-derive/src/democracy/referendums.ts +++ b/packages/api-derive/src/democracy/referendums.ts @@ -14,16 +14,17 @@ import { memo } from '../util'; export function referendums (api: ApiInterfaceRx): () => Observable { return memo((): Observable => - api.query.democracy?.nextTally + // V2 vs V1 (and early V2) + api.query.democracy?.lowestUnbaked || api.query.democracy?.nextTally ? api.queryMulti<[ReferendumIndex, ReferendumIndex]>([ - api.query.democracy.nextTally, + api.query.democracy.lowestUnbaked || api.query.democracy.nextTally, api.query.democracy.referendumCount ]).pipe( - switchMap(([nextTally, referendumCount]): Observable => - referendumCount?.gt(nextTally) && referendumCount?.gtn(0) + switchMap(([earliest, referendumCount]): Observable => + referendumCount?.gt(earliest) && referendumCount?.gtn(0) ? api.derive.democracy.referendumInfos( - [...Array(referendumCount.sub(nextTally).toNumber())].map((_, i): BN => - nextTally.addn(i) + [...Array(referendumCount.sub(earliest).toNumber())].map((_, i): BN => + earliest.addn(i) ) ) : of([])