@authereum/zos
Version:
Command-line interface for the ZeppelinOS smart contract platform
57 lines • 3.17 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const Compiler_1 = require("../models/compiler/Compiler");
const SolidityContractsCompiler_1 = require("../models/compiler/solidity/SolidityContractsCompiler");
const name = 'compile';
const signature = `${name}`;
const description = `compiles all contracts in the current project`;
const register = program => program
.command(signature, undefined, { noHelp: true })
.description(description)
.option('--solc-version [version]', 'version of the solc compiler to use (value is written to configuration file for future runs, defaults to most recent release that satisfies contract pragmas)')
.option('--optimizer [on|off]', 'enables compiler optimizer (value is written to configuration file for future runs, defaults to off)')
.option('--optimizer-runs [runs]', 'specify number of runs if optimizer enabled (value is written to configuration file for future runs, defaults to 200)')
.option('--evm-version [evm]', `choose target evm version (value is written to configuration file for future runs, defaults to ${SolidityContractsCompiler_1.DEFAULT_EVM_VERSION})`)
.action(action);
function action(options) {
return __awaiter(this, void 0, void 0, function* () {
const { evmVersion, solcVersion: version, optimizer, optimizerRuns, } = options;
// Handle optimizer option:
//- on --optimizer or --optimizer=on, enable it
//- on --optimizer=off disable it
//- if no --optimizer is set, use default from project.json, or false
//- on any other --optimizer value, throw
let optimizerEnabled = undefined;
if (typeof optimizer === 'string') {
if (optimizer.toLowerCase() === 'on')
optimizerEnabled = true;
else if (optimizer.toLowerCase() === 'off')
optimizerEnabled = false;
else
throw new Error(`Invalid value ${optimizer} for optimizer flag (valid values are 'on' or 'off')`);
}
else if (typeof optimizer === 'boolean') {
optimizerEnabled = optimizer;
}
const compilerOptions = {
manager: 'zos',
evmVersion,
version,
optimizer: {
enabled: optimizerEnabled,
runs: optimizerRuns && parseInt(optimizerRuns),
},
};
yield Compiler_1.compile(compilerOptions);
});
}
exports.default = { name, signature, description, register, action };
//# sourceMappingURL=compile.js.map