Commit 091478ec authored by Alex Beregszaszi's avatar Alex Beregszaszi

Load version list from list.json

parent 634ba33f
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
<link rel="icon" type="x-icon" href="icon.png"> <link rel="icon" type="x-icon" href="icon.png">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<script src="https://ethereum.github.io/solc-bin/bin/list.js"></script>
<script src="assets/js/ballot.sol.js"></script> <script src="assets/js/ballot.sol.js"></script>
</head> </head>
......
/* global alert, confirm, prompt, Option, Worker, soljsonSources */ /* global alert, confirm, prompt, Option, Worker */
var $ = require('jquery'); var $ = require('jquery');
var semver = require('semver'); var semver = require('semver');
...@@ -510,36 +510,44 @@ var run = function () { ...@@ -510,36 +510,44 @@ var run = function () {
loadVersion($('#versionSelector').val()); loadVersion($('#versionSelector').val());
}); });
// var soljsonSources is provided by bin/list.js $.getJSON('https://ethereum.github.io/solc-bin/bin/list.json', function (data, status) {
if (window.soljsonSources !== undefined) { // loading failed for some reason, fall back to local compiler
// populate selector list with available versions if (status !== 'success') {
$.each(soljsonSources, function (i, file) { $('#versionSelector').append(new Option('latest local version', 'builtin'));
if (file) {
var version = file.replace(/soljson-(.*).js/, '$1'); loadVersion('builtin');
$('#versionSelector').append(new Option(version, file)); return;
} }
// populate version dropdown with all available compiler versions
// NOTE: the list currently is oldest first
$.each(data.builds.reverse(), function (i, build) {
$('#versionSelector').append(new Option(build.version + '-' + build.prerelease, build.path));
}); });
$('#versionSelector').attr('disabled', false); $('#versionSelector').attr('disabled', false);
// load initial version // always include the local version
$('#versionSelector').append(new Option('latest local version', 'builtin'));
// find latest release
var latestRelease = null; var latestRelease = null;
if (window.soljsonReleases !== undefined) { for (var release in data.releases) {
for (var release in window.soljsonReleases) { if (latestRelease === null || semver.gt(release, latestRelease)) {
if (latestRelease === null || semver.gt(release, latestRelease)) { latestRelease = release;
latestRelease = release;
}
} }
} }
if (latestRelease === null) { if (latestRelease !== null) {
latestRelease = 'soljson-latest.js'; latestRelease = data.releases[latestRelease];
} }
loadVersion(queryParams.get().version || latestRelease);
} else {
loadVersion('builtin');
}
// always include the local version // override with the requested version
$('#versionSelector').append(new Option('latest local version', 'builtin')); if (queryParams.get().version) {
latestRelease = queryParams.get().version;
}
loadVersion(latestRelease);
});
storage.sync(); storage.sync();
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment