Skip to content

Commit

Permalink
Cleaned up watch-eth
Browse files Browse the repository at this point in the history
  • Loading branch information
smartcontracts committed Jun 9, 2019
1 parent 7ce81c2 commit b031ec4
Show file tree
Hide file tree
Showing 14 changed files with 62 additions and 33 deletions.
9 changes: 5 additions & 4 deletions packages/watch-eth/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
export { EventWatcher, EventWatcherOptions } from './src/event-watcher'
export { EventLog, EventFilter } from './src/models'
export {
BaseEthProvider,
EventDB,
EthProvider,
FullEventFilter,
} from './src/eth-provider/base-eth-provider'
export { BaseEventDB } from './src/event-db/base-event-db'
export { EventFilterOptions, EventLog } from './src/models'
EventFilterOptions
} from './src/interfaces'
4 changes: 2 additions & 2 deletions packages/watch-eth/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@pigi/watch-eth",
"version": "0.0.1-beta.7",
"description": "Robust library for listening to Ethereum events",
"version": "0.0.2-alpha.1",
"description": "Robust library for listening to Ethereum events.",
"main": "build/index.js",
"files": [
"build/**/*"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import { BaseEthProvider, FullEventFilter } from './base-eth-provider'
/* External Imports */
import Web3 from 'web3'

/* Internal Imports */
import { EthProvider, FullEventFilter } from './interfaces'
import { EventLog } from '../models'

export class EthWrapper implements BaseEthProvider {

/**
* Basic EthProvider implementation.
*/
export class DefaultEthProvider implements EthProvider {
constructor(private web3: Web3) {}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import { BaseEventDB } from './base-event-db'
/* Internal Imports */
import { EventDB } from './interfaces'

export class EventDBWrapper implements BaseEventDB {

/**
* Basic EventDB implementation.
*/
export class DefaultEventDB implements EventDB {
constructor(private db: any) {}

/**
Expand Down
22 changes: 11 additions & 11 deletions packages/watch-eth/src/event-watcher.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
/* External Imports */
import { EventEmitter } from 'events'
import * as W3 from 'web3'
const Web3 = require('web3') // tslint:disable-line

import { EventEmitter } from 'events'

/* Internal Imports */
import { sleep } from './utils'
import { EventFilter, EventFilterOptions, EventLog } from './models'
import { BaseEventDB } from './event-db/base-event-db'
import { EventDBWrapper } from './event-db/default-event-db'
import { EthWrapper } from './eth-provider/default-eth-provider'
import { BaseEthProvider } from './eth-provider/base-eth-provider'
import { EventFilter, EventLog } from './models'
import { EventDB, EthProvider } from './interfaces'
import { DefaultEventDB } from './event-db'
import { DefaultEthProvider } from './eth-provider'


interface EventSubscription {
export interface EventSubscription {
filter: EventFilter
listeners: Array<(...args: any) => any>
}

// TODO: Fix this interface.
export interface EventWatcherOptions {
address: string
abi: any
Expand Down Expand Up @@ -49,8 +49,8 @@ export class EventWatcher extends EventEmitter {
...options,
}

this.eth = new EthWrapper(options.eth)
this.db = new EventDBWrapper(options.db)
this.eth = new DefaultEthProvider(options.eth)
this.db = new DefaultEventDB(options.db)
this.options = options
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { EventLog } from '../models/event-log'
import { EventFilterOptions } from '../models'
/* Internal Imports */
import { EventFilterOptions } from './event-filter'

export interface FullEventFilter extends EventFilterOptions {
address: string
Expand All @@ -8,7 +8,7 @@ export interface FullEventFilter extends EventFilterOptions {
toBlock: number
}

export interface BaseEthProvider {
export interface EthProvider {
connected(): Promise<boolean>
getCurrentBlock(): Promise<number>
getEvents(filter: FullEventFilter): Promise<EventLog[]>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export interface BaseEventDB {
export interface EventDB {
getLastLoggedBlock(event: string): Promise<number>
setLastLoggedBlock(event: string, block: number): Promise<void>
getEventSeen(event: string): Promise<boolean>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export interface EventFilterOptions {
event: string
indexed?: { [key: string]: any }
}
4 changes: 4 additions & 0 deletions packages/watch-eth/src/interfaces/event-log-data.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export interface EventLogData {
transactionHash: string
logIndex: number
}
4 changes: 4 additions & 0 deletions packages/watch-eth/src/interfaces/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export * from './event-filter-options.interface'
export * from './eth-provider.interface'
export * from './event-log-data.interface'
export * from './event-db.interface'
6 changes: 2 additions & 4 deletions packages/watch-eth/src/models/event-filter.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
/* Internal Imports */
import { hash } from '../utils'
import { EventFilterOptions } from '../interfaces'

export interface EventFilterOptions {
event: string
indexed?: { [key: string]: any }
}

/**
* Represents an event filter.
Expand Down
6 changes: 2 additions & 4 deletions packages/watch-eth/src/models/event-log.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
/* Internal Imports */
import { hash } from '../utils'
import { EventLogData } from '../interfaces'

export interface EventLogData {
transactionHash: string
logIndex: number
}

/**
* Represents a single event log.
Expand Down
2 changes: 2 additions & 0 deletions packages/watch-eth/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
/* External Imports */
import crypto = require('crypto')


/**
* Creates a simple (not cryptographically secure) hash.
* @param message Message to be hashed.
Expand Down
7 changes: 7 additions & 0 deletions packages/watch-eth/test/setup.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import chai = require('chai')
import chaiAsPromised = require('chai-as-promised')

const should = chai.should()
chai.use(chaiAsPromised)

export { should }

0 comments on commit b031ec4

Please sign in to comment.