|
|
|
var assert = require('assert');
|
|
|
|
var event = require('../lib/web3/event.js');
|
|
|
|
|
|
|
|
describe('lib/web3/event', function () {
|
|
|
|
describe('outputParser', function () {
|
|
|
|
it('should parse basic event output object', function () {
|
|
|
|
|
|
|
|
// given
|
|
|
|
var output = {
|
|
|
|
"address":"0x78dfc5983baecf65f73e3de3a96cee24e6b7981e",
|
|
|
|
"data":"0x000000000000000000000000000000000000000000000000000000000000004b",
|
|
|
|
"number":2,
|
|
|
|
"topics":[
|
|
|
|
"0x6e61ef44ac2747ff8b84d353a908eb8bd5c3fb118334d57698c5cfc7041196ad",
|
|
|
|
"0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
]
|
|
|
|
};
|
|
|
|
|
|
|
|
var e = {
|
|
|
|
name: 'Event',
|
|
|
|
inputs: [{"name":"a","type":"bool","indexed":true},{"name":"b","type":"uint256","indexed":false}]
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
|
|
|
var impl = event.outputParser(e);
|
|
|
|
var result = impl(output);
|
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(result.event, 'Event');
|
|
|
|
assert.equal(result.number, 2);
|
|
|
|
assert.equal(Object.keys(result.args).length, 2);
|
|
|
|
assert.equal(result.args.a, true);
|
|
|
|
assert.equal(result.args.b, 75);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should parse event output object arguments in correct order', function () {
|
|
|
|
|
|
|
|
// given
|
|
|
|
var output = {
|
|
|
|
"address":"0x78dfc5983baecf65f73e3de3a96cee24e6b7981e",
|
|
|
|
"data": "0x" +
|
|
|
|
"000000000000000000000000000000000000000000000000000000000000004b" +
|
|
|
|
"000000000000000000000000000000000000000000000000000000000000004c" +
|
|
|
|
"0000000000000000000000000000000000000000000000000000000000000001",
|
|
|
|
"number":3,
|
|
|
|
"topics":[
|
|
|
|
"0x6e61ef44ac2747ff8b84d353a908eb8bd5c3fb118334d57698c5cfc7041196ad",
|
|
|
|
"0x0000000000000000000000000000000000000000000000000000000000000001",
|
|
|
|
"0x0000000000000000000000000000000000000000000000000000000000000005"
|
|
|
|
]
|
|
|
|
};
|
|
|
|
|
|
|
|
var e = {
|
|
|
|
name: 'Event2',
|
|
|
|
inputs: [
|
|
|
|
{"name":"a","type":"bool","indexed":true},
|
|
|
|
{"name":"b","type":"int","indexed":false},
|
|
|
|
{"name":"c","type":"int","indexed":false},
|
|
|
|
{"name":"d","type":"int","indexed":true},
|
|
|
|
{"name":"e","type":"bool","indexed":false}
|
|
|
|
]
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
|
|
|
var impl = event.outputParser(e);
|
|
|
|
var result = impl(output);
|
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(result.event, 'Event2');
|
|
|
|
assert.equal(result.number, 3);
|
|
|
|
assert.equal(Object.keys(result.args).length, 5);
|
|
|
|
assert.equal(result.args.a, true);
|
|
|
|
assert.equal(result.args.b, 75);
|
|
|
|
assert.equal(result.args.c, 76);
|
|
|
|
assert.equal(result.args.d, 5);
|
|
|
|
assert.equal(result.args.e, true);
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|