mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Squashed 'libjsqrc/ethereumjs/' changes from d516691..f1a5cf9
f1a5cf9 Merge branch 'develop' into cpp a5909d8 parsing events output 1860b3d gulp 03faec9 event outputParser && tests 4bb5ba7 reverted ethereum.js 9d9c23e common cleanup 1a6b7de removed splitter.qml 011fdd9 event_inc example 0994efa Better HTML template in Mix. Use happened in JS. Debugging QML enabled. git-subtree-dir: libjsqrc/ethereumjs git-subtree-split: f1a5cf9128170b85428259c8b0ecfaed5b3e17d1
This commit is contained in:
parent
8cbaec5ce6
commit
46f47eaf38
125
event.inputParser.js
Normal file
125
event.inputParser.js
Normal file
@ -0,0 +1,125 @@
|
||||
var assert = require('assert');
|
||||
var event = require('../lib/event.js');
|
||||
var f = require('../lib/formatters.js');
|
||||
|
||||
describe('event', function () {
|
||||
describe('inputParser', function () {
|
||||
it('should create basic filter input object', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event.inputParser(address, signature, e);
|
||||
var result = impl();
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 1);
|
||||
assert.equal(result.topic[0], signature);
|
||||
|
||||
});
|
||||
|
||||
it('should create filter input object with options', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var options = {
|
||||
earliest: 1,
|
||||
latest: 2,
|
||||
offset: 3,
|
||||
max: 4
|
||||
};
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event.inputParser(address, signature, e);
|
||||
var result = impl({}, options);
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 1);
|
||||
assert.equal(result.topic[0], signature);
|
||||
assert.equal(result.earliest, options.earliest);
|
||||
assert.equal(result.latest, options.latest);
|
||||
assert.equal(result.offset, options.offset);
|
||||
assert.equal(result.max, options.max);
|
||||
|
||||
});
|
||||
|
||||
it('should create filter input object with indexed params', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var options = {
|
||||
earliest: 1,
|
||||
latest: 2,
|
||||
offset: 3,
|
||||
max: 4
|
||||
};
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event.inputParser(address, signature, e);
|
||||
var result = impl({a: 4}, options);
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 2);
|
||||
assert.equal(result.topic[0], signature);
|
||||
assert.equal(result.topic[1], f.formatInputInt(4));
|
||||
assert.equal(result.earliest, options.earliest);
|
||||
assert.equal(result.latest, options.latest);
|
||||
assert.equal(result.offset, options.offset);
|
||||
assert.equal(result.max, options.max);
|
||||
|
||||
});
|
||||
|
||||
it('should create filter input object with an array of indexed params', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var options = {
|
||||
earliest: 1,
|
||||
latest: 2,
|
||||
offset: 3,
|
||||
max: 4
|
||||
};
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event.inputParser(address, signature, e);
|
||||
var result = impl({a: [4, 69]}, options);
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 2);
|
||||
assert.equal(result.topic[0], signature);
|
||||
assert.equal(result.topic[1][0], f.formatInputInt(4));
|
||||
assert.equal(result.topic[1][1], f.formatInputInt(69));
|
||||
assert.equal(result.earliest, options.earliest);
|
||||
assert.equal(result.latest, options.latest);
|
||||
assert.equal(result.offset, options.offset);
|
||||
assert.equal(result.max, options.max);
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
124
event.js
124
event.js
@ -1,124 +0,0 @@
|
||||
var assert = require('assert');
|
||||
var event = require('../lib/event.js');
|
||||
var f = require('../lib/formatters.js');
|
||||
|
||||
describe('event', function () {
|
||||
it('should create basic filter input object', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event(address, signature, e);
|
||||
var result = impl();
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 1);
|
||||
assert.equal(result.topic[0], signature);
|
||||
|
||||
});
|
||||
|
||||
it('should create filter input object with options', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var options = {
|
||||
earliest: 1,
|
||||
latest: 2,
|
||||
offset: 3,
|
||||
max: 4
|
||||
};
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event(address, signature, e);
|
||||
var result = impl({}, options);
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 1);
|
||||
assert.equal(result.topic[0], signature);
|
||||
assert.equal(result.earliest, options.earliest);
|
||||
assert.equal(result.latest, options.latest);
|
||||
assert.equal(result.offset, options.offset);
|
||||
assert.equal(result.max, options.max);
|
||||
|
||||
});
|
||||
|
||||
it('should create filter input object with indexed params', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var options = {
|
||||
earliest: 1,
|
||||
latest: 2,
|
||||
offset: 3,
|
||||
max: 4
|
||||
};
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event(address, signature, e);
|
||||
var result = impl({a: 4}, options);
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 2);
|
||||
assert.equal(result.topic[0], signature);
|
||||
assert.equal(result.topic[1], f.formatInputInt(4));
|
||||
assert.equal(result.earliest, options.earliest);
|
||||
assert.equal(result.latest, options.latest);
|
||||
assert.equal(result.offset, options.offset);
|
||||
assert.equal(result.max, options.max);
|
||||
|
||||
});
|
||||
|
||||
it('should create filter input object with an array of indexed params', function () {
|
||||
|
||||
// given
|
||||
var address = '0x012345';
|
||||
var signature = '0x987654';
|
||||
var options = {
|
||||
earliest: 1,
|
||||
latest: 2,
|
||||
offset: 3,
|
||||
max: 4
|
||||
};
|
||||
var e = {
|
||||
name: 'Event',
|
||||
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
|
||||
};
|
||||
|
||||
// when
|
||||
var impl = event(address, signature, e);
|
||||
var result = impl({a: [4, 69]}, options);
|
||||
|
||||
// then
|
||||
assert.equal(result.address, address);
|
||||
assert.equal(result.topic.length, 2);
|
||||
assert.equal(result.topic[0], signature);
|
||||
assert.equal(result.topic[1][0], f.formatInputInt(4));
|
||||
assert.equal(result.topic[1][1], f.formatInputInt(69));
|
||||
assert.equal(result.earliest, options.earliest);
|
||||
assert.equal(result.latest, options.latest);
|
||||
assert.equal(result.offset, options.offset);
|
||||
assert.equal(result.max, options.max);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
81
event.outputParser.js
Normal file
81
event.outputParser.js
Normal file
@ -0,0 +1,81 @@
|
||||
var assert = require('assert');
|
||||
var event = require('../lib/event.js');
|
||||
|
||||
describe('event', function () {
|
||||
describe('outputParser', function () {
|
||||
it('should parse basic event output object', function () {
|
||||
|
||||
// given
|
||||
var output = {
|
||||
"address":"0x78dfc5983baecf65f73e3de3a96cee24e6b7981e",
|
||||
"data":"0x000000000000000000000000000000000000000000000000000000000000004b",
|
||||
"number":2,
|
||||
"topic":[
|
||||
"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,
|
||||
"topic":[
|
||||
"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);
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user