diff options
Diffstat (limited to 'lib/event.js')
-rw-r--r-- | lib/event.js | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/event.js b/lib/event.js index a50b2ae28..0c41e0a39 100644 --- a/lib/event.js +++ b/lib/event.js @@ -90,14 +90,18 @@ var getArgumentsObject = function (inputs, indexed, notIndexed) { }, {}); }; - var outputParser = function (event) { return function (output) { var result = { event: utils.extractDisplayName(event.name), - number: output.number + number: output.number, + args: {} }; + + if (!output.topic) { + return result; + } var indexedOutputs = filterInputs(event.inputs, true); var indexedData = "0x" + output.topic.slice(1, output.topic.length).map(function (topic) { return topic.slice(2); }).join(""); @@ -112,8 +116,20 @@ var outputParser = function (event) { }; }; +var getMatchingEvent = function (events, payload) { + for (var i = 0; i < events.length; i++) { + var signature = abi.eventSignatureFromAscii(events[i].name); + if (signature === payload.topic[0]) { + return events[i]; + } + } + return undefined; +}; + + module.exports = { inputParser: inputParser, - outputParser: outputParser + outputParser: outputParser, + getMatchingEvent: getMatchingEvent }; |