UNPKG

vasku

Version:

TVM-Solidity contract development framework

72 lines (71 loc) 2.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.make = void 0; const path_1 = __importDefault(require("path")); const everdev_1 = require("everdev"); const colors_1 = require("colors"); const artifacts_1 = require("./artifacts"); const generateTypeScript_1 = require("./generators/generateTypeScript"); const onlyErrorConsoleTerminal = new class { log(..._0) { } write(_0) { } writeError(text) { process.stderr.write(text); } }(); /** * Compile all contracts * @param config * @param contracts * ['A.tsol', 'B.tsol', 'x/C.tsol'] */ async function make(config, contracts) { await (0, everdev_1.runCommand)(everdev_1.consoleTerminal, 'sol set', { compiler: config.compile.compiler, linker: config.compile.linker }); for (let i = 0; i < contracts.length; i++) { const contract = contracts[i]; const directory = path_1.default.dirname(contract); const name = path_1.default.basename(contract); const directoryText = directory === '.' ? '' : directory + '/'; console.log(`${(0, colors_1.green)('•')} ${(0, colors_1.grey)(directoryText)}${name}`); await compile(config.paths, directory, name); await wrap(config.paths, directory, name); (0, generateTypeScript_1.generateTypeScript)(config.paths, directory, name); } } exports.make = make; /** * Compile contract * @param config * @param directory * 'x' * @param name * 'C.tsol' */ async function compile(config, directory, name) { await (0, everdev_1.runCommand)(everdev_1.consoleTerminal, 'sol compile', { file: path_1.default.resolve(process.cwd(), config.contracts, directory, name), outputDir: path_1.default.resolve(process.cwd(), config.build, directory) }); } /** * Wrap contract data in *.ts constant * @param config * @param directory * 'x' * @param name * 'C.tsol' */ async function wrap(config, directory, name) { const nameWithoutExtension = path_1.default.parse(name).name; await (0, everdev_1.runCommand)(onlyErrorConsoleTerminal, 'js wrap', { file: path_1.default.resolve(process.cwd(), config.build, directory, `${nameWithoutExtension}${artifacts_1.ABI_JSON}`), export: 'es6-default', output: path_1.default.resolve(process.cwd(), config.build, directory, `${nameWithoutExtension}${artifacts_1.CONTENT_TS}`) }); }