Commit e14d029c authored by Iuri Matias's avatar Iuri Matias

refactor deployer into a waterfall

parent 30d67d66
...@@ -26,7 +26,7 @@ var runTest = function(filename, web3) { ...@@ -26,7 +26,7 @@ var runTest = function(filename, web3) {
}, },
function runTests(contracts, next) { function runTests(contracts, next) {
let test = contracts.MyTest; let test = contracts.MyTest;
TestRunner.runTest("SimpleStorage", test, accounts, next); TestRunner.runTest("SimpleStorage", test, next);
} }
], function() { ], function() {
}); });
......
...@@ -5,6 +5,8 @@ var async = require('async'); ...@@ -5,6 +5,8 @@ var async = require('async');
function deployAll(compileResult, web3, accounts, callback) { function deployAll(compileResult, web3, accounts, callback) {
let compiledObject = {}, contracts = {}; let compiledObject = {}, contracts = {};
async.waterfall([
function getContractData(next) {
for (let contractFile in compileResult) { for (let contractFile in compileResult) {
for (let contractName in compileResult[contractFile]) { for (let contractName in compileResult[contractFile]) {
let contract = compileResult[contractFile][contractName]; let contract = compileResult[contractFile][contractName];
...@@ -23,8 +25,10 @@ function deployAll(compileResult, web3, accounts, callback) { ...@@ -23,8 +25,10 @@ function deployAll(compileResult, web3, accounts, callback) {
compiledObject[className].className = className; compiledObject[className].className = className;
} }
} }
next();
async.eachOfLimit(compiledObject, 1, function(contract, contractName, next) { },
function deployContracts(next) {
async.eachOfLimit(compiledObject, 1, function(contract, contractName, nextEach) {
let contractObject = new web3.eth.Contract(contract.abi); let contractObject = new web3.eth.Contract(contract.abi);
let contractCode = "0x" + contract.code; let contractCode = "0x" + contract.code;
...@@ -57,11 +61,14 @@ function deployAll(compileResult, web3, accounts, callback) { ...@@ -57,11 +61,14 @@ function deployAll(compileResult, web3, accounts, callback) {
contracts[contractName] = contractObject; contracts[contractName] = contractObject;
next(); nextEach();
}); });
}, function() { }, function() {
callback(null, contracts); next(null, contracts);
}); });
}
], callback);
} }
module.exports = { module.exports = {
......
...@@ -2,7 +2,7 @@ var async = require('async'); ...@@ -2,7 +2,7 @@ var async = require('async');
var changeCase = require('change-case'); var changeCase = require('change-case');
require('colors'); require('colors');
function runTest(testName, testObject, accounts, callback) { function runTest(testName, testObject, callback) {
let runList = []; let runList = [];
let specialFunctions = ['beforeAll']; let specialFunctions = ['beforeAll'];
let availableFunctions = testObject._jsonInterface.filter((x) => x.type === 'function').map((x) => x.name); let availableFunctions = testObject._jsonInterface.filter((x) => x.type === 'function').map((x) => x.name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment