aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2017-12-21 16:33:57 +0800
committerFabio Berger <me@fabioberger.com>2017-12-21 16:33:57 +0800
commit85e16c1233fc2c7020c2556cd79ac7d53cee4c98 (patch)
tree8a2463e38f9c9e84179dd06da52893b740a613a9
parent42b3a7c9d756dd2c68256707c0c96a95370329bd (diff)
downloaddexon-sol-tools-85e16c1233fc2c7020c2556cd79ac7d53cee4c98.tar
dexon-sol-tools-85e16c1233fc2c7020c2556cd79ac7d53cee4c98.tar.gz
dexon-sol-tools-85e16c1233fc2c7020c2556cd79ac7d53cee4c98.tar.bz2
dexon-sol-tools-85e16c1233fc2c7020c2556cd79ac7d53cee4c98.tar.lz
dexon-sol-tools-85e16c1233fc2c7020c2556cd79ac7d53cee4c98.tar.xz
dexon-sol-tools-85e16c1233fc2c7020c2556cd79ac7d53cee4c98.tar.zst
dexon-sol-tools-85e16c1233fc2c7020c2556cd79ac7d53cee4c98.zip
Make assertion stricter so that one cannot submit invalid baseUnit amounts to `toUnitAmount`
-rw-r--r--packages/0x.js/src/0x.ts2
-rw-r--r--packages/0x.js/test/0x.js_test.ts6
2 files changed, 7 insertions, 1 deletions
diff --git a/packages/0x.js/src/0x.ts b/packages/0x.js/src/0x.ts
index 7393cc814..596d6ffba 100644
--- a/packages/0x.js/src/0x.ts
+++ b/packages/0x.js/src/0x.ts
@@ -128,7 +128,7 @@ export class ZeroEx {
* @return The amount in units.
*/
public static toUnitAmount(amount: BigNumber, decimals: number): BigNumber {
- assert.isBigNumber('amount', amount);
+ assert.isValidBaseUnitAmount('amount', amount);
assert.isNumber('decimals', decimals);
const aUnit = new BigNumber(10).pow(decimals);
diff --git a/packages/0x.js/test/0x.js_test.ts b/packages/0x.js/test/0x.js_test.ts
index 8d62b3518..9bf504909 100644
--- a/packages/0x.js/test/0x.js_test.ts
+++ b/packages/0x.js/test/0x.js_test.ts
@@ -114,6 +114,12 @@ describe('ZeroEx library', () => {
});
});
describe('#toUnitAmount', () => {
+ it('should throw if invalid baseUnit amount supplied as argument', () => {
+ const invalidBaseUnitAmount = new BigNumber(1000000000.4);
+ const decimals = 6;
+ expect(() => ZeroEx.toUnitAmount(invalidBaseUnitAmount, decimals))
+ .to.throw('amount should be in baseUnits (no decimals), found value: 1000000000.4');
+ });
it('Should return the expected unit amount for the decimals passed in', () => {
const baseUnitAmount = new BigNumber(1000000000);
const decimals = 6;