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.
 
 
 
 
 
remix-project/remix-solidity/src/compiler/compiler-input.js

33 lines
934 B

'use strict'
module.exports = (sources, opts) => {
const o = {
language: 'Solidity',
sources: sources,
settings: {
optimizer: {
enabled: opts.optimize === true || opts.optimize === 1,
runs: 200
},
libraries: opts.libraries,
outputSelection: {
'*': {
'': [ 'legacyAST', 'ast' ],
'*': [ 'abi', 'metadata', 'devdoc', 'userdoc', 'evm.legacyAssembly', 'evm.bytecode', 'evm.deployedBytecode', 'evm.methodIdentifiers', 'evm.gasEstimates' ]
}
}
}
}
if (opts.evmVersion) {
o.settings.evmVersion = opts.evmVersion
}
if (opts.language) {
o.language = opts.language
}
if (opts.language === 'Yul' && o.settings.optimizer.enabled) {
// details key is valid only for Yul
if (!o.settings.optimizer.details) o.settings.optimizer.details = {}
o.settings.optimizer.details['yul'] = true
}
return JSON.stringify(o)
}