diff options
author | Amir Bandeali <abandeali1@gmail.com> | 2018-02-18 09:51:19 +0800 |
---|---|---|
committer | Amir Bandeali <abandeali1@gmail.com> | 2018-02-21 05:19:12 +0800 |
commit | 6685cb3fba85d5052c67b19ad3fd33c4ccfe5b67 (patch) | |
tree | 856d74570d7be0c0852a3cf280b230a8397a2699 | |
parent | d770e462082e9bd62c1bb1fda5be1b0799026081 (diff) | |
download | dexon-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.json | 4 | ||||
-rw-r--r-- | packages/deployer/CHANGELOG.md | 2 | ||||
-rw-r--r-- | packages/deployer/src/compiler.ts | 19 |
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))); }); } /** |