fixed logs
This commit is contained in:
parent
1c9f50feb9
commit
3848d3a03c
|
@ -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);
|
||||
});
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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']
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue