@keplr-wallet/unit 0.12.235 → 0.12.236-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.
@@ -8,10 +8,14 @@ export type CoinPrettyOptions = {
8
8
  upperCase: boolean;
9
9
  lowerCase: boolean;
10
10
  hideDenom: boolean;
11
+ hideAmount: boolean;
11
12
  hideIBCMetadata: boolean;
13
+ showRawCoinDenom: boolean;
14
+ maxCoinDenomLength: number;
12
15
  };
13
16
  export declare class CoinPretty {
14
17
  protected _currency: AppCurrency;
18
+ static makeCoinDenomPretty(coinDenom: string): string;
15
19
  protected intPretty: IntPretty;
16
20
  protected _options: CoinPrettyOptions;
17
21
  constructor(_currency: AppCurrency, amount: Dec | {
@@ -25,7 +29,9 @@ export declare class CoinPretty {
25
29
  upperCase(bool: boolean): CoinPretty;
26
30
  lowerCase(bool: boolean): CoinPretty;
27
31
  hideDenom(bool: boolean): CoinPretty;
32
+ hideAmount(bool: boolean): CoinPretty;
28
33
  hideIBCMetadata(bool: boolean): CoinPretty;
34
+ showRawCoinDenom(bool: boolean): CoinPretty;
29
35
  moveDecimalPointLeft(delta: number): CoinPretty;
30
36
  moveDecimalPointRight(delta: number): CoinPretty;
31
37
  /**
@@ -55,6 +61,7 @@ export declare class CoinPretty {
55
61
  add(target: Dec | {
56
62
  toDec(): Dec;
57
63
  } | CoinPretty): CoinPretty;
64
+ addDifferentDenoms(target: CoinPretty): CoinPretty;
58
65
  sub(target: Dec | {
59
66
  toDec(): Dec;
60
67
  } | CoinPretty): CoinPretty;
@@ -69,6 +76,7 @@ export declare class CoinPretty {
69
76
  denom: string;
70
77
  amount: string;
71
78
  };
79
+ maxCoinDenomLength(maxLength: number): CoinPretty;
72
80
  toString(): string;
73
81
  clone(): CoinPretty;
74
82
  }
@@ -5,6 +5,19 @@ const int_pretty_1 = require("./int-pretty");
5
5
  const decimal_1 = require("./decimal");
6
6
  const dec_utils_1 = require("./dec-utils");
7
7
  class CoinPretty {
8
+ static makeCoinDenomPretty(coinDenom) {
9
+ const isHexString = /^(?:0[xX][0-9a-fA-F]+|[0-9][0-9a-fA-F]*)$/.test(coinDenom);
10
+ if (isHexString) {
11
+ const buf = Buffer.from(coinDenom.replace(/^0x/, ""), "hex");
12
+ const nullIndex = buf.indexOf(0);
13
+ const end = nullIndex === -1 ? buf.length : nullIndex;
14
+ return buf
15
+ .toString("utf8", 0, end)
16
+ .replace(/\u0000+/g, "")
17
+ .trim();
18
+ }
19
+ return coinDenom.replace(/\u0000+/g, "").trim();
20
+ }
8
21
  constructor(_currency, amount) {
9
22
  this._currency = _currency;
10
23
  this._options = {
@@ -12,7 +25,11 @@ class CoinPretty {
12
25
  upperCase: false,
13
26
  lowerCase: false,
14
27
  hideDenom: false,
28
+ hideAmount: false,
29
+ showRawCoinDenom: false,
15
30
  hideIBCMetadata: false,
31
+ // default max length is 20
32
+ maxCoinDenomLength: 20,
16
33
  };
17
34
  if (typeof amount === "object" && "toDec" in amount) {
18
35
  amount = amount.toDec();
@@ -59,11 +76,21 @@ class CoinPretty {
59
76
  pretty._options.hideDenom = bool;
60
77
  return pretty;
61
78
  }
79
+ hideAmount(bool) {
80
+ const pretty = this.clone();
81
+ pretty._options.hideAmount = bool;
82
+ return pretty;
83
+ }
62
84
  hideIBCMetadata(bool) {
63
85
  const pretty = this.clone();
64
86
  pretty._options.hideIBCMetadata = bool;
65
87
  return pretty;
66
88
  }
89
+ showRawCoinDenom(bool) {
90
+ const pretty = this.clone();
91
+ pretty._options.showRawCoinDenom = bool;
92
+ return pretty;
93
+ }
67
94
  moveDecimalPointLeft(delta) {
68
95
  const pretty = this.clone();
69
96
  pretty.intPretty = pretty.intPretty.moveDecimalPointLeft(delta);
@@ -154,6 +181,11 @@ class CoinPretty {
154
181
  : target.mul(dec_utils_1.DecUtils.getTenExponentNInPrecisionRange(-this._currency.coinDecimals)));
155
182
  return pretty;
156
183
  }
184
+ addDifferentDenoms(target) {
185
+ const pretty = this.clone();
186
+ pretty.intPretty = pretty.intPretty.add(target);
187
+ return pretty;
188
+ }
157
189
  sub(target) {
158
190
  const isCoinPretty = target instanceof CoinPretty;
159
191
  if (isCoinPretty) {
@@ -194,6 +226,11 @@ class CoinPretty {
194
226
  amount: amount.toString(),
195
227
  };
196
228
  }
229
+ maxCoinDenomLength(maxLength) {
230
+ const pretty = this.clone();
231
+ pretty._options.maxCoinDenomLength = maxLength;
232
+ return pretty;
233
+ }
197
234
  toString() {
198
235
  let denom = this.denom;
199
236
  if (this._options.hideIBCMetadata &&
@@ -207,11 +244,30 @@ class CoinPretty {
207
244
  if (this._options.lowerCase) {
208
245
  denom = denom.toLowerCase();
209
246
  }
247
+ if (!this._options.showRawCoinDenom) {
248
+ denom = CoinPretty.makeCoinDenomPretty(denom);
249
+ }
250
+ if (!this._options.hideIBCMetadata) {
251
+ if ("originCurrency" in this.currency &&
252
+ this.currency.originCurrency &&
253
+ this.currency.originCurrency.coinDenom.length >
254
+ this._options.maxCoinDenomLength) {
255
+ denom = denom.replace(this.currency.originCurrency.coinDenom, `${this.currency.originCurrency.coinDenom.slice(0, this._options.maxCoinDenomLength)}...`);
256
+ }
257
+ }
258
+ else {
259
+ if (denom.length > this._options.maxCoinDenomLength) {
260
+ denom = `${denom.slice(0, this._options.maxCoinDenomLength)}...`;
261
+ }
262
+ }
210
263
  let separator = this._options.separator;
211
264
  if (this._options.hideDenom) {
212
265
  denom = "";
213
266
  separator = "";
214
267
  }
268
+ if (this._options.hideAmount) {
269
+ return denom;
270
+ }
215
271
  return this.intPretty.toStringWithSymbols("", `${separator}${denom}`);
216
272
  }
217
273
  clone() {
@@ -1 +1 @@
1
- {"version":3,"file":"coin-pretty.js","sourceRoot":"","sources":["../src/coin-pretty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coin-pretty.js","sourceRoot":"","sources":["../src/coin-pretty.ts"],"names":[],"mappings":";;;AAAA,6CAA2D;AAC3D,uCAAgC;AAGhC,2CAAuC;AAcvC,MAAa,UAAU;IACrB,MAAM,CAAC,mBAAmB,CAAC,SAAiB;QAC1C,MAAM,WAAW,GAAG,2CAA2C,CAAC,IAAI,CAClE,SAAS,CACV,CAAC;QACF,IAAI,WAAW,EAAE;YACf,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAE7D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtD,OAAO,GAAG;iBACP,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC;iBACxB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;iBACvB,IAAI,EAAE,CAAC;SACX;QAED,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAgBD,YACY,SAAsB,EAChC,MAAqD;QAD3C,cAAS,GAAT,SAAS,CAAa;QAbxB,aAAQ,GAAsB;YACtC,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,KAAK;YACtB,2BAA2B;YAC3B,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAMA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,EAAE;YACnD,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;SACzB;aAAM,IAAI,CAAC,CAAC,MAAM,YAAY,aAAG,CAAC,EAAE;YACnC,MAAM,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAC5B,MAAM,CAAC,WAAW,CAChB,oBAAQ,CAAC,+BAA+B,CAAC,SAAS,CAAC,YAAY,CAAC,CACjE,CACF,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,OAAO;QACT,uCACK,IAAI,CAAC,QAAQ,GACb,IAAI,CAAC,SAAS,CAAC,OAAO,EACzB;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,QAAqB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CACrD,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CACpD,CAAC;QACF,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,IAAa;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,IAAa;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,IAAa;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,IAAa;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,IAAa;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,KAAa;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qBAAqB,CAAC,KAAa;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,yBAAyB,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAa;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,OAA2B;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAa;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,MAA2C;QAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,UAAU,CAAC;QAClD,IAAI,YAAY,EAAE;YAChB,oEAAoE;YACpE,IACE,UAAU,IAAI,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EACnE;gBACA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;aACrB;SACF;QAED,IAAI,OAAO,IAAI,MAAM,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;SACzB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CACrC,YAAY;YACV,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,GAAG,CACR,oBAAQ,CAAC,+BAA+B,CACtC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAC7B,CACF,CACN,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,MAAkB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,MAA2C;QAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,UAAU,CAAC;QAClD,IAAI,YAAY,EAAE;YAChB,oEAAoE;YACpE,IACE,UAAU,IAAI,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EACnE;gBACA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;aACrB;SACF;QAED,IAAI,OAAO,IAAI,MAAM,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;SACzB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CACrC,YAAY;YACV,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,GAAG,CACR,oBAAQ,CAAC,+BAA+B,CACtC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAC7B,CACF,CACN,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,MAA8B;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,MAA8B;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,MAAM;QAIJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;aACxB,WAAW,CACV,oBAAQ,CAAC,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CACrE;aACA,QAAQ,EAAE,CAAC;QAEd,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;YACrC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC1B,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ;QACN,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IACE,IAAI,CAAC,QAAQ,CAAC,eAAe;YAC7B,gBAAgB,IAAI,IAAI,CAAC,QAAQ;YACjC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAC5B;YACA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;SAChD;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACnC,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAClC,IACE,gBAAgB,IAAI,IAAI,CAAC,QAAQ;gBACjC,IAAI,CAAC,QAAQ,CAAC,cAAc;gBAC5B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM;oBAC3C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAClC;gBACA,KAAK,GAAG,KAAK,CAAC,OAAO,CACnB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EACtC,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAC7C,CAAC,EACD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CACjC,KAAK,CACP,CAAC;aACH;SACF;aAAM;YACL,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;gBACnD,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC;aAClE;SACF;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAExC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,KAAK,GAAG,EAAE,CAAC;YACX,SAAS,GAAG,EAAE,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,QAAQ,qBACV,IAAI,CAAC,QAAQ,CACjB,CAAC;QACF,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjXD,gCAiXC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/unit",
3
- "version": "0.12.235",
3
+ "version": "0.12.236-rc.1",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -16,9 +16,9 @@
16
16
  "lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
17
17
  },
18
18
  "dependencies": {
19
- "@keplr-wallet/types": "0.12.235",
19
+ "@keplr-wallet/types": "0.12.236-rc.1",
20
20
  "big-integer": "^1.6.48",
21
21
  "utility-types": "^3.10.0"
22
22
  },
23
- "gitHead": "dea25e2172576804e0507464eb89ff82cd4c7f34"
23
+ "gitHead": "67c01e24ebb27ded8bd0f1549380c5e40573aeb1"
24
24
  }
@@ -10,10 +10,32 @@ export type CoinPrettyOptions = {
10
10
  upperCase: boolean;
11
11
  lowerCase: boolean;
12
12
  hideDenom: boolean;
13
+ hideAmount: boolean;
13
14
  hideIBCMetadata: boolean;
15
+ showRawCoinDenom: boolean;
16
+ maxCoinDenomLength: number;
14
17
  };
15
18
 
16
19
  export class CoinPretty {
20
+ static makeCoinDenomPretty(coinDenom: string) {
21
+ const isHexString = /^(?:0[xX][0-9a-fA-F]+|[0-9][0-9a-fA-F]*)$/.test(
22
+ coinDenom
23
+ );
24
+ if (isHexString) {
25
+ const buf = Buffer.from(coinDenom.replace(/^0x/, ""), "hex");
26
+
27
+ const nullIndex = buf.indexOf(0);
28
+ const end = nullIndex === -1 ? buf.length : nullIndex;
29
+
30
+ return buf
31
+ .toString("utf8", 0, end)
32
+ .replace(/\u0000+/g, "")
33
+ .trim();
34
+ }
35
+
36
+ return coinDenom.replace(/\u0000+/g, "").trim();
37
+ }
38
+
17
39
  protected intPretty: IntPretty;
18
40
 
19
41
  protected _options: CoinPrettyOptions = {
@@ -21,7 +43,11 @@ export class CoinPretty {
21
43
  upperCase: false,
22
44
  lowerCase: false,
23
45
  hideDenom: false,
46
+ hideAmount: false,
47
+ showRawCoinDenom: false,
24
48
  hideIBCMetadata: false,
49
+ // default max length is 20
50
+ maxCoinDenomLength: 20,
25
51
  };
26
52
 
27
53
  constructor(
@@ -91,12 +117,24 @@ export class CoinPretty {
91
117
  return pretty;
92
118
  }
93
119
 
120
+ hideAmount(bool: boolean): CoinPretty {
121
+ const pretty = this.clone();
122
+ pretty._options.hideAmount = bool;
123
+ return pretty;
124
+ }
125
+
94
126
  hideIBCMetadata(bool: boolean): CoinPretty {
95
127
  const pretty = this.clone();
96
128
  pretty._options.hideIBCMetadata = bool;
97
129
  return pretty;
98
130
  }
99
131
 
132
+ showRawCoinDenom(bool: boolean): CoinPretty {
133
+ const pretty = this.clone();
134
+ pretty._options.showRawCoinDenom = bool;
135
+ return pretty;
136
+ }
137
+
100
138
  moveDecimalPointLeft(delta: number): CoinPretty {
101
139
  const pretty = this.clone();
102
140
  pretty.intPretty = pretty.intPretty.moveDecimalPointLeft(delta);
@@ -211,6 +249,12 @@ export class CoinPretty {
211
249
  return pretty;
212
250
  }
213
251
 
252
+ addDifferentDenoms(target: CoinPretty): CoinPretty {
253
+ const pretty = this.clone();
254
+ pretty.intPretty = pretty.intPretty.add(target);
255
+ return pretty;
256
+ }
257
+
214
258
  sub(target: Dec | { toDec(): Dec } | CoinPretty): CoinPretty {
215
259
  const isCoinPretty = target instanceof CoinPretty;
216
260
  if (isCoinPretty) {
@@ -272,6 +316,12 @@ export class CoinPretty {
272
316
  };
273
317
  }
274
318
 
319
+ maxCoinDenomLength(maxLength: number): CoinPretty {
320
+ const pretty = this.clone();
321
+ pretty._options.maxCoinDenomLength = maxLength;
322
+ return pretty;
323
+ }
324
+
275
325
  toString(): string {
276
326
  let denom = this.denom;
277
327
  if (
@@ -288,6 +338,31 @@ export class CoinPretty {
288
338
  denom = denom.toLowerCase();
289
339
  }
290
340
 
341
+ if (!this._options.showRawCoinDenom) {
342
+ denom = CoinPretty.makeCoinDenomPretty(denom);
343
+ }
344
+
345
+ if (!this._options.hideIBCMetadata) {
346
+ if (
347
+ "originCurrency" in this.currency &&
348
+ this.currency.originCurrency &&
349
+ this.currency.originCurrency.coinDenom.length >
350
+ this._options.maxCoinDenomLength
351
+ ) {
352
+ denom = denom.replace(
353
+ this.currency.originCurrency.coinDenom,
354
+ `${this.currency.originCurrency.coinDenom.slice(
355
+ 0,
356
+ this._options.maxCoinDenomLength
357
+ )}...`
358
+ );
359
+ }
360
+ } else {
361
+ if (denom.length > this._options.maxCoinDenomLength) {
362
+ denom = `${denom.slice(0, this._options.maxCoinDenomLength)}...`;
363
+ }
364
+ }
365
+
291
366
  let separator = this._options.separator;
292
367
 
293
368
  if (this._options.hideDenom) {
@@ -295,6 +370,10 @@ export class CoinPretty {
295
370
  separator = "";
296
371
  }
297
372
 
373
+ if (this._options.hideAmount) {
374
+ return denom;
375
+ }
376
+
298
377
  return this.intPretty.toStringWithSymbols("", `${separator}${denom}`);
299
378
  }
300
379