@keplr-wallet/unit 0.9.10 → 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 +2 -2
  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
@@ -13,18 +13,75 @@ describe("Test PricePretty", () => {
13
13
  expect(pretty.toString()).toBe("$12.1");
14
14
  expect(pretty.increasePrecision(1).toString()).toBe("$1.21");
15
15
  expect(pretty.decreasePrecision(1).toString()).toBe("$121");
16
- expect(pretty.precision(0).toString()).toBe("$121,234");
17
- expect(pretty.precision(-2).toString()).toBe("$12,123,400");
16
+ expect(pretty.moveDecimalPointLeft(1).toString()).toBe("$1.21");
17
+ expect(pretty.moveDecimalPointRight(1).toString()).toBe("$121");
18
18
  expect(pretty.add(new decimal_1.Dec("0.1")).toString()).toBe("$12.2");
19
19
  expect(pretty.sub(new decimal_1.Dec("0.1")).toString()).toBe("$12");
20
20
  expect(pretty.mul(new decimal_1.Dec("0.1")).toString()).toBe("$1.21");
21
21
  expect(pretty.quo(new decimal_1.Dec("0.1")).toString()).toBe("$121");
22
+ expect(new price_pretty_1.PricePretty({
23
+ currency: "usd",
24
+ symbol: "$",
25
+ maxDecimals: 2,
26
+ locale: "en-US",
27
+ }, new decimal_1.Dec("0")).toString()).toBe("$0");
28
+ expect(new price_pretty_1.PricePretty({
29
+ currency: "usd",
30
+ symbol: "$",
31
+ maxDecimals: 2,
32
+ locale: "en-US",
33
+ }, new decimal_1.Dec("-0")).toString()).toBe("$0");
22
34
  expect(new price_pretty_1.PricePretty({
23
35
  currency: "usd",
24
36
  symbol: "$",
25
37
  maxDecimals: 2,
26
38
  locale: "en-US",
27
39
  }, new decimal_1.Dec("0.001")).toString()).toBe("< $0.01");
40
+ expect(new price_pretty_1.PricePretty({
41
+ currency: "usd",
42
+ symbol: "$",
43
+ maxDecimals: 2,
44
+ locale: "en-US",
45
+ }, new decimal_1.Dec("0.001"))
46
+ .inequalitySymbol(false)
47
+ .toString()).toBe("$0");
48
+ expect(new price_pretty_1.PricePretty({
49
+ currency: "usd",
50
+ symbol: "$",
51
+ maxDecimals: 2,
52
+ locale: "en-US",
53
+ }, new decimal_1.Dec("-0.001")).toString()).toBe("> -$0.01");
54
+ expect(new price_pretty_1.PricePretty({
55
+ currency: "usd",
56
+ symbol: "$",
57
+ maxDecimals: 2,
58
+ locale: "en-US",
59
+ }, new decimal_1.Dec("-0.001"))
60
+ .inequalitySymbol(false)
61
+ .toString()
62
+ // TODO: Delete the case of "-0". Return "0"
63
+ ).toBe("-$0");
64
+ expect(new price_pretty_1.PricePretty({
65
+ currency: "usd",
66
+ symbol: "$",
67
+ maxDecimals: 3,
68
+ locale: "en-US",
69
+ }, new decimal_1.Dec("0.001")).toString()).toBe("$0.001");
70
+ expect(new price_pretty_1.PricePretty({
71
+ currency: "usd",
72
+ symbol: "$",
73
+ maxDecimals: 3,
74
+ locale: "en-US",
75
+ }, new decimal_1.Dec("-0.001")).toString()).toBe("-$0.001");
76
+ // PricePretty's maxDecimals behave differently than IntPretty.
77
+ expect(new price_pretty_1.PricePretty({
78
+ currency: "usd",
79
+ symbol: "$",
80
+ maxDecimals: 4,
81
+ locale: "en-US",
82
+ }, new decimal_1.Dec("0.001"))
83
+ .trim(false)
84
+ .toString()).toBe("$0.001");
28
85
  });
29
86
  });
30
87
  //# sourceMappingURL=price-pretty.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"price-pretty.spec.js","sourceRoot":"","sources":["../src/price-pretty.spec.ts"],"names":[],"mappings":";;AAAA,iDAA6C;AAC7C,uCAAgC;AAEhC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,0BAAW,CAC5B;YACE,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,OAAO;SAChB,EACD,IAAI,aAAG,CAAC,SAAS,CAAC,CACnB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3D,MAAM,CACJ,IAAI,0BAAW,CACb;YACE,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,OAAO;SAChB,EACD,IAAI,aAAG,CAAC,OAAO,CAAC,CACjB,CAAC,QAAQ,EAAE,CACb,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"price-pretty.spec.js","sourceRoot":"","sources":["../src/price-pretty.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { IntPretty, IntPrettyOptions } from "./int-pretty";
2
+ import { Dec } from "./decimal";
3
+ import { DeepReadonly } from "utility-types";
4
+ import bigInteger from "big-integer";
5
+ export declare type RatePrettyOptions = {
6
+ separator: string;
7
+ symbol: string;
8
+ };
9
+ /**
10
+ * RatePretty treats `Dec` in rate form for easy calculation, and displays it as a percentage to the user by using toString().
11
+ * By default, if the value is less than maxDeciamls, it is displayed using an inequality sign (Ex. < 0.001%)
12
+ */
13
+ export declare class RatePretty {
14
+ protected amount: Dec | {
15
+ toDec(): Dec;
16
+ } | bigInteger.BigNumber;
17
+ protected intPretty: IntPretty;
18
+ protected _options: RatePrettyOptions;
19
+ constructor(amount: Dec | {
20
+ toDec(): Dec;
21
+ } | bigInteger.BigNumber);
22
+ get options(): DeepReadonly<Omit<IntPrettyOptions, "locale"> & RatePrettyOptions>;
23
+ separator(str: string): RatePretty;
24
+ symbol(str: string): RatePretty;
25
+ moveDecimalPointLeft(delta: number): RatePretty;
26
+ moveDecimalPointRight(delta: number): RatePretty;
27
+ maxDecimals(max: number): RatePretty;
28
+ inequalitySymbol(bool: boolean): RatePretty;
29
+ inequalitySymbolSeparator(str: string): RatePretty;
30
+ trim(bool: boolean): RatePretty;
31
+ shrink(bool: boolean): RatePretty;
32
+ locale(locale: boolean): RatePretty;
33
+ /**
34
+ * Ready indicates the actual value is ready to show the users.
35
+ * Even if the ready option is false, it expects that the value can be shown to users (probably as 0).
36
+ * The method that returns prettied value may return `undefined` or `null` if the value is not ready.
37
+ * But, alternatively, it can return the 0 value that can be shown the users anyway, but indicates that the value is not ready.
38
+ * @param bool
39
+ */
40
+ ready(bool: boolean): RatePretty;
41
+ get isReady(): boolean;
42
+ add(target: Dec | {
43
+ toDec(): Dec;
44
+ }): RatePretty;
45
+ sub(target: Dec | {
46
+ toDec(): Dec;
47
+ }): RatePretty;
48
+ mul(target: Dec | {
49
+ toDec(): Dec;
50
+ }): RatePretty;
51
+ quo(target: Dec | {
52
+ toDec(): Dec;
53
+ }): RatePretty;
54
+ toDec(): Dec;
55
+ toString(): string;
56
+ clone(): RatePretty;
57
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RatePretty = void 0;
4
+ const int_pretty_1 = require("./int-pretty");
5
+ /**
6
+ * RatePretty treats `Dec` in rate form for easy calculation, and displays it as a percentage to the user by using toString().
7
+ * By default, if the value is less than maxDeciamls, it is displayed using an inequality sign (Ex. < 0.001%)
8
+ */
9
+ class RatePretty {
10
+ constructor(amount) {
11
+ this.amount = amount;
12
+ this._options = {
13
+ separator: "",
14
+ symbol: "%",
15
+ };
16
+ this.intPretty = new int_pretty_1.IntPretty(amount);
17
+ this.intPretty = this.intPretty
18
+ .maxDecimals(3)
19
+ .shrink(false)
20
+ .trim(true)
21
+ .locale(true)
22
+ .inequalitySymbol(true);
23
+ }
24
+ get options() {
25
+ return Object.assign(Object.assign({}, this.intPretty.options), this._options);
26
+ }
27
+ separator(str) {
28
+ const pretty = this.clone();
29
+ pretty._options.separator = str;
30
+ return pretty;
31
+ }
32
+ symbol(str) {
33
+ const pretty = this.clone();
34
+ pretty._options.symbol = str;
35
+ return pretty;
36
+ }
37
+ moveDecimalPointLeft(delta) {
38
+ const pretty = this.clone();
39
+ pretty.intPretty = pretty.intPretty.moveDecimalPointLeft(delta);
40
+ return pretty;
41
+ }
42
+ moveDecimalPointRight(delta) {
43
+ const pretty = this.clone();
44
+ pretty.intPretty = pretty.intPretty.moveDecimalPointRight(delta);
45
+ return pretty;
46
+ }
47
+ maxDecimals(max) {
48
+ const pretty = this.clone();
49
+ pretty.intPretty = pretty.intPretty.maxDecimals(max);
50
+ return pretty;
51
+ }
52
+ inequalitySymbol(bool) {
53
+ const pretty = this.clone();
54
+ pretty.intPretty = pretty.intPretty.inequalitySymbol(bool);
55
+ return pretty;
56
+ }
57
+ inequalitySymbolSeparator(str) {
58
+ const pretty = this.clone();
59
+ pretty.intPretty = pretty.intPretty.inequalitySymbolSeparator(str);
60
+ return pretty;
61
+ }
62
+ trim(bool) {
63
+ const pretty = this.clone();
64
+ pretty.intPretty = pretty.intPretty.trim(bool);
65
+ return pretty;
66
+ }
67
+ shrink(bool) {
68
+ const pretty = this.clone();
69
+ pretty.intPretty = pretty.intPretty.shrink(bool);
70
+ return pretty;
71
+ }
72
+ locale(locale) {
73
+ const pretty = this.clone();
74
+ pretty.intPretty = pretty.intPretty.locale(locale);
75
+ return pretty;
76
+ }
77
+ /**
78
+ * Ready indicates the actual value is ready to show the users.
79
+ * Even if the ready option is false, it expects that the value can be shown to users (probably as 0).
80
+ * The method that returns prettied value may return `undefined` or `null` if the value is not ready.
81
+ * But, alternatively, it can return the 0 value that can be shown the users anyway, but indicates that the value is not ready.
82
+ * @param bool
83
+ */
84
+ ready(bool) {
85
+ const pretty = this.clone();
86
+ pretty.intPretty = pretty.intPretty.ready(bool);
87
+ return pretty;
88
+ }
89
+ get isReady() {
90
+ return this.intPretty.isReady;
91
+ }
92
+ add(target) {
93
+ const pretty = this.clone();
94
+ pretty.intPretty = pretty.intPretty.add(target);
95
+ return pretty;
96
+ }
97
+ sub(target) {
98
+ const pretty = this.clone();
99
+ pretty.intPretty = pretty.intPretty.sub(target);
100
+ return pretty;
101
+ }
102
+ mul(target) {
103
+ const pretty = this.clone();
104
+ pretty.intPretty = pretty.intPretty.mul(target);
105
+ return pretty;
106
+ }
107
+ quo(target) {
108
+ const pretty = this.clone();
109
+ pretty.intPretty = pretty.intPretty.quo(target);
110
+ return pretty;
111
+ }
112
+ toDec() {
113
+ return this.intPretty.toDec();
114
+ }
115
+ toString() {
116
+ return this.intPretty
117
+ .moveDecimalPointRight(2)
118
+ .toStringWithSymbols("", `${this._options.separator}${this._options.symbol}`);
119
+ }
120
+ clone() {
121
+ const pretty = new RatePretty(this.amount);
122
+ pretty._options = Object.assign({}, this._options);
123
+ pretty.intPretty = this.intPretty.clone();
124
+ return pretty;
125
+ }
126
+ }
127
+ exports.RatePretty = RatePretty;
128
+ //# sourceMappingURL=rate-pretty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-pretty.js","sourceRoot":"","sources":["../src/rate-pretty.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rate_pretty_1 = require("./rate-pretty");
4
+ const decimal_1 = require("./decimal");
5
+ describe("Test RatePretty", () => {
6
+ it("Basic test for RatePretty", () => {
7
+ const pretty = new rate_pretty_1.RatePretty(new decimal_1.Dec("0.3"));
8
+ expect(pretty.toDec().equals(new decimal_1.Dec("0.3"))).toBe(true);
9
+ expect(pretty.toDec().toString(1)).toBe("0.3");
10
+ expect(pretty.toString()).toBe("30%");
11
+ expect(pretty.moveDecimalPointLeft(1).toString()).toBe("3%");
12
+ expect(pretty.moveDecimalPointRight(1).toString()).toBe("300%");
13
+ expect(pretty.add(new decimal_1.Dec("0.1")).toString()).toBe("40%");
14
+ expect(pretty.add(new decimal_1.Dec("0.1")).toDec().toString(1)).toBe("0.4");
15
+ expect(pretty.sub(new decimal_1.Dec("0.1")).toString()).toBe("20%");
16
+ expect(pretty.sub(new decimal_1.Dec("0.1")).toDec().toString(1)).toBe("0.2");
17
+ expect(pretty.mul(new decimal_1.Dec("0.1")).toString()).toBe("3%");
18
+ expect(pretty.mul(new decimal_1.Dec("0.1")).toDec().toString(2)).toBe("0.03");
19
+ expect(pretty.quo(new decimal_1.Dec("0.1")).toString()).toBe("300%");
20
+ expect(pretty.quo(new decimal_1.Dec("0.1")).toDec().toString(1)).toBe("3.0");
21
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.001")).toString()).toBe("0.1%");
22
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.00001")).toString()).toBe("0.001%");
23
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001")).toString()).toBe("< 0.001%");
24
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0")).toString()).toBe("0%");
25
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("-0")).toString()).toBe("0%");
26
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001")).separator(" ").symbol("?").toString()).toBe("< 0.001 ?");
27
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001")).inequalitySymbol(false).toString()).toBe("0%");
28
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001"))
29
+ .inequalitySymbol(false)
30
+ .maxDecimals(4)
31
+ .toString()).toBe("0.0001%");
32
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("-0.000001")).toString()).toBe("> -0.001%");
33
+ expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("-0.000001")).inequalitySymbol(false).toString()
34
+ // TODO: Delete the case of "-0". Return "0"
35
+ ).toBe("-0%");
36
+ });
37
+ });
38
+ //# sourceMappingURL=rate-pretty.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-pretty.spec.js","sourceRoot":"","sources":["../src/rate-pretty.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/unit",
3
- "version": "0.9.10",
3
+ "version": "0.9.11-rc.1",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -21,5 +21,5 @@
21
21
  "big-integer": "^1.6.48",
22
22
  "utility-types": "^3.10.0"
23
23
  },
24
- "gitHead": "05efb7b77a6e0bffee7533db91e7c83b7b777da6"
24
+ "gitHead": "1b6119fd1b9f2de36a7da4672eb3558d6b69d172"
25
25
  }