aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/contract_wrappers/exchange_wrapper.ts8
-rw-r--r--src/types.ts2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/contract_wrappers/exchange_wrapper.ts b/src/contract_wrappers/exchange_wrapper.ts
index 982a8c0c1..b5d5152dd 100644
--- a/src/contract_wrappers/exchange_wrapper.ts
+++ b/src/contract_wrappers/exchange_wrapper.ts
@@ -274,7 +274,13 @@ export class ExchangeWrapper extends ContractWrapper {
}
private async validateCancelOrderAndThrowIfInvalidAsync(order: Order,
cancelAmount: BigNumber.BigNumber): Promise<void> {
- // TODO
+ if (cancelAmount.eq(0)) {
+ throw new Error(ExchangeContractErrs.ORDER_CANCEL_AMOUNT_ZERO);
+ }
+ const currentUnixTimestampSec = Date.now() / 1000;
+ if (order.expirationUnixTimestampSec.lessThan(currentUnixTimestampSec)) {
+ throw new Error(ExchangeContractErrs.ORDER_CANCEL_EXPIRED);
+ }
}
/**
diff --git a/src/types.ts b/src/types.ts
index f2214ba6b..32148df7e 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -121,6 +121,8 @@ export enum ExchangeContractErrCodes {
export const ExchangeContractErrs = strEnum([
'ORDER_FILL_EXPIRED',
+ 'ORDER_CANCEL_EXPIRED',
+ 'ORDER_CANCEL_AMOUNT_ZERO',
'ORDER_REMAINING_FILL_AMOUNT_ZERO',
'ORDER_FILL_ROUNDING_ERROR',
'FILL_BALANCE_ALLOWANCE_ERROR',