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>2019-01-08 19:23:33 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2019-01-08 21:48:06 +0800
commit2c974b5f3ffa0e9736000273e39cdeee4a251b94 (patch)
treea1772f93d796e3b4ba7a988194a44a3e8bcd6d31 /packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts
parent0ac36cef288deecd36caa601c53d13517eef5ca8 (diff)
downloaddexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.gz
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.bz2
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.lz
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.xz
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.zst
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.zip
Refactor out sol-cov, sol-profiler and sol-trace into their separate packages
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.ts61
1 files changed, 0 insertions, 61 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
deleted file mode 100644
index 57391abbe..000000000
--- a/packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { logUtils } from '@0x/utils';
-import { CompilerOptions, ContractArtifact } from 'ethereum-types';
-import * as fs from 'fs';
-import * as glob from 'glob';
-import * as _ from 'lodash';
-import * as path from 'path';
-
-import { ContractData } from '../types';
-
-import { AbstractArtifactAdapter } from './abstract_artifact_adapter';
-
-const CONFIG_FILE = 'compiler.json';
-
-export class SolCompilerArtifactAdapter extends AbstractArtifactAdapter {
- private readonly _artifactsPath: string;
- private readonly _sourcesPath: string;
- /**
- * Instantiates a SolCompilerArtifactAdapter
- * @param artifactsPath Path to your artifacts directory
- * @param sourcesPath Path to your contract sources directory
- */
- constructor(artifactsPath?: string, sourcesPath?: string) {
- super();
- const config: CompilerOptions = fs.existsSync(CONFIG_FILE)
- ? JSON.parse(fs.readFileSync(CONFIG_FILE).toString())
- : {};
- if (_.isUndefined(artifactsPath) && _.isUndefined(config.artifactsDir)) {
- throw new Error(`artifactsDir not found in ${CONFIG_FILE}`);
- }
- this._artifactsPath = (artifactsPath || config.artifactsDir) as string;
- if (_.isUndefined(sourcesPath) && _.isUndefined(config.contractsDir)) {
- throw new Error(`contractsDir not found in ${CONFIG_FILE}`);
- }
- this._sourcesPath = (sourcesPath || config.contractsDir) as string;
- }
- 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: 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());
- const contractData = {
- sourceCodes,
- sources,
- bytecode: artifact.compilerOutput.evm.bytecode.object,
- sourceMap: artifact.compilerOutput.evm.bytecode.sourceMap,
- runtimeBytecode: artifact.compilerOutput.evm.deployedBytecode.object,
- sourceMapRuntime: artifact.compilerOutput.evm.deployedBytecode.sourceMap,
- };
- contractsData.push(contractData);
- }
- return contractsData;
- }
-}