From 6cfad070aac319c74cb087cb0fdfcf5842995663 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 16 Oct 2018 10:31:08 +0200 Subject: [PATCH] Properly calculate AccountIndex sets --- packages/api-observable/src/Combined.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/api-observable/src/Combined.ts b/packages/api-observable/src/Combined.ts index 294089cdd7..81965fd1f3 100644 --- a/packages/api-observable/src/Combined.ts +++ b/packages/api-observable/src/Combined.ts @@ -29,15 +29,17 @@ export default class ApiCombined extends ApiCalls { const lastIndex = nextEnum ? nextEnum.toBn() : new BN(0); + const setSize = ENUMSET_SIZE.toNumber(); + const enumRange = [...Array(lastIndex.div(ENUMSET_SIZE).toNumber() + 1).keys()]; return this.combine( - Array(lastIndex.div(ENUMSET_SIZE).toNumber() + 1).map((_, i) => - this.getAccountEnumSet(i * ENUMSET_SIZE.toNumber()) + enumRange.map((index) => + this.getAccountEnumSet(1 + (index * setSize)) ), (all: Array | undefined> = []) => { return all.reduce((result, list = [], outerIndex: number) => { list.forEach((accountId, innerIndex) => { - const index = (outerIndex * ENUMSET_SIZE.toNumber()) + innerIndex; + const index = (outerIndex * setSize) + innerIndex; result[accountId.toString()] = new AccountIndex(index); });