diff --git a/.circleci/config.yml b/.circleci/config.yml index 0b07bbd8b7..4c12a03226 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ version: 2 jobs: remix-lib: docker: - - image: circleci/node:7.10 + - image: circleci/node:9.11.2 environment: working_directory: ~/repo steps: @@ -16,7 +16,7 @@ jobs: remix-debug: docker: - - image: circleci/node:7.10 + - image: circleci/node:9.11.2 environment: working_directory: ~/repo steps: @@ -26,7 +26,7 @@ jobs: remix-analyzer: docker: - - image: circleci/node:7.10 + - image: circleci/node:9.11.2 environment: working_directory: ~/repo steps: @@ -41,4 +41,3 @@ workflows: - remix-lib - remix-debug - remix-analyzer - diff --git a/remix-analyzer/index.js b/remix-analyzer/index.js index 3fd9c0fd4a..01345200d8 100644 --- a/remix-analyzer/index.js +++ b/remix-analyzer/index.js @@ -1,4 +1,4 @@ -var CodeAnalysis = require('./src/analysis/staticAnalysisRunner') +var CodeAnalysis = require('./src/solidity-analyzer') module.exports = { CodeAnalysis: CodeAnalysis diff --git a/remix-analyzer/src/analysis/staticAnalysisRunner.js b/remix-analyzer/src/solidity-analyzer/index.js similarity index 100% rename from remix-analyzer/src/analysis/staticAnalysisRunner.js rename to remix-analyzer/src/solidity-analyzer/index.js diff --git a/remix-analyzer/src/analysis/modules/abstractAstView.js b/remix-analyzer/src/solidity-analyzer/modules/abstractAstView.js similarity index 100% rename from remix-analyzer/src/analysis/modules/abstractAstView.js rename to remix-analyzer/src/solidity-analyzer/modules/abstractAstView.js diff --git a/remix-analyzer/src/analysis/modules/assignAndCompare.js b/remix-analyzer/src/solidity-analyzer/modules/assignAndCompare.js similarity index 100% rename from remix-analyzer/src/analysis/modules/assignAndCompare.js rename to remix-analyzer/src/solidity-analyzer/modules/assignAndCompare.js diff --git a/remix-analyzer/src/analysis/modules/blockBlockhash.js b/remix-analyzer/src/solidity-analyzer/modules/blockBlockhash.js similarity index 100% rename from remix-analyzer/src/analysis/modules/blockBlockhash.js rename to remix-analyzer/src/solidity-analyzer/modules/blockBlockhash.js diff --git a/remix-analyzer/src/analysis/modules/blockTimestamp.js b/remix-analyzer/src/solidity-analyzer/modules/blockTimestamp.js similarity index 100% rename from remix-analyzer/src/analysis/modules/blockTimestamp.js rename to remix-analyzer/src/solidity-analyzer/modules/blockTimestamp.js diff --git a/remix-analyzer/src/analysis/modules/categories.js b/remix-analyzer/src/solidity-analyzer/modules/categories.js similarity index 100% rename from remix-analyzer/src/analysis/modules/categories.js rename to remix-analyzer/src/solidity-analyzer/modules/categories.js diff --git a/remix-analyzer/src/analysis/modules/checksEffectsInteraction.js b/remix-analyzer/src/solidity-analyzer/modules/checksEffectsInteraction.js similarity index 100% rename from remix-analyzer/src/analysis/modules/checksEffectsInteraction.js rename to remix-analyzer/src/solidity-analyzer/modules/checksEffectsInteraction.js diff --git a/remix-analyzer/src/analysis/modules/constantFunctions.js b/remix-analyzer/src/solidity-analyzer/modules/constantFunctions.js similarity index 100% rename from remix-analyzer/src/analysis/modules/constantFunctions.js rename to remix-analyzer/src/solidity-analyzer/modules/constantFunctions.js diff --git a/remix-analyzer/src/analysis/modules/deleteDynamicArrays.js b/remix-analyzer/src/solidity-analyzer/modules/deleteDynamicArrays.js similarity index 100% rename from remix-analyzer/src/analysis/modules/deleteDynamicArrays.js rename to remix-analyzer/src/solidity-analyzer/modules/deleteDynamicArrays.js diff --git a/remix-analyzer/src/analysis/modules/functionCallGraph.js b/remix-analyzer/src/solidity-analyzer/modules/functionCallGraph.js similarity index 100% rename from remix-analyzer/src/analysis/modules/functionCallGraph.js rename to remix-analyzer/src/solidity-analyzer/modules/functionCallGraph.js diff --git a/remix-analyzer/src/analysis/modules/gasCosts.js b/remix-analyzer/src/solidity-analyzer/modules/gasCosts.js similarity index 100% rename from remix-analyzer/src/analysis/modules/gasCosts.js rename to remix-analyzer/src/solidity-analyzer/modules/gasCosts.js diff --git a/remix-analyzer/src/analysis/modules/guardConditions.js b/remix-analyzer/src/solidity-analyzer/modules/guardConditions.js similarity index 100% rename from remix-analyzer/src/analysis/modules/guardConditions.js rename to remix-analyzer/src/solidity-analyzer/modules/guardConditions.js diff --git a/remix-analyzer/src/analysis/modules/inlineAssembly.js b/remix-analyzer/src/solidity-analyzer/modules/inlineAssembly.js similarity index 100% rename from remix-analyzer/src/analysis/modules/inlineAssembly.js rename to remix-analyzer/src/solidity-analyzer/modules/inlineAssembly.js diff --git a/remix-analyzer/src/analysis/modules/intDivisionTruncate.js b/remix-analyzer/src/solidity-analyzer/modules/intDivisionTruncate.js similarity index 100% rename from remix-analyzer/src/analysis/modules/intDivisionTruncate.js rename to remix-analyzer/src/solidity-analyzer/modules/intDivisionTruncate.js diff --git a/remix-analyzer/src/analysis/modules/list.js b/remix-analyzer/src/solidity-analyzer/modules/list.js similarity index 100% rename from remix-analyzer/src/analysis/modules/list.js rename to remix-analyzer/src/solidity-analyzer/modules/list.js diff --git a/remix-analyzer/src/analysis/modules/lowLevelCalls.js b/remix-analyzer/src/solidity-analyzer/modules/lowLevelCalls.js similarity index 100% rename from remix-analyzer/src/analysis/modules/lowLevelCalls.js rename to remix-analyzer/src/solidity-analyzer/modules/lowLevelCalls.js diff --git a/remix-analyzer/src/analysis/modules/noReturn.js b/remix-analyzer/src/solidity-analyzer/modules/noReturn.js similarity index 100% rename from remix-analyzer/src/analysis/modules/noReturn.js rename to remix-analyzer/src/solidity-analyzer/modules/noReturn.js diff --git a/remix-analyzer/src/analysis/modules/selfdestruct.js b/remix-analyzer/src/solidity-analyzer/modules/selfdestruct.js similarity index 100% rename from remix-analyzer/src/analysis/modules/selfdestruct.js rename to remix-analyzer/src/solidity-analyzer/modules/selfdestruct.js diff --git a/remix-analyzer/src/analysis/modules/similarVariableNames.js b/remix-analyzer/src/solidity-analyzer/modules/similarVariableNames.js similarity index 100% rename from remix-analyzer/src/analysis/modules/similarVariableNames.js rename to remix-analyzer/src/solidity-analyzer/modules/similarVariableNames.js diff --git a/remix-analyzer/src/analysis/modules/staticAnalysisCommon.js b/remix-analyzer/src/solidity-analyzer/modules/staticAnalysisCommon.js similarity index 100% rename from remix-analyzer/src/analysis/modules/staticAnalysisCommon.js rename to remix-analyzer/src/solidity-analyzer/modules/staticAnalysisCommon.js diff --git a/remix-analyzer/src/analysis/modules/thisLocal.js b/remix-analyzer/src/solidity-analyzer/modules/thisLocal.js similarity index 100% rename from remix-analyzer/src/analysis/modules/thisLocal.js rename to remix-analyzer/src/solidity-analyzer/modules/thisLocal.js diff --git a/remix-analyzer/src/analysis/modules/txOrigin.js b/remix-analyzer/src/solidity-analyzer/modules/txOrigin.js similarity index 100% rename from remix-analyzer/src/analysis/modules/txOrigin.js rename to remix-analyzer/src/solidity-analyzer/modules/txOrigin.js diff --git a/remix-analyzer/test/analysis/staticAnalysisCommon-test.js b/remix-analyzer/test/analysis/staticAnalysisCommon-test.js index 7d4fc4a95e..c4dbd95e98 100644 --- a/remix-analyzer/test/analysis/staticAnalysisCommon-test.js +++ b/remix-analyzer/test/analysis/staticAnalysisCommon-test.js @@ -1,6 +1,6 @@ var test = require('tape') -var common = require('../../src/analysis/modules/staticAnalysisCommon') +var common = require('../../src/solidity-analyzer/modules/staticAnalysisCommon') function escapeRegExp (str) { return str.replace(/[-[\]/{}()+?.\\^$|]/g, '\\$&') diff --git a/remix-analyzer/test/analysis/staticAnalysisIntegration-test.js b/remix-analyzer/test/analysis/staticAnalysisIntegration-test.js index 3b1f31308a..0cf349100c 100644 --- a/remix-analyzer/test/analysis/staticAnalysisIntegration-test.js +++ b/remix-analyzer/test/analysis/staticAnalysisIntegration-test.js @@ -1,7 +1,7 @@ var test = require('tape') var remixLib = require('remix-lib') -var StatRunner = require('../../src/analysis/staticAnalysisRunner') +var StatRunner = require('../../src/solidity-analyzer') var compilerInput = remixLib.helpers.compiler.compilerInput var compiler = require('solc') @@ -43,7 +43,7 @@ testFiles.forEach((fileName) => { test('Integration test thisLocal.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/thisLocal') + var module = require('../../src/solidity-analyzer/modules/thisLocal') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -77,7 +77,7 @@ test('Integration test thisLocal.js', function (t) { test('Integration test checksEffectsInteraction.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/checksEffectsInteraction') + var module = require('../../src/solidity-analyzer/modules/checksEffectsInteraction') var lengthCheck = { 'KingOfTheEtherThrone.sol': 1, @@ -111,7 +111,7 @@ test('Integration test checksEffectsInteraction.js', function (t) { test('Integration test constantFunctions.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/constantFunctions') + var module = require('../../src/solidity-analyzer/modules/constantFunctions') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -145,7 +145,7 @@ test('Integration test constantFunctions.js', function (t) { test('Integration test inlineAssembly.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/inlineAssembly') + var module = require('../../src/solidity-analyzer/modules/inlineAssembly') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -179,7 +179,7 @@ test('Integration test inlineAssembly.js', function (t) { test('Integration test txOrigin.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/txOrigin') + var module = require('../../src/solidity-analyzer/modules/txOrigin') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -213,7 +213,7 @@ test('Integration test txOrigin.js', function (t) { test('Integration test gasCosts.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/gasCosts') + var module = require('../../src/solidity-analyzer/modules/gasCosts') var lengthCheck = { 'KingOfTheEtherThrone.sol': 2, @@ -247,7 +247,7 @@ test('Integration test gasCosts.js', function (t) { test('Integration test similarVariableNames.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/similarVariableNames') + var module = require('../../src/solidity-analyzer/modules/similarVariableNames') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -281,7 +281,7 @@ test('Integration test similarVariableNames.js', function (t) { test('Integration test inlineAssembly.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/inlineAssembly') + var module = require('../../src/solidity-analyzer/modules/inlineAssembly') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -315,7 +315,7 @@ test('Integration test inlineAssembly.js', function (t) { test('Integration test blockTimestamp.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/blockTimestamp') + var module = require('../../src/solidity-analyzer/modules/blockTimestamp') var lengthCheck = { 'KingOfTheEtherThrone.sol': 1, @@ -349,7 +349,7 @@ test('Integration test blockTimestamp.js', function (t) { test('Integration test lowLevelCalls.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/lowLevelCalls') + var module = require('../../src/solidity-analyzer/modules/lowLevelCalls') var lengthCheck = { 'KingOfTheEtherThrone.sol': 1, @@ -383,7 +383,7 @@ test('Integration test lowLevelCalls.js', function (t) { test('Integration test blockBlockhash.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/blockBlockhash') + var module = require('../../src/solidity-analyzer/modules/blockBlockhash') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -417,7 +417,7 @@ test('Integration test blockBlockhash.js', function (t) { test('Integration test noReturn.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/noReturn') + var module = require('../../src/solidity-analyzer/modules/noReturn') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -451,7 +451,7 @@ test('Integration test noReturn.js', function (t) { test('Integration test selfdestruct.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/selfdestruct') + var module = require('../../src/solidity-analyzer/modules/selfdestruct') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -485,7 +485,7 @@ test('Integration test selfdestruct.js', function (t) { test('Integration test guardConditions.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/guardConditions') + var module = require('../../src/solidity-analyzer/modules/guardConditions') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -519,7 +519,7 @@ test('Integration test guardConditions.js', function (t) { test('Integration test deleteDynamicArrays.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/deleteDynamicArrays') + var module = require('../../src/solidity-analyzer/modules/deleteDynamicArrays') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -553,7 +553,7 @@ test('Integration test deleteDynamicArrays.js', function (t) { test('Integration test assignAndCompare.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/assignAndCompare') + var module = require('../../src/solidity-analyzer/modules/assignAndCompare') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, @@ -587,7 +587,7 @@ test('Integration test assignAndCompare.js', function (t) { test('Integration test intDivisionTruncate.js', function (t) { t.plan(testFiles.length) - var module = require('../../src/analysis/modules/intDivisionTruncate') + var module = require('../../src/solidity-analyzer/modules/intDivisionTruncate') var lengthCheck = { 'KingOfTheEtherThrone.sol': 0, diff --git a/remix-analyzer/test/analysis/staticAnalysisIssues-test.js b/remix-analyzer/test/analysis/staticAnalysisIssues-test.js index eb7b97a2ef..e3353d1786 100644 --- a/remix-analyzer/test/analysis/staticAnalysisIssues-test.js +++ b/remix-analyzer/test/analysis/staticAnalysisIssues-test.js @@ -1,7 +1,7 @@ var test = require('tape') var remixLib = require('remix-lib') -var StatRunner = require('../../src/analysis/staticAnalysisRunner') +var StatRunner = require('../../src/solidity-analyzer') var compilerInput = remixLib.helpers.compiler.compilerInput var compiler = require('solc') @@ -19,7 +19,7 @@ test('staticAnalysisIssues.functionParameterPassingError', function (t) { t.plan(2) var res = compile('functionParameters.sol') - var module = require('../../src/analysis/modules/checksEffectsInteraction') + var module = require('../../src/solidity-analyzer/modules/checksEffectsInteraction') var statRunner = new StatRunner() diff --git a/remix-debug/index.js b/remix-debug/index.js index 1f0f85d278..002a89d5a2 100644 --- a/remix-debug/index.js +++ b/remix-debug/index.js @@ -1,11 +1,11 @@ 'use strict' var EthDebugger = require('./src/Ethdebugger') -var CodeManager = require('./src/code/codeManager') -var BreakpointManager = require('./src/code/breakpointManager') var StorageViewer = require('./src/storage/storageViewer') var StorageResolver = require('./src/storage/storageResolver') -var TraceManager = require('./src/trace/traceManager') + +var remixLib = require('remix-lib') +var BreakpointManager = remixLib.code.BreakpointManager /* Use of breakPointManager : @@ -24,16 +24,9 @@ module.exports = { * @return {Function} _locationToRowConverter - function implemented by editor which return a column/line position for a char source location */ BreakpointManager: BreakpointManager, - code: { - CodeManager: CodeManager, - BreakpointManager: BreakpointManager - }, storage: { StorageViewer: StorageViewer, StorageResolver: StorageResolver - }, - trace: { - TraceManager: TraceManager } } diff --git a/remix-debug/src/Ethdebugger.js b/remix-debug/src/Ethdebugger.js index 6e2c8997dd..0b63056a75 100644 --- a/remix-debug/src/Ethdebugger.js +++ b/remix-debug/src/Ethdebugger.js @@ -1,16 +1,17 @@ 'use strict' -var CodeManager = require('./code/codeManager') var StorageViewer = require('./storage/storageViewer') var StorageResolver = require('./storage/storageResolver') -var TraceManager = require('./trace/traceManager') -var SolidityProxy = require('./decoder/solidityProxy') -var stateDecoder = require('./decoder/stateDecoder') -var localDecoder = require('./decoder/localDecoder') -var InternalCallTree = require('./decoder/internalCallTree') +var SolidityDecoder = require('./solidity-decoder') +var SolidityProxy = SolidityDecoder.SolidityProxy +var stateDecoder = SolidityDecoder.stateDecoder +var localDecoder = SolidityDecoder.localDecoder +var InternalCallTree = SolidityDecoder.InternalCallTree var remixLib = require('remix-lib') +var TraceManager = remixLib.trace.TraceManager +var CodeManager = remixLib.code.CodeManager var traceHelper = remixLib.helpers.trace var init = remixLib.init var executionContext = remixLib.execution.executionContext diff --git a/remix-debug/src/decoder/astHelper.js b/remix-debug/src/solidity-decoder/astHelper.js similarity index 100% rename from remix-debug/src/decoder/astHelper.js rename to remix-debug/src/solidity-decoder/astHelper.js diff --git a/remix-debug/src/decoder/decodeInfo.js b/remix-debug/src/solidity-decoder/decodeInfo.js similarity index 100% rename from remix-debug/src/decoder/decodeInfo.js rename to remix-debug/src/solidity-decoder/decodeInfo.js diff --git a/remix-debug/src/solidity-decoder/index.js b/remix-debug/src/solidity-decoder/index.js new file mode 100644 index 0000000000..ed92273450 --- /dev/null +++ b/remix-debug/src/solidity-decoder/index.js @@ -0,0 +1,11 @@ +var SolidityProxy = require('./solidityProxy') +var stateDecoder = require('./stateDecoder') +var localDecoder = require('./localDecoder') +var InternalCallTree = require('./internalCallTree') + +module.exports = { + SolidityProxy: SolidityProxy, + stateDecoder: stateDecoder, + localDecoder: localDecoder, + InternalCallTree: InternalCallTree +} diff --git a/remix-debug/src/decoder/internalCallTree.js b/remix-debug/src/solidity-decoder/internalCallTree.js similarity index 100% rename from remix-debug/src/decoder/internalCallTree.js rename to remix-debug/src/solidity-decoder/internalCallTree.js diff --git a/remix-debug/src/decoder/localDecoder.js b/remix-debug/src/solidity-decoder/localDecoder.js similarity index 100% rename from remix-debug/src/decoder/localDecoder.js rename to remix-debug/src/solidity-decoder/localDecoder.js diff --git a/remix-debug/src/decoder/solidityProxy.js b/remix-debug/src/solidity-decoder/solidityProxy.js similarity index 100% rename from remix-debug/src/decoder/solidityProxy.js rename to remix-debug/src/solidity-decoder/solidityProxy.js diff --git a/remix-debug/src/decoder/stateDecoder.js b/remix-debug/src/solidity-decoder/stateDecoder.js similarity index 100% rename from remix-debug/src/decoder/stateDecoder.js rename to remix-debug/src/solidity-decoder/stateDecoder.js diff --git a/remix-debug/src/decoder/types/Address.js b/remix-debug/src/solidity-decoder/types/Address.js similarity index 100% rename from remix-debug/src/decoder/types/Address.js rename to remix-debug/src/solidity-decoder/types/Address.js diff --git a/remix-debug/src/decoder/types/ArrayType.js b/remix-debug/src/solidity-decoder/types/ArrayType.js similarity index 100% rename from remix-debug/src/decoder/types/ArrayType.js rename to remix-debug/src/solidity-decoder/types/ArrayType.js diff --git a/remix-debug/src/decoder/types/Bool.js b/remix-debug/src/solidity-decoder/types/Bool.js similarity index 100% rename from remix-debug/src/decoder/types/Bool.js rename to remix-debug/src/solidity-decoder/types/Bool.js diff --git a/remix-debug/src/decoder/types/DynamicByteArray.js b/remix-debug/src/solidity-decoder/types/DynamicByteArray.js similarity index 100% rename from remix-debug/src/decoder/types/DynamicByteArray.js rename to remix-debug/src/solidity-decoder/types/DynamicByteArray.js diff --git a/remix-debug/src/decoder/types/Enum.js b/remix-debug/src/solidity-decoder/types/Enum.js similarity index 100% rename from remix-debug/src/decoder/types/Enum.js rename to remix-debug/src/solidity-decoder/types/Enum.js diff --git a/remix-debug/src/decoder/types/FixedByteArray.js b/remix-debug/src/solidity-decoder/types/FixedByteArray.js similarity index 100% rename from remix-debug/src/decoder/types/FixedByteArray.js rename to remix-debug/src/solidity-decoder/types/FixedByteArray.js diff --git a/remix-debug/src/decoder/types/Int.js b/remix-debug/src/solidity-decoder/types/Int.js similarity index 100% rename from remix-debug/src/decoder/types/Int.js rename to remix-debug/src/solidity-decoder/types/Int.js diff --git a/remix-debug/src/decoder/types/Mapping.js b/remix-debug/src/solidity-decoder/types/Mapping.js similarity index 100% rename from remix-debug/src/decoder/types/Mapping.js rename to remix-debug/src/solidity-decoder/types/Mapping.js diff --git a/remix-debug/src/decoder/types/RefType.js b/remix-debug/src/solidity-decoder/types/RefType.js similarity index 100% rename from remix-debug/src/decoder/types/RefType.js rename to remix-debug/src/solidity-decoder/types/RefType.js diff --git a/remix-debug/src/decoder/types/StringType.js b/remix-debug/src/solidity-decoder/types/StringType.js similarity index 100% rename from remix-debug/src/decoder/types/StringType.js rename to remix-debug/src/solidity-decoder/types/StringType.js diff --git a/remix-debug/src/decoder/types/Struct.js b/remix-debug/src/solidity-decoder/types/Struct.js similarity index 100% rename from remix-debug/src/decoder/types/Struct.js rename to remix-debug/src/solidity-decoder/types/Struct.js diff --git a/remix-debug/src/decoder/types/Uint.js b/remix-debug/src/solidity-decoder/types/Uint.js similarity index 100% rename from remix-debug/src/decoder/types/Uint.js rename to remix-debug/src/solidity-decoder/types/Uint.js diff --git a/remix-debug/src/decoder/types/ValueType.js b/remix-debug/src/solidity-decoder/types/ValueType.js similarity index 100% rename from remix-debug/src/decoder/types/ValueType.js rename to remix-debug/src/solidity-decoder/types/ValueType.js diff --git a/remix-debug/src/decoder/types/util.js b/remix-debug/src/solidity-decoder/types/util.js similarity index 100% rename from remix-debug/src/decoder/types/util.js rename to remix-debug/src/solidity-decoder/types/util.js diff --git a/remix-debug/test/decoder/decodeInfo.js b/remix-debug/test/decoder/decodeInfo.js index 4e100f2b79..6a41f0d9d4 100644 --- a/remix-debug/test/decoder/decodeInfo.js +++ b/remix-debug/test/decoder/decodeInfo.js @@ -1,14 +1,14 @@ 'use strict' var tape = require('tape') var compiler = require('solc') -var astHelper = require('../../src/decoder/astHelper') -var decodeInfo = require('../../src/decoder/decodeInfo') -var stateDecoder = require('../../src/decoder/stateDecoder') +var astHelper = require('../../src/solidity-decoder/astHelper') +var decodeInfo = require('../../src/solidity-decoder/decodeInfo') +var stateDecoder = require('../../src/solidity-decoder/stateDecoder') var contracts = require('./contracts/miscContracts') var simplecontracts = require('./contracts/simpleContract') var remixLib = require('remix-lib') var compilerInput = remixLib.helpers.compiler.compilerInput -var util = require('../../src/decoder/types/util') +var util = require('../../src/solidity-decoder/types/util') tape('solidity', function (t) { t.test('astHelper, decodeInfo', function (st) { diff --git a/remix-debug/test/decoder/localsTests/helper.js b/remix-debug/test/decoder/localsTests/helper.js index 867f515d85..b30c39cb21 100644 --- a/remix-debug/test/decoder/localsTests/helper.js +++ b/remix-debug/test/decoder/localsTests/helper.js @@ -1,5 +1,5 @@ 'use strict' -var localDecoder = require('../../../src/decoder/localDecoder') +var localDecoder = require('../../../src/solidity-decoder/localDecoder') /* Decode local variable diff --git a/remix-debug/test/decoder/localsTests/int.js b/remix-debug/test/decoder/localsTests/int.js index db3a35f6c8..bfb57fef3c 100644 --- a/remix-debug/test/decoder/localsTests/int.js +++ b/remix-debug/test/decoder/localsTests/int.js @@ -1,14 +1,14 @@ 'use strict' -var TraceManager = require('../../../src/trace/traceManager') -var CodeManager = require('../../../src/code/codeManager') - var vmCall = require('../vmCall') var remixLib = require('remix-lib') +var TraceManager = remixLib.trace.TraceManager +var CodeManager = remixLib.code.CodeManager + var traceHelper = remixLib.helpers.trace -var SolidityProxy = require('../../../src/decoder/solidityProxy') -var InternalCallTree = require('../../../src/decoder/internalCallTree') +var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy') +var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree') var EventManager = remixLib.EventManager var helper = require('./helper') diff --git a/remix-debug/test/decoder/localsTests/misc.js b/remix-debug/test/decoder/localsTests/misc.js index 9285ab31c8..258b509902 100644 --- a/remix-debug/test/decoder/localsTests/misc.js +++ b/remix-debug/test/decoder/localsTests/misc.js @@ -1,14 +1,15 @@ 'use strict' -var TraceManager = require('../../../src/trace/traceManager') -var CodeManager = require('../../../src/code/codeManager') var vmCall = require('../vmCall') var remixLib = require('remix-lib') var traceHelper = remixLib.helpers.trace -var SolidityProxy = require('../../../src/decoder/solidityProxy') -var InternalCallTree = require('../../../src/decoder/internalCallTree') +var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy') +var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree') var EventManager = remixLib.EventManager var helper = require('./helper') +var TraceManager = remixLib.trace.TraceManager +var CodeManager = remixLib.code.CodeManager + module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) { vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) { if (error) { diff --git a/remix-debug/test/decoder/localsTests/misc2.js b/remix-debug/test/decoder/localsTests/misc2.js index 19b69eba04..cde7ede1c3 100644 --- a/remix-debug/test/decoder/localsTests/misc2.js +++ b/remix-debug/test/decoder/localsTests/misc2.js @@ -1,14 +1,15 @@ 'use strict' -var TraceManager = require('../../../src/trace/traceManager') -var CodeManager = require('../../../src/code/codeManager') var vmCall = require('../vmCall') var remixLib = require('remix-lib') var traceHelper = remixLib.helpers.trace -var SolidityProxy = require('../../../src/decoder/solidityProxy') -var InternalCallTree = require('../../../src/decoder/internalCallTree') +var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy') +var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree') var EventManager = remixLib.EventManager var helper = require('./helper') +var TraceManager = remixLib.trace.TraceManager +var CodeManager = remixLib.code.CodeManager + module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) { vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) { if (error) { diff --git a/remix-debug/test/decoder/localsTests/structArray.js b/remix-debug/test/decoder/localsTests/structArray.js index 984a341546..ca1845da97 100644 --- a/remix-debug/test/decoder/localsTests/structArray.js +++ b/remix-debug/test/decoder/localsTests/structArray.js @@ -1,14 +1,15 @@ 'use strict' -var TraceManager = require('../../../src/trace/traceManager') -var CodeManager = require('../../../src/code/codeManager') var vmCall = require('../vmCall') var remixLib = require('remix-lib') var traceHelper = remixLib.helpers.trace -var SolidityProxy = require('../../../src/decoder/solidityProxy') -var InternalCallTree = require('../../../src/decoder/internalCallTree') +var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy') +var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree') var EventManager = remixLib.EventManager var helper = require('./helper') +var TraceManager = remixLib.trace.TraceManager +var CodeManager = remixLib.code.CodeManager + module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) { vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) { if (error) { diff --git a/remix-debug/test/decoder/stateTests/mapping.js b/remix-debug/test/decoder/stateTests/mapping.js index ed14992837..28709c7903 100644 --- a/remix-debug/test/decoder/stateTests/mapping.js +++ b/remix-debug/test/decoder/stateTests/mapping.js @@ -1,10 +1,11 @@ var remixLib = require('remix-lib') var compilerInput = remixLib.helpers.compiler.compilerInput +var TraceManager = remixLib.trace.TraceManager + var compiler = require('solc') -var stateDecoder = require('../../../src/decoder/stateDecoder') +var stateDecoder = require('../../../src/solidity-decoder/stateDecoder') var vmCall = require('../vmCall') -var TraceManager = require('../../../src/trace/traceManager') var StorageResolver = require('../../../src/storage/storageResolver') var StorageViewer = require('../../../src/storage/storageViewer') diff --git a/remix-debug/test/decoder/storageDecoder.js b/remix-debug/test/decoder/storageDecoder.js index 1c943e47fd..4b57247814 100644 --- a/remix-debug/test/decoder/storageDecoder.js +++ b/remix-debug/test/decoder/storageDecoder.js @@ -1,7 +1,7 @@ 'use strict' var tape = require('tape') var compiler = require('solc') -var stateDecoder = require('../../src/decoder/stateDecoder') +var stateDecoder = require('../../src/solidity-decoder/stateDecoder') var MockStorageResolver = require('./mockStorageResolver') var remixLib = require('remix-lib') var compilerInput = remixLib.helpers.compiler.compilerInput diff --git a/remix-debug/test/decoder/storageLocation.js b/remix-debug/test/decoder/storageLocation.js index fe4dc601d3..300adc467b 100644 --- a/remix-debug/test/decoder/storageLocation.js +++ b/remix-debug/test/decoder/storageLocation.js @@ -1,7 +1,7 @@ 'use strict' var tape = require('tape') var compiler = require('solc') -var stateDecoder = require('../../src/decoder/stateDecoder') +var stateDecoder = require('../../src/solidity-decoder/stateDecoder') var contracts = require('./contracts/miscContracts') var remixLib = require('remix-lib') var compilerInput = remixLib.helpers.compiler.compilerInput diff --git a/remix-debug/test/tests.js b/remix-debug/test/tests.js index 37481f6501..0ae683aac2 100644 --- a/remix-debug/test/tests.js +++ b/remix-debug/test/tests.js @@ -6,16 +6,12 @@ var vmCall = require('./vmCall') var Debugger = require('../src/Ethdebugger') var compiler = require('solc') -require('./traceManager.js') -require('./codeManager.js') -require('./disassembler.js') - require('./decoder/decodeInfo.js') require('./decoder/storageLocation.js') require('./decoder/storageDecoder.js') require('./decoder/localDecoder.js') -var BreakpointManager = require('../src/code/breakpointManager') +var BreakpointManager = remixLib.code.BreakpointManager tape('debug contract', function (t) { t.plan(12) diff --git a/remix-lib/index.js b/remix-lib/index.js index 3e28b78028..64304009cc 100644 --- a/remix-lib/index.js +++ b/remix-lib/index.js @@ -22,6 +22,10 @@ var txRunner = require('./src/execution/txRunner') var executionContext = require('./src/execution/execution-context') var typeConversion = require('./src/execution/typeConversion') +var CodeManager = require('./src/code/codeManager') +var BreakpointManager = require('./src/code/breakpointManager') +var TraceManager = require('./src/trace/traceManager') + if (typeof (module) !== 'undefined' && typeof (module.exports) !== 'undefined') { module.exports = modules() } @@ -32,6 +36,13 @@ if (typeof (window) !== 'undefined') { function modules () { return { + code: { + CodeManager: CodeManager, + BreakpointManager: BreakpointManager + }, + trace: { + TraceManager: TraceManager + }, EventManager: EventManager, helpers: { trace: traceHelper, diff --git a/remix-lib/package.json b/remix-lib/package.json index 6a4d3627b3..e14204ddd2 100644 --- a/remix-lib/package.json +++ b/remix-lib/package.json @@ -50,7 +50,8 @@ "node_modules/*", "build/*", "test/resources/*" - ] + ], + "parser": "babel-eslint" }, "browserify": { "transform": [ diff --git a/remix-debug/src/code/breakpointManager.js b/remix-lib/src/code/breakpointManager.js similarity index 98% rename from remix-debug/src/code/breakpointManager.js rename to remix-lib/src/code/breakpointManager.js index 4479f0ec4e..73b53f5479 100644 --- a/remix-debug/src/code/breakpointManager.js +++ b/remix-lib/src/code/breakpointManager.js @@ -1,7 +1,7 @@ 'use strict' -var remixLib = require('remix-lib') -var EventManager = remixLib.EventManager -var helper = remixLib.helpers.trace + +var EventManager = require('../eventManager') +var helper = require('../helpers/traceHelper') /** * allow to manage breakpoint diff --git a/remix-debug/src/code/codeManager.js b/remix-lib/src/code/codeManager.js similarity index 96% rename from remix-debug/src/code/codeManager.js rename to remix-lib/src/code/codeManager.js index ac6d5536a2..0664a0e353 100644 --- a/remix-debug/src/code/codeManager.js +++ b/remix-lib/src/code/codeManager.js @@ -1,8 +1,8 @@ 'use strict' -var remixLib = require('remix-lib') -var EventManager = remixLib.EventManager -var traceHelper = remixLib.helpers.trace -var SourceMappingDecoder = remixLib.SourceMappingDecoder + +var EventManager = require('../eventManager') +var traceHelper = require('../helpers/traceHelper') +var SourceMappingDecoder = require('../sourceMappingDecoder') var CodeResolver = require('./codeResolver') /* diff --git a/remix-debug/src/code/codeResolver.js b/remix-lib/src/code/codeResolver.js similarity index 100% rename from remix-debug/src/code/codeResolver.js rename to remix-lib/src/code/codeResolver.js diff --git a/remix-debug/src/code/codeUtils.js b/remix-lib/src/code/codeUtils.js similarity index 100% rename from remix-debug/src/code/codeUtils.js rename to remix-lib/src/code/codeUtils.js diff --git a/remix-debug/src/code/disassembler.js b/remix-lib/src/code/disassembler.js similarity index 96% rename from remix-debug/src/code/disassembler.js rename to remix-lib/src/code/disassembler.js index 69c6082c65..4c5a96b2b8 100644 --- a/remix-debug/src/code/disassembler.js +++ b/remix-lib/src/code/disassembler.js @@ -1,8 +1,7 @@ 'use strict' var parseCode = require('./codeUtils').parseCode -var remixLib = require('remix-lib') -var util = remixLib.util +var util = require('../util') var createExpressions = function (instructions) { var expressions = [] diff --git a/remix-debug/src/code/opcodes.js b/remix-lib/src/code/opcodes.js similarity index 100% rename from remix-debug/src/code/opcodes.js rename to remix-lib/src/code/opcodes.js diff --git a/remix-debug/src/trace/traceAnalyser.js b/remix-lib/src/trace/traceAnalyser.js similarity index 98% rename from remix-debug/src/trace/traceAnalyser.js rename to remix-lib/src/trace/traceAnalyser.js index 240e1ee3dd..66aefa2c51 100644 --- a/remix-debug/src/trace/traceAnalyser.js +++ b/remix-lib/src/trace/traceAnalyser.js @@ -1,6 +1,5 @@ 'use strict' -var remixLib = require('remix-lib') -var traceHelper = remixLib.helpers.trace +var traceHelper = require('../helpers/traceHelper') function TraceAnalyser (_cache) { this.traceCache = _cache diff --git a/remix-debug/src/trace/traceCache.js b/remix-lib/src/trace/traceCache.js similarity index 98% rename from remix-debug/src/trace/traceCache.js rename to remix-lib/src/trace/traceCache.js index 6dc98a16b2..6448a12fd0 100644 --- a/remix-debug/src/trace/traceCache.js +++ b/remix-lib/src/trace/traceCache.js @@ -1,6 +1,5 @@ 'use strict' -var remixLib = require('remix-lib') -var helper = remixLib.util +var helper = require('../util') function TraceCache () { this.init() diff --git a/remix-debug/src/trace/traceManager.js b/remix-lib/src/trace/traceManager.js similarity index 98% rename from remix-debug/src/trace/traceManager.js rename to remix-lib/src/trace/traceManager.js index 8db9b95157..98785c54e4 100644 --- a/remix-debug/src/trace/traceManager.js +++ b/remix-lib/src/trace/traceManager.js @@ -3,9 +3,9 @@ var TraceAnalyser = require('./traceAnalyser') var TraceRetriever = require('./traceRetriever') var TraceCache = require('./traceCache') var TraceStepManager = require('./traceStepManager') -var remixLib = require('remix-lib') -var traceHelper = remixLib.helpers.trace -var util = remixLib.util + +var traceHelper = require('../helpers/traceHelper') +var util = require('../util') function TraceManager (options) { this.web3 = options.web3 diff --git a/remix-debug/src/trace/traceRetriever.js b/remix-lib/src/trace/traceRetriever.js similarity index 100% rename from remix-debug/src/trace/traceRetriever.js rename to remix-lib/src/trace/traceRetriever.js diff --git a/remix-debug/src/trace/traceStepManager.js b/remix-lib/src/trace/traceStepManager.js similarity index 94% rename from remix-debug/src/trace/traceStepManager.js rename to remix-lib/src/trace/traceStepManager.js index 5b4f50a625..e402224ec5 100644 --- a/remix-debug/src/trace/traceStepManager.js +++ b/remix-lib/src/trace/traceStepManager.js @@ -1,7 +1,7 @@ 'use strict' -var remixLib = require('remix-lib') -var traceHelper = remixLib.helpers.trace -var util = remixLib.util + +var traceHelper = require('../helpers/traceHelper') +var util = require('../util') function TraceStepManager (_traceAnalyser) { this.traceAnalyser = _traceAnalyser diff --git a/remix-debug/test/codeManager.js b/remix-lib/test/codeManager.js similarity index 97% rename from remix-debug/test/codeManager.js rename to remix-lib/test/codeManager.js index a0709226de..09db112d0f 100644 --- a/remix-debug/test/codeManager.js +++ b/remix-lib/test/codeManager.js @@ -1,7 +1,6 @@ 'use strict' var tape = require('tape') -var remixLib = require('remix-lib') -var Web3Providers = remixLib.vm.Web3Providers +var Web3Providers = require('../src/web3Provider/web3Providers') var TraceManager = require('../src/trace/traceManager') var CodeManager = require('../src/code/codeManager') var web3Test = require('./resources/testWeb3') diff --git a/remix-debug/test/disassembler.js b/remix-lib/test/disassembler.js similarity index 100% rename from remix-debug/test/disassembler.js rename to remix-lib/test/disassembler.js diff --git a/remix-lib/test/init.js b/remix-lib/test/init.js new file mode 100644 index 0000000000..bd8f9114ea --- /dev/null +++ b/remix-lib/test/init.js @@ -0,0 +1,31 @@ +var init = { + overrideWeb3: function (web3, web3Override) { + web3.eth.getCode = web3Override.getCode + web3.debug.traceTransaction = web3Override.traceTransaction + web3.debug.storageRangeAt = web3Override.storageRangeAt + web3.eth.getTransaction = web3Override.getTransaction + web3.eth.getTransactionFromBlock = web3Override.getTransactionFromBlock + web3.eth.getBlockNumber = web3Override.getBlockNumber + }, + + readFile: function (filename, callback) { + var fs = require('fs') + try { + console.log('reading ' + filename) + if (callback) { + fs.readFile(filename, 'utf8', callback) + } else { + return fs.readFileSync(filename, 'utf8') + } + } catch (e) { + console.log(e) + if (callback) { + callback(e) + } else { + return e + } + } + } +} + +module.exports = init diff --git a/remix-lib/test/resources/testWeb3.js b/remix-lib/test/resources/testWeb3.js new file mode 100644 index 0000000000..a138a81eb4 --- /dev/null +++ b/remix-lib/test/resources/testWeb3.js @@ -0,0 +1,51 @@ +'use strict' +var init = require('../init') +var web3Override = {} +web3Override.eth = {} +web3Override.debug = {} +var data = init.readFile(require('path').resolve(__dirname, 'testWeb3.json')) +data = JSON.parse(data) + +web3Override.eth.getCode = function (address, callback) { + if (callback) { + callback(null, data.testCodes[address]) + } else { + return data.testCodes[address] + } +} + +web3Override.debug.traceTransaction = function (txHash, options, callback) { + callback(null, data.testTraces[txHash]) +} + +web3Override.debug.storageRangeAt = function (blockNumber, txIndex, address, start, maxSize, callback) { + callback(null, { storage: {}, complete: true }) +} + +web3Override.eth.getTransaction = function (txHash, callback) { + if (callback) { + callback(null, data.testTxs[txHash]) + } else { + return data.testTxs[txHash] + } +} + +web3Override.eth.getTransactionFromBlock = function (blockNumber, txIndex, callback) { + if (callback) { + callback(null, data.testTxsByBlock[blockNumber + '-' + txIndex]) + } else { + return data.testTxsByBlock[blockNumber + '-' + txIndex] + } +} + +web3Override.eth.getBlockNumber = function (callback) { callback('web3 modified testing purposes :)') } + +web3Override.eth.setProvider = function (provider) {} + +web3Override.eth.providers = { 'HttpProvider': function (url) {} } + +web3Override.eth.currentProvider = {'host': 'test provider'} + +if (typeof (module) !== 'undefined' && typeof (module.exports) !== 'undefined') { + module.exports = web3Override +} diff --git a/remix-lib/test/resources/testWeb3.json b/remix-lib/test/resources/testWeb3.json new file mode 100644 index 0000000000..ba5f88cb0f --- /dev/null +++ b/remix-lib/test/resources/testWeb3.json @@ -0,0 +1,17 @@ +{ + "testTxs": { + "0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51": {"blockHash":"0xd1d34932f8733e0485b7d9bf8500c4046d650f20ed7792508c304304fa7bbfac","blockNumber":89,"from":"0x00101c5bfa3fc8bad02c9f5fd65b069306251915","gas":105967,"gasPrice":"20000000000","hash":"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51","input":"0x60fe47b10000000000000000000000000000000000000000000000000000000000000038","nonce":3,"to":"0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5","transactionIndex":0,"value":"0"} + }, + + "testTxsByBlock": { + "105967-0": {"blockHash":"0xd1d34932f8733e0485b7d9bf8500c4046d650f20ed7792508c304304fa7bbfac","blockNumber":89,"from":"0x00101c5bfa3fc8bad02c9f5fd65b069306251915","gas":105967,"gasPrice":"20000000000","hash":"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51","input":"0x60fe47b10000000000000000000000000000000000000000000000000000000000000038","nonce":3,"to":"0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5","transactionIndex":0,"value":"0"} + }, + + "testCodes": { + "0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5": "0x60606040526000357c01000000000000000000000000000000000000000000000000000000009004806360fe47b11460415780636d4ce63c14605757603f565b005b605560048080359060200190919050506089565b005b606260048050506078565b6040518082815260200191505060405180910390f35b600060006000505490506086565b90565b80600060005081905550602d6040516045806100f083390180828152602001915050604051809103906000f0600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550602281016000600050819055505b505660606040526040516020806045833981016040528080519060200190919050505b806001016000600050819055505b50600a80603b6000396000f360606040526008565b00" + }, + + "testTraces": { + "0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51": {"gas":"0x0000000000000000000000000000000000000000000000000000000000019def","return":"0x","structLogs":[{"gas":"84503","gasCost":"3","memory":[],"op":"PUSH1","pc":"0","stack":[]},{"gas":"84500","gasCost":"3","op":"PUSH1","pc":"2","stack":["0x60"]},{"gas":"84497","gasCost":"12","memexpand":"3","op":"MSTORE","pc":"4","stack":["0x60","0x40"]},{"gas":"84485","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060"],"op":"PUSH1","pc":"5","stack":[]},{"gas":"84482","gasCost":"3","op":"CALLDATALOAD","pc":"7","stack":["0x00"]},{"gas":"84479","gasCost":"3","op":"PUSH29","pc":"8","stack":["0x60fe47b100000000000000000000000000000000000000000000000000000000"]},{"gas":"84476","gasCost":"3","op":"SWAP1","pc":"38","stack":["0x60fe47b100000000000000000000000000000000000000000000000000000000","0x0100000000000000000000000000000000000000000000000000000000"]},{"gas":"84473","gasCost":"5","op":"DIV","pc":"39","stack":["0x0100000000000000000000000000000000000000000000000000000000","0x60fe47b100000000000000000000000000000000000000000000000000000000"]},{"gas":"84468","gasCost":"3","op":"DUP1","pc":"40","stack":["0x60fe47b1"]},{"gas":"84465","gasCost":"3","op":"PUSH4","pc":"41","stack":["0x60fe47b1","0x60fe47b1"]},{"gas":"84462","gasCost":"3","op":"EQ","pc":"46","stack":["0x60fe47b1","0x60fe47b1","0x60fe47b1"]},{"gas":"84459","gasCost":"3","op":"PUSH1","pc":"47","stack":["0x60fe47b1","0x01"]},{"gas":"84456","gasCost":"10","op":"JUMPI","pc":"49","stack":["0x60fe47b1","0x01","0x41"]},{"gas":"84446","gasCost":"1","op":"JUMPDEST","pc":"65","stack":["0x60fe47b1"]},{"gas":"84445","gasCost":"3","op":"PUSH1","pc":"66","stack":["0x60fe47b1"]},{"gas":"84442","gasCost":"3","op":"PUSH1","pc":"68","stack":["0x60fe47b1","0x55"]},{"gas":"84439","gasCost":"3","op":"DUP1","pc":"70","stack":["0x60fe47b1","0x55","0x04"]},{"gas":"84436","gasCost":"3","op":"DUP1","pc":"71","stack":["0x60fe47b1","0x55","0x04","0x04"]},{"gas":"84433","gasCost":"3","op":"CALLDATALOAD","pc":"72","stack":["0x60fe47b1","0x55","0x04","0x04","0x04"]},{"gas":"84430","gasCost":"3","op":"SWAP1","pc":"73","stack":["0x60fe47b1","0x55","0x04","0x04","0x38"]},{"gas":"84427","gasCost":"3","op":"PUSH1","pc":"74","stack":["0x60fe47b1","0x55","0x04","0x38","0x04"]},{"gas":"84424","gasCost":"3","op":"ADD","pc":"76","stack":["0x60fe47b1","0x55","0x04","0x38","0x04","0x20"]},{"gas":"84421","gasCost":"3","op":"SWAP1","pc":"77","stack":["0x60fe47b1","0x55","0x04","0x38","0x24"]},{"gas":"84418","gasCost":"3","op":"SWAP2","pc":"78","stack":["0x60fe47b1","0x55","0x04","0x24","0x38"]},{"gas":"84415","gasCost":"3","op":"SWAP1","pc":"79","stack":["0x60fe47b1","0x55","0x38","0x24","0x04"]},{"gas":"84412","gasCost":"2","op":"POP","pc":"80","stack":["0x60fe47b1","0x55","0x38","0x04","0x24"]},{"gas":"84410","gasCost":"2","op":"POP","pc":"81","stack":["0x60fe47b1","0x55","0x38","0x04"]},{"gas":"84408","gasCost":"3","op":"PUSH1","pc":"82","stack":["0x60fe47b1","0x55","0x38"]},{"gas":"84405","gasCost":"8","op":"JUMP","pc":"84","stack":["0x60fe47b1","0x55","0x38","0x89"]},{"gas":"84397","gasCost":"1","op":"JUMPDEST","pc":"137","stack":["0x60fe47b1","0x55","0x38"]},{"gas":"84396","gasCost":"3","op":"DUP1","pc":"138","stack":["0x60fe47b1","0x55","0x38"]},{"gas":"84393","gasCost":"3","op":"PUSH1","pc":"139","stack":["0x60fe47b1","0x55","0x38","0x38"]},{"gas":"84390","gasCost":"3","op":"PUSH1","pc":"141","stack":["0x60fe47b1","0x55","0x38","0x38","0x00"]},{"gas":"84387","gasCost":"2","op":"POP","pc":"143","stack":["0x60fe47b1","0x55","0x38","0x38","0x00","0x00"]},{"gas":"84385","gasCost":"3","op":"DUP2","pc":"144","stack":["0x60fe47b1","0x55","0x38","0x38","0x00"]},{"gas":"84382","gasCost":"3","op":"SWAP1","pc":"145","stack":["0x60fe47b1","0x55","0x38","0x38","0x00","0x38"]},{"gas":"84379","gasCost":"5000","op":"SSTORE","pc":"146","stack":["0x60fe47b1","0x55","0x38","0x38","0x38","0x00"]},{"gas":"79379","gasCost":"2","op":"POP","pc":"147","stack":["0x60fe47b1","0x55","0x38","0x38"]},{"gas":"79377","gasCost":"3","op":"PUSH1","pc":"148","stack":["0x60fe47b1","0x55","0x38"]},{"gas":"79374","gasCost":"3","op":"PUSH1","pc":"150","stack":["0x60fe47b1","0x55","0x38","0x2d"]},{"gas":"79371","gasCost":"3","op":"MLOAD","pc":"152","stack":["0x60fe47b1","0x55","0x38","0x2d","0x40"]},{"gas":"79368","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060"],"op":"PUSH1","pc":"153","stack":["0x60fe47b1","0x55","0x38","0x2d","0x60"]},{"gas":"79365","gasCost":"3","op":"DUP1","pc":"155","stack":["0x60fe47b1","0x55","0x38","0x2d","0x60","0x45"]},{"gas":"79362","gasCost":"3","op":"PUSH2","pc":"156","stack":["0x60fe47b1","0x55","0x38","0x2d","0x60","0x45","0x45"]},{"gas":"79359","gasCost":"3","op":"DUP4","pc":"159","stack":["0x60fe47b1","0x55","0x38","0x2d","0x60","0x45","0x45","0xf0"]},{"gas":"79356","gasCost":"21","memexpand":"3","op":"CODECOPY","pc":"160","stack":["0x60fe47b1","0x55","0x38","0x2d","0x60","0x45","0x45","0xf0","0x60"]},{"gas":"79335","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060","6060604052604051602080604583398101604052808051906020019091905050","5b806001016000600050819055505b50600a80603b6000396000f36060604052","6008565b00000000000000000000000000000000000000000000000000000000"],"op":"ADD","pc":"161","stack":["0x60fe47b1","0x55","0x38","0x2d","0x60","0x45"]},{"gas":"79332","gasCost":"3","op":"DUP1","pc":"162","stack":["0x60fe47b1","0x55","0x38","0x2d","0xa5"]},{"gas":"79329","gasCost":"3","op":"DUP3","pc":"163","stack":["0x60fe47b1","0x55","0x38","0x2d","0xa5","0xa5"]},{"gas":"79326","gasCost":"3","op":"DUP2","pc":"164","stack":["0x60fe47b1","0x55","0x38","0x2d","0xa5","0xa5","0x2d"]},{"gas":"79323","gasCost":"6","memexpand":"1","op":"MSTORE","pc":"165","stack":["0x60fe47b1","0x55","0x38","0x2d","0xa5","0xa5","0x2d","0xa5"]},{"gas":"79317","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060","6060604052604051602080604583398101604052808051906020019091905050","5b806001016000600050819055505b50600a80603b6000396000f36060604052","6008565b00000000000000000000000000000000000000000000000000000000","000000002d000000000000000000000000000000000000000000000000000000"],"op":"PUSH1","pc":"166","stack":["0x60fe47b1","0x55","0x38","0x2d","0xa5","0xa5"]},{"gas":"79314","gasCost":"3","op":"ADD","pc":"168","stack":["0x60fe47b1","0x55","0x38","0x2d","0xa5","0xa5","0x20"]},{"gas":"79311","gasCost":"3","op":"SWAP2","pc":"169","stack":["0x60fe47b1","0x55","0x38","0x2d","0xa5","0xc5"]},{"gas":"79308","gasCost":"2","op":"POP","pc":"170","stack":["0x60fe47b1","0x55","0x38","0xc5","0xa5","0x2d"]},{"gas":"79306","gasCost":"2","op":"POP","pc":"171","stack":["0x60fe47b1","0x55","0x38","0xc5","0xa5"]},{"gas":"79304","gasCost":"3","op":"PUSH1","pc":"172","stack":["0x60fe47b1","0x55","0x38","0xc5"]},{"gas":"79301","gasCost":"3","op":"MLOAD","pc":"174","stack":["0x60fe47b1","0x55","0x38","0xc5","0x40"]},{"gas":"79298","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060","6060604052604051602080604583398101604052808051906020019091905050","5b806001016000600050819055505b50600a80603b6000396000f36060604052","6008565b00000000000000000000000000000000000000000000000000000000","000000002d000000000000000000000000000000000000000000000000000000"],"op":"DUP1","pc":"175","stack":["0x60fe47b1","0x55","0x38","0xc5","0x60"]},{"gas":"79295","gasCost":"3","op":"SWAP2","pc":"176","stack":["0x60fe47b1","0x55","0x38","0xc5","0x60","0x60"]},{"gas":"79292","gasCost":"3","op":"SUB","pc":"177","stack":["0x60fe47b1","0x55","0x38","0x60","0x60","0xc5"]},{"gas":"79289","gasCost":"3","op":"SWAP1","pc":"178","stack":["0x60fe47b1","0x55","0x38","0x60","0x65"]},{"gas":"79286","gasCost":"3","op":"PUSH1","pc":"179","stack":["0x60fe47b1","0x55","0x38","0x65","0x60"]},{"gas":"79283","gasCost":"32000","op":"CREATE","pc":"181","stack":["0x60fe47b1","0x55","0x38","0x65","0x60","0x00"]},{"gas":"47283","gasCost":"3","memory":[],"op":"PUSH1","pc":"0","stack":[]},{"gas":"47280","gasCost":"3","op":"PUSH1","pc":"2","stack":["0x60"]},{"gas":"47277","gasCost":"12","memexpand":"3","op":"MSTORE","pc":"4","stack":["0x60","0x40"]},{"gas":"47265","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060"],"op":"PUSH1","pc":"5","stack":[]},{"gas":"47262","gasCost":"3","op":"MLOAD","pc":"7","stack":["0x40"]},{"gas":"47259","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060"],"op":"PUSH1","pc":"8","stack":["0x60"]},{"gas":"47256","gasCost":"3","op":"DUP1","pc":"10","stack":["0x60","0x20"]},{"gas":"47253","gasCost":"3","op":"PUSH1","pc":"11","stack":["0x60","0x20","0x20"]},{"gas":"47250","gasCost":"3","op":"DUP4","pc":"13","stack":["0x60","0x20","0x20","0x45"]},{"gas":"47247","gasCost":"9","memexpand":"1","op":"CODECOPY","pc":"14","stack":["0x60","0x20","0x20","0x45","0x60"]},{"gas":"47238","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060","000000000000000000000000000000000000000000000000000000000000002d"],"op":"DUP2","pc":"15","stack":["0x60","0x20"]},{"gas":"47235","gasCost":"3","op":"ADD","pc":"16","stack":["0x60","0x20","0x60"]},{"gas":"47232","gasCost":"3","op":"PUSH1","pc":"17","stack":["0x60","0x80"]},{"gas":"47229","gasCost":"3","op":"MSTORE","pc":"19","stack":["0x60","0x80","0x40"]},{"gas":"47226","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000080","000000000000000000000000000000000000000000000000000000000000002d"],"op":"DUP1","pc":"20","stack":["0x60"]},{"gas":"47223","gasCost":"3","op":"DUP1","pc":"21","stack":["0x60","0x60"]},{"gas":"47220","gasCost":"3","op":"MLOAD","pc":"22","stack":["0x60","0x60","0x60"]},{"gas":"47217","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000080","000000000000000000000000000000000000000000000000000000000000002d"],"op":"SWAP1","pc":"23","stack":["0x60","0x60","0x2d"]},{"gas":"47214","gasCost":"3","op":"PUSH1","pc":"24","stack":["0x60","0x2d","0x60"]},{"gas":"47211","gasCost":"3","op":"ADD","pc":"26","stack":["0x60","0x2d","0x60","0x20"]},{"gas":"47208","gasCost":"3","op":"SWAP1","pc":"27","stack":["0x60","0x2d","0x80"]},{"gas":"47205","gasCost":"3","op":"SWAP2","pc":"28","stack":["0x60","0x80","0x2d"]},{"gas":"47202","gasCost":"3","op":"SWAP1","pc":"29","stack":["0x2d","0x80","0x60"]},{"gas":"47199","gasCost":"2","op":"POP","pc":"30","stack":["0x2d","0x60","0x80"]},{"gas":"47197","gasCost":"2","op":"POP","pc":"31","stack":["0x2d","0x60"]},{"gas":"47195","gasCost":"1","op":"JUMPDEST","pc":"32","stack":["0x2d"]},{"gas":"47194","gasCost":"3","op":"DUP1","pc":"33","stack":["0x2d"]},{"gas":"47191","gasCost":"3","op":"PUSH1","pc":"34","stack":["0x2d","0x2d"]},{"gas":"47188","gasCost":"3","op":"ADD","pc":"36","stack":["0x2d","0x2d","0x01"]},{"gas":"47185","gasCost":"3","op":"PUSH1","pc":"37","stack":["0x2d","0x2e"]},{"gas":"47182","gasCost":"3","op":"PUSH1","pc":"39","stack":["0x2d","0x2e","0x00"]},{"gas":"47179","gasCost":"2","op":"POP","pc":"41","stack":["0x2d","0x2e","0x00","0x00"]},{"gas":"47177","gasCost":"3","op":"DUP2","pc":"42","stack":["0x2d","0x2e","0x00"]},{"gas":"47174","gasCost":"3","op":"SWAP1","pc":"43","stack":["0x2d","0x2e","0x00","0x2e"]},{"gas":"47171","gasCost":"20000","op":"SSTORE","pc":"44","stack":["0x2d","0x2e","0x2e","0x00"]},{"gas":"27171","gasCost":"2","op":"POP","pc":"45","stack":["0x2d","0x2e"]},{"gas":"27169","gasCost":"1","op":"JUMPDEST","pc":"46","stack":["0x2d"]},{"gas":"27168","gasCost":"2","op":"POP","pc":"47","stack":["0x2d"]},{"gas":"27166","gasCost":"3","op":"PUSH1","pc":"48","stack":[]},{"gas":"27163","gasCost":"3","op":"DUP1","pc":"50","stack":["0x0a"]},{"gas":"27160","gasCost":"3","op":"PUSH1","pc":"51","stack":["0x0a","0x0a"]},{"gas":"27157","gasCost":"3","op":"PUSH1","pc":"53","stack":["0x0a","0x0a","0x3b"]},{"gas":"27154","gasCost":"6","op":"CODECOPY","pc":"55","stack":["0x0a","0x0a","0x3b","0x00"]},{"gas":"27148","gasCost":"3","memory":["60606040526008565b0000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000080","000000000000000000000000000000000000000000000000000000000000002d"],"op":"PUSH1","pc":"56","stack":["0x0a"]},{"gas":"27145","gasCost":"0","op":"RETURN","pc":"58","stack":["0x0a","0x00"]},{"gas":"25145","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060","6060604052604051602080604583398101604052808051906020019091905050","5b806001016000600050819055505b50600a80603b6000396000f36060604052","6008565b00000000000000000000000000000000000000000000000000000000","000000002d000000000000000000000000000000000000000000000000000000"],"op":"PUSH1","pc":"182","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"]},{"gas":"25142","gasCost":"3","memory":["0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000000000000000060","6060604052604051602080604583398101604052808051906020019091905050","5b806001016000600050819055505b50600a80603b6000396000f36060604052","6008565b00000000000000000000000000000000000000000000000000000000","000000002d000000000000000000000000000000000000000000000000000000"],"op":"PUSH1","pc":"184","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01"]},{"gas":"25139","gasCost":"3","op":"PUSH2","pc":"186","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x00"]},{"gas":"25136","gasCost":"10","op":"EXP","pc":"189","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x00","0x0100"]},{"gas":"25126","gasCost":"3","op":"DUP2","pc":"190","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01"]},{"gas":"25123","gasCost":"50","op":"SLOAD","pc":"191","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01","0x01"]},{"gas":"25073","gasCost":"3","op":"DUP2","pc":"192","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01","0x00"]},{"gas":"25070","gasCost":"3","op":"PUSH20","pc":"193","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01","0x00","0x01"]},{"gas":"25067","gasCost":"5","op":"MUL","pc":"214","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01","0x00","0x01","0xffffffffffffffffffffffffffffffffffffffff"]},{"gas":"25062","gasCost":"3","op":"NOT","pc":"215","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01","0x00","0xffffffffffffffffffffffffffffffffffffffff"]},{"gas":"25059","gasCost":"3","op":"AND","pc":"216","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01","0x00","0xffffffffffffffffffffffff0000000000000000000000000000000000000000"]},{"gas":"25056","gasCost":"3","op":"SWAP1","pc":"217","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x01","0x00"]},{"gas":"25053","gasCost":"3","op":"DUP4","pc":"218","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x00","0x01"]},{"gas":"25050","gasCost":"5","op":"MUL","pc":"219","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x00","0x01","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"]},{"gas":"25045","gasCost":"3","op":"OR","pc":"220","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0x00","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"]},{"gas":"25042","gasCost":"3","op":"SWAP1","pc":"221","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"]},{"gas":"25039","gasCost":"20000","op":"SSTORE","pc":"222","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95","0x01"]},{"gas":"5039","gasCost":"2","op":"POP","pc":"223","stack":["0x60fe47b1","0x55","0x38","0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"]},{"gas":"5037","gasCost":"3","op":"PUSH1","pc":"224","stack":["0x60fe47b1","0x55","0x38"]},{"gas":"5034","gasCost":"3","op":"DUP2","pc":"226","stack":["0x60fe47b1","0x55","0x38","0x22"]},{"gas":"5031","gasCost":"3","op":"ADD","pc":"227","stack":["0x60fe47b1","0x55","0x38","0x22","0x38"]},{"gas":"5028","gasCost":"3","op":"PUSH1","pc":"228","stack":["0x60fe47b1","0x55","0x38","0x5a"]},{"gas":"5025","gasCost":"3","op":"PUSH1","pc":"230","stack":["0x60fe47b1","0x55","0x38","0x5a","0x00"]},{"gas":"5022","gasCost":"2","op":"POP","pc":"232","stack":["0x60fe47b1","0x55","0x38","0x5a","0x00","0x00"]},{"gas":"5020","gasCost":"3","op":"DUP2","pc":"233","stack":["0x60fe47b1","0x55","0x38","0x5a","0x00"]},{"gas":"5017","gasCost":"3","op":"SWAP1","pc":"234","stack":["0x60fe47b1","0x55","0x38","0x5a","0x00","0x5a"]},{"gas":"5014","gasCost":"5000","op":"SSTORE","pc":"235","stack":["0x60fe47b1","0x55","0x38","0x5a","0x5a","0x00"]},{"gas":"14","gasCost":"2","op":"POP","pc":"236","stack":["0x60fe47b1","0x55","0x38","0x5a"]},{"gas":"12","gasCost":"1","op":"JUMPDEST","pc":"237","stack":["0x60fe47b1","0x55","0x38"]},{"gas":"11","gasCost":"2","op":"POP","pc":"238","stack":["0x60fe47b1","0x55","0x38"]},{"gas":"9","gasCost":"8","op":"JUMP","pc":"239","stack":["0x60fe47b1","0x55"]},{"gas":"1","gasCost":"1","op":"JUMPDEST","pc":"85","stack":["0x60fe47b1"]},{"gas":"0","gasCost":"0","op":"STOP","pc":"86","stack":["0x60fe47b1"]}]} + } +} diff --git a/remix-lib/test/tests.js b/remix-lib/test/tests.js index b0d0b69044..4e2030d630 100644 --- a/remix-lib/test/tests.js +++ b/remix-lib/test/tests.js @@ -3,3 +3,7 @@ require('./eventManager.js') require('./sourceMappingDecoder.js') require('./util.js') require('./txFormat.js') + +require('./traceManager.js') +require('./codeManager.js') +require('./disassembler.js') diff --git a/remix-debug/test/traceManager.js b/remix-lib/test/traceManager.js similarity index 99% rename from remix-debug/test/traceManager.js rename to remix-lib/test/traceManager.js index 053b07ea3c..5eb23f55b7 100644 --- a/remix-debug/test/traceManager.js +++ b/remix-lib/test/traceManager.js @@ -1,8 +1,7 @@ 'use strict' var TraceManager = require('../src/trace/traceManager') var tape = require('tape') -var remixLib = require('remix-lib') -var Web3Providers = remixLib.vm.Web3Providers +var Web3Providers = require('../src/web3Provider/web3Providers') var web3Test = require('./resources/testWeb3') let web3 = null