remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Alex Beregszaszi e35a3a67ac Fix indentation to match rest of the file 9 years ago
assets Fix indentation to match rest of the file 9 years ago
.npmignore add icon font 9 years ago
LICENSE.md Top-level license file. 9 years ago
README.md Extracted application code and created chrome extension manifest. 9 years ago
background.js Enable extension to sync files using chrome.storage.sync 9 years ago
icon.png Extracted application code and created chrome extension manifest. 9 years ago
index.html fix gist loading and publish text 9 years ago
index.js Use the compiler callback method for resolving imports if available. 9 years ago
manifest.json Enable extension to sync files using chrome.storage.sync 9 years ago
package.json Version 0.3.1. 9 years ago
worker.js Fix again. 9 years ago

README.md

#Browser-solidity

Browser solidity is a browser based solidity compiler. To use either visit https://chriseth.github.io/browser-solidity or clone/download this repo and open index.html in your browser.

#Nodejs usage

To use the solidity compiler via nodejs you can install it via npm

npm install solc

And then use it like so:

var solc = require('solc');
var input = "contract x { function g() {} }";
var output = solc.compile(input, 1); // 1 activates the optimiser
for (var contractName in output.contracts) {
	// code and ABI that are needed by web3
	console.log(contractName + ': ' + output.contracts[contractName].bytecode);
	console.log(contractName + '; ' + JSON.parse( output.contracts[contractName].interface));
}

Starting from version 0.1.6, multiple files are supported with automatic import resolution by the compiler as follows:

var solc = require('solc');
var input = {
	'lib.sol': 'library L { function f() returns (uint) { return 7; } }',
	'cont.sol': 'import "lib.sol"; contract x { function g() { L.f(); } }'
};
var output = solc.compile({sources: input}, 1);
for (var contractName in output.contracts)
	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.

###Using a legacy version

In order to allow compiling contracts using a specific version of solidity, the solc.useVersion method is available. This returns a new solc object using the version provided. Note: version strings must match the version substring of the files availble in /bin/soljson-*.js. See below for an example.

var solc = require('solc');
// by default the latest version is used
// ie: solc.useVersion('latest')

// getting a legacy version
var solcV011 = solc.useVersion( 'v0.1.1-2015-08-04-6ff4cd6' );
var output = solcV011.compile( "contract t { function g() {} }", 1 );

#To use it as a chrome extension: Browse to chrome://extensions/

Make sure 'Developer mode' has been checked. Then click 'Load unpacked extension...' to pop up a file-selection dialog.