diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/contract_wrappers/exchange_wrapper.ts | 8 | ||||
-rw-r--r-- | src/types.ts | 2 |
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', |