Skip to content

Commit

Permalink
Merge pull request ethereum#2398 from ethereum/compiler_from_pragma
Browse files Browse the repository at this point in the history
pickup compiler version from pragma
  • Loading branch information
LianaHus authored Nov 15, 2019
2 parents 148d066 + db94d92 commit 87b6973
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/app/tabs/compileTab/compilerContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ class CompilerContainer {
* Update the compilation button with the name of the current file
*/
set currentFile (name = '') {
if (name && name !== '') {
this._setCompilerVersionFromPragma(name)
}
if (!this._view.compilationButton) return
const button = this.compilationButton(name.split('/').pop())
yo.update(this._view.compilationButton, button)
Expand Down Expand Up @@ -113,6 +116,23 @@ class CompilerContainer {
return el
}

_setCompilerVersionFromPragma (filename) {
this.compileTabLogic.fileManager.getFile(filename).then(data => {
const pragmaArr = data.match(/(pragma solidity (.+?);)/g)
if (pragmaArr && pragmaArr.length === 1) {
const pragmaStr = pragmaArr[0].replace('pragma solidity', '').trim()
const pragma = pragmaStr.substring(0, pragmaStr.length - 1)
const fixedVersions = this.data.allversions.filter(obj => !obj.prerelease).map(obj => obj.version)
const compilerToLoad = semver.maxSatisfying(fixedVersions, pragma)
const compilerPath = this.data.allversions.filter(obj => !obj.prerelease && obj.version === compilerToLoad)[0].path
if (this.data.selectedVersion !== compilerPath) {
this.data.selectedVersion = compilerPath
this._updateVersionSelector()
}
}
})
}

_retrieveVersion () {
let version = this._view.versionSelector.value
return version.substring(9, version.length)
Expand Down Expand Up @@ -243,6 +263,9 @@ class CompilerContainer {

compile (event) {
if (this.config.get('currentFile')) {
if (!this.data.selectedVersion.includes('nightly')) {
this._setCompilerVersionFromPragma(this.config.get('currentFile'))
}
this.compileTabLogic.runCompiler()
}
}
Expand Down

0 comments on commit 87b6973

Please sign in to comment.