cc-zos
Version:
Command-line interface for the ZeppelinOS smart contract platform
37 lines (26 loc) • 1.44 kB
JavaScript
;
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);
}
};