UNPKG

vasku

Version:

TVM-Solidity contract development framework

111 lines (110 loc) 4.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCommands = exports.SE_ACTIONS = exports.GIVER_ACTIONS = exports.CLEAN = exports.SE = exports.GIVER = exports.RUN = exports.TEST = exports.COMPILE = void 0; const commander_1 = require("commander"); const compile_1 = require("../actions/compile"); const test_1 = require("../actions/test"); const run_1 = require("../actions/run"); const giver_1 = require("../actions/giver"); const clean_1 = require("../actions/clean"); const se_1 = require("../actions/se"); const package_1 = require("./package"); const giver_2 = require("./giver"); exports.COMPILE = 'compile'; exports.TEST = 'test'; exports.RUN = 'run'; exports.GIVER = 'giver'; exports.SE = 'se'; exports.CLEAN = 'clean'; exports.GIVER_ACTIONS = { INFO: 'info', SEND: 'send', DEPLOY: 'deploy' }; exports.SE_ACTIONS = { INFO: 'info', VERSION: 'version', START: 'start', STOP: 'stop', RESET: 'reset' }; function createCommands(config) { commander_1.program .name(package_1.packageJson.name) .version(package_1.packageJson.version); commander_1.program .command(exports.COMPILE) .description('compile Solidity contracts') .option('-a, --all', 'Compile all contracts') .action(async (options) => { await (0, compile_1.compile)(config, options.all); }); commander_1.program .command(exports.TEST) .addArgument(new commander_1.Argument('[patterns...]', 'part of test-file path')) .addOption(new commander_1.Option('-n, --network [network]', 'network').choices(Object.keys(config.networks))) .option('-c, --no-compile', 'don\'t compile') .description('run tests') .action(async (patterns, options) => { await (0, test_1.test)(config, patterns, options?.network, options?.compile); }); commander_1.program .command(exports.RUN) .addArgument(new commander_1.Argument('<script>', 'script path e.g. "./deploy/wallet.ts"')) .addOption(new commander_1.Option('-n, --network [network]', 'network').choices(Object.keys(config.networks))) .option('-c, --no-compile', 'don\'t compile') .description('run script') .action(async (script, options) => { await (0, run_1.run)(config, script, options?.network, options?.compile); }); commander_1.program .command(exports.GIVER) .addArgument(new commander_1.Argument('<network>', 'network').choices(Object.keys(config.networks))) .addArgument(new commander_1.Argument('<action>', 'action').choices(Object.values(exports.GIVER_ACTIONS))) .option(giver_2.GIVER_SEND_FLAGS.to, 'address to send coins') .option(giver_2.GIVER_SEND_FLAGS.value, 'coins value e.g. "0.1"') .description('manage giver') .action(async (network, action, options) => { const validationResult = (0, giver_2.validateGiverSendOptions)(options); switch (action) { case exports.GIVER_ACTIONS.INFO: await (0, giver_1.giverInfo)(config, network); break; case exports.GIVER_ACTIONS.SEND: if (validationResult.value === undefined) console.error(validationResult.error); else await (0, giver_1.giverSend)(config, network, validationResult.value); break; case exports.GIVER_ACTIONS.DEPLOY: await (0, giver_1.giverDeploy)(config, network); break; } }); commander_1.program .command(exports.SE) .addArgument(new commander_1.Argument('[action]', 'action').choices(Object.values(exports.SE_ACTIONS))) .description('manage local node Simple Emulator') .action(async (action) => { switch (action) { case exports.SE_ACTIONS.INFO: await (0, se_1.seInfo)(); break; case exports.SE_ACTIONS.VERSION: await (0, se_1.seVersion)(); break; case exports.SE_ACTIONS.START: await (0, se_1.seStart)(config.se); break; case exports.SE_ACTIONS.STOP: await (0, se_1.seStop)(); break; case exports.SE_ACTIONS.RESET: await (0, se_1.seReset)(); break; } }); commander_1.program .command(exports.CLEAN) .description('clean build and cache directories') .action(() => { (0, clean_1.clean)(config.paths); }); } exports.createCommands = createCommands;