2018-09-11 09:16:57 -07:00
|
|
|
import { TransactionObject } from 'web3/eth/types';
|
|
|
|
|
|
|
|
type Web3Method<T> = (index: number) => TransactionObject<T>;
|
|
|
|
|
|
|
|
export async function collectArrayElements<T>(
|
|
|
|
method: Web3Method<T>,
|
|
|
|
account: string,
|
|
|
|
): Promise<T[]> {
|
2018-09-10 09:55:26 -07:00
|
|
|
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;
|
|
|
|
}
|