@keplr-wallet/stores 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.
@@ -40,8 +40,9 @@ class ChainInfoImpl {
40
40
  }
41
41
  addUnknownDenomsImpl(coinMinimalDenoms, reaction) {
42
42
  for (const coinMinimalDenom of coinMinimalDenoms) {
43
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(coinMinimalDenom);
43
44
  let found = false;
44
- const prior = this.unknownDenomMap.get(coinMinimalDenom);
45
+ const prior = this.unknownDenomMap.get(normalizedCoinMinimalDenom);
45
46
  if (prior) {
46
47
  if (prior.reaction === reaction) {
47
48
  continue;
@@ -53,20 +54,20 @@ class ChainInfoImpl {
53
54
  prior.reaction = reaction;
54
55
  }
55
56
  }
56
- if (this.currencyMap.has(coinMinimalDenom)) {
57
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
57
58
  continue;
58
59
  }
59
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
60
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
60
61
  continue;
61
62
  }
62
63
  if (!found) {
63
64
  (0, mobx_1.runInAction)(() => {
64
65
  this.unknownDenoms.push({
65
- denom: coinMinimalDenom,
66
+ denom: normalizedCoinMinimalDenom,
66
67
  reaction,
67
68
  });
68
69
  this.unknownDenoms = this.unknownDenoms.slice();
69
- this.registrationInProgressCurrencyMap.set(coinMinimalDenom, true);
70
+ this.registrationInProgressCurrencyMap.set(normalizedCoinMinimalDenom, true);
70
71
  });
71
72
  }
72
73
  let i = 0;
@@ -91,15 +92,15 @@ class ChainInfoImpl {
91
92
  if (disposed) {
92
93
  return;
93
94
  }
94
- const generator = this.currencyRegistry.getCurrencyRegistrar(this.chainId, coinMinimalDenom);
95
+ const generator = this.currencyRegistry.getCurrencyRegistrar(this.chainId, normalizedCoinMinimalDenom);
95
96
  if (generator) {
96
97
  const currency = generator.value;
97
98
  (0, mobx_1.runInAction)(() => {
98
99
  if (!generator.done) {
99
- this.registrationInProgressCurrencyMap.set(coinMinimalDenom, true);
100
+ this.registrationInProgressCurrencyMap.set(normalizedCoinMinimalDenom, true);
100
101
  }
101
102
  if (currency) {
102
- const index = this.unknownDenoms.findIndex((denom) => denom.denom === currency.coinMinimalDenom);
103
+ const index = this.unknownDenoms.findIndex((denom) => denom.denom === normalizedCoinMinimalDenom);
103
104
  let prev;
104
105
  if (index >= 0) {
105
106
  prev = this.unknownDenoms[index];
@@ -116,7 +117,7 @@ class ChainInfoImpl {
116
117
  }
117
118
  }
118
119
  if (generator.done) {
119
- this.registrationInProgressCurrencyMap.delete(coinMinimalDenom);
120
+ this.registrationInProgressCurrencyMap.delete(normalizedCoinMinimalDenom);
120
121
  }
121
122
  });
122
123
  if (generator.done) {
@@ -124,9 +125,9 @@ class ChainInfoImpl {
124
125
  }
125
126
  }
126
127
  else {
127
- if (this.registrationInProgressCurrencyMap.get(coinMinimalDenom)) {
128
+ if (this.registrationInProgressCurrencyMap.get(normalizedCoinMinimalDenom)) {
128
129
  (0, mobx_1.runInAction)(() => {
129
- this.registrationInProgressCurrencyMap.delete(coinMinimalDenom);
130
+ this.registrationInProgressCurrencyMap.delete(normalizedCoinMinimalDenom);
130
131
  });
131
132
  }
132
133
  dispose();
@@ -184,8 +185,9 @@ class ChainInfoImpl {
184
185
  }
185
186
  const currencyMap = this.currencyMap;
186
187
  for (const currency of currencies) {
187
- if (!currencyMap.has(currency.coinMinimalDenom)) {
188
- this.registeredCurrencies.push(currency);
188
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(currency.coinMinimalDenom);
189
+ if (!currencyMap.has(normalizedCoinMinimalDenom)) {
190
+ this.registeredCurrencies.push(Object.assign(Object.assign({}, currency), { coinMinimalDenom: normalizedCoinMinimalDenom }));
189
191
  this.registeredCurrencies = this.registeredCurrencies.slice();
190
192
  }
191
193
  }
@@ -196,9 +198,10 @@ class ChainInfoImpl {
196
198
  }
197
199
  const map = new Map();
198
200
  for (const coinMinimalDenom of coinMinimalDenoms) {
199
- map.set(coinMinimalDenom, true);
201
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(coinMinimalDenom);
202
+ map.set(normalizedCoinMinimalDenom, true);
200
203
  }
201
- this.registeredCurrencies = this.registeredCurrencies.filter((currency) => !map.get(currency.coinMinimalDenom));
204
+ this.registeredCurrencies = this.registeredCurrencies.filter((currency) => !map.get(common_1.DenomHelper.normalizeDenom(currency.coinMinimalDenom)));
202
205
  }
203
206
  /**
204
207
  * Currency를 반환한다.
@@ -206,52 +209,55 @@ class ChainInfoImpl {
206
209
  * @param coinMinimalDenom
207
210
  */
208
211
  findCurrency(coinMinimalDenom) {
209
- if (this.currencyMap.has(coinMinimalDenom)) {
210
- return this.currencyMap.get(coinMinimalDenom);
212
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(coinMinimalDenom);
213
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
214
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
211
215
  }
212
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
213
- this.moveNoReactionCurrencyToReaction(coinMinimalDenom);
214
- return this.currencyNoReactionMap.get(coinMinimalDenom);
216
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
217
+ this.moveNoReactionCurrencyToReaction(normalizedCoinMinimalDenom);
218
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
215
219
  }
216
- this.addUnknownDenoms(coinMinimalDenom);
220
+ this.addUnknownDenoms(normalizedCoinMinimalDenom);
217
221
  // Unknown denom can be registered synchronously in some cases.
218
222
  // For this case, re-try to get currency.
219
- if (this.currencyMap.has(coinMinimalDenom)) {
220
- return this.currencyMap.get(coinMinimalDenom);
223
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
224
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
221
225
  }
222
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
223
- this.moveNoReactionCurrencyToReaction(coinMinimalDenom);
224
- return this.currencyNoReactionMap.get(coinMinimalDenom);
226
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
227
+ this.moveNoReactionCurrencyToReaction(normalizedCoinMinimalDenom);
228
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
225
229
  }
226
230
  }
227
231
  findCurrencyWithoutReaction(coinMinimalDenom) {
228
- if (this.currencyMap.has(coinMinimalDenom)) {
229
- return this.currencyMap.get(coinMinimalDenom);
232
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(coinMinimalDenom);
233
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
234
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
230
235
  }
231
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
232
- return this.currencyNoReactionMap.get(coinMinimalDenom);
236
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
237
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
233
238
  }
234
- this.addUnknownDenomsWithoutReaction(coinMinimalDenom);
239
+ this.addUnknownDenomsWithoutReaction(normalizedCoinMinimalDenom);
235
240
  // Unknown denom can be registered synchronously in some cases.
236
241
  // For this case, re-try to get currency.
237
- if (this.currencyMap.has(coinMinimalDenom)) {
238
- return this.currencyMap.get(coinMinimalDenom);
242
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
243
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
239
244
  }
240
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
241
- return this.currencyNoReactionMap.get(coinMinimalDenom);
245
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
246
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
242
247
  }
243
248
  }
244
249
  findCurrencyAsync(coinMinimalDenom) {
245
- if (this.currencyMap.has(coinMinimalDenom)) {
246
- return Promise.resolve(this.currencyMap.get(coinMinimalDenom));
250
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(coinMinimalDenom);
251
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
252
+ return Promise.resolve(this.currencyMap.get(normalizedCoinMinimalDenom));
247
253
  }
248
- this.addUnknownDenoms(coinMinimalDenom);
254
+ this.addUnknownDenoms(normalizedCoinMinimalDenom);
249
255
  let disposal;
250
256
  return new Promise((resolve) => {
251
257
  disposal = (0, mobx_1.autorun)(() => {
252
- const registration = this.registrationInProgressCurrencyMap.get(coinMinimalDenom);
258
+ const registration = this.registrationInProgressCurrencyMap.get(normalizedCoinMinimalDenom);
253
259
  if (!registration) {
254
- resolve(this.currencyMap.get(coinMinimalDenom));
260
+ resolve(this.currencyMap.get(normalizedCoinMinimalDenom));
255
261
  }
256
262
  });
257
263
  }).finally(() => {
@@ -265,42 +271,45 @@ class ChainInfoImpl {
265
271
  * @param coinMinimalDenom
266
272
  */
267
273
  forceFindCurrency(coinMinimalDenom) {
268
- const currency = this.findCurrency(coinMinimalDenom);
274
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(coinMinimalDenom);
275
+ const currency = this.findCurrency(normalizedCoinMinimalDenom);
269
276
  if (!currency) {
270
277
  // ref을 유지하기 위해서 cache를 사용한다.
271
- if (forceFindCurrencyCache.has(coinMinimalDenom)) {
272
- return forceFindCurrencyCache.get(coinMinimalDenom);
278
+ if (forceFindCurrencyCache.has(normalizedCoinMinimalDenom)) {
279
+ return forceFindCurrencyCache.get(normalizedCoinMinimalDenom);
273
280
  }
274
281
  const cur = {
275
- coinMinimalDenom,
276
- coinDenom: coinMinimalDenom,
282
+ coinMinimalDenom: normalizedCoinMinimalDenom,
283
+ coinDenom: normalizedCoinMinimalDenom,
277
284
  coinDecimals: 0,
278
285
  };
279
- forceFindCurrencyCache.set(coinMinimalDenom, cur);
286
+ forceFindCurrencyCache.set(normalizedCoinMinimalDenom, cur);
280
287
  return cur;
281
288
  }
282
289
  return currency;
283
290
  }
284
291
  forceFindCurrencyWithoutReaction(coinMinimalDenom) {
285
- const currency = this.findCurrencyWithoutReaction(coinMinimalDenom);
292
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(coinMinimalDenom);
293
+ const currency = this.findCurrencyWithoutReaction(normalizedCoinMinimalDenom);
286
294
  if (!currency) {
287
295
  // ref을 유지하기 위해서 cache를 사용한다.
288
- if (forceFindCurrencyCache.has(coinMinimalDenom)) {
289
- return forceFindCurrencyCache.get(coinMinimalDenom);
296
+ if (forceFindCurrencyCache.has(normalizedCoinMinimalDenom)) {
297
+ return forceFindCurrencyCache.get(normalizedCoinMinimalDenom);
290
298
  }
291
299
  const cur = {
292
- coinMinimalDenom,
293
- coinDenom: coinMinimalDenom,
300
+ coinMinimalDenom: normalizedCoinMinimalDenom,
301
+ coinDenom: normalizedCoinMinimalDenom,
294
302
  coinDecimals: 0,
295
303
  };
296
- forceFindCurrencyCache.set(coinMinimalDenom, cur);
304
+ forceFindCurrencyCache.set(normalizedCoinMinimalDenom, cur);
297
305
  return cur;
298
306
  }
299
307
  return currency;
300
308
  }
301
309
  addOrReplaceCurrency(currency) {
302
- if (this.currencyMap.has(currency.coinMinimalDenom)) {
303
- const index = this.registeredCurrencies.findIndex((cur) => cur.coinMinimalDenom === currency.coinMinimalDenom);
310
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(currency.coinMinimalDenom);
311
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
312
+ const index = this.registeredCurrencies.findIndex((cur) => cur.coinMinimalDenom === normalizedCoinMinimalDenom);
304
313
  if (index >= 0) {
305
314
  const prev = this.registeredCurrencies[index];
306
315
  if (
@@ -317,8 +326,9 @@ class ChainInfoImpl {
317
326
  }
318
327
  }
319
328
  addOrReplaceCurrencyNoReaction(currency) {
320
- if (this.currencyNoReactionMap.has(currency.coinMinimalDenom)) {
321
- const index = this.registeredCurrenciesNoReaction.findIndex((cur) => cur.coinMinimalDenom === currency.coinMinimalDenom);
329
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(currency.coinMinimalDenom);
330
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
331
+ const index = this.registeredCurrenciesNoReaction.findIndex((cur) => cur.coinMinimalDenom === normalizedCoinMinimalDenom);
322
332
  if (index >= 0) {
323
333
  const prev = this.registeredCurrenciesNoReaction[index];
324
334
  if (
@@ -493,7 +503,8 @@ class ModularChainInfoImpl {
493
503
  throw new Error(`No cosmos module for this chain: ${this.chainId}`);
494
504
  }
495
505
  for (const currency of currencies) {
496
- if (!this.cosmosCurrencyMap.has(currency.coinMinimalDenom)) {
506
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(currency.coinMinimalDenom);
507
+ if (!this.cosmosCurrencyMap.has(normalizedCoinMinimalDenom)) {
497
508
  this.registeredCosmosCurrencies.push(currency);
498
509
  }
499
510
  }
@@ -503,7 +514,8 @@ class ModularChainInfoImpl {
503
514
  throw new Error(`No starknet module for this chain: ${this.chainId}`);
504
515
  }
505
516
  for (const currency of currencies) {
506
- if (!this.starknetCurrencyMap.has(currency.coinMinimalDenom) &&
517
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(currency.coinMinimalDenom);
518
+ if (!this.starknetCurrencyMap.has(normalizedCoinMinimalDenom) &&
507
519
  "type" in currency &&
508
520
  currency.type === "erc20") {
509
521
  this.registeredStarkentCurrencies.push(currency);
@@ -515,7 +527,8 @@ class ModularChainInfoImpl {
515
527
  throw new Error(`No bitcoin module for this chain: ${this.chainId}`);
516
528
  }
517
529
  for (const currency of currencies) {
518
- if (!this.bitcoinCurrencyMap.has(currency.coinMinimalDenom)) {
530
+ const normalizedCoinMinimalDenom = common_1.DenomHelper.normalizeDenom(currency.coinMinimalDenom);
531
+ if (!this.bitcoinCurrencyMap.has(normalizedCoinMinimalDenom)) {
519
532
  this.registeredBitcoinCurrencies.push(currency);
520
533
  }
521
534
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/chain/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/chain/base.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/stores",
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,17 +16,17 @@
16
16
  "lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
17
17
  },
18
18
  "devDependencies": {
19
- "@keplr-wallet/provider-mock": "0.12.235"
19
+ "@keplr-wallet/provider-mock": "0.12.236-rc.1"
20
20
  },
21
21
  "dependencies": {
22
- "@keplr-wallet/common": "0.12.235",
23
- "@keplr-wallet/cosmos": "0.12.235",
24
- "@keplr-wallet/crypto": "0.12.235",
25
- "@keplr-wallet/mobx-utils": "0.12.235",
26
- "@keplr-wallet/proto-types": "0.12.235",
27
- "@keplr-wallet/simple-fetch": "0.12.235",
28
- "@keplr-wallet/types": "0.12.235",
29
- "@keplr-wallet/unit": "0.12.235",
22
+ "@keplr-wallet/common": "0.12.236-rc.1",
23
+ "@keplr-wallet/cosmos": "0.12.236-rc.1",
24
+ "@keplr-wallet/crypto": "0.12.236-rc.1",
25
+ "@keplr-wallet/mobx-utils": "0.12.236-rc.1",
26
+ "@keplr-wallet/proto-types": "0.12.236-rc.1",
27
+ "@keplr-wallet/simple-fetch": "0.12.236-rc.1",
28
+ "@keplr-wallet/types": "0.12.236-rc.1",
29
+ "@keplr-wallet/unit": "0.12.236-rc.1",
30
30
  "buffer": "^6.0.3",
31
31
  "deepmerge": "^4.2.2",
32
32
  "eventemitter3": "^4.0.7",
@@ -38,5 +38,5 @@
38
38
  "mobx": "^6",
39
39
  "mobx-utils": "^6"
40
40
  },
41
- "gitHead": "dea25e2172576804e0507464eb89ff82cd4c7f34"
41
+ "gitHead": "67c01e24ebb27ded8bd0f1549380c5e40573aeb1"
42
42
  }
package/src/chain/base.ts CHANGED
@@ -26,7 +26,7 @@ import {
26
26
  } from "./types";
27
27
  import { ChainIdHelper } from "@keplr-wallet/cosmos";
28
28
  import { keepAlive } from "mobx-utils";
29
- import { sortedJsonByKeyStringify } from "@keplr-wallet/common";
29
+ import { DenomHelper, sortedJsonByKeyStringify } from "@keplr-wallet/common";
30
30
 
31
31
  const forceFindCurrencyCache: Map<string, AppCurrency> = new Map();
32
32
 
@@ -85,8 +85,10 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
85
85
  reaction: boolean
86
86
  ) {
87
87
  for (const coinMinimalDenom of coinMinimalDenoms) {
88
+ const normalizedCoinMinimalDenom =
89
+ DenomHelper.normalizeDenom(coinMinimalDenom);
88
90
  let found = false;
89
- const prior = this.unknownDenomMap.get(coinMinimalDenom);
91
+ const prior = this.unknownDenomMap.get(normalizedCoinMinimalDenom);
90
92
  if (prior) {
91
93
  if (prior.reaction === reaction) {
92
94
  continue;
@@ -98,22 +100,25 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
98
100
  }
99
101
  }
100
102
 
101
- if (this.currencyMap.has(coinMinimalDenom)) {
103
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
102
104
  continue;
103
105
  }
104
106
 
105
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
107
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
106
108
  continue;
107
109
  }
108
110
 
109
111
  if (!found) {
110
112
  runInAction(() => {
111
113
  this.unknownDenoms.push({
112
- denom: coinMinimalDenom,
114
+ denom: normalizedCoinMinimalDenom,
113
115
  reaction,
114
116
  });
115
117
  this.unknownDenoms = this.unknownDenoms.slice();
116
- this.registrationInProgressCurrencyMap.set(coinMinimalDenom, true);
118
+ this.registrationInProgressCurrencyMap.set(
119
+ normalizedCoinMinimalDenom,
120
+ true
121
+ );
117
122
  });
118
123
  }
119
124
 
@@ -143,21 +148,21 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
143
148
 
144
149
  const generator = this.currencyRegistry.getCurrencyRegistrar(
145
150
  this.chainId,
146
- coinMinimalDenom
151
+ normalizedCoinMinimalDenom
147
152
  );
148
153
  if (generator) {
149
154
  const currency = generator.value;
150
155
  runInAction(() => {
151
156
  if (!generator.done) {
152
157
  this.registrationInProgressCurrencyMap.set(
153
- coinMinimalDenom,
158
+ normalizedCoinMinimalDenom,
154
159
  true
155
160
  );
156
161
  }
157
162
 
158
163
  if (currency) {
159
164
  const index = this.unknownDenoms.findIndex(
160
- (denom) => denom.denom === currency.coinMinimalDenom
165
+ (denom) => denom.denom === normalizedCoinMinimalDenom
161
166
  );
162
167
  let prev:
163
168
  | {
@@ -181,7 +186,9 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
181
186
  }
182
187
 
183
188
  if (generator.done) {
184
- this.registrationInProgressCurrencyMap.delete(coinMinimalDenom);
189
+ this.registrationInProgressCurrencyMap.delete(
190
+ normalizedCoinMinimalDenom
191
+ );
185
192
  }
186
193
  });
187
194
 
@@ -189,9 +196,15 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
189
196
  dispose();
190
197
  }
191
198
  } else {
192
- if (this.registrationInProgressCurrencyMap.get(coinMinimalDenom)) {
199
+ if (
200
+ this.registrationInProgressCurrencyMap.get(
201
+ normalizedCoinMinimalDenom
202
+ )
203
+ ) {
193
204
  runInAction(() => {
194
- this.registrationInProgressCurrencyMap.delete(coinMinimalDenom);
205
+ this.registrationInProgressCurrencyMap.delete(
206
+ normalizedCoinMinimalDenom
207
+ );
195
208
  });
196
209
  }
197
210
 
@@ -278,8 +291,14 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
278
291
 
279
292
  const currencyMap = this.currencyMap;
280
293
  for (const currency of currencies) {
281
- if (!currencyMap.has(currency.coinMinimalDenom)) {
282
- this.registeredCurrencies.push(currency);
294
+ const normalizedCoinMinimalDenom = DenomHelper.normalizeDenom(
295
+ currency.coinMinimalDenom
296
+ );
297
+ if (!currencyMap.has(normalizedCoinMinimalDenom)) {
298
+ this.registeredCurrencies.push({
299
+ ...currency,
300
+ coinMinimalDenom: normalizedCoinMinimalDenom,
301
+ });
283
302
  this.registeredCurrencies = this.registeredCurrencies.slice();
284
303
  }
285
304
  }
@@ -293,11 +312,14 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
293
312
 
294
313
  const map = new Map<string, boolean>();
295
314
  for (const coinMinimalDenom of coinMinimalDenoms) {
296
- map.set(coinMinimalDenom, true);
315
+ const normalizedCoinMinimalDenom =
316
+ DenomHelper.normalizeDenom(coinMinimalDenom);
317
+ map.set(normalizedCoinMinimalDenom, true);
297
318
  }
298
319
 
299
320
  this.registeredCurrencies = this.registeredCurrencies.filter(
300
- (currency) => !map.get(currency.coinMinimalDenom)
321
+ (currency) =>
322
+ !map.get(DenomHelper.normalizeDenom(currency.coinMinimalDenom))
301
323
  );
302
324
  }
303
325
 
@@ -307,63 +329,70 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
307
329
  * @param coinMinimalDenom
308
330
  */
309
331
  findCurrency(coinMinimalDenom: string): AppCurrency | undefined {
310
- if (this.currencyMap.has(coinMinimalDenom)) {
311
- return this.currencyMap.get(coinMinimalDenom);
332
+ const normalizedCoinMinimalDenom =
333
+ DenomHelper.normalizeDenom(coinMinimalDenom);
334
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
335
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
312
336
  }
313
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
314
- this.moveNoReactionCurrencyToReaction(coinMinimalDenom);
315
- return this.currencyNoReactionMap.get(coinMinimalDenom);
337
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
338
+ this.moveNoReactionCurrencyToReaction(normalizedCoinMinimalDenom);
339
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
316
340
  }
317
- this.addUnknownDenoms(coinMinimalDenom);
341
+ this.addUnknownDenoms(normalizedCoinMinimalDenom);
318
342
 
319
343
  // Unknown denom can be registered synchronously in some cases.
320
344
  // For this case, re-try to get currency.
321
- if (this.currencyMap.has(coinMinimalDenom)) {
322
- return this.currencyMap.get(coinMinimalDenom);
345
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
346
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
323
347
  }
324
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
325
- this.moveNoReactionCurrencyToReaction(coinMinimalDenom);
326
- return this.currencyNoReactionMap.get(coinMinimalDenom);
348
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
349
+ this.moveNoReactionCurrencyToReaction(normalizedCoinMinimalDenom);
350
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
327
351
  }
328
352
  }
329
353
 
330
354
  findCurrencyWithoutReaction(
331
355
  coinMinimalDenom: string
332
356
  ): AppCurrency | undefined {
333
- if (this.currencyMap.has(coinMinimalDenom)) {
334
- return this.currencyMap.get(coinMinimalDenom);
357
+ const normalizedCoinMinimalDenom =
358
+ DenomHelper.normalizeDenom(coinMinimalDenom);
359
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
360
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
335
361
  }
336
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
337
- return this.currencyNoReactionMap.get(coinMinimalDenom);
362
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
363
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
338
364
  }
339
- this.addUnknownDenomsWithoutReaction(coinMinimalDenom);
365
+ this.addUnknownDenomsWithoutReaction(normalizedCoinMinimalDenom);
340
366
 
341
367
  // Unknown denom can be registered synchronously in some cases.
342
368
  // For this case, re-try to get currency.
343
- if (this.currencyMap.has(coinMinimalDenom)) {
344
- return this.currencyMap.get(coinMinimalDenom);
369
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
370
+ return this.currencyMap.get(normalizedCoinMinimalDenom);
345
371
  }
346
- if (this.currencyNoReactionMap.has(coinMinimalDenom)) {
347
- return this.currencyNoReactionMap.get(coinMinimalDenom);
372
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
373
+ return this.currencyNoReactionMap.get(normalizedCoinMinimalDenom);
348
374
  }
349
375
  }
350
376
 
351
377
  findCurrencyAsync(
352
378
  coinMinimalDenom: string
353
379
  ): Promise<AppCurrency | undefined> {
354
- if (this.currencyMap.has(coinMinimalDenom)) {
355
- return Promise.resolve(this.currencyMap.get(coinMinimalDenom));
380
+ const normalizedCoinMinimalDenom =
381
+ DenomHelper.normalizeDenom(coinMinimalDenom);
382
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
383
+ return Promise.resolve(this.currencyMap.get(normalizedCoinMinimalDenom));
356
384
  }
357
- this.addUnknownDenoms(coinMinimalDenom);
385
+ this.addUnknownDenoms(normalizedCoinMinimalDenom);
358
386
 
359
387
  let disposal: IReactionDisposer | undefined;
360
388
 
361
389
  return new Promise<AppCurrency | undefined>((resolve) => {
362
390
  disposal = autorun(() => {
363
- const registration =
364
- this.registrationInProgressCurrencyMap.get(coinMinimalDenom);
391
+ const registration = this.registrationInProgressCurrencyMap.get(
392
+ normalizedCoinMinimalDenom
393
+ );
365
394
  if (!registration) {
366
- resolve(this.currencyMap.get(coinMinimalDenom));
395
+ resolve(this.currencyMap.get(normalizedCoinMinimalDenom));
367
396
  }
368
397
  });
369
398
  }).finally(() => {
@@ -378,36 +407,42 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
378
407
  * @param coinMinimalDenom
379
408
  */
380
409
  forceFindCurrency(coinMinimalDenom: string): AppCurrency {
381
- const currency = this.findCurrency(coinMinimalDenom);
410
+ const normalizedCoinMinimalDenom =
411
+ DenomHelper.normalizeDenom(coinMinimalDenom);
412
+ const currency = this.findCurrency(normalizedCoinMinimalDenom);
382
413
  if (!currency) {
383
414
  // ref을 유지하기 위해서 cache를 사용한다.
384
- if (forceFindCurrencyCache.has(coinMinimalDenom)) {
385
- return forceFindCurrencyCache.get(coinMinimalDenom)!;
415
+ if (forceFindCurrencyCache.has(normalizedCoinMinimalDenom)) {
416
+ return forceFindCurrencyCache.get(normalizedCoinMinimalDenom)!;
386
417
  }
387
418
  const cur = {
388
- coinMinimalDenom,
389
- coinDenom: coinMinimalDenom,
419
+ coinMinimalDenom: normalizedCoinMinimalDenom,
420
+ coinDenom: normalizedCoinMinimalDenom,
390
421
  coinDecimals: 0,
391
422
  };
392
- forceFindCurrencyCache.set(coinMinimalDenom, cur);
423
+ forceFindCurrencyCache.set(normalizedCoinMinimalDenom, cur);
393
424
  return cur;
394
425
  }
395
426
  return currency;
396
427
  }
397
428
 
398
429
  forceFindCurrencyWithoutReaction(coinMinimalDenom: string): AppCurrency {
399
- const currency = this.findCurrencyWithoutReaction(coinMinimalDenom);
430
+ const normalizedCoinMinimalDenom =
431
+ DenomHelper.normalizeDenom(coinMinimalDenom);
432
+ const currency = this.findCurrencyWithoutReaction(
433
+ normalizedCoinMinimalDenom
434
+ );
400
435
  if (!currency) {
401
436
  // ref을 유지하기 위해서 cache를 사용한다.
402
- if (forceFindCurrencyCache.has(coinMinimalDenom)) {
403
- return forceFindCurrencyCache.get(coinMinimalDenom)!;
437
+ if (forceFindCurrencyCache.has(normalizedCoinMinimalDenom)) {
438
+ return forceFindCurrencyCache.get(normalizedCoinMinimalDenom)!;
404
439
  }
405
440
  const cur = {
406
- coinMinimalDenom,
407
- coinDenom: coinMinimalDenom,
441
+ coinMinimalDenom: normalizedCoinMinimalDenom,
442
+ coinDenom: normalizedCoinMinimalDenom,
408
443
  coinDecimals: 0,
409
444
  };
410
- forceFindCurrencyCache.set(coinMinimalDenom, cur);
445
+ forceFindCurrencyCache.set(normalizedCoinMinimalDenom, cur);
411
446
  return cur;
412
447
  }
413
448
  return currency;
@@ -415,9 +450,12 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
415
450
 
416
451
  @action
417
452
  protected addOrReplaceCurrency(currency: AppCurrency) {
418
- if (this.currencyMap.has(currency.coinMinimalDenom)) {
453
+ const normalizedCoinMinimalDenom = DenomHelper.normalizeDenom(
454
+ currency.coinMinimalDenom
455
+ );
456
+ if (this.currencyMap.has(normalizedCoinMinimalDenom)) {
419
457
  const index = this.registeredCurrencies.findIndex(
420
- (cur) => cur.coinMinimalDenom === currency.coinMinimalDenom
458
+ (cur) => cur.coinMinimalDenom === normalizedCoinMinimalDenom
421
459
  );
422
460
  if (index >= 0) {
423
461
  const prev = this.registeredCurrencies[index];
@@ -437,9 +475,12 @@ export class ChainInfoImpl<C extends ChainInfo = ChainInfo>
437
475
 
438
476
  @action
439
477
  protected addOrReplaceCurrencyNoReaction(currency: AppCurrency) {
440
- if (this.currencyNoReactionMap.has(currency.coinMinimalDenom)) {
478
+ const normalizedCoinMinimalDenom = DenomHelper.normalizeDenom(
479
+ currency.coinMinimalDenom
480
+ );
481
+ if (this.currencyNoReactionMap.has(normalizedCoinMinimalDenom)) {
441
482
  const index = this.registeredCurrenciesNoReaction.findIndex(
442
- (cur) => cur.coinMinimalDenom === currency.coinMinimalDenom
483
+ (cur) => cur.coinMinimalDenom === normalizedCoinMinimalDenom
443
484
  );
444
485
  if (index >= 0) {
445
486
  const prev = this.registeredCurrenciesNoReaction[index];
@@ -623,7 +664,10 @@ export class ModularChainInfoImpl<M extends ModularChainInfo = ModularChainInfo>
623
664
  }
624
665
 
625
666
  for (const currency of currencies) {
626
- if (!this.cosmosCurrencyMap.has(currency.coinMinimalDenom)) {
667
+ const normalizedCoinMinimalDenom = DenomHelper.normalizeDenom(
668
+ currency.coinMinimalDenom
669
+ );
670
+ if (!this.cosmosCurrencyMap.has(normalizedCoinMinimalDenom)) {
627
671
  this.registeredCosmosCurrencies.push(currency);
628
672
  }
629
673
  }
@@ -634,8 +678,11 @@ export class ModularChainInfoImpl<M extends ModularChainInfo = ModularChainInfo>
634
678
  }
635
679
 
636
680
  for (const currency of currencies) {
681
+ const normalizedCoinMinimalDenom = DenomHelper.normalizeDenom(
682
+ currency.coinMinimalDenom
683
+ );
637
684
  if (
638
- !this.starknetCurrencyMap.has(currency.coinMinimalDenom) &&
685
+ !this.starknetCurrencyMap.has(normalizedCoinMinimalDenom) &&
639
686
  "type" in currency &&
640
687
  currency.type === "erc20"
641
688
  ) {
@@ -649,7 +696,10 @@ export class ModularChainInfoImpl<M extends ModularChainInfo = ModularChainInfo>
649
696
  }
650
697
 
651
698
  for (const currency of currencies) {
652
- if (!this.bitcoinCurrencyMap.has(currency.coinMinimalDenom)) {
699
+ const normalizedCoinMinimalDenom = DenomHelper.normalizeDenom(
700
+ currency.coinMinimalDenom
701
+ );
702
+ if (!this.bitcoinCurrencyMap.has(normalizedCoinMinimalDenom)) {
653
703
  this.registeredBitcoinCurrencies.push(currency);
654
704
  }
655
705
  }