@patchworkdev/pdk
Version:
Patchwork Development Kit
60 lines (59 loc) • 2.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.status = status;
const config_1 = require("../../common/helpers/config");
const text_1 = require("../../common/helpers/text");
const lockFile_1 = __importDefault(require("../../services/lockFile"));
const docker_1 = require("../dev/services/docker");
async function status(configPath) {
const patchworkConfig = await (0, config_1.importPatchworkConfig)(configPath);
if (!patchworkConfig) {
console.error('Error loading Patchwork config');
return;
}
const lockFileManager = new lockFile_1.default(configPath);
const dockerService = new docker_1.DockerService(configPath);
const networks = {};
for (const [networkName, network] of Object.entries(patchworkConfig.networks ?? [])) {
networks[networkName] = {
name: network.chain.name,
id: network.chain.id,
rpc: network.rpc,
};
}
const deployments = {};
for (const [contractName, contract] of Object.entries(patchworkConfig.contracts ?? {})) {
if (typeof contract !== 'string') {
for (const [networkKey, network] of Object.entries(patchworkConfig.networks ?? [])) {
const deployment = lockFileManager.getLatestDeploymentForContract((0, text_1.pascalCase)(contract.name), networkKey);
if (!deployments[networkKey]) {
deployments[networkKey] = {};
}
if (deployment) {
deployments[networkKey][contractName] = deployment.address;
}
else {
deployments[networkKey][contractName] = '-';
}
}
}
}
const containers = await dockerService.getContainerStatus((0, text_1.dockerProjectName)(patchworkConfig.name));
const containerTable = {};
containers.map((container) => {
containerTable[container.id] = {
name: container.name,
privatePort: container.privatePort?.toString() ?? '-',
publicPort: container.publicPort?.toString() ?? '-',
};
});
console.log('***************networks****************');
console.table(networks);
console.log('***************deployments****************');
console.table(deployments);
console.log('***************containers****************');
console.table(containerTable);
}