Commit 12de7719 authored by yann300's avatar yann300

fix solidity state / locals

parent e13c8fe7
...@@ -10,14 +10,18 @@ var AstWalker = require('../util/astWalker') ...@@ -10,14 +10,18 @@ var AstWalker = require('../util/astWalker')
function extractContractDefinitions (sourcesList) { function extractContractDefinitions (sourcesList) {
var ret = { var ret = {
contractsById: {}, contractsById: {},
contractsByName: {} contractsByName: {},
sourcesByContract: {}
} }
var walker = new AstWalker() var walker = new AstWalker()
walker.walkAstList(sourcesList, { 'ContractDefinition': function (node) { for (var k in sourcesList) {
ret.contractsById[node.id] = node walker.walk(sourcesList[k].AST, { 'ContractDefinition': function (node) {
ret.contractsByName[node.attributes.name] = node ret.contractsById[node.id] = node
return false ret.sourcesByContract[node.id] = k
}}) ret.contractsByName[k + ':' + node.attributes.name] = node
return false
}})
}
return ret return ret
} }
...@@ -83,7 +87,11 @@ function extractStatesDefinitions (sourcesList, contracts) { ...@@ -83,7 +87,11 @@ function extractStatesDefinitions (sourcesList, contracts) {
var ret = {} var ret = {}
for (var contract in contracts.contractsById) { for (var contract in contracts.contractsById) {
var name = contracts.contractsById[contract].attributes.name var name = contracts.contractsById[contract].attributes.name
ret[name] = extractStateDefinitions(name, sourcesList, contracts) var source = contracts.sourcesByContract[contract]
var fullName = source + ':' + name
var state = extractStateDefinitions(fullName, sourcesList, contracts)
ret[fullName] = state
ret[name] = state // solc < 0.4.9
} }
return ret return ret
} }
......
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