@simbachain/web3-suites
Version:
common code for web3 suite plugins. Code in this repo can be used for truffle or hardhat, but is designed to be applicable to future web3 suite plugins as well.
253 lines • 9.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SimbaInfo = void 0;
const lib_1 = require("../lib");
const chalk_1 = __importDefault(require("chalk"));
/**
* this class is used for printing chalked project info
*/
class SimbaInfo {
/**
* helps us chalk nested objects
* @param obj
* @param objName
* @returns {string}
*/
static chalkObject(obj, objName) {
lib_1.SimbaConfig.log.debug(`:: ENTER : obj: ${JSON.stringify(obj)}`);
let chalkString = objName ? `\n${chalk_1.default.yellowBright(`${objName}`)}:` : `\n`;
if (Object.prototype.toString.call(obj) === '[object Object]') {
const _obj = obj;
chalkString += `${chalk_1.default.cyanBright(`\n{`)}`;
for (let key in _obj) {
chalkString += `\n\t${chalk_1.default.greenBright(key)}: ${chalk_1.default.cyanBright(JSON.stringify(_obj[key]))},`;
}
chalkString = chalkString.slice(0, -1);
chalkString += `${chalk_1.default.cyanBright(`\n}`)}`;
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return chalkString;
}
else
chalkString += ` ${chalk_1.default.cyanBright(`${obj}`)}`;
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return chalkString;
}
/**
* prints a chalked object
* @param obj
* @param objName
* @returns {void}
*/
static printChalkedObject(obj, objName) {
const entryParams = {
obj,
objName,
};
lib_1.SimbaConfig.log.debug(`:: ENTER : entryParams : ${JSON.stringify(entryParams)}`);
const chalkedObj = this.chalkObject(obj, objName);
lib_1.SimbaConfig.log.info(`${chalk_1.default.cyanBright(`${chalkedObj}`)}`);
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return;
}
/**
* gets value for a key from simba.json
* @param key
* @returns
*/
static getProjectConfig(key) {
lib_1.SimbaConfig.log.debug(`:: ENTER : key : ${key}`);
if (key) {
const val = lib_1.SimbaConfig.ProjectConfigStore.get(key) ?
lib_1.SimbaConfig.ProjectConfigStore.get(key) :
null;
lib_1.SimbaConfig.log.debug(`:: EXIT : val : ${JSON.stringify(val)}`);
return val;
}
else {
const allSimbaJson = lib_1.SimbaConfig.ProjectConfigStore.all;
lib_1.SimbaConfig.log.debug(`:: EXIT : returning all of simba.json`);
return allSimbaJson;
}
}
/**
* returns auth token from authconfig.json, or value for key in auth token in authconfig.json
* @param key - if not specified, then entire auth token is returned from authconfig.json
* @returns {any}
*/
static getAuthToken(key) {
lib_1.SimbaConfig.log.debug(`:: ENTER : key : ${key}`);
const baseURL = lib_1.SimbaConfig.retrieveBaseAPIURL();
const configBase = baseURL.split(".").join("_");
const authConfig = lib_1.SimbaConfig.ConfigStore.all;
if (!authConfig) {
lib_1.SimbaConfig.log.debug(`:: no info present in authconfig.json`);
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return null;
}
const authInfo = authConfig[configBase];
if (!authInfo) {
lib_1.SimbaConfig.log.debug(`:: no auth info set for ${configBase} in authconfig.json`);
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return null;
}
if (authInfo.SIMBAAUTH) {
if (authInfo.SIMBAAUTH.access_token) {
authInfo.SIMBAAUTH.access_token = "*****";
}
if (authInfo.SIMBAAUTH.refresh_token) {
authInfo.SIMBAAUTH.refresh_token = "*****";
}
}
if (key) {
const val = authInfo[key] !== undefined ?
lib_1.SimbaConfig.ConfigStore.get(key) :
null;
lib_1.SimbaConfig.log.debug(`:: EXIT : val : ${JSON.stringify(val)}`);
return val;
}
else {
lib_1.SimbaConfig.log.debug(`:: EXIT : returning all fields for ${configBase}`);
return authInfo;
}
}
/**
* prints chalked auth token
* @returns {void}
*/
static printAuthToken() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const authToken = this.getAuthToken();
this.printChalkedObject(authToken, "current_auth_token ('SIMBAAUTH')");
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return;
}
/**
* gets contracts_info from simba.json
* @returns {Record<any, any>}
*/
static getContractsInfo() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const contractsInfo = this.getProjectConfig("contracts_info") ?
this.getProjectConfig("contracts_info") :
{};
lib_1.SimbaConfig.log.debug(`:: EXIT : contracts_info : ${JSON.stringify(contractsInfo)}`);
return contractsInfo;
}
/**
* gets info for contractName from contracts_info in simba.json
* @param contractName
* @returns
*/
static getSingleContractInfo(contractName) {
lib_1.SimbaConfig.log.debug(`:: ENTER : contractName : ${contractName}`);
const contractsInfo = this.getContractsInfo();
const singleContractInfo = contractsInfo[contractName] ?
contractsInfo[contractName] :
{};
lib_1.SimbaConfig.log.debug(`:: EXIT : singleContractInfo : ${JSON.stringify(singleContractInfo)}`);
return singleContractInfo;
}
/**
* prints chalked single contract from contracts_info in simba.json
* @param contractName
* @returns
*/
static printSingleContract(contractName) {
lib_1.SimbaConfig.log.debug(`:: ENTER : contractName : ${contractName}`);
const contract = this.getSingleContractInfo(contractName);
this.printChalkedObject(contract, contractName);
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return;
}
/**
* prints chalked all contracts from contracts_info in simba.json
* @returns {void}
*/
static printAllContracts() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const allContracts = this.getContractsInfo();
for (let contractName in allContracts) {
this.printSingleContract(contractName);
}
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return;
}
/**
* prints chalked simba.json
* @returns {void}
*/
static printAllSimbaJson() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const allSimba = lib_1.SimbaConfig.ProjectConfigStore.all;
SimbaInfo.printChalkedObject(allSimba, "simba.json");
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return;
}
/**
* prints chalked organisation from simba.json
* @returns {void}
*/
static printOrg() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const org = this.getProjectConfig("organisation");
this.printChalkedObject(org, org.name);
lib_1.SimbaConfig.log.debug(`:: EXIT : `);
return;
}
/**
* prints chalked application from simba.json
* @returns {void}
*/
static printApp() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const app = this.getProjectConfig("application");
this.printChalkedObject(app, app.name);
lib_1.SimbaConfig.log.debug(`:: EXIT :`);
return;
}
/**
* prints chalked most_recent_deployment_info from simba.json
* @returns {void}
*/
static printMostRecentDeploymentInfo() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const deployInfo = this.getProjectConfig("most_recent_deployment_info");
this.printChalkedObject(deployInfo, "most_recent_deployment_info");
return;
}
/**
* prints chalked authProviderInfo from simba.json
* @returns {void}
*/
static printAuthProviderInfo() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const authProviderInfo = this.getProjectConfig("authProviderInfo");
this.printChalkedObject(authProviderInfo, "authProviderInfo");
return;
}
/**
* prints chalked web3Suite from simba.json
* @returns {void}
*/
static printWeb3Suite() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const web3Suite = this.getProjectConfig("web3Suite");
this.printChalkedObject(web3Suite, "web3Suite");
return;
}
/**
* prints chalked baseURL from simba.json
* @returns {void}
*/
static printBaseURL() {
lib_1.SimbaConfig.log.debug(`:: ENTER :`);
const baseURL = lib_1.SimbaConfig.retrieveBaseAPIURL();
this.printChalkedObject(baseURL, "baseURL");
return;
}
}
exports.SimbaInfo = SimbaInfo;
//# sourceMappingURL=simbainfo.js.map