aboutsummaryrefslogtreecommitdiffstats
path: root/packages/deployer/src/compiler.ts
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2018-02-21 02:55:10 +0800
committerGitHub <noreply@github.com>2018-02-21 02:55:10 +0800
commitf60b00d116e525e5b789684e68b1541cedba1665 (patch)
tree9c8f33bafb1fb2eef5bfcaaefed781ccae6ffba9 /packages/deployer/src/compiler.ts
parent76afb6b1163182446a1f3646b4bc89b5dc271738 (diff)
parent3a36e0621f0ad0c77c14a04bdaa85131b57ef0ea (diff)
downloaddexon-sol-tools-f60b00d116e525e5b789684e68b1541cedba1665.tar
dexon-sol-tools-f60b00d116e525e5b789684e68b1541cedba1665.tar.gz
dexon-sol-tools-f60b00d116e525e5b789684e68b1541cedba1665.tar.bz2
dexon-sol-tools-f60b00d116e525e5b789684e68b1541cedba1665.tar.lz
dexon-sol-tools-f60b00d116e525e5b789684e68b1541cedba1665.tar.xz
dexon-sol-tools-f60b00d116e525e5b789684e68b1541cedba1665.tar.zst
dexon-sol-tools-f60b00d116e525e5b789684e68b1541cedba1665.zip
Merge branch 'development' into feature/web3-abi-v2-types
Diffstat (limited to 'packages/deployer/src/compiler.ts')
-rw-r--r--packages/deployer/src/compiler.ts14
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/deployer/src/compiler.ts b/packages/deployer/src/compiler.ts
index 63db6c865..2b0b81c44 100644
--- a/packages/deployer/src/compiler.ts
+++ b/packages/deployer/src/compiler.ts
@@ -17,6 +17,7 @@ import {
import { utils } from './utils/utils';
const SOLIDITY_FILE_EXTENSION = '.sol';
+const ALL_CONTRACTS_IDENTIFIER = '*';
export class Compiler {
private _contractsDir: string;
@@ -25,6 +26,7 @@ export class Compiler {
private _artifactsDir: string;
private _contractSourcesIfExists?: ContractSources;
private _solcErrors: Set<string>;
+ private _specifiedContracts: Set<string>;
/**
* Recursively retrieves Solidity source code from directory.
* @param dirPath Directory to search.
@@ -106,6 +108,7 @@ export class Compiler {
this._optimizerEnabled = opts.optimizerEnabled;
this._artifactsDir = opts.artifactsDir;
this._solcErrors = new Set();
+ this._specifiedContracts = opts.specifiedContracts;
}
/**
* Compiles all Solidity files found in contractsDir and writes JSON artifacts to artifactsDir.
@@ -136,6 +139,8 @@ export class Compiler {
const contractName = path.basename(contractBaseName, SOLIDITY_FILE_EXTENSION);
const currentArtifactPath = `${this._artifactsDir}/${contractName}.json`;
const sourceHash = `0x${ethUtil.sha3(source).toString('hex')}`;
+ const isContractSpecified =
+ this._specifiedContracts.has(ALL_CONTRACTS_IDENTIFIER) || this._specifiedContracts.has(contractName);
let currentArtifactString: string;
let currentArtifact: ContractArtifact;
@@ -150,11 +155,12 @@ export class Compiler {
oldNetworks = currentArtifact.networks;
const oldNetwork: ContractData = oldNetworks[this._networkId];
shouldCompile =
- _.isUndefined(oldNetwork) ||
- oldNetwork.keccak256 !== sourceHash ||
- oldNetwork.optimizer_enabled !== this._optimizerEnabled;
+ (_.isUndefined(oldNetwork) ||
+ oldNetwork.keccak256 !== sourceHash ||
+ oldNetwork.optimizer_enabled !== this._optimizerEnabled) &&
+ isContractSpecified;
} catch (err) {
- shouldCompile = true;
+ shouldCompile = isContractSpecified;
}
if (!shouldCompile) {