aboutsummaryrefslogtreecommitdiffstats
path: root/src/contract_wrappers
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2017-09-26 22:07:42 +0800
committerGitHub <noreply@github.com>2017-09-26 22:07:42 +0800
commit949fc2fc821f8e596a2f9c972db70e04d41bb0f6 (patch)
treed25a045b3b5d7cba28c8f8c919124f178587bf78 /src/contract_wrappers
parent3c40526bffcccbad2a64f92f69f3b6ec63946c88 (diff)
parent5f7afce49d0c2367fc2a7b2f45334d64469ef32f (diff)
downloaddexon-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.ts20
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.