Add actual type for contract event arguments

This commit is contained in:
Leonid Logvinov
2017-06-15 16:21:27 +02:00
parent 424912040a
commit 76d6e6a748
3 changed files with 36 additions and 2 deletions

View File

@@ -22,6 +22,7 @@ import {
ContractResponse,
OrderCancellationRequest,
OrderFillRequest,
LogErrorArgs,
} from '../types';
import {assert} from '../utils/assert';
import {utils} from '../utils/utils';
@@ -712,7 +713,7 @@ export class ExchangeWrapper extends ContractWrapper {
private _throwErrorLogsAsErrors(logs: ContractEvent[]): void {
const errEvent = _.find(logs, {event: 'LogError'});
if (!_.isUndefined(errEvent)) {
const errCode = errEvent.args.errorId.toNumber();
const errCode = (errEvent.args as LogErrorArgs).errorId.toNumber()
const errMessage = this._exchangeContractErrCodesToMsg[errCode];
throw new Error(errMessage);
}

View File

@@ -19,4 +19,8 @@ export {
OrderCancellationRequest,
OrderFillRequest,
ContractEventEmitter,
LogErrorArgs,
LogCancelArgs,
LogFillArgs,
EventArgs,
} from './types';

View File

@@ -190,9 +190,38 @@ export interface ContractEvent {
address: string;
type: string;
event: string;
args: any;
args: EventArgs;
}
export interface LogFillArgs {
maker: string;
taker: string;
feeRecipient: string;
tokenM: string;
tokenT: string;
filledValueM: BigNumber.BigNumber;
filledValueT: BigNumber.BigNumber;
feeMPaid: BigNumber.BigNumber;
feeTPaid: BigNumber.BigNumber;
tokens: string;
orderHash: string;
}
export interface LogCancelArgs {
maker: string;
feeRecipient: string;
tokenM: string;
tokenT: string;
cancelledValueM: BigNumber.BigNumber;
cancelledValueT: BigNumber.BigNumber;
tokens: string;
orderHash: string;
}
export interface LogErrorArgs {
errorId: BigNumber.BigNumber;
orderHash: string;
}
export type EventArgs = LogFillArgs|LogCancelArgs|LogErrorArgs;
export interface Order {
maker: string;
taker: string;