solidity-standard-json-loader

A Webpack loader, that produces Solidity standard JSON

Usage no npm install needed!

<script type="module">
  import solidityStandardJsonLoader from 'https://cdn.skypack.dev/solidity-standard-json-loader';
</script>

README

solidity-standard-json-loader

A Webpack loader for Solidity. Works with dependencies (so you can npm install zeppelin-solidity), and outputs Solidity standard JSON.

Install

npm install solidity-standard-json-loader

Use

If you want to import the JSON output into Javascript code, you should use json-loader. Add the following rules to your Webpack config:

rules: [
  {
    test: /\.sol$/,
    use: [
      {loader: 'json-loader'},
      {loader: 'solidity-standard-json-loader', options: {optimize: true}}
    ]
  }
]

If you want to just output the JSON to a file, you'll need to use file-loader. Something like the following:

module.exports = {
  entry: 'MyContract.sol',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].sol.out'
  },
  module: {
    rules: [{
      test: /\.sol$/,
      use: [
        {loader: 'file-loader', options: {name: '[name].sol.json'}},
        {loader: 'solidity-standard-json-loader', options: {optimize: true}}
      ]
    }]
  }
}

Options

The loader supports the following options:

{
  optimize: false, // Enable compiler optimization
  debug: false, // Emit complete compiler output, to help with debugging.
                // If this is disabled, the generated JSON will contain the minimum needed to
                // be able to deploy and call the contract with Web3.
  solcVersion: 'latest', // Compile with a different version of solc to the installed one
  links: { // Which libraries to link
    'MyLibrary.sol': {
      'LibraryContract': '0x1234567890123456789012345678901234567890'
    }
  }
}