diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-05-10 05:05:20 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-05-23 06:20:33 +0800 |
commit | ae220c37dff04c8d4d22e48865a5a268000c2f12 (patch) | |
tree | 31d4a6fd66c8355e224b45819b87503bb0a30ac8 /packages/sol-compiler/src/compiler.ts | |
parent | 4cfeb6b8ace9c1613ac0581bd6ea52ff183701f9 (diff) | |
download | dexon-sol-tools-ae220c37dff04c8d4d22e48865a5a268000c2f12.tar dexon-sol-tools-ae220c37dff04c8d4d22e48865a5a268000c2f12.tar.gz dexon-sol-tools-ae220c37dff04c8d4d22e48865a5a268000c2f12.tar.bz2 dexon-sol-tools-ae220c37dff04c8d4d22e48865a5a268000c2f12.tar.lz dexon-sol-tools-ae220c37dff04c8d4d22e48865a5a268000c2f12.tar.xz dexon-sol-tools-ae220c37dff04c8d4d22e48865a5a268000c2f12.tar.zst dexon-sol-tools-ae220c37dff04c8d4d22e48865a5a268000c2f12.zip |
Add solcVersion to CompilerOpts
Diffstat (limited to 'packages/sol-compiler/src/compiler.ts')
-rw-r--r-- | packages/sol-compiler/src/compiler.ts | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/sol-compiler/src/compiler.ts b/packages/sol-compiler/src/compiler.ts index c17616246..2ebc5228e 100644 --- a/packages/sol-compiler/src/compiler.ts +++ b/packages/sol-compiler/src/compiler.ts @@ -74,6 +74,7 @@ export class Compiler { private _contractsDir: string; private _compilerSettings: solc.CompilerSettings; private _artifactsDir: string; + private _solcVersionIfExists: string | undefined; private _specifiedContracts: string[] | TYPE_ALL_FILES_IDENTIFIER; /** * Instantiates a new instance of the Compiler class. @@ -85,6 +86,7 @@ export class Compiler { ? JSON.parse(fs.readFileSync(CONFIG_FILE).toString()) : {}; this._contractsDir = opts.contractsDir || config.contractsDir || DEFAULT_CONTRACTS_DIR; + this._solcVersionIfExists = opts.solcVersion || config.solcVersion; this._compilerSettings = opts.compilerSettings || config.compilerSettings || DEFAULT_COMPILER_SETTINGS; this._artifactsDir = opts.artifactsDir || config.artifactsDir || DEFAULT_ARTIFACTS_DIR; this._specifiedContracts = opts.contracts || config.contracts || ALL_CONTRACTS_IDENTIFIER; @@ -139,9 +141,12 @@ export class Compiler { if (!shouldCompile) { return; } - const solcVersionRange = parseSolidityVersionRange(contractSource.source); - const availableCompilerVersions = _.keys(binPaths); - const solcVersion = semver.maxSatisfying(availableCompilerVersions, solcVersionRange); + let solcVersion = this._solcVersionIfExists; + if (_.isUndefined(solcVersion)) { + const solcVersionRange = parseSolidityVersionRange(contractSource.source); + const availableCompilerVersions = _.keys(binPaths); + solcVersion = semver.maxSatisfying(availableCompilerVersions, solcVersionRange); + } const fullSolcVersion = binPaths[solcVersion]; const compilerBinFilename = path.join(SOLC_BIN_DIR, fullSolcVersion); let solcjs: string; @@ -229,7 +234,7 @@ export class Compiler { sourceTreeHashHex, compiler: { name: 'solc', - version: solcVersion, + version: fullSolcVersion, settings: this._compilerSettings, }, }; |