diff options
author | Leonid <logvinov.leon@gmail.com> | 2018-02-21 02:55:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-21 02:55:10 +0800 |
commit | f60b00d116e525e5b789684e68b1541cedba1665 (patch) | |
tree | 9c8f33bafb1fb2eef5bfcaaefed781ccae6ffba9 /packages/deployer/src/compiler.ts | |
parent | 76afb6b1163182446a1f3646b4bc89b5dc271738 (diff) | |
parent | 3a36e0621f0ad0c77c14a04bdaa85131b57ef0ea (diff) | |
download | dexon-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.ts | 14 |
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) { |