aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2018-06-12 01:48:18 +0800
committerGitHub <noreply@github.com>2018-06-12 01:48:18 +0800
commit7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5 (patch)
treec8e47e9e42e58febc45411a360224535786cba48 /packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts
parent817c332d11835f02726f0609374d1c25c9ab39b5 (diff)
parent927ccc489c8cd69723bb2b13f81de150d7b255d0 (diff)
downloaddexon-sol-tools-7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5.tar
dexon-sol-tools-7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5.tar.gz
dexon-sol-tools-7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5.tar.bz2
dexon-sol-tools-7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5.tar.lz
dexon-sol-tools-7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5.tar.xz
dexon-sol-tools-7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5.tar.zst
dexon-sol-tools-7e5866ce3fffc67633d3ab84cc3d2a6abdd22ce5.zip
Merge pull request #675 from 0xProject/feature/sol-cov-geth
`ProfilerSubprovider` & Geth-related fixes for `sol-cov`
Diffstat (limited to 'packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts')
-rw-r--r--packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts12
1 files changed, 9 insertions, 3 deletions
diff --git a/packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts b/packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts
index 6e385203b..051782ba4 100644
--- a/packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts
+++ b/packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts
@@ -1,3 +1,5 @@
+import { ContractArtifact } from '@0xproject/sol-compiler';
+import { logUtils } from '@0xproject/utils';
import * as fs from 'fs';
import * as glob from 'glob';
import * as _ from 'lodash';
@@ -18,18 +20,22 @@ export class SolCompilerArtifactAdapter extends AbstractArtifactAdapter {
if (_.isUndefined(artifactsPath) && _.isUndefined(config.artifactsDir)) {
throw new Error(`artifactsDir not found in ${CONFIG_FILE}`);
}
- this._artifactsPath = config.artifactsDir;
+ this._artifactsPath = artifactsPath || config.artifactsDir;
if (_.isUndefined(sourcesPath) && _.isUndefined(config.contractsDir)) {
throw new Error(`contractsDir not found in ${CONFIG_FILE}`);
}
- this._sourcesPath = config.contractsDir;
+ this._sourcesPath = sourcesPath || config.contractsDir;
}
public async collectContractsDataAsync(): Promise<ContractData[]> {
const artifactsGlob = `${this._artifactsPath}/**/*.json`;
const artifactFileNames = glob.sync(artifactsGlob, { absolute: true });
const contractsData: ContractData[] = [];
for (const artifactFileName of artifactFileNames) {
- const artifact = JSON.parse(fs.readFileSync(artifactFileName).toString());
+ const artifact: ContractArtifact = JSON.parse(fs.readFileSync(artifactFileName).toString());
+ if (_.isUndefined(artifact.compilerOutput.evm)) {
+ logUtils.warn(`${artifactFileName} doesn't contain bytecode. Skipping...`);
+ continue;
+ }
let sources = _.keys(artifact.sources);
sources = _.map(sources, relativeFilePath => path.resolve(this._sourcesPath, relativeFilePath));
const sourceCodes = _.map(sources, (source: string) => fs.readFileSync(source).toString());