mirror of
https://github.com/status-im/web3.js.git
synced 2025-02-22 19:18:07 +00:00
215 lines
5.7 KiB
JavaScript
215 lines
5.7 KiB
JavaScript
var chai = require('chai');
|
|
var assert = chai.assert;
|
|
var Eth = require('../packages/web3-eth/');
|
|
|
|
|
|
var name = 'event1';
|
|
var address = '0xffddb67890123456789012345678901234567890';
|
|
var resultAddress = '0xffdDb67890123456789012345678901234567890';
|
|
|
|
var tests = [{
|
|
abi: {
|
|
name: name,
|
|
type: 'event',
|
|
inputs: []
|
|
},
|
|
data: {
|
|
logIndex: '0x1',
|
|
transactionIndex: '0x10',
|
|
transactionHash: '0x1234567890',
|
|
address: address,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: '0x1'
|
|
},
|
|
expected: {
|
|
event: name,
|
|
returnValues: {},
|
|
logIndex: 1,
|
|
transactionIndex: 16,
|
|
transactionHash: '0x1234567890',
|
|
address: resultAddress,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: 1,
|
|
id: "log_c71f2e84",
|
|
raw: {
|
|
topics: [],
|
|
data: ''
|
|
}
|
|
}
|
|
}, {
|
|
abi: {
|
|
name: name,
|
|
inputs: [{
|
|
name: 'a',
|
|
type: 'int',
|
|
indexed: false
|
|
}]
|
|
},
|
|
data: {
|
|
logIndex: '0x1',
|
|
transactionIndex: '0x10',
|
|
transactionHash: '0x1234567890',
|
|
address: address,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: '0x1',
|
|
data: '0x0000000000000000000000000000000000000000000000000000000000000001'
|
|
},
|
|
expected: {
|
|
event: name,
|
|
returnValues: {
|
|
a: '1'
|
|
},
|
|
logIndex: 1,
|
|
transactionIndex: 16,
|
|
transactionHash: '0x1234567890',
|
|
address: resultAddress,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: 1,
|
|
id: "log_c71f2e84",
|
|
raw: {
|
|
data: "0x0000000000000000000000000000000000000000000000000000000000000001",
|
|
topics: []
|
|
}
|
|
}
|
|
}, {
|
|
abi: {
|
|
name: name,
|
|
inputs: [{
|
|
name: 'a',
|
|
type: 'int',
|
|
indexed: false
|
|
}, {
|
|
name: 'b',
|
|
type: 'int',
|
|
indexed: true
|
|
}, {
|
|
name: 'c',
|
|
type: 'int',
|
|
indexed: false
|
|
}, {
|
|
name: 'd',
|
|
type: 'int',
|
|
indexed: true
|
|
}]
|
|
},
|
|
data: {
|
|
logIndex: '0x1',
|
|
transactionIndex: '0x10',
|
|
transactionHash: '0x1234567890',
|
|
address: address,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: '0x1',
|
|
data: '0x' +
|
|
'0000000000000000000000000000000000000000000000000000000000000001' +
|
|
'0000000000000000000000000000000000000000000000000000000000000004',
|
|
topics: [
|
|
address,
|
|
'0x000000000000000000000000000000000000000000000000000000000000000a',
|
|
'0x0000000000000000000000000000000000000000000000000000000000000010'
|
|
]
|
|
},
|
|
expected: {
|
|
event: name,
|
|
returnValues: {
|
|
a: '1',
|
|
b: '10',
|
|
c: '4',
|
|
d: '16'
|
|
},
|
|
logIndex: 1,
|
|
transactionIndex: 16,
|
|
transactionHash: '0x1234567890',
|
|
address: resultAddress,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: 1,
|
|
id: "log_c71f2e84",
|
|
raw: {
|
|
data: '0x' +
|
|
'0000000000000000000000000000000000000000000000000000000000000001' +
|
|
'0000000000000000000000000000000000000000000000000000000000000004',
|
|
topics: [
|
|
address,
|
|
'0x000000000000000000000000000000000000000000000000000000000000000a',
|
|
'0x0000000000000000000000000000000000000000000000000000000000000010'
|
|
]
|
|
}
|
|
}
|
|
}, {
|
|
abi: {
|
|
name: name,
|
|
anonymous: true,
|
|
inputs: [{
|
|
name: 'a',
|
|
type: 'int',
|
|
indexed: false
|
|
}, {
|
|
name: 'b',
|
|
type: 'int',
|
|
indexed: true
|
|
}, {
|
|
name: 'c',
|
|
type: 'int',
|
|
indexed: false
|
|
}, {
|
|
name: 'd',
|
|
type: 'int',
|
|
indexed: true
|
|
}]
|
|
},
|
|
data: {
|
|
logIndex: '0x1',
|
|
transactionIndex: '0x10',
|
|
transactionHash: '0x1234567890',
|
|
address: resultAddress,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: '0x1',
|
|
data: '0x' +
|
|
'0000000000000000000000000000000000000000000000000000000000000001' +
|
|
'0000000000000000000000000000000000000000000000000000000000000004',
|
|
topics: [
|
|
'0x000000000000000000000000000000000000000000000000000000000000000a',
|
|
'0x0000000000000000000000000000000000000000000000000000000000000010'
|
|
]
|
|
},
|
|
expected: {
|
|
event: name,
|
|
returnValues: {
|
|
a: '1',
|
|
b: '10',
|
|
c: '4',
|
|
d: '16'
|
|
},
|
|
logIndex: 1,
|
|
transactionIndex: 16,
|
|
transactionHash: '0x1234567890',
|
|
address: resultAddress,
|
|
blockHash: '0x1234567890',
|
|
blockNumber: 1,
|
|
id: "log_c71f2e84",
|
|
raw: {
|
|
data: '0x' +
|
|
'0000000000000000000000000000000000000000000000000000000000000001' +
|
|
'0000000000000000000000000000000000000000000000000000000000000004',
|
|
topics: [
|
|
'0x000000000000000000000000000000000000000000000000000000000000000a',
|
|
'0x0000000000000000000000000000000000000000000000000000000000000010'
|
|
]
|
|
}
|
|
}
|
|
}];
|
|
|
|
describe('lib/web3/event', function () {
|
|
describe('decode', function () {
|
|
tests.forEach(function (test, index) {
|
|
it('test no: ' + index, function () {
|
|
var eth = new Eth();
|
|
var contract = new eth.Contract([test.abi], address);
|
|
|
|
var result = contract._decodeEventABI.call(test.abi, test.data);
|
|
assert.deepEqual(result, test.expected);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|