diff options
Diffstat (limited to 'packages/sol-compiler/src')
-rw-r--r-- | packages/sol-compiler/src/compiler.ts | 5 | ||||
-rw-r--r-- | packages/sol-compiler/src/utils/compiler.ts | 7 |
2 files changed, 7 insertions, 5 deletions
diff --git a/packages/sol-compiler/src/compiler.ts b/packages/sol-compiler/src/compiler.ts index bb701a8ce..e61c606be 100644 --- a/packages/sol-compiler/src/compiler.ts +++ b/packages/sol-compiler/src/compiler.ts @@ -8,11 +8,10 @@ import { Resolver, URLResolver, } from '@0xproject/sol-resolver'; -import { logUtils } from '@0xproject/utils'; +import { fetchAsync, logUtils } from '@0xproject/utils'; import chalk from 'chalk'; import * as ethUtil from 'ethereumjs-util'; import * as fs from 'fs'; -import 'isomorphic-fetch'; import * as _ from 'lodash'; import * as path from 'path'; import * as requireFromString from 'require-from-string'; @@ -149,7 +148,7 @@ export class Compiler { } else { logUtils.log(`Downloading ${fullSolcVersion}...`); const url = `${constants.BASE_COMPILER_URL}${fullSolcVersion}`; - const response = await fetch(url); + const response = await fetchAsync(url); const SUCCESS_STATUS = 200; if (response.status !== SUCCESS_STATUS) { throw new Error(`Failed to load ${fullSolcVersion}`); 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); |