diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-06-01 21:18:13 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-06-01 21:18:13 +0800 |
commit | d5d20db439a4a6fe913462bd216a776cc4300450 (patch) | |
tree | 727913fb2c38945197c18b901a3e64a6ae4670de /src | |
parent | 07cdfa655be81862f7ff40fe5ac6fdb38d780370 (diff) | |
download | dexon-sol-tools-d5d20db439a4a6fe913462bd216a776cc4300450.tar.gz dexon-sol-tools-d5d20db439a4a6fe913462bd216a776cc4300450.tar.zst dexon-sol-tools-d5d20db439a4a6fe913462bd216a776cc4300450.zip |
Add NOT_A_TAKER check
Diffstat (limited to 'src')
-rw-r--r-- | src/contract_wrappers/exchange_wrapper.ts | 3 | ||||
-rw-r--r-- | src/types.ts | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/contract_wrappers/exchange_wrapper.ts b/src/contract_wrappers/exchange_wrapper.ts index 7a5b6ac8c..e53754e07 100644 --- a/src/contract_wrappers/exchange_wrapper.ts +++ b/src/contract_wrappers/exchange_wrapper.ts @@ -116,6 +116,9 @@ export class ExchangeWrapper extends ContractWrapper { if (fillAmount.eq(0)) { throw new Error(FillOrderValidationErrs.FILL_AMOUNT_IS_ZERO); } + if (signedOrder.taker !== constants.NULL_ADDRESS && signedOrder.taker !== senderAddress) { + throw new Error(FillOrderValidationErrs.NOT_A_TAKER); + } } private async getExchangeInstanceOrThrowAsync(): Promise<ExchangeContract> { const contractInstance = await this.instantiateContractIfExistsAsync((ExchangeArtifacts as any)); diff --git a/src/types.ts b/src/types.ts index d9ed0b6bf..d6970bc0b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -81,6 +81,7 @@ export enum ExchangeContractErrs { export const FillOrderValidationErrs = strEnum([ 'FILL_AMOUNT_IS_ZERO', + 'NOT_A_TAKER', ]); export type FillOrderValidationErrs = keyof typeof FillOrderValidationErrs; |