From 2c44c7ea8333dd26e96acd7869ee60cc1d177da4 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Thu, 8 Mar 2018 15:58:21 -0800 Subject: Add fillOrderNoThrow to exchange wrapper and add test --- packages/contracts/src/utils/exchange_wrapper.ts | 21 +++++++++++++++++++++ 1 file changed, 21 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 04e6c2feb..9dd414be2 100644 --- a/packages/contracts/src/utils/exchange_wrapper.ts +++ b/packages/contracts/src/utils/exchange_wrapper.ts @@ -81,6 +81,27 @@ export class ExchangeWrapper { }); return tx; } + public async fillOrderNoThrowAsync( + signedOrder: SignedOrder, + from: string, + opts: { takerTokenFillAmount?: BigNumber } = {}, + ): Promise { + const params = orderUtils.createFill(signedOrder, opts.takerTokenFillAmount); + const txHash = await this._exchange.fillOrderNoThrow.sendTransactionAsync( + params.order, + params.takerTokenFillAmount, + params.signature, + { 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 batchFillOrdersAsync( orders: SignedOrder[], from: string, -- cgit v1.2.3