import { TransactionObject } from 'web3/eth/types'; type Web3Method = (index: number) => TransactionObject; export async function collectArrayElements( method: Web3Method, account: string, ): Promise { const arrayElements = []; let noError = true; let index = 0; while (noError) { try { arrayElements.push(await method(index).call({ from: account })); index += 1; } catch (e) { noError = false; } } return arrayElements; }