aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmir Bandeali <abandeali1@gmail.com>2018-02-18 09:51:19 +0800
committerAmir Bandeali <abandeali1@gmail.com>2018-02-21 05:19:12 +0800
commit6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67 (patch)
tree856d74570d7be0c0852a3cf280b230a8397a2699
parentd770e462082e9bd62c1bb1fda5be1b0799026081 (diff)
downloaddexon-sol-tools-6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67.tar
dexon-sol-tools-6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67.tar.gz
dexon-sol-tools-6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67.tar.bz2
dexon-sol-tools-6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67.tar.lz
dexon-sol-tools-6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67.tar.xz
dexon-sol-tools-6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67.tar.zst
dexon-sol-tools-6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67.zip
Fix race condition
-rw-r--r--packages/contracts/package.json4
-rw-r--r--packages/deployer/CHANGELOG.md2
-rw-r--r--packages/deployer/src/compiler.ts19
3 files changed, 14 insertions, 11 deletions
diff --git a/packages/contracts/package.json b/packages/contracts/package.json
index b125697ae..6655df86f 100644
--- a/packages/contracts/package.json
+++ b/packages/contracts/package.json
@@ -9,10 +9,10 @@
},
"scripts": {
"build:watch": "tsc -w",
- "prebuild": "run-s clean copy_artifacts generate_contract_wrappers",
+ "prebuild": "run-s clean compile copy_artifacts generate_contract_wrappers",
"copy_artifacts": "copyfiles './src/artifacts/**/*' ./lib",
"build": "tsc",
- "test": "run-s compile build run_mocha",
+ "test": "run-s build run_mocha",
"run_mocha": "mocha 'lib/test/**/*.js' --timeout 10000 --bail --exit",
"compile:comment": "Yarn workspaces do not link binaries correctly so we need to reference them directly https://github.com/yarnpkg/yarn/issues/3846",
"compile": "node ../deployer/lib/src/cli.js compile --contracts ${npm_package_config_contracts} --contracts-dir src/contracts --artifacts-dir src/artifacts",
diff --git a/packages/deployer/CHANGELOG.md b/packages/deployer/CHANGELOG.md
index b184f41b9..f1e9d38ee 100644
--- a/packages/deployer/CHANGELOG.md
+++ b/packages/deployer/CHANGELOG.md
@@ -3,7 +3,7 @@
## v0.2.0 - _??_
* Check dependencies when determining if contracts should be recompiled.
-
+
## v0.1.0 - _February 16, 2018_
* Add the ability to pass in specific contracts to compile in CLI (#400)
diff --git a/packages/deployer/src/compiler.ts b/packages/deployer/src/compiler.ts
index 6eca4b57f..5004d4bb4 100644
--- a/packages/deployer/src/compiler.ts
+++ b/packages/deployer/src/compiler.ts
@@ -168,7 +168,6 @@ export class Compiler {
: Array.from(this._specifiedContracts.values());
await Promise.all(_.map(fileNames, async fileName => this._setCompileActionAsync(fileName)));
await Promise.all(_.map(fileNames, async fileName => this._compileContractAsync(fileName)));
-
this._solcErrors.forEach(errMsg => {
utils.consoleLog(errMsg);
});
@@ -185,10 +184,6 @@ export class Compiler {
if (!contractSpecificSourceData.shouldCompile) {
return;
}
- const source = this._contractSourcesIfExists[fileName];
- const input = {
- [fileName]: source,
- };
const fullSolcVersion = binPaths[contractSpecificSourceData.solc_version];
const solcBinPath = `./solc/solc_bin/${fullSolcVersion}`;
@@ -196,6 +191,10 @@ export class Compiler {
const solcInstance = solc.setupMethods(solcBin);
utils.consoleLog(`Compiling ${fileName}...`);
+ const source = this._contractSourcesIfExists[fileName];
+ const input = {
+ [fileName]: source,
+ };
const sourcesToCompile = {
sources: input,
};
@@ -271,10 +270,14 @@ export class Compiler {
contractNetworkData.solc_version !== contractSpecificSourceData.solc_version;
}
}
- _.forEach(contractSpecificSourceData.dependencies, async dependency => {
- await this._setCompileActionAsync(dependency);
+ await Promise.all(
+ _.map(contractSpecificSourceData.dependencies, async dependency => this._setCompileActionAsync(dependency)),
+ );
+ _.forEach(contractSpecificSourceData.dependencies, dependency => {
contractSpecificSourceData.shouldCompile =
- contractSpecificSourceData.shouldCompile || this._contractSourceData[dependency].shouldCompile;
+ contractSpecificSourceData.shouldCompile ||
+ (this._contractSourceData[dependency].shouldCompile &&
+ (this._specifiedContracts.has('*') || this._specifiedContracts.has(dependency)));
});
}
/**