UNPKG

@saberhq/sail

Version:

Account caching and batched loading for React-based Solana applications.

33 lines 1.18 kB
import { SailGetMultipleAccountsError } from ".."; export function chunks(array, size) { return Array.apply(0, new Array(Math.ceil(array.length / size))).map((_, index) => array.slice(index * size, (index + 1) * size)); } const GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99; export const getMultipleAccounts = async (connection, keys, onGetMultipleAccountsError, commitment = "confirmed") => { const result = await Promise.all(chunks(keys, GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE).map(async (chunk) => { try { return { keys: chunk, array: await connection.getMultipleAccountsInfo(chunk, commitment), }; } catch (e) { const error = new SailGetMultipleAccountsError(chunk, commitment, e); onGetMultipleAccountsError(error); return { keys: chunk, error, }; } })); const array = result .map((el) => { if ("error" in el) { return el.keys.map(() => el.error); } return el.array; }) .flat(); return { keys, array }; }; //# sourceMappingURL=fetchers.js.map