Reject negative amounts in isValidBaseUnitAmount
This commit is contained in:
parent
7b4e2257d8
commit
cfc868bf4d
@ -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;
|
||||
|
@ -12,6 +12,8 @@ export const assert = {
|
||||
},
|
||||
isValidBaseUnitAmount(variableName: string, value: BigNumber) {
|
||||
assert.isBigNumber(variableName, value);
|
||||
const isNegative = value.lessThan(0);
|
||||
this.assert(!isNegative, `${variableName} should not be a negative number, found value: ${value.toNumber()}` );
|
||||
const hasDecimals = value.decimalPlaces() !== 0;
|
||||
this.assert(
|
||||
!hasDecimals,
|
||||
|
@ -22,6 +22,16 @@ describe('Assertions', () => {
|
||||
invalidInputs.forEach(input => expect(assert.isBigNumber.bind(assert, variableName, input)).to.throw());
|
||||
});
|
||||
});
|
||||
describe('#isValidBaseUnitAmount', () => {
|
||||
it('should not throw for valid input', () => {
|
||||
const validInputs = [new BigNumber(23), new BigNumber('45000000')];
|
||||
validInputs.forEach(input => expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.not.throw());
|
||||
});
|
||||
it('should throw for invalid input', () => {
|
||||
const invalidInputs = [0, undefined, new BigNumber(3.145), 3.145, new BigNumber(-400)];
|
||||
invalidInputs.forEach(input => expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.throw());
|
||||
});
|
||||
});
|
||||
describe('#isString', () => {
|
||||
it('should not throw for valid input', () => {
|
||||
const validInputs = ['hello', 'goodbye'];
|
||||
|
Loading…
x
Reference in New Issue
Block a user