fixed logs

This commit is contained in:
Fabian Vogelsteller 2015-03-10 17:07:16 +01:00
parent 1c9f50feb9
commit 3848d3a03c
6 changed files with 51 additions and 25 deletions

35
dist/ethereum.js vendored
View File

@ -1455,7 +1455,7 @@ var addEventRelatedPropertiesToContract = function (contract, desc, address) {
return parser(data);
};
Object.defineProperty(contract, 'topic', {
Object.defineProperty(contract, 'topics', {
get: function() {
return utils.filterEvents(desc).map(function (e) {
return signature.eventSignatureFromAscii(e.name);
@ -1818,10 +1818,10 @@ var inputParser = function (address, sign, event) {
return function (indexed, options) {
var o = options || {};
o.address = address;
o.topic = [];
o.topic.push(sign);
o.topics = [];
o.topics.push(sign);
if (indexed) {
o.topic = o.topic.concat(indexedParamsToTopics(event, indexed));
o.topics = o.topics.concat(indexedParamsToTopics(event, indexed));
}
return o;
};
@ -1853,12 +1853,12 @@ var outputParser = function (event) {
};
output.topics = output.topic; // fallback for go-ethereum
if (!output.topic) {
if (!output.topics) {
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("");
var indexedData = "0x" + output.topics.slice(1, output.topics.length).map(function (topics) { return topics.slice(2); }).join("");
var indexedRes = abi.formatOutput(indexedOutputs, indexedData);
var notIndexedOutputs = filterInputs(event.inputs, false);
@ -1873,7 +1873,7 @@ var outputParser = function (event) {
var getMatchingEvent = function (events, payload) {
for (var i = 0; i < events.length; i++) {
var sign = signature.eventSignatureFromAscii(events[i].name);
if (sign === payload.topic[0]) {
if (sign === payload.topics[0]) {
return events[i];
}
}
@ -2022,7 +2022,13 @@ var filter = function(options, implementation, formatter) {
};
var get = function () {
return implementation.getLogs(filterId);
var results = implementation.getLogs(filterId);
return (results instanceof Array)
? results.map(function(message){
return formatter ? formatter(message) : message;
})
: results;
};
return {
@ -2191,7 +2197,10 @@ var outputBlockFormatter = function(block){
* @returns {Object} log
*/
var outputLogFormatter = function(log){
log.number = utils.toDecimal(log.number);
log.blockNumber = utils.toDecimal(log.blockNumber);
log.transactionIndex = utils.toDecimal(log.transactionIndex);
log.logIndex = utils.toDecimal(log.logIndex);
return log;
};
@ -2209,12 +2218,12 @@ var inputPostFormatter = function(post){
post.ttl = utils.fromDecimal(post.ttl);
post.workToProve = utils.fromDecimal(post.workToProve);
if(!(post.topic instanceof Array))
post.topic = [post.topic];
if(!(post.topics instanceof Array))
post.topics = [post.topics];
// format the following options
post.topic = post.topic.map(function(topic){
post.topics = post.topics.map(function(topic){
return utils.fromAscii(topic);
});
@ -2243,7 +2252,7 @@ var outputPostFormatter = function(post){
}
// format the following options
post.topic = post.topic.map(function(topic){
post.topics = post.topics.map(function(topic){
return utils.toAscii(topic);
});

10
dist/ethereum.js.map vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -131,7 +131,13 @@ var filter = function(options, implementation, formatter) {
};
var get = function () {
return implementation.getLogs(filterId);
var results = implementation.getLogs(filterId);
return (results instanceof Array)
? results.map(function(message){
return formatter ? formatter(message) : message;
})
: results;
};
return {

View File

@ -127,7 +127,10 @@ var outputBlockFormatter = function(block){
* @returns {Object} log
*/
var outputLogFormatter = function(log){
log.number = utils.toDecimal(log.number);
log.blockNumber = utils.toDecimal(log.blockNumber);
log.transactionIndex = utils.toDecimal(log.transactionIndex);
log.logIndex = utils.toDecimal(log.logIndex);
return log;
};

View File

@ -6,13 +6,21 @@ describe('formatters', function () {
it('should return the correct value', function () {
assert.deepEqual(formatters.outputLogFormatter({
number: '0x3e8',
transactionIndex: '0x3e8',
logIndex: '0x3e8',
blockNumber: '0x3e8',
transactionHash: '0x7b2274657374223a2274657374227d',
blockHash: '0x7b2274657374223a2274657374227d',
data: '0x7b2274657374223a2274657374227d',
topic: ['0x68656c6c6f','0x6d79746f70696373']
topics: ['0x68656c6c6f','0x6d79746f70696373']
}), {
number: 1000,
transactionIndex: 1000,
logIndex: 1000,
blockNumber: 1000,
transactionHash: '0x7b2274657374223a2274657374227d',
blockHash: '0x7b2274657374223a2274657374227d',
data: '0x7b2274657374223a2274657374227d',
topic: ['0x68656c6c6f','0x6d79746f70696373']
topics: ['0x68656c6c6f','0x6d79746f70696373']
});
});
});