aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-09-20 02:56:41 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-12-05 06:23:32 +0800
commit75d3f24835fc68a758cfb44c6bc05095c3e87ad3 (patch)
treef4ce2dc221050b40fa0d78108cd78f97a43cb15a /packages/pipeline/src
parent2b7f94c00f7fd38cfaa50540c6bef8237306c064 (diff)
downloaddexon-sol-tools-75d3f24835fc68a758cfb44c6bc05095c3e87ad3.tar
dexon-sol-tools-75d3f24835fc68a758cfb44c6bc05095c3e87ad3.tar.gz
dexon-sol-tools-75d3f24835fc68a758cfb44c6bc05095c3e87ad3.tar.bz2
dexon-sol-tools-75d3f24835fc68a758cfb44c6bc05095c3e87ad3.tar.lz
dexon-sol-tools-75d3f24835fc68a758cfb44c6bc05095c3e87ad3.tar.xz
dexon-sol-tools-75d3f24835fc68a758cfb44c6bc05095c3e87ad3.tar.zst
dexon-sol-tools-75d3f24835fc68a758cfb44c6bc05095c3e87ad3.zip
Add tests for etherscan events
Diffstat (limited to 'packages/pipeline/src')
-rw-r--r--packages/pipeline/src/data-sources/etherscan/events.ts23
-rw-r--r--packages/pipeline/src/index.ts3
2 files changed, 17 insertions, 9 deletions
diff --git a/packages/pipeline/src/data-sources/etherscan/events.ts b/packages/pipeline/src/data-sources/etherscan/events.ts
index 50962a266..3083af267 100644
--- a/packages/pipeline/src/data-sources/etherscan/events.ts
+++ b/packages/pipeline/src/data-sources/etherscan/events.ts
@@ -25,21 +25,30 @@ export interface EventsResponseResult {
transactionIndex: string;
}
-function convertResponseToLogEntry(result: EventsResponseResult): LogEntry {
- const radix = 10;
+const hexRadix = 16;
+
+function hexToInt(hex: string): number {
+ return parseInt(hex.replace('0x', ''), hexRadix);
+}
+
+// Converts a raw event response to a LogEntry
+// tslint:disable-next-line:completed-docs
+export function _convertResponseToLogEntry(result: EventsResponseResult): LogEntry {
return {
- logIndex: parseInt(result.logIndex, radix),
- transactionIndex: parseInt(result.logIndex, radix),
+ logIndex: hexToInt(result.logIndex),
+ transactionIndex: hexToInt(result.transactionIndex),
transactionHash: result.transactionHash,
blockHash: '',
- blockNumber: parseInt(result.blockNumber, radix),
+ blockNumber: hexToInt(result.blockNumber),
address: result.address,
data: result.data,
topics: result.topics,
};
}
-function tryToDecodeLogOrNoop(log: LogEntry): LogWithDecodedArgs<DecodedLogArgs> {
+// Decodes a LogEntry into a LogWithDecodedArgs
+// tslint:disable-next-line:completed-docs
+export function _decodeLogEntry(log: LogEntry): LogWithDecodedArgs<DecodedLogArgs> {
const abiDecoder = new AbiDecoder([artifacts.Exchange.compilerOutput.abi]);
const logWithDecodedArgs = abiDecoder.tryToDecodeLogOrNoop(log);
// tslint:disable-next-line:no-unnecessary-type-assertion
@@ -51,4 +60,4 @@ function tryToDecodeLogOrNoop(log: LogEntry): LogWithDecodedArgs<DecodedLogArgs>
* @param rawEventsResponse The raw events response from etherescan.io.
* @returns Parsed and decoded events.
*/
-export const parseRawEventsResponse = R.pipe(R.map(convertResponseToLogEntry), R.map(tryToDecodeLogOrNoop));
+export const parseRawEventsResponse = R.pipe(R.map(_convertResponseToLogEntry), R.map(_decodeLogEntry));
diff --git a/packages/pipeline/src/index.ts b/packages/pipeline/src/index.ts
index c9254cc2a..baed6933e 100644
--- a/packages/pipeline/src/index.ts
+++ b/packages/pipeline/src/index.ts
@@ -3,6 +3,5 @@ import { Etherscan } from './data-sources/etherscan';
const etherscan = new Etherscan(process.env.ETHERSCAN_API_KEY as string);
(async () => {
- const events = await etherscan.getContractEventsAsync('0x4f833a24e1f95d70f028921e27040ca56e09ab0b');
- console.log(events);
+ await etherscan.getContractEventsAsync('0x4f833a24e1f95d70f028921e27040ca56e09ab0b');
})();