Unverified Commit 6978af8c authored by yann300's avatar yann300 Committed by GitHub

Merge pull request #871 from ethereum/remix-move-decoder

Remix move decoder
parents db994821 ce59cd20
...@@ -6,7 +6,7 @@ version: 2 ...@@ -6,7 +6,7 @@ version: 2
jobs: jobs:
remix-lib: remix-lib:
docker: docker:
- image: circleci/node:7.10 - image: circleci/node:9.11.2
environment: environment:
working_directory: ~/repo working_directory: ~/repo
steps: steps:
...@@ -16,7 +16,7 @@ jobs: ...@@ -16,7 +16,7 @@ jobs:
remix-debug: remix-debug:
docker: docker:
- image: circleci/node:7.10 - image: circleci/node:9.11.2
environment: environment:
working_directory: ~/repo working_directory: ~/repo
steps: steps:
...@@ -26,7 +26,7 @@ jobs: ...@@ -26,7 +26,7 @@ jobs:
remix-analyzer: remix-analyzer:
docker: docker:
- image: circleci/node:7.10 - image: circleci/node:9.11.2
environment: environment:
working_directory: ~/repo working_directory: ~/repo
steps: steps:
...@@ -41,4 +41,3 @@ workflows: ...@@ -41,4 +41,3 @@ workflows:
- remix-lib - remix-lib
- remix-debug - remix-debug
- remix-analyzer - remix-analyzer
var CodeAnalysis = require('./src/analysis/staticAnalysisRunner') var CodeAnalysis = require('./src/solidity-analyzer')
module.exports = { module.exports = {
CodeAnalysis: CodeAnalysis CodeAnalysis: CodeAnalysis
......
var test = require('tape') var test = require('tape')
var common = require('../../src/analysis/modules/staticAnalysisCommon') var common = require('../../src/solidity-analyzer/modules/staticAnalysisCommon')
function escapeRegExp (str) { function escapeRegExp (str) {
return str.replace(/[-[\]/{}()+?.\\^$|]/g, '\\$&') return str.replace(/[-[\]/{}()+?.\\^$|]/g, '\\$&')
......
var test = require('tape') var test = require('tape')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var StatRunner = require('../../src/analysis/staticAnalysisRunner') var StatRunner = require('../../src/solidity-analyzer')
var compilerInput = remixLib.helpers.compiler.compilerInput var compilerInput = remixLib.helpers.compiler.compilerInput
var compiler = require('solc') var compiler = require('solc')
...@@ -43,7 +43,7 @@ testFiles.forEach((fileName) => { ...@@ -43,7 +43,7 @@ testFiles.forEach((fileName) => {
test('Integration test thisLocal.js', function (t) { test('Integration test thisLocal.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/thisLocal') var module = require('../../src/solidity-analyzer/modules/thisLocal')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -77,7 +77,7 @@ test('Integration test thisLocal.js', function (t) { ...@@ -77,7 +77,7 @@ test('Integration test thisLocal.js', function (t) {
test('Integration test checksEffectsInteraction.js', function (t) { test('Integration test checksEffectsInteraction.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/checksEffectsInteraction') var module = require('../../src/solidity-analyzer/modules/checksEffectsInteraction')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 1, 'KingOfTheEtherThrone.sol': 1,
...@@ -111,7 +111,7 @@ test('Integration test checksEffectsInteraction.js', function (t) { ...@@ -111,7 +111,7 @@ test('Integration test checksEffectsInteraction.js', function (t) {
test('Integration test constantFunctions.js', function (t) { test('Integration test constantFunctions.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/constantFunctions') var module = require('../../src/solidity-analyzer/modules/constantFunctions')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -145,7 +145,7 @@ test('Integration test constantFunctions.js', function (t) { ...@@ -145,7 +145,7 @@ test('Integration test constantFunctions.js', function (t) {
test('Integration test inlineAssembly.js', function (t) { test('Integration test inlineAssembly.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/inlineAssembly') var module = require('../../src/solidity-analyzer/modules/inlineAssembly')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -179,7 +179,7 @@ test('Integration test inlineAssembly.js', function (t) { ...@@ -179,7 +179,7 @@ test('Integration test inlineAssembly.js', function (t) {
test('Integration test txOrigin.js', function (t) { test('Integration test txOrigin.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/txOrigin') var module = require('../../src/solidity-analyzer/modules/txOrigin')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -213,7 +213,7 @@ test('Integration test txOrigin.js', function (t) { ...@@ -213,7 +213,7 @@ test('Integration test txOrigin.js', function (t) {
test('Integration test gasCosts.js', function (t) { test('Integration test gasCosts.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/gasCosts') var module = require('../../src/solidity-analyzer/modules/gasCosts')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 2, 'KingOfTheEtherThrone.sol': 2,
...@@ -247,7 +247,7 @@ test('Integration test gasCosts.js', function (t) { ...@@ -247,7 +247,7 @@ test('Integration test gasCosts.js', function (t) {
test('Integration test similarVariableNames.js', function (t) { test('Integration test similarVariableNames.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/similarVariableNames') var module = require('../../src/solidity-analyzer/modules/similarVariableNames')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -281,7 +281,7 @@ test('Integration test similarVariableNames.js', function (t) { ...@@ -281,7 +281,7 @@ test('Integration test similarVariableNames.js', function (t) {
test('Integration test inlineAssembly.js', function (t) { test('Integration test inlineAssembly.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/inlineAssembly') var module = require('../../src/solidity-analyzer/modules/inlineAssembly')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -315,7 +315,7 @@ test('Integration test inlineAssembly.js', function (t) { ...@@ -315,7 +315,7 @@ test('Integration test inlineAssembly.js', function (t) {
test('Integration test blockTimestamp.js', function (t) { test('Integration test blockTimestamp.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/blockTimestamp') var module = require('../../src/solidity-analyzer/modules/blockTimestamp')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 1, 'KingOfTheEtherThrone.sol': 1,
...@@ -349,7 +349,7 @@ test('Integration test blockTimestamp.js', function (t) { ...@@ -349,7 +349,7 @@ test('Integration test blockTimestamp.js', function (t) {
test('Integration test lowLevelCalls.js', function (t) { test('Integration test lowLevelCalls.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/lowLevelCalls') var module = require('../../src/solidity-analyzer/modules/lowLevelCalls')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 1, 'KingOfTheEtherThrone.sol': 1,
...@@ -383,7 +383,7 @@ test('Integration test lowLevelCalls.js', function (t) { ...@@ -383,7 +383,7 @@ test('Integration test lowLevelCalls.js', function (t) {
test('Integration test blockBlockhash.js', function (t) { test('Integration test blockBlockhash.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/blockBlockhash') var module = require('../../src/solidity-analyzer/modules/blockBlockhash')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -417,7 +417,7 @@ test('Integration test blockBlockhash.js', function (t) { ...@@ -417,7 +417,7 @@ test('Integration test blockBlockhash.js', function (t) {
test('Integration test noReturn.js', function (t) { test('Integration test noReturn.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/noReturn') var module = require('../../src/solidity-analyzer/modules/noReturn')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -451,7 +451,7 @@ test('Integration test noReturn.js', function (t) { ...@@ -451,7 +451,7 @@ test('Integration test noReturn.js', function (t) {
test('Integration test selfdestruct.js', function (t) { test('Integration test selfdestruct.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/selfdestruct') var module = require('../../src/solidity-analyzer/modules/selfdestruct')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -485,7 +485,7 @@ test('Integration test selfdestruct.js', function (t) { ...@@ -485,7 +485,7 @@ test('Integration test selfdestruct.js', function (t) {
test('Integration test guardConditions.js', function (t) { test('Integration test guardConditions.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/guardConditions') var module = require('../../src/solidity-analyzer/modules/guardConditions')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -519,7 +519,7 @@ test('Integration test guardConditions.js', function (t) { ...@@ -519,7 +519,7 @@ test('Integration test guardConditions.js', function (t) {
test('Integration test deleteDynamicArrays.js', function (t) { test('Integration test deleteDynamicArrays.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/deleteDynamicArrays') var module = require('../../src/solidity-analyzer/modules/deleteDynamicArrays')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -553,7 +553,7 @@ test('Integration test deleteDynamicArrays.js', function (t) { ...@@ -553,7 +553,7 @@ test('Integration test deleteDynamicArrays.js', function (t) {
test('Integration test assignAndCompare.js', function (t) { test('Integration test assignAndCompare.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/assignAndCompare') var module = require('../../src/solidity-analyzer/modules/assignAndCompare')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
...@@ -587,7 +587,7 @@ test('Integration test assignAndCompare.js', function (t) { ...@@ -587,7 +587,7 @@ test('Integration test assignAndCompare.js', function (t) {
test('Integration test intDivisionTruncate.js', function (t) { test('Integration test intDivisionTruncate.js', function (t) {
t.plan(testFiles.length) t.plan(testFiles.length)
var module = require('../../src/analysis/modules/intDivisionTruncate') var module = require('../../src/solidity-analyzer/modules/intDivisionTruncate')
var lengthCheck = { var lengthCheck = {
'KingOfTheEtherThrone.sol': 0, 'KingOfTheEtherThrone.sol': 0,
......
var test = require('tape') var test = require('tape')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var StatRunner = require('../../src/analysis/staticAnalysisRunner') var StatRunner = require('../../src/solidity-analyzer')
var compilerInput = remixLib.helpers.compiler.compilerInput var compilerInput = remixLib.helpers.compiler.compilerInput
var compiler = require('solc') var compiler = require('solc')
...@@ -19,7 +19,7 @@ test('staticAnalysisIssues.functionParameterPassingError', function (t) { ...@@ -19,7 +19,7 @@ test('staticAnalysisIssues.functionParameterPassingError', function (t) {
t.plan(2) t.plan(2)
var res = compile('functionParameters.sol') var res = compile('functionParameters.sol')
var module = require('../../src/analysis/modules/checksEffectsInteraction') var module = require('../../src/solidity-analyzer/modules/checksEffectsInteraction')
var statRunner = new StatRunner() var statRunner = new StatRunner()
......
'use strict' 'use strict'
var EthDebugger = require('./src/Ethdebugger') var EthDebugger = require('./src/Ethdebugger')
var CodeManager = require('./src/code/codeManager')
var BreakpointManager = require('./src/code/breakpointManager')
var StorageViewer = require('./src/storage/storageViewer') var StorageViewer = require('./src/storage/storageViewer')
var StorageResolver = require('./src/storage/storageResolver') 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 : Use of breakPointManager :
...@@ -24,16 +24,9 @@ module.exports = { ...@@ -24,16 +24,9 @@ module.exports = {
* @return {Function} _locationToRowConverter - function implemented by editor which return a column/line position for a char source location * @return {Function} _locationToRowConverter - function implemented by editor which return a column/line position for a char source location
*/ */
BreakpointManager: BreakpointManager, BreakpointManager: BreakpointManager,
code: {
CodeManager: CodeManager,
BreakpointManager: BreakpointManager
},
storage: { storage: {
StorageViewer: StorageViewer, StorageViewer: StorageViewer,
StorageResolver: StorageResolver StorageResolver: StorageResolver
},
trace: {
TraceManager: TraceManager
} }
} }
'use strict' 'use strict'
var CodeManager = require('./code/codeManager')
var StorageViewer = require('./storage/storageViewer') var StorageViewer = require('./storage/storageViewer')
var StorageResolver = require('./storage/storageResolver') var StorageResolver = require('./storage/storageResolver')
var TraceManager = require('./trace/traceManager')
var SolidityProxy = require('./decoder/solidityProxy') var SolidityDecoder = require('./solidity-decoder')
var stateDecoder = require('./decoder/stateDecoder') var SolidityProxy = SolidityDecoder.SolidityProxy
var localDecoder = require('./decoder/localDecoder') var stateDecoder = SolidityDecoder.stateDecoder
var InternalCallTree = require('./decoder/internalCallTree') var localDecoder = SolidityDecoder.localDecoder
var InternalCallTree = SolidityDecoder.InternalCallTree
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var TraceManager = remixLib.trace.TraceManager
var CodeManager = remixLib.code.CodeManager
var traceHelper = remixLib.helpers.trace var traceHelper = remixLib.helpers.trace
var init = remixLib.init var init = remixLib.init
var executionContext = remixLib.execution.executionContext var executionContext = remixLib.execution.executionContext
......
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
}
'use strict' 'use strict'
var tape = require('tape') var tape = require('tape')
var compiler = require('solc') var compiler = require('solc')
var astHelper = require('../../src/decoder/astHelper') var astHelper = require('../../src/solidity-decoder/astHelper')
var decodeInfo = require('../../src/decoder/decodeInfo') var decodeInfo = require('../../src/solidity-decoder/decodeInfo')
var stateDecoder = require('../../src/decoder/stateDecoder') var stateDecoder = require('../../src/solidity-decoder/stateDecoder')
var contracts = require('./contracts/miscContracts') var contracts = require('./contracts/miscContracts')
var simplecontracts = require('./contracts/simpleContract') var simplecontracts = require('./contracts/simpleContract')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var compilerInput = remixLib.helpers.compiler.compilerInput 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) { tape('solidity', function (t) {
t.test('astHelper, decodeInfo', function (st) { t.test('astHelper, decodeInfo', function (st) {
......
'use strict' 'use strict'
var localDecoder = require('../../../src/decoder/localDecoder') var localDecoder = require('../../../src/solidity-decoder/localDecoder')
/* /*
Decode local variable Decode local variable
......
'use strict' 'use strict'
var TraceManager = require('../../../src/trace/traceManager')
var CodeManager = require('../../../src/code/codeManager')
var vmCall = require('../vmCall') var vmCall = require('../vmCall')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var TraceManager = remixLib.trace.TraceManager
var CodeManager = remixLib.code.CodeManager
var traceHelper = remixLib.helpers.trace var traceHelper = remixLib.helpers.trace
var SolidityProxy = require('../../../src/decoder/solidityProxy') var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy')
var InternalCallTree = require('../../../src/decoder/internalCallTree') var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var helper = require('./helper') var helper = require('./helper')
......
'use strict' 'use strict'
var TraceManager = require('../../../src/trace/traceManager')
var CodeManager = require('../../../src/code/codeManager')
var vmCall = require('../vmCall') var vmCall = require('../vmCall')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var traceHelper = remixLib.helpers.trace var traceHelper = remixLib.helpers.trace
var SolidityProxy = require('../../../src/decoder/solidityProxy') var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy')
var InternalCallTree = require('../../../src/decoder/internalCallTree') var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var helper = require('./helper') var helper = require('./helper')
var TraceManager = remixLib.trace.TraceManager
var CodeManager = remixLib.code.CodeManager
module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) { module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) {
vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) { vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) {
if (error) { if (error) {
......
'use strict' 'use strict'
var TraceManager = require('../../../src/trace/traceManager')
var CodeManager = require('../../../src/code/codeManager')
var vmCall = require('../vmCall') var vmCall = require('../vmCall')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var traceHelper = remixLib.helpers.trace var traceHelper = remixLib.helpers.trace
var SolidityProxy = require('../../../src/decoder/solidityProxy') var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy')
var InternalCallTree = require('../../../src/decoder/internalCallTree') var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var helper = require('./helper') var helper = require('./helper')
var TraceManager = remixLib.trace.TraceManager
var CodeManager = remixLib.code.CodeManager
module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) { module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) {
vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) { vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) {
if (error) { if (error) {
......
'use strict' 'use strict'
var TraceManager = require('../../../src/trace/traceManager')
var CodeManager = require('../../../src/code/codeManager')
var vmCall = require('../vmCall') var vmCall = require('../vmCall')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var traceHelper = remixLib.helpers.trace var traceHelper = remixLib.helpers.trace
var SolidityProxy = require('../../../src/decoder/solidityProxy') var SolidityProxy = require('../../../src/solidity-decoder/solidityProxy')
var InternalCallTree = require('../../../src/decoder/internalCallTree') var InternalCallTree = require('../../../src/solidity-decoder/internalCallTree')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var helper = require('./helper') var helper = require('./helper')
var TraceManager = remixLib.trace.TraceManager
var CodeManager = remixLib.code.CodeManager
module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) { module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) {
vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) { vmCall.sendTx(vm, {nonce: 0, privateKey: privateKey}, null, 0, contractBytecode, function (error, txHash) {
if (error) { if (error) {
......
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var compilerInput = remixLib.helpers.compiler.compilerInput var compilerInput = remixLib.helpers.compiler.compilerInput
var TraceManager = remixLib.trace.TraceManager
var compiler = require('solc') var compiler = require('solc')
var stateDecoder = require('../../../src/decoder/stateDecoder') var stateDecoder = require('../../../src/solidity-decoder/stateDecoder')
var vmCall = require('../vmCall') var vmCall = require('../vmCall')
var TraceManager = require('../../../src/trace/traceManager')
var StorageResolver = require('../../../src/storage/storageResolver') var StorageResolver = require('../../../src/storage/storageResolver')
var StorageViewer = require('../../../src/storage/storageViewer') var StorageViewer = require('../../../src/storage/storageViewer')
......
'use strict' 'use strict'
var tape = require('tape') var tape = require('tape')
var compiler = require('solc') var compiler = require('solc')
var stateDecoder = require('../../src/decoder/stateDecoder') var stateDecoder = require('../../src/solidity-decoder/stateDecoder')
var MockStorageResolver = require('./mockStorageResolver') var MockStorageResolver = require('./mockStorageResolver')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var compilerInput = remixLib.helpers.compiler.compilerInput var compilerInput = remixLib.helpers.compiler.compilerInput
......
'use strict' 'use strict'
var tape = require('tape') var tape = require('tape')
var compiler = require('solc') var compiler = require('solc')
var stateDecoder = require('../../src/decoder/stateDecoder') var stateDecoder = require('../../src/solidity-decoder/stateDecoder')
var contracts = require('./contracts/miscContracts') var contracts = require('./contracts/miscContracts')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var compilerInput = remixLib.helpers.compiler.compilerInput var compilerInput = remixLib.helpers.compiler.compilerInput
......
...@@ -6,16 +6,12 @@ var vmCall = require('./vmCall') ...@@ -6,16 +6,12 @@ var vmCall = require('./vmCall')
var Debugger = require('../src/Ethdebugger') var Debugger = require('../src/Ethdebugger')
var compiler = require('solc') var compiler = require('solc')
require('./traceManager.js')
require('./codeManager.js')
require('./disassembler.js')
require('./decoder/decodeInfo.js') require('./decoder/decodeInfo.js')
require('./decoder/storageLocation.js') require('./decoder/storageLocation.js')
require('./decoder/storageDecoder.js') require('./decoder/storageDecoder.js')
require('./decoder/localDecoder.js') require('./decoder/localDecoder.js')
var BreakpointManager = require('../src/code/breakpointManager') var BreakpointManager = remixLib.code.BreakpointManager
tape('debug contract', function (t) { tape('debug contract', function (t) {
t.plan(12) t.plan(12)
......
...@@ -22,6 +22,10 @@ var txRunner = require('./src/execution/txRunner') ...@@ -22,6 +22,10 @@ var txRunner = require('./src/execution/txRunner')
var executionContext = require('./src/execution/execution-context') var executionContext = require('./src/execution/execution-context')
var typeConversion = require('./src/execution/typeConversion') 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') { if (typeof (module) !== 'undefined' && typeof (module.exports) !== 'undefined') {
module.exports = modules() module.exports = modules()
} }
...@@ -32,6 +36,13 @@ if (typeof (window) !== 'undefined') { ...@@ -32,6 +36,13 @@ if (typeof (window) !== 'undefined') {
function modules () { function modules () {
return { return {
code: {
CodeManager: CodeManager,
BreakpointManager: BreakpointManager
},
trace: {
TraceManager: TraceManager
},
EventManager: EventManager, EventManager: EventManager,
helpers: { helpers: {
trace: traceHelper, trace: traceHelper,
......
...@@ -50,7 +50,8 @@ ...@@ -50,7 +50,8 @@
"node_modules/*", "node_modules/*",
"build/*", "build/*",
"test/resources/*" "test/resources/*"
] ],
"parser": "babel-eslint"
}, },
"browserify": { "browserify": {
"transform": [ "transform": [
......
'use strict' 'use strict'
var remixLib = require('remix-lib')
var EventManager = remixLib.EventManager var EventManager = require('../eventManager')
var helper = remixLib.helpers.trace var helper = require('../helpers/traceHelper')
/** /**
* allow to manage breakpoint * allow to manage breakpoint
......
'use strict' 'use strict'
var remixLib = require('remix-lib')
var EventManager = remixLib.EventManager var EventManager = require('../eventManager')
var traceHelper = remixLib.helpers.trace var traceHelper = require('../helpers/traceHelper')
var SourceMappingDecoder = remixLib.SourceMappingDecoder var SourceMappingDecoder = require('../sourceMappingDecoder')
var CodeResolver = require('./codeResolver') var CodeResolver = require('./codeResolver')
/* /*
......
'use strict' 'use strict'
var parseCode = require('./codeUtils').parseCode var parseCode = require('./codeUtils').parseCode
var remixLib = require('remix-lib') var util = require('../util')
var util = remixLib.util
var createExpressions = function (instructions) { var createExpressions = function (instructions) {
var expressions = [] var expressions = []
......
'use strict' 'use strict'
var remixLib = require('remix-lib') var traceHelper = require('../helpers/traceHelper')
var traceHelper = remixLib.helpers.trace
function TraceAnalyser (_cache) { function TraceAnalyser (_cache) {
this.traceCache = _cache this.traceCache = _cache
......
'use strict' 'use strict'
var remixLib = require('remix-lib') var helper = require('../util')
var helper = remixLib.util
function TraceCache () { function TraceCache () {
this.init() this.init()
......
...@@ -3,9 +3,9 @@ var TraceAnalyser = require('./traceAnalyser') ...@@ -3,9 +3,9 @@ var TraceAnalyser = require('./traceAnalyser')
var TraceRetriever = require('./traceRetriever') var TraceRetriever = require('./traceRetriever')
var TraceCache = require('./traceCache') var TraceCache = require('./traceCache')
var TraceStepManager = require('./traceStepManager') var TraceStepManager = require('./traceStepManager')
var remixLib = require('remix-lib')
var traceHelper = remixLib.helpers.trace var traceHelper = require('../helpers/traceHelper')
var util = remixLib.util var util = require('../util')
function TraceManager (options) { function TraceManager (options) {
this.web3 = options.web3 this.web3 = options.web3
......
'use strict' 'use strict'
var remixLib = require('remix-lib')
var traceHelper = remixLib.helpers.trace var traceHelper = require('../helpers/traceHelper')
var util = remixLib.util var util = require('../util')
function TraceStepManager (_traceAnalyser) { function TraceStepManager (_traceAnalyser) {
this.traceAnalyser = _traceAnalyser this.traceAnalyser = _traceAnalyser
......
'use strict' 'use strict'
var tape = require('tape') var tape = require('tape')
var remixLib = require('remix-lib') var Web3Providers = require('../src/web3Provider/web3Providers')
var Web3Providers = remixLib.vm.Web3Providers
var TraceManager = require('../src/trace/traceManager') var TraceManager = require('../src/trace/traceManager')
var CodeManager = require('../src/code/codeManager') var CodeManager = require('../src/code/codeManager')
var web3Test = require('./resources/testWeb3') var web3Test = require('./resources/testWeb3')
......
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
'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
}
This diff is collapsed.
...@@ -3,3 +3,7 @@ require('./eventManager.js') ...@@ -3,3 +3,7 @@ require('./eventManager.js')
require('./sourceMappingDecoder.js') require('./sourceMappingDecoder.js')
require('./util.js') require('./util.js')
require('./txFormat.js') require('./txFormat.js')
require('./traceManager.js')
require('./codeManager.js')
require('./disassembler.js')
'use strict' 'use strict'
var TraceManager = require('../src/trace/traceManager') var TraceManager = require('../src/trace/traceManager')
var tape = require('tape') var tape = require('tape')
var remixLib = require('remix-lib') var Web3Providers = require('../src/web3Provider/web3Providers')
var Web3Providers = remixLib.vm.Web3Providers
var web3Test = require('./resources/testWeb3') var web3Test = require('./resources/testWeb3')
let web3 = null let web3 = null
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment