@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
JavaScript
;
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