UNPKG

@saberhq/sail

Version:

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

38 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMultipleAccounts = exports.chunks = void 0; const __1 = require(".."); function chunks(array, size) { return Array.apply(0, new Array(Math.ceil(array.length / size))).map((_, index) => array.slice(index * size, (index + 1) * size)); } exports.chunks = chunks; const GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99; 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 __1.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 }; }; exports.getMultipleAccounts = getMultipleAccounts; //# sourceMappingURL=fetchers.js.map