UNPKG

@j0nnyboi/amman

Version:

A modern mandatory toolbelt to help test solana SDK libraries and apps on a locally running validator.

48 lines 2.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.processAccounts = void 0; const web3_js_1 = require("@safecoin/web3.js"); const path_1 = __importDefault(require("path")); const assets_1 = require("../assets"); const config_1 = require("../utils/config"); const fs_1 = require("../utils/fs"); const log_1 = require("../utils/log"); async function processAccounts(accounts, accountsCluster, assetsFolder, forceClone) { const persistedAccountInfos = []; const accountsArgs = []; const accountsFolder = (0, config_1.fullAccountsDir)(assetsFolder); if (accounts.length > 0) { await (0, assets_1.handleFetchAccounts)(accountsCluster, accounts, accountsFolder, forceClone); for (const { accountId, executable, cluster } of accounts) { const accountPath = path_1.default.join(accountsFolder, `${accountId}.json`); if (await (0, fs_1.canAccess)(accountPath)) { accountsArgs.push('--account'); accountsArgs.push(accountId); accountsArgs.push(accountPath); const persistedAccountInfo = await (0, assets_1.loadAccount)(new web3_js_1.PublicKey(accountId), accountsFolder); persistedAccountInfos.push(persistedAccountInfo); } else { throw new Error(`Can't find account info file for account ${accountId} cloned from cluster ${cluster !== null && cluster !== void 0 ? cluster : accountsCluster}! \nMake sure the account exists locally or on that cluster and try again.`); } if (executable) { const executableId = await (0, assets_1.getExecutableAddress)(accountId); const executablePath = path_1.default.join(accountsFolder, `${executableId}.json`); if (await (0, fs_1.canAccess)(executablePath)) { accountsArgs.push('--account'); accountsArgs.push(executableId); accountsArgs.push(executablePath); } else { (0, log_1.logError)(`Can't find executable account info file for executable account ${accountId}`); } } } } return { accountsArgs, persistedAccountInfos, accountsFolder }; } exports.processAccounts = processAccounts; //# sourceMappingURL=process-accounts.js.map