From 2bd1ddd1296b4b3706bf91934e00c02508ca7c6f Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Fri, 9 Mar 2018 13:44:08 -0800 Subject: Add tests for fillOrderNoThrow based functions --- packages/contracts/src/utils/exchange_wrapper.ts | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'packages/contracts/src/utils/exchange_wrapper.ts') diff --git a/packages/contracts/src/utils/exchange_wrapper.ts b/packages/contracts/src/utils/exchange_wrapper.ts index 9dd414be2..b53519871 100644 --- a/packages/contracts/src/utils/exchange_wrapper.ts +++ b/packages/contracts/src/utils/exchange_wrapper.ts @@ -144,6 +144,27 @@ export class ExchangeWrapper { }); return tx; } + public async batchFillOrdersNoThrowAsync( + orders: SignedOrder[], + from: string, + opts: { takerTokenFillAmounts?: BigNumber[] } = {}, + ): Promise { + const params = formatters.createBatchFill(orders, opts.takerTokenFillAmounts); + const txHash = await this._exchange.batchFillOrdersNoThrow.sendTransactionAsync( + params.orders, + params.takerTokenFillAmounts, + params.signatures, + { from }, + ); + const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash); + tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address); + tx.logs = _.map(tx.logs, log => { + const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log); + wrapLogBigNumbers(logWithDecodedArgs); + return logWithDecodedArgs; + }); + return tx; + } public async marketFillOrdersAsync( orders: SignedOrder[], from: string, @@ -165,6 +186,27 @@ export class ExchangeWrapper { }); return tx; } + public async marketFillOrdersNoThrowAsync( + orders: SignedOrder[], + from: string, + opts: { takerTokenFillAmount: BigNumber }, + ): Promise { + const params = formatters.createMarketFillOrders(orders, opts.takerTokenFillAmount); + const txHash = await this._exchange.marketFillOrdersNoThrow.sendTransactionAsync( + params.orders, + params.takerTokenFillAmount, + params.signatures, + { from }, + ); + const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash); + tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address); + tx.logs = _.map(tx.logs, log => { + const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log); + wrapLogBigNumbers(logWithDecodedArgs); + return logWithDecodedArgs; + }); + return tx; + } public async batchCancelOrdersAsync( orders: SignedOrder[], from: string, -- cgit v1.2.3