Skip to content

Commit 43be176

Browse files
committed
Bug fixes
1 parent 60ae974 commit 43be176

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11

22
# 0.1.10 -- Bugfixes
33

4+
- Fix for `eth-query` dependency mismatch
5+
- Fix for big numbers on block numbers on new events
6+
7+
# 0.1.10 -- Bugfixes
8+
49
- Ensuring transaction information is properly serialized
510

611
# 0.1.9 -- Bugfixes

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eth-indexer",
3-
"version": "0.1.10",
3+
"version": "0.1.11",
44
"description": "High performance Ethereum smart contract event indexing for fast local retrieval",
55
"author": "Dominiek Ter Heide <[email protected]>",
66
"license": "MIT",
@@ -31,7 +31,7 @@
3131
"elasticsearch": "^14.0.0",
3232
"ethjs": "^0.3.3",
3333
"ethjs-abi": "^0.2.1",
34-
"ethjs-query": "^0.3.3",
34+
"ethjs-query": "^0.2.6",
3535
"ethjs-rpc": "^0.1.8",
3636
"ethjs-schema": "^0.2.0",
3737
"leveldown": "^2.1.1",

src/ethereum.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import EthQuery from 'ethjs-query';
44
import EthAbi from 'ethjs-abi';
55
import Web3 from 'web3';
66
import logger from './logger';
7+
import BigNumber from 'bignumber.js';
78

89
const sleep = timeout => new Promise(accept => setTimeout(() => accept(), timeout));
910

@@ -18,6 +19,20 @@ const chunk = (arr, len) => {
1819
return chunks;
1920
};
2021

22+
const normalizeEvent = (event) => {
23+
const normalizedEvent = Object.assign({}, event);
24+
if (typeof normalizeEvent.blockNumber === 'number') {
25+
normalizeEvent.blockNumber = new BigNumber(normalizeEvent.blockNumber);
26+
}
27+
if (typeof normalizeEvent.transactionIndex === 'number') {
28+
normalizeEvent.transactionIndex = new BigNumber(normalizeEvent.transactionIndex);
29+
}
30+
if (typeof normalizeEvent.logIndex === 'number') {
31+
normalizeEvent.logIndex = new BigNumber(normalizeEvent.logIndex);
32+
}
33+
return normalizedEvent;
34+
};
35+
2136
export default class Ethereum {
2237
constructor(abi, contractAddress, readProviderUrl = 'http://127.0.0.1:8545') {
2338
this.readProviderUrl = readProviderUrl;
@@ -58,11 +73,11 @@ export default class Ethereum {
5873
const options = { fromBlock, toBlock: 'latest' };
5974
const filter = this.readWeb3Contract.allEvents({}, options);
6075
filter.watch((error, event) => {
61-
// console.log('watch', error, event);
76+
const normalizedEvent = normalizeEvent(event);
6277
if (error) {
6378
logger.log('warn', `Got error while reading realtime events from contract: ${error.message}`);
6479
} else {
65-
fn(event).then(() => {});
80+
fn(normalizedEvent).then(() => {});
6681
}
6782
});
6883
}

0 commit comments

Comments
 (0)