cc-zos
Version:
Command-line interface for the ZeppelinOS smart contract platform
41 lines (26 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _create = require('../scripts/create');
var _create2 = _interopRequireDefault(_create);
var _runWithTruffle = require('../utils/runWithTruffle');
var _runWithTruffle2 = _interopRequireDefault(_runWithTruffle);
var _input = require('../utils/input');
var _naming = require('../utils/naming');
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const name = 'create';
const signature = `${name} <alias>`;
const description = 'deploys a new upgradeable contract instance. Provide the <alias> you added your contract with, or <package>/<alias> to create a contract from a linked package.';
const register = program => program.command(signature, { noHelp: true }).usage('<alias> --network <network> [options]').description(description).option('--init [function]', `call function after creating contract. If none is given, 'initialize' will be used`).option('--args <arg1, arg2, ...>', 'provide initialization arguments for your contract if required').option('--force', 'force creation even if contracts have local modifications').withNetworkOptions().action(action);
async function action(contractFullName, options) {
const { initMethod, initArgs } = (0, _input.parseInit)(options, 'initialize');
const { force } = options;
const { contract: contractAlias, package: packageName } = (0, _naming.fromContractFullName)(contractFullName);
const args = _lodash2.default.pickBy({ packageName, contractAlias, initMethod, initArgs, force });
await (0, _runWithTruffle2.default)(async opts => await (0, _create2.default)(_extends({}, args, opts)), options);
}
exports.default = { name, signature, description, register, action };