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

Load version list from list.json

parent 634ba33f
......@@ -36,7 +36,6 @@
<link rel="icon" type="x-icon" href="icon.png">
<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>
</head>
......
/* global alert, confirm, prompt, Option, Worker, soljsonSources */
/* global alert, confirm, prompt, Option, Worker */
var $ = require('jquery');
var semver = require('semver');
......@@ -510,36 +510,44 @@ var run = function () {
loadVersion($('#versionSelector').val());
});
// var soljsonSources is provided by bin/list.js
if (window.soljsonSources !== undefined) {
// populate selector list with available versions
$.each(soljsonSources, function (i, file) {
if (file) {
var version = file.replace(/soljson-(.*).js/, '$1');
$('#versionSelector').append(new Option(version, file));
}
$.getJSON('https://ethereum.github.io/solc-bin/bin/list.json', function (data, status) {
// loading failed for some reason, fall back to local compiler
if (status !== 'success') {
$('#versionSelector').append(new Option('latest local version', 'builtin'));
loadVersion('builtin');
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);
// load initial version
// always include the local version
$('#versionSelector').append(new Option('latest local version', 'builtin'));
// find latest release
var latestRelease = null;
if (window.soljsonReleases !== undefined) {
for (var release in window.soljsonReleases) {
if (latestRelease === null || semver.gt(release, latestRelease)) {
latestRelease = release;
}
for (var release in data.releases) {
if (latestRelease === null || semver.gt(release, latestRelease)) {
latestRelease = release;
}
}
if (latestRelease === null) {
latestRelease = 'soljson-latest.js';
if (latestRelease !== null) {
latestRelease = data.releases[latestRelease];
}
loadVersion(queryParams.get().version || latestRelease);
} else {
loadVersion('builtin');
}
// always include the local version
$('#versionSelector').append(new Option('latest local version', 'builtin'));
// override with the requested version
if (queryParams.get().version) {
latestRelease = queryParams.get().version;
}
loadVersion(latestRelease);
});
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