diff options
author | Jacob Evans <dekz@dekz.net> | 2018-01-19 09:19:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-19 09:19:14 +0800 |
commit | 22b1ee132a904757e4bfb7ed33826cb849029d2a (patch) | |
tree | 7fa2dcd7a8a14cc640a2a7b75d28dfcdf9b9b1f0 /packages/0x.js | |
parent | 4ac6e5477dfe648722faa7cdd7b7752ad929d08d (diff) | |
parent | ab7f681f153778a5af4e2e2ac7713c384fe3ec79 (diff) | |
download | dexon-sol-tools-22b1ee132a904757e4bfb7ed33826cb849029d2a.tar dexon-sol-tools-22b1ee132a904757e4bfb7ed33826cb849029d2a.tar.gz dexon-sol-tools-22b1ee132a904757e4bfb7ed33826cb849029d2a.tar.bz2 dexon-sol-tools-22b1ee132a904757e4bfb7ed33826cb849029d2a.tar.lz dexon-sol-tools-22b1ee132a904757e4bfb7ed33826cb849029d2a.tar.xz dexon-sol-tools-22b1ee132a904757e4bfb7ed33826cb849029d2a.tar.zst dexon-sol-tools-22b1ee132a904757e4bfb7ed33826cb849029d2a.zip |
Merge pull request #324 from 0xProject/fix/0x.js/negativeFillValues
Reject negative amounts in public methods
Diffstat (limited to 'packages/0x.js')
-rw-r--r-- | packages/0x.js/CHANGELOG.md | 4 | ||||
-rw-r--r-- | packages/0x.js/test/exchange_wrapper_test.ts | 47 |
2 files changed, 51 insertions, 0 deletions
diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 84997389a..1a09eaf28 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## v0.30.1 - _January 18, 2018_ + + * Fix a bug allowing negative fill values (#212) + ## v0.30.0 - _January 17, 2018_ * Add an error parameter to the order watcher callback (#312) diff --git a/packages/0x.js/test/exchange_wrapper_test.ts b/packages/0x.js/test/exchange_wrapper_test.ts index d2a2149a0..7e0ffd818 100644 --- a/packages/0x.js/test/exchange_wrapper_test.ts +++ b/packages/0x.js/test/exchange_wrapper_test.ts @@ -390,6 +390,29 @@ describe('ExchangeWrapper', () => { ).to.not.be.rejectedWith(ExchangeContractErrs.OrderFillAmountZero); }); }); + describe('negative fill amount', async () => { + let signedOrder: SignedOrder; + const negativeFillTakerAmount = new BigNumber(-100); + beforeEach(async () => { + signedOrder = await fillScenarios.createFillableSignedOrderAsync( + makerTokenAddress, + takerTokenAddress, + makerAddress, + takerAddress, + fillableAmount, + ); + }); + it('should not allow the exchange wrapper to fill if amount is negative', async () => { + return expect( + zeroEx.exchange.fillOrderAsync( + signedOrder, + negativeFillTakerAmount, + shouldThrowOnInsufficientBalanceOrAllowance, + takerAddress, + ), + ).to.be.rejected(); + }); + }); }); describe('#batchFillOrdersAsync', () => { let signedOrder: SignedOrder; @@ -498,6 +521,30 @@ describe('ExchangeWrapper', () => { ).to.not.be.rejectedWith(ExchangeContractErrs.OrderFillAmountZero); }); }); + describe('negative batch fill amount', async () => { + beforeEach(async () => { + const negativeFillTakerAmount = new BigNumber(-100); + orderFillBatch = [ + { + signedOrder, + takerTokenFillAmount, + }, + { + signedOrder: anotherSignedOrder, + takerTokenFillAmount: negativeFillTakerAmount, + }, + ]; + }); + it('should not allow the exchange wrapper to batch fill if any amount is negative', async () => { + return expect( + zeroEx.exchange.batchFillOrdersAsync( + orderFillBatch, + shouldThrowOnInsufficientBalanceOrAllowance, + takerAddress, + ), + ).to.be.rejected(); + }); + }); }); describe('#fillOrdersUpTo', () => { let signedOrder: SignedOrder; |