aboutsummaryrefslogtreecommitdiffstats
path: root/src/ts/0x.js.ts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2017-05-25 19:40:15 +0800
committerGitHub <noreply@github.com>2017-05-25 19:40:15 +0800
commitdfb7b039f15d572ddf2e417f71ecb069114100a8 (patch)
tree3cb0d524490a4f3dd15eced55cc1ba59ecb644e6 /src/ts/0x.js.ts
parentb1a6c895cc095b39c263ff508d98395b1b901dc6 (diff)
parent12aa9a29e4367ab79d42cc00f97955bc1c099d24 (diff)
downloaddexon-0x-contracts-dfb7b039f15d572ddf2e417f71ecb069114100a8.tar.gz
dexon-0x-contracts-dfb7b039f15d572ddf2e417f71ecb069114100a8.tar.zst
dexon-0x-contracts-dfb7b039f15d572ddf2e417f71ecb069114100a8.zip
Merge pull request #12 from 0xProject/addToUnitStatic
Add toUnitAmount and toBaseUnitAmount static helpers and tests
Diffstat (limited to 'src/ts/0x.js.ts')
-rw-r--r--src/ts/0x.js.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/ts/0x.js.ts b/src/ts/0x.js.ts
index 1cc2d8b44..b71c691d5 100644
--- a/src/ts/0x.js.ts
+++ b/src/ts/0x.js.ts
@@ -50,4 +50,30 @@ export class ZeroEx {
const salt = randomNumber.times(factor).round();
return salt;
}
+ /*
+ * A unit amount is defined as the amount of a token above the specified decimal places (integer part).
+ * E.g: If a currency has 18 decimal places, 1e18 or one quintillion of the currency is equivalent
+ * to 1 unit.
+ */
+ public static toUnitAmount(amount: BigNumber.BigNumber, decimals: number): BigNumber.BigNumber {
+ assert.isBigNumber('amount', amount);
+ assert.isNumber('decimals', decimals);
+
+ const aUnit = new BigNumber(10).pow(decimals);
+ const unit = amount.div(aUnit);
+ return unit;
+ }
+ /*
+ * A baseUnit is defined as the smallest denomination of a token. An amount expressed in baseUnits
+ * is the amount expressed in the smallest denomination.
+ * E.g: 1 unit of a token with 18 decimal places is expressed in baseUnits as 1000000000000000000
+ */
+ public static toBaseUnitAmount(amount: BigNumber.BigNumber, decimals: number): BigNumber.BigNumber {
+ assert.isBigNumber('amount', amount);
+ assert.isNumber('decimals', decimals);
+
+ const unit = new BigNumber(10).pow(decimals);
+ const baseUnitAmount = amount.times(unit);
+ return baseUnitAmount;
+ }
}