From fc3be810a25ce98402c686bd41606e08e7b5c2ac Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Fri, 2 Jun 2017 12:31:16 +0200 Subject: Implement zeroEx.exchange.subscribeAsync made sure to clean up subscriptions if user updates the provider --- src/types.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'src/types.ts') diff --git a/src/types.ts b/src/types.ts index 29f7e0ee4..c6ad68d3f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -51,6 +51,22 @@ export interface ExchangeContract { }; } +export type EventCallbackAsync = (err: Error, event: ContractEvent) => Promise; +export type EventCallbackSync = (err: Error, event: ContractEvent) => void; +export type EventCallback = EventCallbackSync|EventCallbackAsync; +export interface ContractEventObj { + watch: (eventWatch: EventCallback) => void; + stopWatching: () => void; +} +export type CreateContractEvent = (indexFilterValues: IndexFilterValues, + subscriptionOpts: SubscriptionOpts) => ContractEventObj; +export interface ExchangeContract { + isValidSignature: any; + LogFill: CreateContractEvent; + LogCancel: CreateContractEvent; + LogError: CreateContractEvent; +} + export interface TokenContract { balanceOf: { call: (address: string) => Promise; @@ -110,6 +126,13 @@ export interface ContractResponse { } export interface ContractEvent { + logIndex: number; + transactionIndex: number; + transactionHash: string; + blockHash: string; + blockNumber: number; + address: string; + type: string; event: string; args: any; } @@ -151,3 +174,21 @@ export interface TxOpts { export interface TokenAddressBySymbol { [symbol: string]: string; } + +export const ExchangeEvents = strEnum([ + 'LogFill', + 'LogCancel', + 'LogError', +]); +export type ExchangeEvents = keyof typeof ExchangeEvents; + +export interface IndexFilterValues { + [index: string]: any; +} + +export interface SubscriptionOpts { + fromBlock: string|number; + toBlock: string|number; +} + +export type DoneCallback = (err?: Error) => void; -- cgit v1.2.3