aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sol-compiler
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sol-compiler')
-rw-r--r--packages/sol-compiler/README.md8
-rw-r--r--packages/sol-compiler/src/utils/compiler.ts7
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);