diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-05-22 07:56:00 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-05-23 06:20:34 +0800 |
commit | 08b08ef1d0fbff2da8b64524704cf1bc50f77f30 (patch) | |
tree | 085b94a3687520d5293468cb4fc1f220a1cbfbbc /packages/sol-cov/src/artifact_adapters/truffle_artifact_adapter.ts | |
parent | 334ef5c3eb1cba0b6872c41faaac96f08a4b2a3e (diff) | |
download | dexon-sol-tools-08b08ef1d0fbff2da8b64524704cf1bc50f77f30.tar dexon-sol-tools-08b08ef1d0fbff2da8b64524704cf1bc50f77f30.tar.gz dexon-sol-tools-08b08ef1d0fbff2da8b64524704cf1bc50f77f30.tar.bz2 dexon-sol-tools-08b08ef1d0fbff2da8b64524704cf1bc50f77f30.tar.lz dexon-sol-tools-08b08ef1d0fbff2da8b64524704cf1bc50f77f30.tar.xz dexon-sol-tools-08b08ef1d0fbff2da8b64524704cf1bc50f77f30.tar.zst dexon-sol-tools-08b08ef1d0fbff2da8b64524704cf1bc50f77f30.zip |
Match class names with file names
Diffstat (limited to 'packages/sol-cov/src/artifact_adapters/truffle_artifact_adapter.ts')
-rw-r--r-- | packages/sol-cov/src/artifact_adapters/truffle_artifact_adapter.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/sol-cov/src/artifact_adapters/truffle_artifact_adapter.ts b/packages/sol-cov/src/artifact_adapters/truffle_artifact_adapter.ts new file mode 100644 index 000000000..b9c9c4d42 --- /dev/null +++ b/packages/sol-cov/src/artifact_adapters/truffle_artifact_adapter.ts @@ -0,0 +1,43 @@ +import { Compiler, CompilerOptions } from '@0xproject/sol-compiler'; +import * as fs from 'fs'; +import * as glob from 'glob'; +import * as _ from 'lodash'; +import * as path from 'path'; +import * as rimraf from 'rimraf'; + +import { ContractData } from '../types'; + +import { SolCompilerArtifactAdapter } from './0x'; +import { AbstractArtifactAdapter } from './abstract'; + +export class TruffleArtifactAdapter extends AbstractArtifactAdapter { + private _solcVersion: string; + private _sourcesPath: string; + constructor(sourcesPath: string, solcVersion: string) { + super(); + this._solcVersion = solcVersion; + this._sourcesPath = sourcesPath; + } + public async collectContractsDataAsync(): Promise<ContractData[]> { + const artifactsDir = '0x-artifacts'; + const compilerOptions: CompilerOptions = { + contractsDir: this._sourcesPath, + artifactsDir, + compilerSettings: { + outputSelection: { + ['*']: { + ['*']: ['abi', 'evm.bytecode.object', 'evm.deployedBytecode.object'], + }, + }, + }, + contracts: '*', + solcVersion: this._solcVersion, + }; + const compiler = new Compiler(compilerOptions); + await compiler.compileAsync(); + const solCompilerArtifactAdapter = new SolCompilerArtifactAdapter(artifactsDir, this._sourcesPath); + const contractsDataFrom0xArtifacts = await solCompilerArtifactAdapter.collectContractsDataAsync(); + rimraf.sync(artifactsDir); + return contractsDataFrom0xArtifacts; + } +} |