UNPKG

@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
"use strict"; 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;