Commit 8e3677c8 authored by d11e9's avatar d11e9

allow using legacy versions via npm

parent a9d1cc56
...@@ -29,3 +29,12 @@ Starting from version 0.1.6, multiple files are supported with automatic import ...@@ -29,3 +29,12 @@ Starting from version 0.1.6, multiple files are supported with automatic import
console.log(contractName + ': ' + output.contracts[contractName].bytecode); console.log(contractName + ': ' + output.contracts[contractName].bytecode);
Note that all input files that are imported have to be supplied, the compiler will not load any additional files on its own. Note that all input files that are imported have to be supplied, the compiler will not load any additional files on its own.
###Using a legacy version
In order to allow compiling contracts using a specific version of solidity, the `solc.setVersion` method is available.
var solc = require('solc');
solc.setVersion( 'latest' ); // this is used by default
solc.setVersion( 'v0.1.1-2015-08-04-6ff4cd6' );
var output = solc.compile( "contract t { function g() {} }", 1 );
var soljson = require('./bin/soljson-latest.js'); function setupMethods (soljson){
var compileJSON = soljson.cwrap("compileJSON", "string", ["string", "number"]); var compileJSON = soljson.cwrap("compileJSON", "string", ["string", "number"]);
var compileJSONMulti = var compileJSONMulti =
'_compileJSONMulti' in soljson ? '_compileJSONMulti' in soljson ?
soljson.cwrap("compileJSONMulti", "string", ["string", "number"]) : soljson.cwrap("compileJSONMulti", "string", ["string", "number"]) :
null; null;
var compile = function(input, optimise) { var compile = function(input, optimise) {
var result = ''; var result = '';
if (typeof(input) != typeof('') && compileJSONMulti !== null) if (typeof(input) != typeof('') && compileJSONMulti !== null)
result = compileJSONMulti(JSON.stringify(input), optimise); result = compileJSONMulti(JSON.stringify(input), optimise);
else else
result = compileJSON(input, optimise); result = compileJSON(input, optimise);
return JSON.parse(result); return JSON.parse(result);
} }
var version = soljson.cwrap("version", "string", []);
module.exports = { return {
compile: compile, version: version,
version: soljson.cwrap("version", "string", []) compile: compile,
useVersion: function( versionString ){
return setupMethods( require('./bin/soljson-' + versionString + '.js' ) );
}
}
} }
module.exports = setupMethods( require('./bin/soljson-latest.js') );
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