solc-loader

Ethereum Solidity module for Webpack

Usage no npm install needed!

<script type="module">
  import solcLoader from 'https://cdn.skypack.dev/solc-loader';
</script>

README

solc loader for webpack

Compiles .sol with JavaScript Solidity compiler and returns JavaScript objects with Application Binary Interface (ABI) and bytecode ready to be deployed on to Ethereum.

Ideally to be used with web3-loader for automatic deployment and ready-to-use JavaScript instances of smart contracts.

Sample code

Sample dapp or starter kit can be found at uzyn/ethereum-webpack-example-dapp.

Installation

npm install solc-loader --save-dev

Usage

var SmartContracts = require('solc!./SmartContracts.sol');
// => returns SmartContracts array with each contract name, bytecode and abi.

Example webpack config

At your project's webpack.config.js:

module.exports = {
  module: {
    loaders: [
      {
        test: /\.sol$/,
        loaders: ['solc']
    ]
  }
}

Recommended usage with web3-loader

solc-loader would be much sweeter if used along web3-loader. web3-loader automatically deploys new/changed contracts on to Ethereum and returns ready-to-use JavaScript instances of smart contracts.

At your project's webpack.config.js:

module.exports = {
  module: {
    loaders: [
      {
        test: /\.sol$/,
        loaders: ['web3', 'solc']
    ]
  }
}

Extra configuration

Optimization

solc-loader is set, by default, to compile with optimization turned on.

To turn off optimization, pass optimize=0 via either query or loader config with the key solcLoader.

Query style

loaders: ['solc?optimize=0']

// or
loader: 'solc?optimize=0'

Config style

// webpack.config.js
module.exports = {
  solcLoader: {
    optimize: 0
  }
}

License

MIT ยท U-Zyn Chua (@uzyn)

Tips: 0xFfA57D3e88A24311565C9929F180739E43FBD0aA