@kubiklabs/wasmkit
Version:
Wasmkit is a development environment to compile, deploy, test, run cosmwasm contracts on different networks.
43 lines (42 loc) • 2.28 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.startLocalnet = void 0;
const chalk_1 = __importDefault(require("chalk"));
const child_process_1 = require("child_process");
const errors_1 = require("../../internal/core/errors");
const errors_list_1 = require("../../internal/core/errors-list");
async function startLocalnet(nodeType, clean, withExplorer, env) {
// read the wasmkit config for "localnetwork"
if (!(nodeType in env.config.localnetworks)) {
throw new errors_1.WasmkitError(errors_list_1.ERRORS.NETWORK.UNKNOWN_LOCAL_NETWORK, {
nodeType: nodeType
});
}
const localNetworkCfg = env.config.localnetworks[nodeType];
const localNetworkImage = localNetworkCfg.docker_image;
const rpcPort = localNetworkCfg.rpc_port;
const restPort = localNetworkCfg.rest_port;
const flags = (localNetworkCfg.flags ?? []).map(val => `-e ${val}`).join(' ');
const command = (localNetworkCfg.docker_command ?? '');
// TODO: check if docker image is present for <image_name>
const containerExists = (0, child_process_1.execSync)(`docker ps -a -q -f name=${nodeType}`);
// start the node with proper flags and env variables
if (clean && containerExists.toString().length > 0) {
console.log(`Removing existing container: ${chalk_1.default.green(nodeType)}`);
// stop container if running
(0, child_process_1.execSync)(`docker container stop ${nodeType}`);
// remove container
(0, child_process_1.execSync)(`docker container rm ${nodeType}`);
}
console.log(`Starting container: ${chalk_1.default.green(nodeType)}`);
(0, child_process_1.execSync)(`
docker run -d --name ${nodeType} -p ${restPort}:1317 -p ${rpcPort}:26657 ${flags} ${localNetworkImage}:latest ${command}
`);
// if started, prompt the user with endpoints
console.log(`Local network started with RPC port: ${chalk_1.default.green(rpcPort)}, REST port: ${chalk_1.default.green(restPort)}`);
// if explorer yes then start a wasmkit-explorer with same localnetwork cfg
}
exports.startLocalnet = startLocalnet;