@keplr-wallet/stores-eth 0.12.308 → 0.12.309-rc.0

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.
@@ -2,7 +2,26 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ObservableQueryCoingeckoTokenInfo = exports.ObservableQueryCoingeckoTokenInfoInner = void 0;
4
4
  const stores_1 = require("@keplr-wallet/stores");
5
+ const strings_1 = require("@ethersproject/strings");
5
6
  const mobx_1 = require("mobx");
7
+ /**
8
+ * Some ERC20 contracts (e.g., MKR) return bytes32 for name() and symbol().
9
+ * CoinGecko API returns bytes32 as hex strings without conversion.
10
+ * This function detects and converts bytes32 hex strings to readable strings.
11
+ */
12
+ function decodeBytes32IfNeeded(value) {
13
+ if (!value)
14
+ return value;
15
+ if (value.length === 64 && /^[0-9a-fA-F]+$/.test(value)) {
16
+ try {
17
+ return (0, strings_1.parseBytes32String)("0x" + value);
18
+ }
19
+ catch (_a) {
20
+ // noop
21
+ }
22
+ }
23
+ return value;
24
+ }
6
25
  class ObservableQueryCoingeckoTokenInfoInner extends stores_1.ObservableQuery {
7
26
  constructor(sharedContext, coingeckoAPIBaseURL, coingeckoAPIURI, coingeckoChainId, contractAddress) {
8
27
  super(sharedContext, coingeckoAPIBaseURL, coingeckoAPIURI
@@ -13,7 +32,7 @@ class ObservableQueryCoingeckoTokenInfoInner extends stores_1.ObservableQuery {
13
32
  }
14
33
  get symbol() {
15
34
  var _a, _b;
16
- return (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.symbol;
35
+ return decodeBytes32IfNeeded((_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.symbol);
17
36
  }
18
37
  get decimals() {
19
38
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"coingecko-token-info.js","sourceRoot":"","sources":["../../src/queries/coingecko-token-info.ts"],"names":[],"mappings":";;;AAAA,iDAK8B;AAC9B,+BAAsC;AACtC,MAAa,sCAAuC,SAAQ,wBAW1D;IACA,YACE,aAAiC,EACjC,mBAA2B,EAC3B,eAAuB,EACJ,gBAAwB,EAC3C,eAAuB;QAEvB,KAAK,CACH,aAAa,EACb,mBAAmB,EACnB,eAAe;aACZ,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;aAC/C,OAAO,CAAC,mBAAmB,EAAE,eAAe,CAAC,CACjD,CAAC;QATiB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAW3C,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;;QACR,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,MAAM,CAAC;IACrC,CAAC;IAED,IAAI,QAAQ;;QACV,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,QAAQ,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;;QACb,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,iBAAiB,CAAC;IAChD,CAAC;IAED,IAAI,OAAO;;QACT,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,SAAS,CAAC;IACxC,CAAC;CACF;AA7CD,wFA6CC;AAED,MAAa,iCAAkC,SAAQ,oBAEtD;IACC,YACqB,aAAiC,EACjC,OAAe,EACf,WAAwB,EACxB,mBAA2B,EAC3B,eAAuB;QAE1C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEtD,KAAK,CAAC,CAAC,eAAuB,EAAE,EAAE;YAChC,IAAI,gBAAgB,IAAI,IAAI,EAAE;gBAC5B,OAAO,IAAI,sCAAsC,CAC/C,IAAI,CAAC,aAAa,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,eAAe,CAChB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAlBgB,kBAAa,GAAb,aAAa,CAAoB;QACjC,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;QACxB,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,oBAAe,GAAf,eAAe,CAAQ;IAe5C,CAAC;IAED,gBAAgB,CACd,eAAuB;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAA2C,CAAC;IAC7E,CAAC;CACF;AA9BD,8EA8BC;AAED,MAAM,mBAAmB,GAA2B;IAClD,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,aAAa;IAC3B,aAAa,EAAE,MAAM;IACrB,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,MAAM;CACvB,CAAC"}
1
+ {"version":3,"file":"coingecko-token-info.js","sourceRoot":"","sources":["../../src/queries/coingecko-token-info.ts"],"names":[],"mappings":";;;AAAA,iDAK8B;AAC9B,oDAA4D;AAC5D,+BAAsC;AAEtC;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,KAAyB;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACvD,IAAI;YACF,OAAO,IAAA,4BAAkB,EAAC,IAAI,GAAG,KAAK,CAAC,CAAC;SACzC;QAAC,WAAM;YACN,OAAO;SACR;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAa,sCAAuC,SAAQ,wBAW1D;IACA,YACE,aAAiC,EACjC,mBAA2B,EAC3B,eAAuB,EACJ,gBAAwB,EAC3C,eAAuB;QAEvB,KAAK,CACH,aAAa,EACb,mBAAmB,EACnB,eAAe;aACZ,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;aAC/C,OAAO,CAAC,mBAAmB,EAAE,eAAe,CAAC,CACjD,CAAC;QATiB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAW3C,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;;QACR,OAAO,qBAAqB,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,QAAQ;;QACV,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,QAAQ,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;;QACb,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,iBAAiB,CAAC;IAChD,CAAC;IAED,IAAI,OAAO;;QACT,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,SAAS,CAAC;IACxC,CAAC;CACF;AA7CD,wFA6CC;AAED,MAAa,iCAAkC,SAAQ,oBAEtD;IACC,YACqB,aAAiC,EACjC,OAAe,EACf,WAAwB,EACxB,mBAA2B,EAC3B,eAAuB;QAE1C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEtD,KAAK,CAAC,CAAC,eAAuB,EAAE,EAAE;YAChC,IAAI,gBAAgB,IAAI,IAAI,EAAE;gBAC5B,OAAO,IAAI,sCAAsC,CAC/C,IAAI,CAAC,aAAa,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,eAAe,CAChB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAlBgB,kBAAa,GAAb,aAAa,CAAoB;QACjC,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;QACxB,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,oBAAe,GAAf,eAAe,CAAQ;IAe5C,CAAC;IAED,gBAAgB,CACd,eAAuB;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAA2C,CAAC;IAC7E,CAAC;CACF;AA9BD,8EA8BC;AAED,MAAM,mBAAmB,GAA2B;IAClD,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,aAAa;IAC3B,aAAa,EAAE,MAAM;IACrB,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,MAAM;CACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/stores-eth",
3
- "version": "0.12.308",
3
+ "version": "0.12.309-rc.0",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -23,14 +23,15 @@
23
23
  "@ethersproject/abi": "^5.7.0",
24
24
  "@ethersproject/address": "^5.7.0",
25
25
  "@ethersproject/bytes": "^5.7.0",
26
+ "@ethersproject/strings": "^5.7.0",
26
27
  "@ethersproject/transactions": "^5.7.0",
27
28
  "@ethersproject/units": "^5.7.0",
28
- "@keplr-wallet/common": "0.12.308",
29
- "@keplr-wallet/simple-fetch": "0.12.308",
30
- "@keplr-wallet/stores": "0.12.308",
31
- "@keplr-wallet/stores-etc": "0.12.308",
32
- "@keplr-wallet/types": "0.12.308",
33
- "@keplr-wallet/unit": "0.12.308",
29
+ "@keplr-wallet/common": "0.12.309-rc.0",
30
+ "@keplr-wallet/simple-fetch": "0.12.309-rc.0",
31
+ "@keplr-wallet/stores": "0.12.309-rc.0",
32
+ "@keplr-wallet/stores-etc": "0.12.309-rc.0",
33
+ "@keplr-wallet/types": "0.12.309-rc.0",
34
+ "@keplr-wallet/unit": "0.12.309-rc.0",
34
35
  "big-integer": "^1.6.48",
35
36
  "lodash.debounce": "^4.0.8",
36
37
  "utility-types": "^3.10.0"
@@ -42,5 +43,5 @@
42
43
  "devDependencies": {
43
44
  "@types/lodash.debounce": "^4"
44
45
  },
45
- "gitHead": "0cdcf6021677b835311b12fdf7c6114d6453af37"
46
+ "gitHead": "0c2ce10e68678e3fe71f0f1fe9f9457ef83c53dc"
46
47
  }
@@ -4,7 +4,25 @@ import {
4
4
  ObservableQuery,
5
5
  QuerySharedContext,
6
6
  } from "@keplr-wallet/stores";
7
+ import { parseBytes32String } from "@ethersproject/strings";
7
8
  import { makeObservable } from "mobx";
9
+
10
+ /**
11
+ * Some ERC20 contracts (e.g., MKR) return bytes32 for name() and symbol().
12
+ * CoinGecko API returns bytes32 as hex strings without conversion.
13
+ * This function detects and converts bytes32 hex strings to readable strings.
14
+ */
15
+ function decodeBytes32IfNeeded(value: string | undefined): string | undefined {
16
+ if (!value) return value;
17
+ if (value.length === 64 && /^[0-9a-fA-F]+$/.test(value)) {
18
+ try {
19
+ return parseBytes32String("0x" + value);
20
+ } catch {
21
+ // noop
22
+ }
23
+ }
24
+ return value;
25
+ }
8
26
  export class ObservableQueryCoingeckoTokenInfoInner extends ObservableQuery<{
9
27
  networkId: string;
10
28
  contractAddress: string;
@@ -36,7 +54,7 @@ export class ObservableQueryCoingeckoTokenInfoInner extends ObservableQuery<{
36
54
  }
37
55
 
38
56
  get symbol(): string | undefined {
39
- return this.response?.data?.symbol;
57
+ return decodeBytes32IfNeeded(this.response?.data?.symbol);
40
58
  }
41
59
 
42
60
  get decimals(): number | undefined {