UNPKG

cc-zos

Version:

Command-line interface for the ZeppelinOS smart contract platform

37 lines (26 loc) 1.44 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _stdout = require('../utils/stdout'); var _stdout2 = _interopRequireDefault(_stdout); var _ControllerFor = require('../models/network/ControllerFor'); var _ControllerFor2 = _interopRequireDefault(_ControllerFor); var _ScriptError = require('../models/errors/ScriptError'); var _ScriptError2 = _interopRequireDefault(_ScriptError); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = async function update({ packageName, contractAlias, proxyAddress, initMethod, initArgs, all, network, force = false, txParams = {}, networkFile = undefined }) { if (!packageName && !contractAlias && !proxyAddress && !all) { throw Error('The package name, contract name, or address to update must be provided, or set the `all` flag to update all contracts in the application.'); } const controller = new _ControllerFor2.default(network, txParams, networkFile); try { await controller.checkLocalContractsDeployed(!force); const proxies = await controller.upgradeProxies(packageName, contractAlias, proxyAddress, initMethod, initArgs); proxies.forEach(proxy => (0, _stdout2.default)(proxy.address)); controller.writeNetworkPackageIfNeeded(); } catch (error) { const cb = () => controller.writeNetworkPackageIfNeeded(); throw new _ScriptError2.default(error, cb); } };