diff options
author | Fabio Berger <me@fabioberger.com> | 2017-09-26 22:07:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-26 22:07:42 +0800 |
commit | 949fc2fc821f8e596a2f9c972db70e04d41bb0f6 (patch) | |
tree | d25a045b3b5d7cba28c8f8c919124f178587bf78 /src/contract_wrappers | |
parent | 3c40526bffcccbad2a64f92f69f3b6ec63946c88 (diff) | |
parent | 5f7afce49d0c2367fc2a7b2f45334d64469ef32f (diff) | |
download | dexon-sol-tools-949fc2fc821f8e596a2f9c972db70e04d41bb0f6.tar dexon-sol-tools-949fc2fc821f8e596a2f9c972db70e04d41bb0f6.tar.gz dexon-sol-tools-949fc2fc821f8e596a2f9c972db70e04d41bb0f6.tar.bz2 dexon-sol-tools-949fc2fc821f8e596a2f9c972db70e04d41bb0f6.tar.lz dexon-sol-tools-949fc2fc821f8e596a2f9c972db70e04d41bb0f6.tar.xz dexon-sol-tools-949fc2fc821f8e596a2f9c972db70e04d41bb0f6.tar.zst dexon-sol-tools-949fc2fc821f8e596a2f9c972db70e04d41bb0f6.zip |
Merge pull request #170 from 0xProject/addOrderValidation
Add validateOrderFillableOrThrowAsync Method
Diffstat (limited to 'src/contract_wrappers')
-rw-r--r-- | src/contract_wrappers/exchange_wrapper.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/contract_wrappers/exchange_wrapper.ts b/src/contract_wrappers/exchange_wrapper.ts index 694f3b71b..6d4d90441 100644 --- a/src/contract_wrappers/exchange_wrapper.ts +++ b/src/contract_wrappers/exchange_wrapper.ts @@ -28,6 +28,7 @@ import { LogCancelContractEventArgs, LogWithDecodedArgs, MethodOpts, + ValidateOrderFillableOpts, } from '../types'; import {assert} from '../utils/assert'; import {utils} from '../utils/utils'; @@ -624,6 +625,25 @@ export class ExchangeWrapper extends ContractWrapper { return exchangeAddress; } /** + * Checks if order is still fillable and throws an error otherwise. Useful for orderbook + * pruning where you want to remove stale orders without knowing who the taker will be. + * @param signedOrder An object that conforms to the SignedOrder interface. The + * signedOrder you wish to validate. + * @param opts An object that conforms to the ValidateOrderFillableOpts + * interface. Allows specifying a specific fillTakerTokenAmount + * to validate for. + */ + public async validateOrderFillableOrThrowAsync( + signedOrder: SignedOrder, opts?: ValidateOrderFillableOpts, + ): Promise<void> { + assert.doesConformToSchema('signedOrder', signedOrder, schemas.signedOrderSchema); + const zrxTokenAddress = await this.getZRXTokenAddressAsync(); + const expectedFillTakerTokenAmount = !_.isUndefined(opts) ? opts.expectedFillTakerTokenAmount : undefined; + await this._orderValidationUtils.validateOrderFillableOrThrowAsync( + signedOrder, zrxTokenAddress, expectedFillTakerTokenAmount, + ); + } + /** * Checks if order fill will succeed and throws an error otherwise. * @param signedOrder An object that conforms to the SignedOrder interface. The * signedOrder you wish to fill. |