npm install @0x/sol-compiler --g
cd /your_project_dir && sol-compiler
Configure via a
mkdir compiler.json
Example of settings:
{`{
"contractsDir": "contracts",
"artifactsDir": "artifacts",
"contracts": "*",
"compilerSettings": {
"optimizer": { "enabled": false },
"outputSelection": {
"*": {
"*": ["abi", "evm.bytecode.object"]
}
}
}
}`}
Sol compiler uses solidity standard JSON output format for the artifacts. This way, you can define which parts of the artifact you need.
{`{
...
"compilerSettings": {
"outputSelection": {
"*": {
"*": ["abi"]
}
}
}
...
}`}
{`{
...
"compilerOutput": {
"abi": [...],
},
...
}`}
Sometimes you need to use some debuggers or other dev tools and you’ll need more info in the artifact.
{`{
...
"compilerSettings": {
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode.object",
"evm.bytecode.sourceMap",
"evm.deployedBytecode.object",
"evm.deployedBytecode.sourceMap"
]
}
}
}
...
}`}
{`{
...
"compilerOutput": {
"abi": [...],
"evm": {
"bytecode": {
"object": "0xdeadbeef",
"sourceMap": "26:480:..."
},
"deployedBytecode": {
"object": "0xdeadbeef",
"sourceMap": "26:480:0..."
}
}
}
"sources": {
"Migrations.sol": {
"id": 0
}
},
...
}`}