From 4e881cd291d19b61ef83ac7f2181a42890beffab Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Sat, 29 Sep 2018 21:13:55 -0400 Subject: [PATCH] rebase fixes --- lib/modules/deployment/index.js | 36 +++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/lib/modules/deployment/index.js b/lib/modules/deployment/index.js index c33966a36..210af369a 100644 --- a/lib/modules/deployment/index.js +++ b/lib/modules/deployment/index.js @@ -49,7 +49,37 @@ class DeployManager { } self.logger.info(__("deploying contracts")); - self.events.emit("deploy:beforeAll"); + async.waterfall([ + function (next) { + self.plugins.emitAndRunActionsForEvent("deploy:beforeAll", next); + }, + function () { + const contractDeploys = {}; + const errors = []; + contracts.forEach(contract => { + function deploy(result, callback) { + if (typeof result === 'function') { + callback = result; + } + contract._gasLimit = self.gasLimit; + self.events.request('deploy:contract', contract, (err) => { + if (err) { + contract.error = err.message || err; + self.logger.error(err.message || err); + errors.push(err); + } + callback(); + }); + } + + const className = contract.className; + if (!contractDependencies[className] || contractDependencies[className].length === 0) { + contractDeploys[className] = deploy; + return; + } + contractDeploys[className] = cloneDeep(contractDependencies[className]); + contractDeploys[className].push(deploy); + }); try { async.auto(contractDeploys, 1, function(_err, _results) { @@ -71,9 +101,7 @@ class DeployManager { done(__('Error deploying')); } } - self.logger.info(__("finished deploying contracts")); - done(err); - }); + ]); }); }); }