aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-06-01 21:18:13 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-06-01 21:18:13 +0800
commitd5d20db439a4a6fe913462bd216a776cc4300450 (patch)
tree727913fb2c38945197c18b901a3e64a6ae4670de /src
parent07cdfa655be81862f7ff40fe5ac6fdb38d780370 (diff)
downloaddexon-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.ts3
-rw-r--r--src/types.ts1
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;