UNPKG

@saberhq/sail

Version:

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

37 lines 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeListMemoKey = exports.uniqKeys = exports.serializeKeys = exports.accountsEqual = void 0; const tslib_1 = require("tslib"); const solana_contrib_1 = require("@saberhq/solana-contrib"); const web3_js_1 = require("@solana/web3.js"); const lodash_uniq_1 = tslib_1.__importDefault(require("lodash.uniq")); tslib_1.__exportStar(require("./falsy"), exports); tslib_1.__exportStar(require("./fetchNullable"), exports); const accountsEqual = (a, b) => { if (a && b) { return a.accountInfo.data.equals(b.accountInfo.data); } return false; }; exports.accountsEqual = accountsEqual; const serializeKeys = (keys) => { return keys.map((k) => (k ? k.toString() : k)); }; exports.serializeKeys = serializeKeys; /** * Generates a list of unique {@link PublicKey}s. * @param keys * @returns */ const uniqKeys = (keys) => (0, lodash_uniq_1.default)(keys.map((key) => key.toString())).map((key) => new web3_js_1.PublicKey(key)); exports.uniqKeys = uniqKeys; /** * Makes a memo key for a list of strings. * @param list * @returns */ const makeListMemoKey = (list) => { return (0, solana_contrib_1.mapSome)(list, (ms) => JSON.stringify(ms.map((mint) => (0, solana_contrib_1.mapSome)(mint, (m) => m.toString())))); }; exports.makeListMemoKey = makeListMemoKey; //# sourceMappingURL=index.js.map