aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-09-05 18:22:17 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-09-06 16:33:34 +0800
commit501f054d5115ffe923cfc2b21393e36674097a82 (patch)
treee43c846efe2a151b9809bcf00a155956f51e48e6 /test
parent0275ac9dada35648ffb3b543f6ba2546117a3b63 (diff)
downloaddexon-0x-contracts-501f054d5115ffe923cfc2b21393e36674097a82.tar.gz
dexon-0x-contracts-501f054d5115ffe923cfc2b21393e36674097a82.tar.zst
dexon-0x-contracts-501f054d5115ffe923cfc2b21393e36674097a82.zip
Add signature verification as a part of order validation and tests for it
Diffstat (limited to 'test')
-rw-r--r--test/order_validation_test.ts12
1 files changed, 11 insertions, 1 deletions
diff --git a/test/order_validation_test.ts b/test/order_validation_test.ts
index 93bcfcce0..9a621555c 100644
--- a/test/order_validation_test.ts
+++ b/test/order_validation_test.ts
@@ -4,7 +4,7 @@ import * as BigNumber from 'bignumber.js';
import promisify = require('es6-promisify');
import {chaiSetup} from './utils/chai_setup';
import {web3Factory} from './utils/web3_factory';
-import {ZeroEx, SignedOrder, Token, ExchangeContractErrs} from '../src';
+import {ZeroEx, SignedOrder, Token, ExchangeContractErrs, ZeroExError} from '../src';
import {TokenUtils} from './utils/token_utils';
import {BlockchainLifecycle} from './utils/blockchain_lifecycle';
import {FillScenarios} from './utils/fill_scenarios';
@@ -64,6 +64,16 @@ describe('OrderValidation', () => {
signedOrder, zeroFillAmount, takerAddress,
)).to.be.rejectedWith(ExchangeContractErrs.OrderFillAmountZero);
});
+ it('should throw when the signature is invalid', async () => {
+ const signedOrder = await fillScenarios.createFillableSignedOrderAsync(
+ makerTokenAddress, takerTokenAddress, makerAddress, takerAddress, fillableAmount,
+ );
+ // 27 <--> 28
+ signedOrder.ecSignature.v = 27 + (28 - signedOrder.ecSignature.v);
+ return expect(zeroEx.exchange.validateFillOrderThrowIfInvalidAsync(
+ signedOrder, fillableAmount, takerAddress,
+ )).to.be.rejectedWith(ZeroExError.InvalidSignature);
+ });
it('should throw when the order is fully filled or cancelled', async () => {
const signedOrder = await fillScenarios.createFillableSignedOrderAsync(
makerTokenAddress, takerTokenAddress, makerAddress, takerAddress, fillableAmount,