aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/data_types/events/event_handlers/base_event_handler.ts
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-09-26 05:41:45 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-12-05 06:24:06 +0800
commit2207f09ce2c8b595f75fce6387256a64c64b23c3 (patch)
tree2bd5eb25bf57576ec9ba731b666ae3f2d8a5ca0c /packages/pipeline/src/data_types/events/event_handlers/base_event_handler.ts
parentfe523e1f3f765077bdaf4dfc345c9dca67693668 (diff)
downloaddexon-sol-tools-2207f09ce2c8b595f75fce6387256a64c64b23c3.tar
dexon-sol-tools-2207f09ce2c8b595f75fce6387256a64c64b23c3.tar.gz
dexon-sol-tools-2207f09ce2c8b595f75fce6387256a64c64b23c3.tar.bz2
dexon-sol-tools-2207f09ce2c8b595f75fce6387256a64c64b23c3.tar.lz
dexon-sol-tools-2207f09ce2c8b595f75fce6387256a64c64b23c3.tar.xz
dexon-sol-tools-2207f09ce2c8b595f75fce6387256a64c64b23c3.tar.zst
dexon-sol-tools-2207f09ce2c8b595f75fce6387256a64c64b23c3.zip
Make event parsing more functional and less class-based
Diffstat (limited to 'packages/pipeline/src/data_types/events/event_handlers/base_event_handler.ts')
-rw-r--r--packages/pipeline/src/data_types/events/event_handlers/base_event_handler.ts34
1 files changed, 0 insertions, 34 deletions
diff --git a/packages/pipeline/src/data_types/events/event_handlers/base_event_handler.ts b/packages/pipeline/src/data_types/events/event_handlers/base_event_handler.ts
deleted file mode 100644
index 59331fc4f..000000000
--- a/packages/pipeline/src/data_types/events/event_handlers/base_event_handler.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { AbiDefinition, BlockParam, BlockParamLiteral, LogEntry } from 'ethereum-types';
-import * as R from 'ramda';
-import { BaseEntity } from 'typeorm';
-
-import { Etherscan } from '../../../data_sources/etherscan';
-import { convertResponseToLogEntry } from '../event_utils';
-
-export abstract class BaseEventHandler<EntityType extends BaseEntity> {
- protected _abi: AbiDefinition[];
- protected _address: string;
- protected _etherscan: Etherscan;
- constructor(abi: AbiDefinition[], address: string, etherscan: Etherscan) {
- this._abi = abi;
- this._address = address;
- this._etherscan = etherscan;
- }
- public abstract convertLogEntryToEventEntity(logEntry: LogEntry): EntityType;
-
- public async getEventsAsync(
- fromBlock: BlockParam = BlockParamLiteral.Earliest,
- toBlock: BlockParam = BlockParamLiteral.Latest,
- ): Promise<EntityType[]> {
- const rawEventsResponse = await this._etherscan.getContractEventsAsync(this._address, fromBlock, toBlock);
- const logEntries = R.map(convertResponseToLogEntry, rawEventsResponse.result);
- // Note(albrow): Imperative for loop is required here because we can't
- // bind convertLogEntryToEventEntity without having a specific instance
- // of a sub-class.
- const result = [];
- for (const logEntry of logEntries) {
- result.push(this.convertLogEntryToEventEntity(logEntry));
- }
- return result;
- }
-}