diff options
Diffstat (limited to 'packages/sol-compiler')
-rw-r--r-- | packages/sol-compiler/README.md | 8 | ||||
-rw-r--r-- | packages/sol-compiler/src/utils/compiler.ts | 7 |
2 files changed, 12 insertions, 3 deletions
diff --git a/packages/sol-compiler/README.md b/packages/sol-compiler/README.md index 76d0e9b8b..3a6ca130b 100644 --- a/packages/sol-compiler/README.md +++ b/packages/sol-compiler/README.md @@ -1,6 +1,12 @@ ## @0xproject/sol-compiler -This repository contains a CLI tool that facilitates compiling smart contracts. +Sol-compiler is a wrapper around [solc-js](https://www.npmjs.com/package/solc) that adds: + +* Smart re-compilation: Only recompiles when smart contracts have changed +* Ability to compile an entire project instead of only individual `.sol` files +* Compilation using the Solidity version specified at the top of each individual `.sol` file +* Proper parsing of Solidity version ranges +* Support for the standard [input description](https://solidity.readthedocs.io/en/develop/using-the-compiler.html#input-description) for what information you'd like added to the resulting `artifacts` file (i.e 100% configurable artifacts content). ### Read the [Documentation](https://0xproject.com/docs/sol-compiler). diff --git a/packages/sol-compiler/src/utils/compiler.ts b/packages/sol-compiler/src/utils/compiler.ts index 08e2d999a..968fcc5b2 100644 --- a/packages/sol-compiler/src/utils/compiler.ts +++ b/packages/sol-compiler/src/utils/compiler.ts @@ -58,7 +58,8 @@ export function parseSolidityVersionRange(source: string): string { } /** - * Normalizes the path found in the error message. + * Normalizes the path found in the error message. If it cannot be normalized + * the original error message is returned. * Example: converts 'base/Token.sol:6:46: Warning: Unused local variable' * to 'Token.sol:6:46: Warning: Unused local variable' * This is used to prevent logging the same error multiple times. @@ -69,7 +70,9 @@ export function getNormalizedErrMsg(errMsg: string): string { const SOLIDITY_FILE_EXTENSION_REGEX = /(.*\.sol)/; const errPathMatch = errMsg.match(SOLIDITY_FILE_EXTENSION_REGEX); if (_.isNull(errPathMatch)) { - throw new Error(`Could not find a path in error message: ${errMsg}`); + // This can occur if solidity outputs a general warning, e.g + // Warning: This is a pre-release compiler version, please do not use it in production. + return errMsg; } const errPath = errPathMatch[0]; const baseContract = path.basename(errPath); |