diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-06-02 18:20:18 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-06-02 18:20:27 +0800 |
commit | 2a0c6abbe7f9abeacc4fea05bc468413ec1f4732 (patch) | |
tree | 039b4b3f4de7b46b921cd19976af3a590671baa6 /test | |
parent | 9d9b6f7cc0b71874f73c0f7c1d55f5010fe0609f (diff) | |
download | dexon-sol-tools-2a0c6abbe7f9abeacc4fea05bc468413ec1f4732.tar dexon-sol-tools-2a0c6abbe7f9abeacc4fea05bc468413ec1f4732.tar.gz dexon-sol-tools-2a0c6abbe7f9abeacc4fea05bc468413ec1f4732.tar.bz2 dexon-sol-tools-2a0c6abbe7f9abeacc4fea05bc468413ec1f4732.tar.lz dexon-sol-tools-2a0c6abbe7f9abeacc4fea05bc468413ec1f4732.tar.xz dexon-sol-tools-2a0c6abbe7f9abeacc4fea05bc468413ec1f4732.tar.zst dexon-sol-tools-2a0c6abbe7f9abeacc4fea05bc468413ec1f4732.zip |
Validate maker balance and allowance & tests
Diffstat (limited to 'test')
-rw-r--r-- | test/exchange_wrapper_test.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/exchange_wrapper_test.ts b/test/exchange_wrapper_test.ts index 0c1f552b6..66ba167cc 100644 --- a/test/exchange_wrapper_test.ts +++ b/test/exchange_wrapper_test.ts @@ -180,6 +180,31 @@ describe('ExchangeWrapper', () => { signedOrder, fillTakerAmountInBaseUnits, shouldCheckTransfer, )).to.be.rejectedWith(FillOrderValidationErrs.NOT_ENOUGH_TAKER_ALLOWANCE); }); + it('should throw when maker balance is less than maker fill amount', async () => { + const fillableAmount = new BigNumber(5); + const signedOrder = await fillScenarios.createAFillableSignedOrderAsync( + makerTokenAddress, takerTokenAddress, makerAddress, takerAddress, fillableAmount, + ); + const lackingMakerBalance = new BigNumber(3); + await zeroEx.token.transferAsync(makerTokenAddress, makerAddress, coinBase, lackingMakerBalance); + zeroEx.setTransactionSenderAccount(takerAddress); + return expect(zeroEx.exchange.fillOrderAsync( + signedOrder, fillTakerAmountInBaseUnits, shouldCheckTransfer, + )).to.be.rejectedWith(FillOrderValidationErrs.NOT_ENOUGH_MAKER_BALANCE); + }); + it('should throw when maker allowance is less than maker fill amount', async () => { + const fillableAmount = new BigNumber(5); + const signedOrder = await fillScenarios.createAFillableSignedOrderAsync( + makerTokenAddress, takerTokenAddress, makerAddress, takerAddress, fillableAmount, + ); + const newAllowanceWhichIsLessThanFillAmount = fillTakerAmountInBaseUnits.minus(1); + await zeroEx.token.setProxyAllowanceAsync(makerTokenAddress, makerAddress, + newAllowanceWhichIsLessThanFillAmount); + zeroEx.setTransactionSenderAccount(takerAddress); + return expect(zeroEx.exchange.fillOrderAsync( + signedOrder, fillTakerAmountInBaseUnits, shouldCheckTransfer, + )).to.be.rejectedWith(FillOrderValidationErrs.NOT_ENOUGH_MAKER_ALLOWANCE); + }); }); describe('successful fills', () => { it('should fill the valid order', async () => { |