@keplr-wallet/unit 0.9.9-rc.0 → 0.9.11-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/build/coin-pretty.d.ts +13 -3
  2. package/build/coin-pretty.js +36 -25
  3. package/build/coin-pretty.js.map +1 -1
  4. package/build/coin-pretty.spec.js +194 -9
  5. package/build/coin-pretty.spec.js.map +1 -1
  6. package/build/coin-utils.js +8 -4
  7. package/build/coin-utils.js.map +1 -1
  8. package/build/coin-utils.spec.js +16 -0
  9. package/build/coin-utils.spec.js.map +1 -1
  10. package/build/coin.js +1 -1
  11. package/build/coin.js.map +1 -1
  12. package/build/coin.spec.js +15 -0
  13. package/build/coin.spec.js.map +1 -1
  14. package/build/dec-utils.d.ts +8 -1
  15. package/build/dec-utils.js +22 -20
  16. package/build/dec-utils.js.map +1 -1
  17. package/build/dec-utils.spec.js +19 -0
  18. package/build/dec-utils.spec.js.map +1 -1
  19. package/build/decimal.d.ts +18 -9
  20. package/build/decimal.js +63 -27
  21. package/build/decimal.js.map +1 -1
  22. package/build/decimal.spec.js +218 -2
  23. package/build/decimal.spec.js.map +1 -1
  24. package/build/index.d.ts +1 -0
  25. package/build/index.js +1 -0
  26. package/build/index.js.map +1 -1
  27. package/build/int-pretty.d.ts +16 -4
  28. package/build/int-pretty.js +74 -36
  29. package/build/int-pretty.js.map +1 -1
  30. package/build/int-pretty.spec.js +261 -94
  31. package/build/int-pretty.spec.js.map +1 -1
  32. package/build/int.d.ts +14 -2
  33. package/build/int.js +48 -0
  34. package/build/int.js.map +1 -1
  35. package/build/int.spec.d.ts +1 -0
  36. package/build/int.spec.js +133 -0
  37. package/build/int.spec.js.map +1 -0
  38. package/build/price-pretty.d.ts +13 -3
  39. package/build/price-pretty.js +37 -26
  40. package/build/price-pretty.js.map +1 -1
  41. package/build/price-pretty.spec.js +59 -2
  42. package/build/price-pretty.spec.js.map +1 -1
  43. package/build/rate-pretty.d.ts +57 -0
  44. package/build/rate-pretty.js +128 -0
  45. package/build/rate-pretty.js.map +1 -0
  46. package/build/rate-pretty.spec.d.ts +1 -0
  47. package/build/rate-pretty.spec.js +38 -0
  48. package/build/rate-pretty.spec.js.map +1 -0
  49. package/package.json +3 -3
  50. package/src/coin-pretty.spec.ts +304 -11
  51. package/src/coin-pretty.ts +56 -29
  52. package/src/coin-utils.spec.ts +32 -0
  53. package/src/coin-utils.ts +12 -4
  54. package/src/coin.spec.ts +20 -0
  55. package/src/coin.ts +1 -1
  56. package/src/dec-utils.spec.ts +39 -0
  57. package/src/dec-utils.ts +25 -20
  58. package/src/decimal.spec.ts +269 -2
  59. package/src/decimal.ts +84 -54
  60. package/src/index.ts +1 -0
  61. package/src/int-pretty.spec.ts +296 -101
  62. package/src/int-pretty.ts +87 -34
  63. package/src/int.spec.ts +178 -0
  64. package/src/int.ts +66 -2
  65. package/src/price-pretty.spec.ts +106 -2
  66. package/src/price-pretty.ts +50 -30
  67. package/src/rate-pretty.spec.ts +52 -0
  68. package/src/rate-pretty.ts +165 -0
@@ -1,6 +1,13 @@
1
1
  import { Dec } from "./decimal";
2
2
  export declare class DecUtils {
3
3
  static trim(dec: Dec | string): string;
4
- private static precisions;
4
+ protected static tenExponentNs: {
5
+ [n: string]: Dec;
6
+ };
7
+ static getTenExponentN(n: number): Dec;
8
+ static getTenExponentNInPrecisionRange(n: number): Dec;
9
+ /**
10
+ * @deprecated Use`getTenExponentNInPrecisionRange`
11
+ */
5
12
  static getPrecisionDec(precision: number): Dec;
6
13
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DecUtils = void 0;
4
4
  const decimal_1 = require("./decimal");
5
+ const int_1 = require("./int");
5
6
  class DecUtils {
6
7
  static trim(dec) {
7
8
  let decStr = typeof dec === "string" ? dec : dec.toString();
@@ -23,31 +24,32 @@ class DecUtils {
23
24
  }
24
25
  return decStr;
25
26
  }
26
- static getPrecisionDec(precision) {
27
- if (precision < -18) {
27
+ static getTenExponentN(n) {
28
+ if (n < -decimal_1.Dec.precision) {
29
+ // Dec can only handle up to precision 18.
30
+ // Anything less than 18 precision is 0, so there is a high probability of an error.
28
31
  throw new Error("Too little precision");
29
32
  }
30
- if (precision > 18) {
31
- throw new Error("Too much precision");
32
- }
33
- if (DecUtils.precisions[precision.toString()]) {
34
- return DecUtils.precisions[precision.toString()];
35
- }
36
- let dec = new decimal_1.Dec(1);
37
- if (precision > 0) {
38
- for (let i = 0; i < precision; i++) {
39
- dec = dec.mul(new decimal_1.Dec(10));
40
- }
41
- }
42
- else if (precision < 0) {
43
- for (let i = 0; i < -precision; i++) {
44
- dec = dec.quo(new decimal_1.Dec(10));
45
- }
33
+ if (DecUtils.tenExponentNs[n.toString()]) {
34
+ return DecUtils.tenExponentNs[n.toString()];
46
35
  }
47
- DecUtils.precisions[precision.toString()] = dec;
36
+ const dec = new decimal_1.Dec(10).pow(new int_1.Int(n));
37
+ DecUtils.tenExponentNs[n.toString()] = dec;
48
38
  return dec;
49
39
  }
40
+ static getTenExponentNInPrecisionRange(n) {
41
+ if (n > decimal_1.Dec.precision) {
42
+ throw new Error("Too much precision");
43
+ }
44
+ return DecUtils.getTenExponentN(n);
45
+ }
46
+ /**
47
+ * @deprecated Use`getTenExponentNInPrecisionRange`
48
+ */
49
+ static getPrecisionDec(precision) {
50
+ return DecUtils.getTenExponentNInPrecisionRange(precision);
51
+ }
50
52
  }
51
53
  exports.DecUtils = DecUtils;
52
- DecUtils.precisions = {};
54
+ DecUtils.tenExponentNs = {};
53
55
  //# sourceMappingURL=dec-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dec-utils.js","sourceRoot":"","sources":["../src/dec-utils.ts"],"names":[],"mappings":";;;AAAA,uCAAgC;AAEhC,MAAa,QAAQ;IACnB,MAAM,CAAC,IAAI,CAAC,GAAiB;QAC3B,IAAI,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAE5D,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,MAAM,CAAC;SACf;QAED,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACrB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7B;iBAAM;gBACL,MAAM;aACP;SACF;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;gBACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aAC7C;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAID,MAAM,CAAC,eAAe,CAAC,SAAiB;QACtC,IAAI,SAAS,GAAG,CAAC,EAAE,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QACD,IAAI,SAAS,GAAG,EAAE,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAED,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC7C,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD;QAED,IAAI,GAAG,GAAG,IAAI,aAAG,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gBAClC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAC5B;SACF;aAAM,IAAI,SAAS,GAAG,CAAC,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACnC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAC5B;SACF;QAED,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC;;AArDH,4BAsDC;AA7BgB,mBAAU,GAAiC,EAAE,CAAC"}
1
+ {"version":3,"file":"dec-utils.js","sourceRoot":"","sources":["../src/dec-utils.ts"],"names":[],"mappings":";;;AAAA,uCAAgC;AAChC,+BAA4B;AAE5B,MAAa,QAAQ;IACZ,MAAM,CAAC,IAAI,CAAC,GAAiB;QAClC,IAAI,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAE5D,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,MAAM,CAAC;SACf;QAED,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACrB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7B;iBAAM;gBACL,MAAM;aACP;SACF;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;gBACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aAC7C;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAIM,MAAM,CAAC,eAAe,CAAC,CAAS;QACrC,IAAI,CAAC,GAAG,CAAC,aAAG,CAAC,SAAS,EAAE;YACtB,0CAA0C;YAC1C,oFAAoF;YACpF,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QAED,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;YACxC,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC7C;QAED,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,SAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;QAE3C,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,+BAA+B,CAAC,CAAS;QACrD,IAAI,CAAC,GAAG,aAAG,CAAC,SAAS,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAED,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,eAAe,CAAC,SAAiB;QAC7C,OAAO,QAAQ,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;;AAzDH,4BA0DC;AAjCkB,sBAAa,GAAyB,EAAE,CAAC"}
@@ -3,6 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const dec_utils_1 = require("./dec-utils");
4
4
  const decimal_1 = require("./decimal");
5
5
  describe("Test DecUtils", () => {
6
+ it("Test trim in DecUtils", () => {
7
+ expect(dec_utils_1.DecUtils.trim("0.00100")).toBe("0.001");
8
+ expect(dec_utils_1.DecUtils.trim("0.00")).toBe("0");
9
+ expect(dec_utils_1.DecUtils.trim("-0.00100")).toBe("-0.001");
10
+ expect(dec_utils_1.DecUtils.trim("-0.00")).toBe("-0");
11
+ });
6
12
  it("getPrecisionDec should return the (10^precision)", () => {
7
13
  expect(dec_utils_1.DecUtils.getPrecisionDec(-1).toString()).toBe(new decimal_1.Dec("0.1").toString());
8
14
  expect(dec_utils_1.DecUtils.getPrecisionDec(-5).toString()).toBe(new decimal_1.Dec("0.00001").toString());
@@ -24,5 +30,18 @@ describe("Test DecUtils", () => {
24
30
  dec_utils_1.DecUtils.getPrecisionDec(-19);
25
31
  }).toThrow();
26
32
  });
33
+ it("getTenExponentN should return same cached result", () => {
34
+ for (let i = 0; i < 3; i++) {
35
+ expect(dec_utils_1.DecUtils.getTenExponentN(5).toString()).toBe(new decimal_1.Dec(100000).toString());
36
+ }
37
+ });
38
+ it("Test getTenExponentN", () => {
39
+ expect(dec_utils_1.DecUtils.getTenExponentN(0).toString()).toBe(new decimal_1.Dec("1").toString());
40
+ expect(dec_utils_1.DecUtils.getTenExponentN(1).toString()).toBe(new decimal_1.Dec("10").toString());
41
+ expect(dec_utils_1.DecUtils.getTenExponentN(10).toString()).toBe(new decimal_1.Dec("10000000000").toString());
42
+ expect(dec_utils_1.DecUtils.getTenExponentN(20).toString()).toBe(new decimal_1.Dec("100000000000000000000").toString());
43
+ expect(dec_utils_1.DecUtils.getTenExponentN(-18).toString()).toBe(new decimal_1.Dec("0.000000000000000001").toString());
44
+ expect(() => dec_utils_1.DecUtils.getTenExponentN(-19)).toThrow();
45
+ });
27
46
  });
28
47
  //# sourceMappingURL=dec-utils.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dec-utils.spec.js","sourceRoot":"","sources":["../src/dec-utils.spec.ts"],"names":[],"mappings":";;AAAA,2CAAuC;AACvC,uCAAgC;AAEhC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAC1B,CAAC;QACF,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,aAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAC9B,CAAC;QAEF,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,aAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,aAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CACjD,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,EAAE;YACV,oBAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEjB,MAAM,CAAC,GAAG,EAAE;YACV,oBAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAEb,MAAM,CAAC,GAAG,EAAE;YACV,oBAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEjB,MAAM,CAAC,GAAG,EAAE;YACV,oBAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dec-utils.spec.js","sourceRoot":"","sources":["../src/dec-utils.spec.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import bigInteger from "big-integer";
2
2
  import { Int } from "./int";
3
3
  export declare class Dec {
4
- static readonly precision: bigInteger.BigInteger;
5
- private static readonly precisionMultipliers;
6
- private static calcPrecisionMultiplier;
7
- private int;
4
+ static readonly precision = 18;
5
+ protected static readonly decimalPrecisionBits = 60;
6
+ protected static readonly maxDecBitLen: number;
7
+ protected static readonly precisionMultipliers: {
8
+ [key: string]: bigInteger.BigInteger | undefined;
9
+ };
10
+ protected static calcPrecisionMultiplier(prec: number): bigInteger.BigInteger;
11
+ protected int: bigInteger.BigInteger;
8
12
  /**
9
13
  * Create a new Dec from integer with decimal place at prec
10
14
  * @param int - Parse a number | bigInteger | string into a Dec.
@@ -12,6 +16,7 @@ export declare class Dec {
12
16
  * @param prec - Precision
13
17
  */
14
18
  constructor(int: bigInteger.BigNumber | Int, prec?: number);
19
+ protected checkBitLen(): void;
15
20
  isZero(): boolean;
16
21
  isNegative(): boolean;
17
22
  isPositive(): boolean;
@@ -42,26 +47,30 @@ export declare class Dec {
42
47
  abs(): Dec;
43
48
  add(d2: Dec): Dec;
44
49
  sub(d2: Dec): Dec;
50
+ pow(n: Int): Dec;
45
51
  mul(d2: Dec): Dec;
46
52
  mulTruncate(d2: Dec): Dec;
47
- private mulRaw;
53
+ protected mulRaw(d2: Dec): Dec;
48
54
  quo(d2: Dec): Dec;
49
55
  quoTruncate(d2: Dec): Dec;
50
56
  quoRoundUp(d2: Dec): Dec;
51
- private quoRaw;
57
+ protected quoRaw(d2: Dec): Dec;
52
58
  isInteger(): boolean;
53
59
  /**
54
60
  * Remove a Precision amount of rightmost digits and perform bankers rounding
55
61
  * on the remainder (gaussian rounding) on the digits which have been removed.
56
62
  */
57
- private chopPrecisionAndRound;
58
- private chopPrecisionAndRoundUp;
63
+ protected chopPrecisionAndRound(): bigInteger.BigInteger;
64
+ protected chopPrecisionAndRoundUp(): bigInteger.BigInteger;
59
65
  /**
60
66
  * Similar to chopPrecisionAndRound, but always rounds down
61
67
  */
62
- private chopPrecisionAndTruncate;
68
+ protected chopPrecisionAndTruncate(): bigInteger.BigInteger;
63
69
  toString(prec?: number, locale?: boolean): string;
64
70
  round(): Int;
65
71
  roundUp(): Int;
66
72
  truncate(): Int;
73
+ roundDec(): Dec;
74
+ roundUpDec(): Dec;
75
+ truncateDec(): Dec;
67
76
  }
package/build/decimal.js CHANGED
@@ -15,6 +15,9 @@ class Dec {
15
15
  * @param prec - Precision
16
16
  */
17
17
  constructor(int, prec = 0) {
18
+ if (typeof int === "number") {
19
+ int = int.toString();
20
+ }
18
21
  if (typeof int === "string") {
19
22
  if (int.length === 0) {
20
23
  throw new Error("empty string");
@@ -28,9 +31,6 @@ class Dec {
28
31
  }
29
32
  this.int = big_integer_1.default(int);
30
33
  }
31
- else if (typeof int === "number") {
32
- this.int = big_integer_1.default(int);
33
- }
34
34
  else if (int instanceof int_1.Int) {
35
35
  this.int = big_integer_1.default(int.toString());
36
36
  }
@@ -40,24 +40,30 @@ class Dec {
40
40
  else {
41
41
  this.int = big_integer_1.default(int);
42
42
  }
43
- this.int = this.int.multiply(Dec.calcPrecisionMultiplier(big_integer_1.default(prec)));
43
+ this.int = this.int.multiply(Dec.calcPrecisionMultiplier(prec));
44
+ this.checkBitLen();
44
45
  }
45
46
  static calcPrecisionMultiplier(prec) {
46
- if (prec.lt(big_integer_1.default(0))) {
47
+ if (prec < 0) {
47
48
  throw new Error("Invalid prec");
48
49
  }
49
- if (prec.gt(Dec.precision)) {
50
+ if (prec > Dec.precision) {
50
51
  throw new Error("Too much precision");
51
52
  }
52
53
  if (Dec.precisionMultipliers[prec.toString()]) {
53
54
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
54
55
  return Dec.precisionMultipliers[prec.toString()];
55
56
  }
56
- const zerosToAdd = Dec.precision.minus(prec);
57
+ const zerosToAdd = Dec.precision - prec;
57
58
  const multiplier = big_integer_1.default(10).pow(zerosToAdd);
58
59
  Dec.precisionMultipliers[prec.toString()] = multiplier;
59
60
  return multiplier;
60
61
  }
62
+ checkBitLen() {
63
+ if (this.int.abs().bitLength().gt(Dec.maxDecBitLen)) {
64
+ throw new Error(`Integer out of range ${this.int.toString()}`);
65
+ }
66
+ }
61
67
  isZero() {
62
68
  return this.int.eq(big_integer_1.default(0));
63
69
  }
@@ -98,46 +104,63 @@ class Dec {
98
104
  * reverse the decimal sign.
99
105
  */
100
106
  neg() {
101
- return new Dec(this.int.negate(), Dec.precision.toJSNumber());
107
+ return new Dec(this.int.negate(), Dec.precision);
102
108
  }
103
109
  /**
104
110
  * Returns the absolute value of a decimals.
105
111
  */
106
112
  abs() {
107
- return new Dec(this.int.abs(), Dec.precision.toJSNumber());
113
+ return new Dec(this.int.abs(), Dec.precision);
108
114
  }
109
115
  add(d2) {
110
- return new Dec(this.int.add(d2.int), Dec.precision.toJSNumber());
116
+ return new Dec(this.int.add(d2.int), Dec.precision);
111
117
  }
112
118
  sub(d2) {
113
- return new Dec(this.int.subtract(d2.int), Dec.precision.toJSNumber());
119
+ return new Dec(this.int.subtract(d2.int), Dec.precision);
120
+ }
121
+ pow(n) {
122
+ if (n.isZero()) {
123
+ return new Dec(1);
124
+ }
125
+ if (n.isNegative()) {
126
+ return new Dec(1).quo(this.pow(n.abs()));
127
+ }
128
+ let base = new Dec(this.int, Dec.precision);
129
+ let tmp = new Dec(1);
130
+ for (let i = n; i.gt(new int_1.Int(1)); i = i.div(new int_1.Int(2))) {
131
+ if (!i.mod(new int_1.Int(2)).isZero()) {
132
+ tmp = tmp.mul(base);
133
+ }
134
+ base = base.mul(base);
135
+ }
136
+ return base.mul(tmp);
114
137
  }
115
138
  mul(d2) {
116
- return new Dec(this.mulRaw(d2).chopPrecisionAndRound(), Dec.precision.toJSNumber());
139
+ return new Dec(this.mulRaw(d2).chopPrecisionAndRound(), Dec.precision);
117
140
  }
118
141
  mulTruncate(d2) {
119
- return new Dec(this.mulRaw(d2).chopPrecisionAndTruncate(), Dec.precision.toJSNumber());
142
+ return new Dec(this.mulRaw(d2).chopPrecisionAndTruncate(), Dec.precision);
120
143
  }
121
144
  mulRaw(d2) {
122
- return new Dec(this.int.multiply(d2.int), Dec.precision.toJSNumber());
145
+ return new Dec(this.int.multiply(d2.int), Dec.precision);
123
146
  }
124
147
  quo(d2) {
125
- return new Dec(this.quoRaw(d2).chopPrecisionAndRound(), Dec.precision.toJSNumber());
148
+ return new Dec(this.quoRaw(d2).chopPrecisionAndRound(), Dec.precision);
126
149
  }
127
150
  quoTruncate(d2) {
128
- return new Dec(this.quoRaw(d2).chopPrecisionAndTruncate(), Dec.precision.toJSNumber());
151
+ return new Dec(this.quoRaw(d2).chopPrecisionAndTruncate(), Dec.precision);
129
152
  }
130
153
  quoRoundUp(d2) {
131
- return new Dec(this.quoRaw(d2).chopPrecisionAndRoundUp(), Dec.precision.toJSNumber());
154
+ return new Dec(this.quoRaw(d2).chopPrecisionAndRoundUp(), Dec.precision);
132
155
  }
133
156
  quoRaw(d2) {
134
- const precision = Dec.calcPrecisionMultiplier(big_integer_1.default(0));
157
+ const precision = Dec.calcPrecisionMultiplier(0);
135
158
  // multiply precision twice
136
159
  const mul = this.int.multiply(precision).multiply(precision);
137
- return new Dec(mul.divide(d2.int), Dec.precision.toJSNumber());
160
+ return new Dec(mul.divide(d2.int), Dec.precision);
138
161
  }
139
162
  isInteger() {
140
- const precision = Dec.calcPrecisionMultiplier(big_integer_1.default(0));
163
+ const precision = Dec.calcPrecisionMultiplier(0);
141
164
  return this.int.remainder(precision).equals(big_integer_1.default(0));
142
165
  }
143
166
  /**
@@ -151,7 +174,7 @@ class Dec {
151
174
  const choped = absoulteDec.chopPrecisionAndRound();
152
175
  return choped.negate();
153
176
  }
154
- const precision = Dec.calcPrecisionMultiplier(big_integer_1.default(0));
177
+ const precision = Dec.calcPrecisionMultiplier(0);
155
178
  const fivePrecision = precision.divide(big_integer_1.default(2));
156
179
  // Get the truncated quotient and remainder
157
180
  const { quotient, remainder } = this.int.divmod(precision);
@@ -183,7 +206,7 @@ class Dec {
183
206
  const choped = absoulteDec.chopPrecisionAndTruncate();
184
207
  return choped.negate();
185
208
  }
186
- const precision = Dec.calcPrecisionMultiplier(big_integer_1.default(0));
209
+ const precision = Dec.calcPrecisionMultiplier(0);
187
210
  // Get the truncated quotient and remainder
188
211
  const { quotient, remainder } = this.int.divmod(precision);
189
212
  // If remainder is zero
@@ -196,15 +219,15 @@ class Dec {
196
219
  * Similar to chopPrecisionAndRound, but always rounds down
197
220
  */
198
221
  chopPrecisionAndTruncate() {
199
- const precision = Dec.calcPrecisionMultiplier(big_integer_1.default(0));
222
+ const precision = Dec.calcPrecisionMultiplier(0);
200
223
  return this.int.divide(precision);
201
224
  }
202
- toString(prec = Dec.precision.toJSNumber(), locale = false) {
203
- const precision = Dec.calcPrecisionMultiplier(big_integer_1.default(0));
225
+ toString(prec = Dec.precision, locale = false) {
226
+ const precision = Dec.calcPrecisionMultiplier(0);
204
227
  const int = this.int.abs();
205
228
  const { quotient: integer, remainder: fraction } = int.divmod(precision);
206
229
  let fractionStr = fraction.toString(10);
207
- for (let i = 0, l = fractionStr.length; i < Dec.precision.toJSNumber() - l; i++) {
230
+ for (let i = 0, l = fractionStr.length; i < Dec.precision - l; i++) {
208
231
  fractionStr = "0" + fractionStr;
209
232
  }
210
233
  fractionStr = fractionStr.substring(0, prec);
@@ -226,8 +249,21 @@ class Dec {
226
249
  truncate() {
227
250
  return new int_1.Int(this.chopPrecisionAndTruncate());
228
251
  }
252
+ roundDec() {
253
+ return new Dec(this.chopPrecisionAndRound(), 0);
254
+ }
255
+ roundUpDec() {
256
+ return new Dec(this.chopPrecisionAndRoundUp(), 0);
257
+ }
258
+ truncateDec() {
259
+ return new Dec(this.chopPrecisionAndTruncate(), 0);
260
+ }
229
261
  }
230
262
  exports.Dec = Dec;
231
- Dec.precision = big_integer_1.default(18);
263
+ Dec.precision = 18;
264
+ // bytes required to represent the above precision
265
+ // Ceiling[Log2[999 999 999 999 999 999]]
266
+ Dec.decimalPrecisionBits = 60;
267
+ Dec.maxDecBitLen = 256 + Dec.decimalPrecisionBits;
232
268
  Dec.precisionMultipliers = {};
233
269
  //# sourceMappingURL=decimal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decimal.js","sourceRoot":"","sources":["../src/decimal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimal.js","sourceRoot":"","sources":["../src/decimal.ts"],"names":[],"mappings":"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"}