@keplr-wallet/stores-ibc 0.13.9 → 0.13.11

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.
@@ -62,6 +62,8 @@ export declare class IBCCurrencyRegistrar {
62
62
  clientChainId?: string;
63
63
  }[];
64
64
  }, originChainInfo: IChainInfoImpl | undefined, counterpartyChainInfo: IChainInfoImpl | undefined, originCurrency: AppCurrency | undefined) => string;
65
+ protected readonly cw20BaseURL: string;
66
+ protected readonly cw20URI: string;
65
67
  static defaultCoinDenomGenerator(denomTrace: {
66
68
  denom: string;
67
69
  paths: {
@@ -95,7 +97,7 @@ export declare class IBCCurrencyRegistrar {
95
97
  counterpartyPortId?: string;
96
98
  clientChainId?: string;
97
99
  }[];
98
- }, originChainInfo: IChainInfoImpl | undefined, counterpartyChainInfo: IChainInfoImpl | undefined, originCurrency: AppCurrency | undefined) => string);
100
+ }, originChainInfo: IChainInfoImpl | undefined, counterpartyChainInfo: IChainInfoImpl | undefined, originCurrency: AppCurrency | undefined) => string, cw20BaseURL?: string, cw20URI?: string);
99
101
  protected init(): Promise<void>;
100
102
  protected ibcCurrencyRegistrar(chainId: string, coinMinimalDenom: string): {
101
103
  value: AppCurrency | undefined;
@@ -112,6 +114,17 @@ export declare class IBCCurrencyRegistrar {
112
114
  fromCache: boolean;
113
115
  notFound: boolean;
114
116
  };
117
+ protected getCW20TokenInfo(chainId: string, contractAddress: string): {
118
+ res: {
119
+ coinDenom: string;
120
+ coinDecimals: number;
121
+ coinGeckoId: string | undefined;
122
+ coinImageUrl: string | undefined;
123
+ } | undefined;
124
+ isFetching: boolean;
125
+ fromCache: boolean;
126
+ notFound: boolean;
127
+ };
115
128
  protected getCacheIBCDenomData(chainId: string, denomTraceHash: string): {
116
129
  res: CacheIBCDenomData | undefined;
117
130
  staled: boolean;
@@ -43,7 +43,7 @@ class IBCCurrencyRegistrar {
43
43
  }
44
44
  constructor(kvStore, cacheDuration = 24 * 3600 * 1000, // 1 days
45
45
  failedCacheDuration = 1 * 3600 * 1000, // 1 hours
46
- chainStore, accountStore, queriesStore, coinDenomGenerator = IBCCurrencyRegistrar.defaultCoinDenomGenerator) {
46
+ chainStore, accountStore, queriesStore, coinDenomGenerator = IBCCurrencyRegistrar.defaultCoinDenomGenerator, cw20BaseURL = "", cw20URI = "") {
47
47
  this.kvStore = kvStore;
48
48
  this.cacheDuration = cacheDuration;
49
49
  this.failedCacheDuration = failedCacheDuration;
@@ -51,6 +51,8 @@ class IBCCurrencyRegistrar {
51
51
  this.accountStore = accountStore;
52
52
  this.queriesStore = queriesStore;
53
53
  this.coinDenomGenerator = coinDenomGenerator;
54
+ this.cw20BaseURL = cw20BaseURL;
55
+ this.cw20URI = cw20URI;
54
56
  this.cacheDenomTracePaths = new Map();
55
57
  this.staledDenomTracePaths = new Map();
56
58
  this.cacheTokenInfoMetadata = new Map();
@@ -384,25 +386,44 @@ class IBCCurrencyRegistrar {
384
386
  case isCW20Currency:
385
387
  const isSecret20Currency = (_a = originChainInfo.features) === null || _a === void 0 ? void 0 : _a.includes("secretwasm");
386
388
  if (!isSecret20Currency) {
387
- let isFetching = false;
388
389
  // If the origin currency is ics20-cw20.
389
390
  let cw20Currency = originChainInfo.currencies.find((cur) => denomTrace &&
390
391
  cur.coinMinimalDenom.startsWith(denomTrace.denom));
391
392
  if (!cw20Currency &&
392
393
  this.chainStore.hasChain(originChainInfo.chainId)) {
393
- const originQueries = this.queriesStore.get(originChainInfo.chainId);
394
- if (originQueries.cosmwasm) {
395
- const contractAddress = denomTrace.denom.replace("cw20:", "");
396
- const contractInfo = originQueries.cosmwasm.querycw20ContractInfo.getQueryContract(contractAddress);
397
- isFetching = contractInfo.isFetching;
398
- if (contractInfo.response) {
399
- cw20Currency = {
400
- type: "cw20",
401
- contractAddress,
402
- coinDecimals: contractInfo.response.data.decimals,
403
- coinDenom: contractInfo.response.data.symbol,
404
- coinMinimalDenom: `cw20:${contractAddress}:${contractInfo.response.data.name}`,
405
- };
394
+ const contractAddress = denomTrace.denom.replace("cw20:", "");
395
+ const cw20CurrencyRes = this.getCW20TokenInfo(originChainInfo.chainId, contractAddress);
396
+ if (cw20CurrencyRes.isFetching) {
397
+ isGlobalFetching = true;
398
+ }
399
+ if (cw20CurrencyRes.res) {
400
+ cw20Currency = {
401
+ type: "cw20",
402
+ contractAddress,
403
+ coinDecimals: cw20CurrencyRes.res.coinDecimals,
404
+ coinDenom: cw20CurrencyRes.res.coinDenom,
405
+ coinMinimalDenom: `cw20:${contractAddress}:${cw20CurrencyRes.res.coinDenom}`,
406
+ coinGeckoId: cw20CurrencyRes.res.coinGeckoId,
407
+ coinImageUrl: cw20CurrencyRes.res.coinImageUrl,
408
+ };
409
+ }
410
+ if (!cw20CurrencyRes.isFetching &&
411
+ !cw20CurrencyRes.fromCache) {
412
+ if (cw20Currency) {
413
+ this.setCacheTokenInfo(originChainInfo.chainId, contractAddress, {
414
+ notFound: undefined,
415
+ coinDenom: cw20Currency.coinDenom,
416
+ coinDecimals: cw20Currency.coinDecimals,
417
+ coinGeckoId: cw20Currency.coinGeckoId,
418
+ coinImageUrl: cw20Currency.coinImageUrl,
419
+ timestamp: Date.now(),
420
+ });
421
+ }
422
+ else if (cw20CurrencyRes.notFound) {
423
+ this.setCacheTokenInfo(originChainInfo.chainId, contractAddress, {
424
+ notFound: true,
425
+ timestamp: Date.now(),
426
+ });
406
427
  }
407
428
  }
408
429
  }
@@ -418,30 +439,49 @@ class IBCCurrencyRegistrar {
418
439
  originChainId: originChainInfo.chainId,
419
440
  originCurrency: cw20Currency,
420
441
  },
421
- done: fromCache && !isFetching,
442
+ done: !isGlobalFetching,
422
443
  };
423
444
  }
424
445
  }
425
446
  else {
426
- let isSecret20Fetching = false;
427
- // If the origin currency is ics20-cw20.
447
+ // If the origin currency is ics20-secret20.
428
448
  let secret20Currency = originChainInfo.currencies.find((cur) => denomTrace &&
429
449
  cur.coinMinimalDenom.startsWith(denomTrace.denom));
430
450
  if (!secret20Currency &&
431
451
  this.chainStore.hasChain(originChainInfo.chainId)) {
432
- const originQueries = this.queriesStore.get(originChainInfo.chainId);
433
- if (originQueries.secret) {
434
- const contractAddress = denomTrace.denom.replace("cw20:", "");
435
- const contractInfo = originQueries.secret.querySecret20ContractInfo.getQueryContract(contractAddress);
436
- isSecret20Fetching = contractInfo.isFetching;
437
- if (contractInfo.response) {
438
- secret20Currency = {
439
- type: "secret20",
440
- contractAddress,
441
- coinDecimals: contractInfo.response.data.token_info.decimals,
442
- coinDenom: contractInfo.response.data.token_info.symbol,
443
- coinMinimalDenom: `secret20:${contractAddress}:${contractInfo.response.data.token_info.name}`,
444
- };
452
+ const contractAddress = denomTrace.denom.replace("cw20:", "");
453
+ const secret20CurrencyRes = this.getCW20TokenInfo(originChainInfo.chainId, contractAddress);
454
+ if (secret20CurrencyRes.isFetching) {
455
+ isGlobalFetching = true;
456
+ }
457
+ if (secret20CurrencyRes.res) {
458
+ secret20Currency = {
459
+ type: "secret20",
460
+ contractAddress,
461
+ coinDecimals: secret20CurrencyRes.res.coinDecimals,
462
+ coinDenom: secret20CurrencyRes.res.coinDenom,
463
+ coinMinimalDenom: `secret20:${contractAddress}:${secret20CurrencyRes.res.coinDenom}`,
464
+ coinGeckoId: secret20CurrencyRes.res.coinGeckoId,
465
+ coinImageUrl: secret20CurrencyRes.res.coinImageUrl,
466
+ };
467
+ }
468
+ if (!secret20CurrencyRes.isFetching &&
469
+ !secret20CurrencyRes.fromCache) {
470
+ if (secret20Currency) {
471
+ this.setCacheTokenInfo(originChainInfo.chainId, contractAddress, {
472
+ notFound: undefined,
473
+ coinDenom: secret20Currency.coinDenom,
474
+ coinDecimals: secret20Currency.coinDecimals,
475
+ coinGeckoId: secret20Currency.coinGeckoId,
476
+ coinImageUrl: secret20Currency.coinImageUrl,
477
+ timestamp: Date.now(),
478
+ });
479
+ }
480
+ else if (secret20CurrencyRes.notFound) {
481
+ this.setCacheTokenInfo(originChainInfo.chainId, contractAddress, {
482
+ notFound: true,
483
+ timestamp: Date.now(),
484
+ });
445
485
  }
446
486
  }
447
487
  }
@@ -457,7 +497,7 @@ class IBCCurrencyRegistrar {
457
497
  originChainId: originChainInfo.chainId,
458
498
  originCurrency: secret20Currency,
459
499
  },
460
- done: fromCache && !isSecret20Fetching,
500
+ done: !isGlobalFetching,
461
501
  };
462
502
  }
463
503
  }
@@ -661,6 +701,76 @@ class IBCCurrencyRegistrar {
661
701
  };
662
702
  }
663
703
  }
704
+ getCW20TokenInfo(chainId, contractAddress) {
705
+ var _a;
706
+ const { res: cached, staled } = this.getCacheTokenInfo(chainId, contractAddress);
707
+ if (cached) {
708
+ if (cached.notFound) {
709
+ return {
710
+ res: undefined,
711
+ isFetching: false,
712
+ fromCache: true,
713
+ notFound: true,
714
+ };
715
+ }
716
+ if (!staled) {
717
+ return {
718
+ res: {
719
+ coinDenom: cached.coinDenom,
720
+ coinDecimals: cached.coinDecimals,
721
+ coinGeckoId: cached.coinGeckoId,
722
+ coinImageUrl: cached.coinImageUrl,
723
+ },
724
+ isFetching: false,
725
+ fromCache: true,
726
+ notFound: false,
727
+ };
728
+ }
729
+ }
730
+ if (!this.cw20BaseURL) {
731
+ return {
732
+ res: undefined,
733
+ isFetching: false,
734
+ fromCache: false,
735
+ notFound: false,
736
+ };
737
+ }
738
+ const query = this.queriesStore.simpleQuery.queryGet(this.cw20BaseURL, this.cw20URI
739
+ .replace("{chainId}", chainId)
740
+ .replace("{contractAddress}", encodeURIComponent(contractAddress)));
741
+ const isFetching = query.isFetching;
742
+ if (query.response) {
743
+ return {
744
+ res: {
745
+ coinDenom: query.response.data.coinDenom,
746
+ coinDecimals: query.response.data.coinDecimals,
747
+ coinGeckoId: query.response.data.coinGeckoId,
748
+ coinImageUrl: query.response.data.coinImageUrl,
749
+ },
750
+ isFetching,
751
+ fromCache: false,
752
+ notFound: false,
753
+ };
754
+ }
755
+ else {
756
+ const notFound = ((_a = query.error) === null || _a === void 0 ? void 0 : _a.status) === 404;
757
+ return {
758
+ res: notFound
759
+ ? undefined
760
+ : cached
761
+ ? {
762
+ coinDenom: cached.coinDenom,
763
+ coinDecimals: cached.coinDecimals,
764
+ coinGeckoId: cached.coinGeckoId,
765
+ coinImageUrl: cached.coinImageUrl,
766
+ }
767
+ : undefined,
768
+ isFetching,
769
+ fromCache: false,
770
+ notFound,
771
+ };
772
+ }
773
+ }
664
774
  getCacheIBCDenomData(chainId, denomTraceHash) {
665
775
  const key = `${cosmos_1.ChainIdHelper.parse(chainId).identifier}/${denomTraceHash}`;
666
776
  const res = this.cacheDenomTracePaths.get(key) || this.staledDenomTracePaths.get(key);
@@ -1 +1 @@
1
- {"version":3,"file":"currency-registrar.js","sourceRoot":"","sources":["../src/currency-registrar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"currency-registrar.js","sourceRoot":"","sources":["../src/currency-registrar.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/stores-ibc",
3
- "version": "0.13.9",
3
+ "version": "0.13.11",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -21,11 +21,11 @@
21
21
  "typecheck": "npx tsc -p tsconfig.check.json"
22
22
  },
23
23
  "dependencies": {
24
- "@keplr-wallet/common": "0.13.9",
25
- "@keplr-wallet/cosmos": "0.13.9",
26
- "@keplr-wallet/stores": "0.13.9",
27
- "@keplr-wallet/stores-eth": "0.13.9",
28
- "@keplr-wallet/types": "0.13.9",
24
+ "@keplr-wallet/common": "0.13.11",
25
+ "@keplr-wallet/cosmos": "0.13.11",
26
+ "@keplr-wallet/stores": "0.13.11",
27
+ "@keplr-wallet/stores-eth": "0.13.11",
28
+ "@keplr-wallet/types": "0.13.11",
29
29
  "lodash.debounce": "^4.0.8"
30
30
  },
31
31
  "peerDependencies": {
@@ -35,5 +35,5 @@
35
35
  "devDependencies": {
36
36
  "@types/lodash.debounce": "^4"
37
37
  },
38
- "gitHead": "bdb97c3ed6d06da10baa2d6bc573371b5007426b"
38
+ "gitHead": "5998947a9853adcbed5872b849362f05b5e73f7e"
39
39
  }
@@ -132,7 +132,9 @@ export class IBCCurrencyRegistrar {
132
132
  originChainInfo: IChainInfoImpl | undefined,
133
133
  counterpartyChainInfo: IChainInfoImpl | undefined,
134
134
  originCurrency: AppCurrency | undefined
135
- ) => string = IBCCurrencyRegistrar.defaultCoinDenomGenerator
135
+ ) => string = IBCCurrencyRegistrar.defaultCoinDenomGenerator,
136
+ protected readonly cw20BaseURL: string = "",
137
+ protected readonly cw20URI: string = ""
136
138
  ) {
137
139
  this.chainStore.registerCurrencyRegistrar(
138
140
  this.ibcCurrencyRegistrar.bind(this)
@@ -563,7 +565,6 @@ export class IBCCurrencyRegistrar {
563
565
  originChainInfo.features?.includes("secretwasm");
564
566
 
565
567
  if (!isSecret20Currency) {
566
- let isFetching = false;
567
568
  // If the origin currency is ics20-cw20.
568
569
  let cw20Currency = originChainInfo.currencies.find(
569
570
  (cur) =>
@@ -574,27 +575,51 @@ export class IBCCurrencyRegistrar {
574
575
  !cw20Currency &&
575
576
  this.chainStore.hasChain(originChainInfo.chainId)
576
577
  ) {
577
- const originQueries = this.queriesStore.get(
578
- originChainInfo.chainId
578
+ const contractAddress = denomTrace.denom.replace("cw20:", "");
579
+ const cw20CurrencyRes = this.getCW20TokenInfo(
580
+ originChainInfo.chainId,
581
+ contractAddress
579
582
  );
580
- if (originQueries.cosmwasm) {
581
- const contractAddress = denomTrace.denom.replace(
582
- "cw20:",
583
- ""
584
- );
585
- const contractInfo =
586
- originQueries.cosmwasm.querycw20ContractInfo.getQueryContract(
587
- contractAddress
583
+ if (cw20CurrencyRes.isFetching) {
584
+ isGlobalFetching = true;
585
+ }
586
+ if (cw20CurrencyRes.res) {
587
+ cw20Currency = {
588
+ type: "cw20",
589
+ contractAddress,
590
+ coinDecimals: cw20CurrencyRes.res.coinDecimals,
591
+ coinDenom: cw20CurrencyRes.res.coinDenom,
592
+ coinMinimalDenom: `cw20:${contractAddress}:${cw20CurrencyRes.res.coinDenom}`,
593
+ coinGeckoId: cw20CurrencyRes.res.coinGeckoId,
594
+ coinImageUrl: cw20CurrencyRes.res.coinImageUrl,
595
+ };
596
+ }
597
+ if (
598
+ !cw20CurrencyRes.isFetching &&
599
+ !cw20CurrencyRes.fromCache
600
+ ) {
601
+ if (cw20Currency) {
602
+ this.setCacheTokenInfo(
603
+ originChainInfo.chainId,
604
+ contractAddress,
605
+ {
606
+ notFound: undefined,
607
+ coinDenom: cw20Currency.coinDenom,
608
+ coinDecimals: cw20Currency.coinDecimals,
609
+ coinGeckoId: cw20Currency.coinGeckoId,
610
+ coinImageUrl: cw20Currency.coinImageUrl,
611
+ timestamp: Date.now(),
612
+ }
588
613
  );
589
- isFetching = contractInfo.isFetching;
590
- if (contractInfo.response) {
591
- cw20Currency = {
592
- type: "cw20",
614
+ } else if (cw20CurrencyRes.notFound) {
615
+ this.setCacheTokenInfo(
616
+ originChainInfo.chainId,
593
617
  contractAddress,
594
- coinDecimals: contractInfo.response.data.decimals,
595
- coinDenom: contractInfo.response.data.symbol,
596
- coinMinimalDenom: `cw20:${contractAddress}:${contractInfo.response.data.name}`,
597
- };
618
+ {
619
+ notFound: true,
620
+ timestamp: Date.now(),
621
+ }
622
+ );
598
623
  }
599
624
  }
600
625
  }
@@ -616,12 +641,11 @@ export class IBCCurrencyRegistrar {
616
641
  originChainId: originChainInfo.chainId,
617
642
  originCurrency: cw20Currency,
618
643
  },
619
- done: fromCache && !isFetching,
644
+ done: !isGlobalFetching,
620
645
  };
621
646
  }
622
647
  } else {
623
- let isSecret20Fetching = false;
624
- // If the origin currency is ics20-cw20.
648
+ // If the origin currency is ics20-secret20.
625
649
  let secret20Currency = originChainInfo.currencies.find(
626
650
  (cur) =>
627
651
  denomTrace &&
@@ -631,28 +655,51 @@ export class IBCCurrencyRegistrar {
631
655
  !secret20Currency &&
632
656
  this.chainStore.hasChain(originChainInfo.chainId)
633
657
  ) {
634
- const originQueries = this.queriesStore.get(
635
- originChainInfo.chainId
658
+ const contractAddress = denomTrace.denom.replace("cw20:", "");
659
+ const secret20CurrencyRes = this.getCW20TokenInfo(
660
+ originChainInfo.chainId,
661
+ contractAddress
636
662
  );
637
- if (originQueries.secret) {
638
- const contractAddress = denomTrace.denom.replace(
639
- "cw20:",
640
- ""
641
- );
642
- const contractInfo =
643
- originQueries.secret.querySecret20ContractInfo.getQueryContract(
644
- contractAddress
663
+ if (secret20CurrencyRes.isFetching) {
664
+ isGlobalFetching = true;
665
+ }
666
+ if (secret20CurrencyRes.res) {
667
+ secret20Currency = {
668
+ type: "secret20",
669
+ contractAddress,
670
+ coinDecimals: secret20CurrencyRes.res.coinDecimals,
671
+ coinDenom: secret20CurrencyRes.res.coinDenom,
672
+ coinMinimalDenom: `secret20:${contractAddress}:${secret20CurrencyRes.res.coinDenom}`,
673
+ coinGeckoId: secret20CurrencyRes.res.coinGeckoId,
674
+ coinImageUrl: secret20CurrencyRes.res.coinImageUrl,
675
+ };
676
+ }
677
+ if (
678
+ !secret20CurrencyRes.isFetching &&
679
+ !secret20CurrencyRes.fromCache
680
+ ) {
681
+ if (secret20Currency) {
682
+ this.setCacheTokenInfo(
683
+ originChainInfo.chainId,
684
+ contractAddress,
685
+ {
686
+ notFound: undefined,
687
+ coinDenom: secret20Currency.coinDenom,
688
+ coinDecimals: secret20Currency.coinDecimals,
689
+ coinGeckoId: secret20Currency.coinGeckoId,
690
+ coinImageUrl: secret20Currency.coinImageUrl,
691
+ timestamp: Date.now(),
692
+ }
645
693
  );
646
- isSecret20Fetching = contractInfo.isFetching;
647
- if (contractInfo.response) {
648
- secret20Currency = {
649
- type: "secret20",
694
+ } else if (secret20CurrencyRes.notFound) {
695
+ this.setCacheTokenInfo(
696
+ originChainInfo.chainId,
650
697
  contractAddress,
651
- coinDecimals:
652
- contractInfo.response.data.token_info.decimals,
653
- coinDenom: contractInfo.response.data.token_info.symbol,
654
- coinMinimalDenom: `secret20:${contractAddress}:${contractInfo.response.data.token_info.name}`,
655
- };
698
+ {
699
+ notFound: true,
700
+ timestamp: Date.now(),
701
+ }
702
+ );
656
703
  }
657
704
  }
658
705
  }
@@ -674,7 +721,7 @@ export class IBCCurrencyRegistrar {
674
721
  originChainId: originChainInfo.chainId,
675
722
  originCurrency: secret20Currency,
676
723
  },
677
- done: fromCache && !isSecret20Fetching,
724
+ done: !isGlobalFetching,
678
725
  };
679
726
  }
680
727
  }
@@ -929,6 +976,106 @@ export class IBCCurrencyRegistrar {
929
976
  }
930
977
  }
931
978
 
979
+ protected getCW20TokenInfo(
980
+ chainId: string,
981
+ contractAddress: string
982
+ ): {
983
+ res:
984
+ | {
985
+ coinDenom: string;
986
+ coinDecimals: number;
987
+ coinGeckoId: string | undefined;
988
+ coinImageUrl: string | undefined;
989
+ }
990
+ | undefined;
991
+ isFetching: boolean;
992
+ fromCache: boolean;
993
+ notFound: boolean;
994
+ } {
995
+ const { res: cached, staled } = this.getCacheTokenInfo(
996
+ chainId,
997
+ contractAddress
998
+ );
999
+ if (cached) {
1000
+ if (cached.notFound) {
1001
+ return {
1002
+ res: undefined,
1003
+ isFetching: false,
1004
+ fromCache: true,
1005
+ notFound: true,
1006
+ };
1007
+ }
1008
+ if (!staled) {
1009
+ return {
1010
+ res: {
1011
+ coinDenom: cached.coinDenom,
1012
+ coinDecimals: cached.coinDecimals,
1013
+ coinGeckoId: cached.coinGeckoId,
1014
+ coinImageUrl: cached.coinImageUrl,
1015
+ },
1016
+ isFetching: false,
1017
+ fromCache: true,
1018
+ notFound: false,
1019
+ };
1020
+ }
1021
+ }
1022
+
1023
+ if (!this.cw20BaseURL) {
1024
+ return {
1025
+ res: undefined,
1026
+ isFetching: false,
1027
+ fromCache: false,
1028
+ notFound: false,
1029
+ };
1030
+ }
1031
+
1032
+ const query = this.queriesStore.simpleQuery.queryGet<{
1033
+ coinMinimalDenom: string;
1034
+ coinDenom: string;
1035
+ coinDecimals: number;
1036
+ coinGeckoId: string | undefined;
1037
+ coinImageUrl: string | undefined;
1038
+ }>(
1039
+ this.cw20BaseURL,
1040
+ this.cw20URI
1041
+ .replace("{chainId}", chainId)
1042
+ .replace("{contractAddress}", encodeURIComponent(contractAddress))
1043
+ );
1044
+
1045
+ const isFetching = query.isFetching;
1046
+
1047
+ if (query.response) {
1048
+ return {
1049
+ res: {
1050
+ coinDenom: query.response.data.coinDenom,
1051
+ coinDecimals: query.response.data.coinDecimals,
1052
+ coinGeckoId: query.response.data.coinGeckoId,
1053
+ coinImageUrl: query.response.data.coinImageUrl,
1054
+ },
1055
+ isFetching,
1056
+ fromCache: false,
1057
+ notFound: false,
1058
+ };
1059
+ } else {
1060
+ const notFound = query.error?.status === 404;
1061
+ return {
1062
+ res: notFound
1063
+ ? undefined
1064
+ : cached
1065
+ ? {
1066
+ coinDenom: cached.coinDenom,
1067
+ coinDecimals: cached.coinDecimals,
1068
+ coinGeckoId: cached.coinGeckoId,
1069
+ coinImageUrl: cached.coinImageUrl,
1070
+ }
1071
+ : undefined,
1072
+ isFetching,
1073
+ fromCache: false,
1074
+ notFound,
1075
+ };
1076
+ }
1077
+ }
1078
+
932
1079
  protected getCacheIBCDenomData(
933
1080
  chainId: string,
934
1081
  denomTraceHash: string