|
|
|
@ -1,12 +1,12 @@ |
|
|
|
|
'use strict' |
|
|
|
|
var TraceManager = require('../../../src/trace/traceManager') |
|
|
|
|
var CodeManager = require('../../../src/code/codeManager') |
|
|
|
|
var TraceManager = require('../../../babelify-src/trace/traceManager') |
|
|
|
|
var CodeManager = require('../../../babelify-src/code/codeManager') |
|
|
|
|
var vmSendTx = require('./vmCall') |
|
|
|
|
var traceHelper = require('../../../src/helpers/traceHelper') |
|
|
|
|
var util = require('../../../src/helpers/global') |
|
|
|
|
var SolidityProxy = require('../../../src/solidity/solidityProxy') |
|
|
|
|
var InternalCallTree = require('../../../src/util/internalCallTree') |
|
|
|
|
var EventManager = require('../../../src/lib/eventManager') |
|
|
|
|
var traceHelper = require('../../../babelify-src/helpers/traceHelper') |
|
|
|
|
var util = require('../../../babelify-src/helpers/global') |
|
|
|
|
var SolidityProxy = require('../../../babelify-src/solidity/solidityProxy') |
|
|
|
|
var InternalCallTree = require('../../../babelify-src/util/internalCallTree') |
|
|
|
|
var EventManager = require('../../../babelify-src/lib/eventManager') |
|
|
|
|
var helper = require('./helper') |
|
|
|
|
|
|
|
|
|
module.exports = function (st, vm, privateKey, contractBytecode, compilationResult, cb) { |
|
|
|
@ -25,34 +25,38 @@ module.exports = function (st, vm, privateKey, contractBytecode, compilationResu |
|
|
|
|
var solidityProxy = new SolidityProxy(traceManager, codeManager) |
|
|
|
|
solidityProxy.reset(compilationResult) |
|
|
|
|
var debuggerEvent = new EventManager() |
|
|
|
|
var callTree = new InternalCallTree(debuggerEvent, traceManager, solidityProxy, codeManager, { includeLocalsVariables: true }) |
|
|
|
|
var callTree = new InternalCallTree(debuggerEvent, traceManager, solidityProxy, codeManager, { includeLocalVariables: true }) |
|
|
|
|
callTree.event.register('callTreeReady', (scopes, scopeStarts) => { |
|
|
|
|
st.equals(scopeStarts[0], '') |
|
|
|
|
st.equals(scopeStarts[97], '1') |
|
|
|
|
st.equals(scopeStarts[112], '1.1') |
|
|
|
|
st.equals(scopeStarts[135], '2') |
|
|
|
|
st.equals(scopeStarts[154], '3') |
|
|
|
|
st.equals(scopeStarts[169], '3.1') |
|
|
|
|
st.equals(scopes[''].locals['ui8'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui16'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui32'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui64'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui128'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui256'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['i8'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i16'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i32'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i64'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i128'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i256'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['ishrink'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes['1'].locals['ui8'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['1.1'].locals['ui81'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['2'].locals['ui81'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['3'].locals['ui8'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['3.1'].locals['ui81'].type.typeName, 'uint') |
|
|
|
|
try { |
|
|
|
|
st.equals(scopeStarts[0], '') |
|
|
|
|
st.equals(scopeStarts[97], '1') |
|
|
|
|
st.equals(scopeStarts[112], '1.1') |
|
|
|
|
st.equals(scopeStarts[135], '2') |
|
|
|
|
st.equals(scopeStarts[154], '3') |
|
|
|
|
st.equals(scopeStarts[169], '3.1') |
|
|
|
|
st.equals(scopes[''].locals['ui8'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui16'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui32'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui64'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui128'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui256'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['ui'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes[''].locals['i8'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i16'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i32'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i64'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i128'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i256'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['i'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes[''].locals['ishrink'].type.typeName, 'int') |
|
|
|
|
st.equals(scopes['1'].locals['ui8'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['1.1'].locals['ui81'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['2'].locals['ui81'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['3'].locals['ui8'].type.typeName, 'uint') |
|
|
|
|
st.equals(scopes['3.1'].locals['ui81'].type.typeName, 'uint') |
|
|
|
|
} catch (e) { |
|
|
|
|
st.fail(e.message) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
helper.decodeLocals(st, 125, traceManager, callTree, function (locals) { |
|
|
|
|
st.equals(Object.keys(locals).length, 16) |
|
|
|
|