diff --git a/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.4.24.ts b/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.4.24.ts index cf04ee1ebf..a05f8b0382 100644 --- a/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.4.24.ts +++ b/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.4.24.ts @@ -1,17 +1,14 @@ -import { default as test } from "tape" +import test from "tape" import { helpers } from '@remix-project/remix-lib' import { readFileSync } from 'fs' import { join } from 'path' import { default as StatRunner } from '../../src/solidity-analyzer' import * as modules from '../../src/solidity-analyzer/modules/' import { CompilationResult, AnalysisReportObj, AnalysisReport } from '../../src/types' -import { install, require as requireNPMmodule } from 'npm-install-version' -install('solc@0.4.24') -const solc = requireNPMmodule('solc@0.4.24') +import solcOrg from 'solc'; const { compilerInput } = helpers.compiler const folder: string = 'solidity-v0.4.24' - const testFiles: string[] = [ 'KingOfTheEtherThrone.sol', 'assembly.sol', @@ -41,13 +38,21 @@ const testFiles: string[] = [ 'forLoopIteratesOverDynamicArray.sol' ] -var compilationResults: Record = {} +let compilationResults: Record = {} -testFiles.forEach((fileName) => { - const content: string = readFileSync(join(__dirname, 'test-contracts/' + folder, fileName), 'utf8') - // Latest AST is available under 'compileStandardWrapper' under solc for, 0.4.12 <= version < 0.5.0 - compilationResults[fileName] = JSON.parse(solc.compileStandardWrapper(compilerInput(content))) -}) +test('setup', function (t: test.Test) { + solcOrg.loadRemoteVersion('v0.4.24+commit.e67f0147', (error, compiler) => { + if (error) throw error + + testFiles.forEach((fileName) => { + const content: string = readFileSync(join(__dirname, 'test-contracts/' + folder, fileName), 'utf8') + // Latest AST is available under 'compileStandardWrapper' under solc for, 0.4.12 <= version < 0.5.0 + compilationResults[fileName] = JSON.parse(compiler.compile(compilerInput(content))) + }) + + t.end() + }) +}); test('Integration test thisLocal module', function (t: test.Test) { t.plan(testFiles.length) diff --git a/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.5.0.ts b/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.5.0.ts index 08609b24e5..d4f930b2e2 100644 --- a/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.5.0.ts +++ b/libs/remix-analyzer/test/analysis/staticAnalysisIntegration-test-0.5.0.ts @@ -1,13 +1,11 @@ -import { default as test } from "tape" +import test from "tape" import { helpers } from '@remix-project/remix-lib' import { readFileSync } from 'fs' import { join } from 'path' import { default as StatRunner } from '../../src/solidity-analyzer' import * as modules from '../../src/solidity-analyzer/modules/' +import solc from 'solc'; import { CompilationResult, AnalysisReportObj, AnalysisReport } from '../../src/types' -import { install, require as requireNPMmodule } from 'npm-install-version' -install('solc@0.5.0') -const solc = requireNPMmodule('solc@0.5.0') const { compilerInput } = helpers.compiler const folder: string = 'solidity-v0.5' @@ -40,12 +38,23 @@ const testFiles: string[] = [ 'forLoopIteratesOverDynamicArray.sol' ] -var compilationResults: Record = {} +let compilationResults: Record = {} + +test('setup', function (t) { + solc.loadRemoteVersion('v0.5.0+commit.1d4f565a', (error, compiler) => { + if (error) throw error + + testFiles.forEach((fileName) => { + const content = readFileSync(join(__dirname, 'test-contracts/' + folder, fileName), 'utf8') + compilationResults[fileName] = JSON.parse(compiler.compile(compilerInput(content))) + }) + + t.end() + }) +}); + + -testFiles.forEach((fileName) => { - const content = readFileSync(join(__dirname, 'test-contracts/' + folder, fileName), 'utf8') - compilationResults[fileName] = JSON.parse(solc.compile(compilerInput(content))) -}) test('Integration test thisLocal module', function (t: test.Test) { t.plan(testFiles.length) diff --git a/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.4.24.ts b/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.4.24.ts index 8e9bfeede3..de6303ef89 100644 --- a/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.4.24.ts +++ b/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.4.24.ts @@ -1,19 +1,26 @@ -import * as test from "tape" +import test from "tape" import { helpers } from '@remix-project/remix-lib' import { readFileSync } from 'fs' import { join } from 'path' import { default as StatRunner } from '../../src/solidity-analyzer' +import solc from 'solc'; import { CompilationResult, AnalysisReportObj, AnalysisReport, AnalyzerModule } from '../../src/types' import { checksEffectsInteraction } from '../../src/solidity-analyzer/modules/' -import { install, require as requireNPMmodule } from 'npm-install-version' -install('solc@0.4.24') -const compiler = requireNPMmodule('solc@0.4.24') const { compilerInput } = helpers.compiler const folder: string = 'solidity-v0.4.24' +let compiler +test('setup', function (t) { + solc.loadRemoteVersion('v0.4.24+commit.e67f0147', (error, solcVersion) => { + if (error) throw error + compiler = solcVersion + t.end() + }) +}); + function compile (fileName: string): CompilationResult { const content: string = readFileSync(join(__dirname, 'test-contracts/' + folder, fileName), 'utf8') - return JSON.parse(compiler.compileStandardWrapper(compilerInput(content))) + return JSON.parse(compiler.compile(compilerInput(content))) } test('staticAnalysisIssues.functionParameterPassingError', function (t) { diff --git a/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.5.0.ts b/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.5.0.ts index c9117ef6ad..beac78be6d 100644 --- a/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.5.0.ts +++ b/libs/remix-analyzer/test/analysis/staticAnalysisIssues-test-0.5.0.ts @@ -1,16 +1,23 @@ -import * as test from "tape" +import test from "tape" import { helpers } from '@remix-project/remix-lib' import { readFileSync } from 'fs' import { join } from 'path' import { default as StatRunner } from '../../src/solidity-analyzer' +import solc from 'solc'; import { CompilationResult, AnalysisReportObj, AnalysisReport } from '../../src/types' import { checksEffectsInteraction } from '../../src/solidity-analyzer/modules/' -import { install, require as requireNPMmodule } from 'npm-install-version' -install('solc@0.5.0') -const compiler = requireNPMmodule('solc@0.5.0') const {compilerInput } = helpers.compiler const folder: string = 'solidity-v0.5' +let compiler +test('setup', function (t) { + solc.loadRemoteVersion('v0.5.0+commit.1d4f565a', (error, solcVersion) => { + if (error) throw error + compiler = solcVersion + t.end() + }) +}); + function compile (fileName): CompilationResult { const content: string = readFileSync(join(__dirname, 'test-contracts/' + folder, fileName), 'utf8') return JSON.parse(compiler.compile(compilerInput(content))) diff --git a/libs/remix-analyzer/tsconfig.json b/libs/remix-analyzer/tsconfig.json index eda4e41ad3..b9c089b54a 100644 --- a/libs/remix-analyzer/tsconfig.json +++ b/libs/remix-analyzer/tsconfig.json @@ -1,8 +1,10 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "types": ["node"], - "esModuleInterop": true + "types": ["node"], + "module": "commonjs", + "esModuleInterop": true, + "outDir": "./dist", }, "include": ["**/*.ts"] } diff --git a/workspace.json b/workspace.json index 137e1654cb..120c56e5b3 100644 --- a/workspace.json +++ b/workspace.json @@ -88,9 +88,6 @@ "builder": "@nrwl/workspace:run-commands", "options": { "commands": [ - { - "command": "rm -rf ../../dist" - }, { "command": "./../../node_modules/.bin/npm-run-all test" }