@keplr-wallet/stores 0.12.219 → 0.12.220

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.
@@ -299,8 +299,11 @@ class CosmosAccountImpl {
299
299
  msgs: aminoMsgs,
300
300
  memo: (0, common_1.escapeHTML)(memo),
301
301
  };
302
+ const chainInfo = this.chainGetter.getChain(this.chainId);
302
303
  const chainIsInjective = this.chainId.startsWith("injective");
303
304
  const chainIsStratos = this.chainId.startsWith("stratos");
305
+ const ethSignPlainJson = chainInfo.features &&
306
+ chainInfo.features.includes("evm-ledger-sign-plain-json");
304
307
  if (eip712Signing) {
305
308
  if (chainIsInjective) {
306
309
  // Due to injective's problem, it should exist if injective with ledger.
@@ -312,7 +315,14 @@ class CosmosAccountImpl {
312
315
  // If not injective (evmos), they require fee payer.
313
316
  // XXX: "feePayer" should be "payer". But, it maybe from ethermint team's mistake.
314
317
  // That means this part is not standard.
315
- signDocRaw.fee = Object.assign(Object.assign({}, signDocRaw.fee), { feePayer: this.base.bech32Address });
318
+ signDocRaw.fee = Object.assign(Object.assign({}, signDocRaw.fee), (() => {
319
+ if (ethSignPlainJson) {
320
+ return {};
321
+ }
322
+ return {
323
+ feePayer: this.base.bech32Address,
324
+ };
325
+ })());
316
326
  }
317
327
  }
318
328
  const signDoc = (0, common_1.sortObjectByKey)(signDocRaw);
@@ -331,7 +341,7 @@ class CosmosAccountImpl {
331
341
  if (!eip712Signing) {
332
342
  return yield signAmino(this.chainId, this.base.bech32Address, signDoc, signOptions);
333
343
  }
334
- return yield experimentalSignEIP712CosmosTx_v0(this.chainId, this.base.bech32Address, (0, utils_1.getEip712TypedDataBasedOnChainId)(this.chainId, msgs), signDoc, signOptions);
344
+ return yield experimentalSignEIP712CosmosTx_v0(this.chainId, this.base.bech32Address, (0, utils_1.getEip712TypedDataBasedOnChainInfo)(this.chainGetter.getChain(this.chainId), msgs), signDoc, signOptions);
335
345
  }))();
336
346
  return {
337
347
  tx: tx_1.TxRaw.encode({
@@ -339,7 +349,7 @@ class CosmosAccountImpl {
339
349
  messages: protoMsgs,
340
350
  timeoutHeight: signResponse.signed.timeout_height,
341
351
  memo: signResponse.signed.memo,
342
- extensionOptions: eip712Signing
352
+ extensionOptions: eip712Signing && !ethSignPlainJson
343
353
  ? [
344
354
  {
345
355
  typeUrl: (() => {
@@ -375,6 +385,9 @@ class CosmosAccountImpl {
375
385
  if (chainIsStratos) {
376
386
  return "/stratos.crypto.v1.ethsecp256k1.PubKey";
377
387
  }
388
+ if (ethSignPlainJson) {
389
+ return "/initia.crypto.v1beta1.ethsecp256k1.PubKey";
390
+ }
378
391
  return "/ethermint.crypto.v1.ethsecp256k1.PubKey";
379
392
  })(),
380
393
  value: keys_1.PubKey.encode({
@@ -383,7 +396,9 @@ class CosmosAccountImpl {
383
396
  },
384
397
  modeInfo: {
385
398
  single: {
386
- mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,
399
+ mode: !ethSignPlainJson
400
+ ? signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON
401
+ : signing_1.SignMode.SIGN_MODE_EIP_191,
387
402
  },
388
403
  multi: undefined,
389
404
  },
@@ -393,7 +408,7 @@ class CosmosAccountImpl {
393
408
  fee: tx_1.Fee.fromPartial({
394
409
  amount: signResponse.signed.fee.amount,
395
410
  gasLimit: signResponse.signed.fee.gas,
396
- payer: eip712Signing && !chainIsInjective
411
+ payer: eip712Signing && !chainIsInjective && !ethSignPlainJson
397
412
  ? // Fee delegation feature not yet supported. But, for eip712 ethermint signing, we must set fee payer.
398
413
  signResponse.signed.fee.feePayer
399
414
  : undefined,
@@ -401,7 +416,7 @@ class CosmosAccountImpl {
401
416
  }).finish(),
402
417
  signatures:
403
418
  // Injective needs the signature in the signatures list even if eip712
404
- !eip712Signing || chainIsInjective
419
+ !eip712Signing || chainIsInjective || ethSignPlainJson
405
420
  ? [buffer_1.Buffer.from(signResponse.signature.signature, "base64")]
406
421
  : [new Uint8Array(0)],
407
422
  }).finish(),
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../src/account/cosmos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../src/account/cosmos.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ProtoMsgsOrWithAminoMsgs } from "./types";
2
+ import { ChainInfo } from "@keplr-wallet/types";
2
3
  export declare function txEventsWithPreOnFulfill(onTxEvents: ((tx: any) => void) | {
3
4
  onBroadcasted?: (txHash: Uint8Array) => void;
4
5
  onFulfill?: (tx: any) => void;
@@ -11,7 +12,7 @@ export declare function txEventsWithPreOnFulfill(onTxEvents: ((tx: any) => void)
11
12
  onBroadcasted?: (txHash: Uint8Array) => void;
12
13
  onFulfill?: (tx: any) => void;
13
14
  } | undefined;
14
- export declare const getEip712TypedDataBasedOnChainId: (chainId: string, msgs: ProtoMsgsOrWithAminoMsgs) => {
15
+ export declare const getEip712TypedDataBasedOnChainInfo: (chainInfo: ChainInfo, msgs: ProtoMsgsOrWithAminoMsgs) => {
15
16
  types: Record<string, {
16
17
  name: string;
17
18
  type: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEip712TypedDataBasedOnChainId = exports.txEventsWithPreOnFulfill = void 0;
3
+ exports.getEip712TypedDataBasedOnChainInfo = exports.txEventsWithPreOnFulfill = void 0;
4
4
  const cosmos_1 = require("@keplr-wallet/cosmos");
5
5
  function txEventsWithPreOnFulfill(onTxEvents, preOnTxEvents) {
6
6
  const onBroadcasted = onTxEvents
@@ -50,9 +50,11 @@ function txEventsWithPreOnFulfill(onTxEvents, preOnTxEvents) {
50
50
  };
51
51
  }
52
52
  exports.txEventsWithPreOnFulfill = txEventsWithPreOnFulfill;
53
- const getEip712TypedDataBasedOnChainId = (chainId, msgs) => {
53
+ const getEip712TypedDataBasedOnChainInfo = (chainInfo, msgs) => {
54
+ const chainId = chainInfo.chainId;
54
55
  const chainIsInjective = chainId.startsWith("injective");
55
- const { ethChainId } = cosmos_1.EthermintChainIdHelper.parse(chainId);
56
+ const signPlainJSON = chainInfo.features &&
57
+ chainInfo.features.includes("evm-ledger-sign-plain-json");
56
58
  const types = {
57
59
  types: Object.assign({ EIP712Domain: [
58
60
  { name: "name", type: "string" },
@@ -70,7 +72,7 @@ const getEip712TypedDataBasedOnChainId = (chainId, msgs) => {
70
72
  { name: "msgs", type: "Msg[]" },
71
73
  { name: "sequence", type: "string" },
72
74
  ], Fee: [
73
- { name: "feePayer", type: "string" },
75
+ ...(signPlainJSON ? [] : [{ name: "feePayer", type: "string" }]),
74
76
  { name: "amount", type: "Coin[]" },
75
77
  { name: "gas", type: "string" },
76
78
  ], Coin: [
@@ -83,7 +85,10 @@ const getEip712TypedDataBasedOnChainId = (chainId, msgs) => {
83
85
  domain: {
84
86
  name: "Cosmos Web3",
85
87
  version: "1.0.0",
86
- chainId: ethChainId.toString(),
88
+ // signPlainJSON일때 밑의 값은 사실 사용되지 않으므로 대강 처리
89
+ chainId: signPlainJSON
90
+ ? 9999
91
+ : cosmos_1.EthermintChainIdHelper.parse(chainId).ethChainId.toString(),
87
92
  verifyingContract: "cosmos",
88
93
  salt: "0",
89
94
  },
@@ -97,7 +102,8 @@ const getEip712TypedDataBasedOnChainId = (chainId, msgs) => {
97
102
  { name: "timeout_height", type: "string" },
98
103
  ];
99
104
  types.domain.name = "Injective Web3";
100
- types.domain.chainId = "0x" + ethChainId.toString(16);
105
+ types.domain.chainId =
106
+ "0x" + cosmos_1.EthermintChainIdHelper.parse(chainId).ethChainId.toString(16);
101
107
  types.types.Fee = [
102
108
  { name: "amount", type: "Coin[]" },
103
109
  { name: "gas", type: "string" },
@@ -107,5 +113,5 @@ const getEip712TypedDataBasedOnChainId = (chainId, msgs) => {
107
113
  // Return default types for Evmos
108
114
  return types;
109
115
  };
110
- exports.getEip712TypedDataBasedOnChainId = getEip712TypedDataBasedOnChainId;
116
+ exports.getEip712TypedDataBasedOnChainInfo = getEip712TypedDataBasedOnChainInfo;
111
117
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/account/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/account/utils.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,27 @@ import { AppCurrency, Currency } from "@keplr-wallet/types";
2
2
  import { ChainStore } from "../chain";
3
3
  import { KVStore } from "@keplr-wallet/common";
4
4
  import { IQueriesStore } from "../query";
5
+ type Cache = {
6
+ notFound: undefined;
7
+ currency: Currency;
8
+ timestamp: number;
9
+ } | {
10
+ notFound: true;
11
+ timestamp: number;
12
+ };
5
13
  export declare class TokenFactoryCurrencyRegistrar {
6
14
  protected readonly kvStore: KVStore;
7
15
  protected readonly cacheDuration: number;
16
+ protected readonly failedCacheDuration: number;
8
17
  protected readonly baseURL: string;
9
18
  protected readonly uri: string;
10
19
  protected readonly chainStore: ChainStore;
11
20
  protected readonly queriesStore: IQueriesStore;
12
21
  _isInitialized: boolean;
13
- protected cache: Map<string, {
14
- currency: Currency;
15
- timestamp: number;
16
- }>;
22
+ protected cache: Map<string, Cache>;
23
+ protected staledCache: Map<string, Cache>;
17
24
  constructor(kvStore: KVStore, cacheDuration: number, // 1 days
25
+ failedCacheDuration: number, // 1 hours
18
26
  baseURL: string, uri: string, chainStore: ChainStore, queriesStore: IQueriesStore);
19
27
  init(): Promise<void>;
20
28
  get isInitialized(): boolean;
@@ -22,4 +30,16 @@ export declare class TokenFactoryCurrencyRegistrar {
22
30
  value: AppCurrency | undefined;
23
31
  done: boolean;
24
32
  } | undefined;
33
+ protected getCurrency(chainId: string, coinMinimalDenom: string): {
34
+ res: Currency | undefined;
35
+ isFetching: boolean;
36
+ fromCache: boolean;
37
+ notFound: boolean;
38
+ };
39
+ protected getCacheCurrency(chainId: string, coinMinimalDenom: string): {
40
+ res: Cache | undefined;
41
+ staled: boolean;
42
+ };
43
+ protected setCache(chainId: string, coinMinimalDenom: string, cache: Cache): void;
25
44
  }
45
+ export {};
@@ -18,39 +18,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.TokenFactoryCurrencyRegistrar = void 0;
19
19
  const common_1 = require("@keplr-wallet/common");
20
20
  const mobx_1 = require("mobx");
21
+ const cosmos_1 = require("@keplr-wallet/cosmos");
21
22
  class TokenFactoryCurrencyRegistrar {
22
23
  constructor(kvStore, cacheDuration = 24 * 3600 * 1000, // 1 days
24
+ failedCacheDuration = 1 * 3600 * 1000, // 1 hours
23
25
  baseURL, uri, chainStore, queriesStore) {
24
26
  this.kvStore = kvStore;
25
27
  this.cacheDuration = cacheDuration;
28
+ this.failedCacheDuration = failedCacheDuration;
26
29
  this.baseURL = baseURL;
27
30
  this.uri = uri;
28
31
  this.chainStore = chainStore;
29
32
  this.queriesStore = queriesStore;
30
33
  this._isInitialized = false;
31
34
  this.cache = new Map();
35
+ this.staledCache = new Map();
32
36
  this.chainStore.registerCurrencyRegistrar(this.currencyRegistrar.bind(this));
33
37
  (0, mobx_1.makeObservable)(this);
34
38
  this.init();
35
39
  }
36
40
  init() {
37
41
  return __awaiter(this, void 0, void 0, function* () {
38
- const key = `cache-token-factory-registrar`;
39
- const saved = yield this.kvStore.get(key);
42
+ const dbKey = `cache-token-factory-registrar`;
43
+ const saved = yield this.kvStore.get(dbKey);
40
44
  if (saved) {
41
- (0, mobx_1.runInAction)(() => {
42
- for (const [key, value] of Object.entries(saved)) {
43
- if (Date.now() - value.timestamp < this.cacheDuration) {
44
- this.cache.set(key, value);
45
- }
46
- }
47
- });
45
+ for (const [key, value] of Object.entries(saved)) {
46
+ this.cache.set(key, value);
47
+ }
48
48
  }
49
- (0, mobx_1.autorun)(() => {
50
- const js = (0, mobx_1.toJS)(this.cache);
51
- const obj = Object.fromEntries(js);
52
- this.kvStore.set(key, obj);
53
- });
54
49
  (0, mobx_1.runInAction)(() => {
55
50
  this._isInitialized = true;
56
51
  });
@@ -71,62 +66,152 @@ class TokenFactoryCurrencyRegistrar {
71
66
  !denomHelper.denom.startsWith("factory/")) {
72
67
  return;
73
68
  }
74
- const cached = this.cache.get(coinMinimalDenom);
69
+ if (!this.isInitialized) {
70
+ return {
71
+ value: undefined,
72
+ done: false,
73
+ };
74
+ }
75
+ let isGlobalFetching = false;
76
+ const res = this.getCurrency(chainId, coinMinimalDenom);
77
+ if (res.isFetching) {
78
+ isGlobalFetching = true;
79
+ }
80
+ const currency = res.res;
81
+ if (!res.isFetching && !res.fromCache) {
82
+ if (currency) {
83
+ this.setCache(chainId, coinMinimalDenom, {
84
+ notFound: undefined,
85
+ currency,
86
+ timestamp: Date.now(),
87
+ });
88
+ }
89
+ else if (res.notFound) {
90
+ this.setCache(chainId, coinMinimalDenom, {
91
+ notFound: true,
92
+ timestamp: Date.now(),
93
+ });
94
+ }
95
+ }
96
+ if (currency) {
97
+ return {
98
+ value: Object.assign({}, currency),
99
+ done: !isGlobalFetching,
100
+ };
101
+ }
102
+ else {
103
+ return {
104
+ value: undefined,
105
+ done: !isGlobalFetching,
106
+ };
107
+ }
108
+ }
109
+ getCurrency(chainId, coinMinimalDenom) {
110
+ var _a;
111
+ const { res: cached, staled } = this.getCacheCurrency(chainId, coinMinimalDenom);
75
112
  if (cached) {
76
- if (Date.now() - cached.timestamp < this.cacheDuration) {
113
+ if (cached.notFound) {
77
114
  return {
78
- value: Object.assign(Object.assign({}, cached.currency), { coinMinimalDenom: denomHelper.denom }),
79
- done: true,
115
+ res: undefined,
116
+ isFetching: false,
117
+ fromCache: true,
118
+ notFound: true,
80
119
  };
81
120
  }
82
- else {
83
- (0, mobx_1.runInAction)(() => {
84
- this.cache.delete(coinMinimalDenom);
85
- });
121
+ if (!staled) {
122
+ return {
123
+ res: cached.currency,
124
+ isFetching: false,
125
+ fromCache: true,
126
+ notFound: false,
127
+ };
86
128
  }
87
129
  }
88
130
  const queryCurrency = this.queriesStore.simpleQuery.queryGet(this.baseURL, this.uri
89
131
  .replace("{chainId}", chainId)
90
132
  .replace("{denom}", encodeURIComponent(coinMinimalDenom)));
133
+ let isGlobalFetching = false;
134
+ const cahedRes = cached ? cached.currency : undefined;
135
+ if (queryCurrency.isFetching) {
136
+ isGlobalFetching = true;
137
+ }
91
138
  if (queryCurrency.response) {
92
139
  if (queryCurrency.response.data.coinMinimalDenom !== coinMinimalDenom) {
93
140
  return {
94
- value: undefined,
95
- done: true,
141
+ res: undefined,
142
+ isFetching: isGlobalFetching,
143
+ fromCache: false,
144
+ notFound: true,
96
145
  };
97
146
  }
98
- if (!queryCurrency.isFetching) {
99
- (0, mobx_1.runInAction)(() => {
100
- if (queryCurrency.response) {
101
- this.cache.set(coinMinimalDenom, {
102
- currency: queryCurrency.response.data,
103
- timestamp: Date.now(),
104
- });
105
- }
106
- });
107
- }
108
147
  return {
109
- value: Object.assign(Object.assign({}, queryCurrency.response.data), { coinMinimalDenom: denomHelper.denom }),
110
- done: !queryCurrency.isFetching,
148
+ res: queryCurrency.response.data,
149
+ isFetching: isGlobalFetching,
150
+ fromCache: false,
151
+ notFound: false,
111
152
  };
112
153
  }
113
- if (queryCurrency.isFetching) {
154
+ else {
155
+ const notFound = ((_a = queryCurrency.error) === null || _a === void 0 ? void 0 : _a.status) === 404;
114
156
  return {
115
- value: undefined,
116
- done: false,
157
+ res: notFound ? undefined : cahedRes,
158
+ isFetching: isGlobalFetching,
159
+ fromCache: false,
160
+ notFound,
117
161
  };
118
162
  }
163
+ }
164
+ getCacheCurrency(chainId, coinMinimalDenom) {
165
+ const key = `${cosmos_1.ChainIdHelper.parse(chainId).identifier}/${coinMinimalDenom}`;
166
+ let res = this.cache.get(key) || this.staledCache.get(key);
167
+ let staled = false;
168
+ if (res) {
169
+ if (res.notFound) {
170
+ if (Date.now() - res.timestamp > this.failedCacheDuration) {
171
+ this.cache.delete(key);
172
+ {
173
+ const dbKey = `cache-token-factory-registrar`;
174
+ const obj = Object.fromEntries(this.cache);
175
+ this.kvStore.set(dbKey, obj);
176
+ }
177
+ res = undefined;
178
+ staled = false;
179
+ }
180
+ }
181
+ else if (Date.now() - res.timestamp > this.cacheDuration) {
182
+ this.cache.delete(key);
183
+ const savedStaled = this.staledCache.has(key);
184
+ if (!savedStaled) {
185
+ {
186
+ const dbKey = `cache-token-factory-registrar`;
187
+ const obj = Object.fromEntries(this.cache);
188
+ this.kvStore.set(dbKey, obj);
189
+ }
190
+ this.staledCache.set(key, res);
191
+ }
192
+ staled = true;
193
+ }
194
+ }
119
195
  return {
120
- value: undefined,
121
- done: true,
196
+ res,
197
+ staled,
122
198
  };
123
199
  }
200
+ setCache(chainId, coinMinimalDenom, cache) {
201
+ const key = `${cosmos_1.ChainIdHelper.parse(chainId).identifier}/${coinMinimalDenom}`;
202
+ this.cache.set(key, cache);
203
+ {
204
+ const dbKey = `cache-token-factory-registrar`;
205
+ const obj = Object.fromEntries(this.cache);
206
+ this.kvStore.set(dbKey, obj);
207
+ }
208
+ if (this.staledCache.has(key)) {
209
+ this.staledCache.set(key, cache);
210
+ }
211
+ }
124
212
  }
125
213
  __decorate([
126
214
  mobx_1.observable
127
215
  ], TokenFactoryCurrencyRegistrar.prototype, "_isInitialized", void 0);
128
- __decorate([
129
- mobx_1.observable.shallow
130
- ], TokenFactoryCurrencyRegistrar.prototype, "cache", void 0);
131
216
  exports.TokenFactoryCurrencyRegistrar = TokenFactoryCurrencyRegistrar;
132
217
  //# sourceMappingURL=currency-registrar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currency-registrar.js","sourceRoot":"","sources":["../../src/token-factory/currency-registrar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"currency-registrar.js","sourceRoot":"","sources":["../../src/token-factory/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",
3
- "version": "0.12.219",
3
+ "version": "0.12.220",
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.219"
19
+ "@keplr-wallet/provider-mock": "0.12.220"
20
20
  },
21
21
  "dependencies": {
22
- "@keplr-wallet/common": "0.12.219",
23
- "@keplr-wallet/cosmos": "0.12.219",
24
- "@keplr-wallet/crypto": "0.12.219",
25
- "@keplr-wallet/mobx-utils": "0.12.219",
26
- "@keplr-wallet/proto-types": "0.12.219",
27
- "@keplr-wallet/simple-fetch": "0.12.219",
28
- "@keplr-wallet/types": "0.12.219",
29
- "@keplr-wallet/unit": "0.12.219",
22
+ "@keplr-wallet/common": "0.12.220",
23
+ "@keplr-wallet/cosmos": "0.12.220",
24
+ "@keplr-wallet/crypto": "0.12.220",
25
+ "@keplr-wallet/mobx-utils": "0.12.220",
26
+ "@keplr-wallet/proto-types": "0.12.220",
27
+ "@keplr-wallet/simple-fetch": "0.12.220",
28
+ "@keplr-wallet/types": "0.12.220",
29
+ "@keplr-wallet/unit": "0.12.220",
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": "247d0648bf47b524a89e63a499030c6d2b566407"
41
+ "gitHead": "b6cd2be2b197b8665111d6094e173a9fee2ca456"
42
42
  }
@@ -50,7 +50,7 @@ import {
50
50
  ProtoMsgsOrWithAminoMsgs,
51
51
  } from "./types";
52
52
  import {
53
- getEip712TypedDataBasedOnChainId,
53
+ getEip712TypedDataBasedOnChainInfo,
54
54
  txEventsWithPreOnFulfill,
55
55
  } from "./utils";
56
56
  import { ExtensionOptionsWeb3Tx } from "@keplr-wallet/proto-types/ethermint/types/v1/web3";
@@ -465,8 +465,12 @@ export class CosmosAccountImpl {
465
465
  memo: escapeHTML(memo),
466
466
  };
467
467
 
468
+ const chainInfo = this.chainGetter.getChain(this.chainId);
468
469
  const chainIsInjective = this.chainId.startsWith("injective");
469
470
  const chainIsStratos = this.chainId.startsWith("stratos");
471
+ const ethSignPlainJson: boolean =
472
+ chainInfo.features &&
473
+ chainInfo.features.includes("evm-ledger-sign-plain-json");
470
474
 
471
475
  if (eip712Signing) {
472
476
  if (chainIsInjective) {
@@ -480,7 +484,14 @@ export class CosmosAccountImpl {
480
484
  // That means this part is not standard.
481
485
  (signDocRaw as Mutable<StdSignDoc>).fee = {
482
486
  ...signDocRaw.fee,
483
- feePayer: this.base.bech32Address,
487
+ ...(() => {
488
+ if (ethSignPlainJson) {
489
+ return {};
490
+ }
491
+ return {
492
+ feePayer: this.base.bech32Address,
493
+ };
494
+ })(),
484
495
  };
485
496
  }
486
497
  }
@@ -514,7 +525,10 @@ export class CosmosAccountImpl {
514
525
  return await experimentalSignEIP712CosmosTx_v0(
515
526
  this.chainId,
516
527
  this.base.bech32Address,
517
- getEip712TypedDataBasedOnChainId(this.chainId, msgs),
528
+ getEip712TypedDataBasedOnChainInfo(
529
+ this.chainGetter.getChain(this.chainId),
530
+ msgs
531
+ ),
518
532
  signDoc,
519
533
  signOptions
520
534
  );
@@ -527,35 +541,36 @@ export class CosmosAccountImpl {
527
541
  messages: protoMsgs,
528
542
  timeoutHeight: signResponse.signed.timeout_height,
529
543
  memo: signResponse.signed.memo,
530
- extensionOptions: eip712Signing
531
- ? [
532
- {
533
- typeUrl: (() => {
534
- if (chainIsInjective) {
535
- return "/injective.types.v1beta1.ExtensionOptionsWeb3Tx";
536
- }
537
-
538
- return "/ethermint.types.v1.ExtensionOptionsWeb3Tx";
539
- })(),
540
- value: ExtensionOptionsWeb3Tx.encode(
541
- ExtensionOptionsWeb3Tx.fromPartial({
542
- typedDataChainId: EthermintChainIdHelper.parse(
543
- this.chainId
544
- ).ethChainId.toString(),
545
- feePayer: !chainIsInjective
546
- ? signResponse.signed.fee.feePayer
547
- : undefined,
548
- feePayerSig: !chainIsInjective
549
- ? Buffer.from(
550
- signResponse.signature.signature,
551
- "base64"
552
- )
553
- : undefined,
554
- })
555
- ).finish(),
556
- },
557
- ]
558
- : undefined,
544
+ extensionOptions:
545
+ eip712Signing && !ethSignPlainJson
546
+ ? [
547
+ {
548
+ typeUrl: (() => {
549
+ if (chainIsInjective) {
550
+ return "/injective.types.v1beta1.ExtensionOptionsWeb3Tx";
551
+ }
552
+
553
+ return "/ethermint.types.v1.ExtensionOptionsWeb3Tx";
554
+ })(),
555
+ value: ExtensionOptionsWeb3Tx.encode(
556
+ ExtensionOptionsWeb3Tx.fromPartial({
557
+ typedDataChainId: EthermintChainIdHelper.parse(
558
+ this.chainId
559
+ ).ethChainId.toString(),
560
+ feePayer: !chainIsInjective
561
+ ? signResponse.signed.fee.feePayer
562
+ : undefined,
563
+ feePayerSig: !chainIsInjective
564
+ ? Buffer.from(
565
+ signResponse.signature.signature,
566
+ "base64"
567
+ )
568
+ : undefined,
569
+ })
570
+ ).finish(),
571
+ },
572
+ ]
573
+ : undefined,
559
574
  })
560
575
  ).finish(),
561
576
  authInfoBytes: AuthInfo.encode({
@@ -575,6 +590,9 @@ export class CosmosAccountImpl {
575
590
  return "/stratos.crypto.v1.ethsecp256k1.PubKey";
576
591
  }
577
592
 
593
+ if (ethSignPlainJson) {
594
+ return "/initia.crypto.v1beta1.ethsecp256k1.PubKey";
595
+ }
578
596
  return "/ethermint.crypto.v1.ethsecp256k1.PubKey";
579
597
  })(),
580
598
  value: PubKey.encode({
@@ -586,7 +604,9 @@ export class CosmosAccountImpl {
586
604
  },
587
605
  modeInfo: {
588
606
  single: {
589
- mode: SignMode.SIGN_MODE_LEGACY_AMINO_JSON,
607
+ mode: !ethSignPlainJson
608
+ ? SignMode.SIGN_MODE_LEGACY_AMINO_JSON
609
+ : SignMode.SIGN_MODE_EIP_191,
590
610
  },
591
611
  multi: undefined,
592
612
  },
@@ -597,7 +617,7 @@ export class CosmosAccountImpl {
597
617
  amount: signResponse.signed.fee.amount as Coin[],
598
618
  gasLimit: signResponse.signed.fee.gas,
599
619
  payer:
600
- eip712Signing && !chainIsInjective
620
+ eip712Signing && !chainIsInjective && !ethSignPlainJson
601
621
  ? // Fee delegation feature not yet supported. But, for eip712 ethermint signing, we must set fee payer.
602
622
  signResponse.signed.fee.feePayer
603
623
  : undefined,
@@ -605,7 +625,7 @@ export class CosmosAccountImpl {
605
625
  }).finish(),
606
626
  signatures:
607
627
  // Injective needs the signature in the signatures list even if eip712
608
- !eip712Signing || chainIsInjective
628
+ !eip712Signing || chainIsInjective || ethSignPlainJson
609
629
  ? [Buffer.from(signResponse.signature.signature, "base64")]
610
630
  : [new Uint8Array(0)],
611
631
  }).finish(),
@@ -1,5 +1,6 @@
1
1
  import { EthermintChainIdHelper } from "@keplr-wallet/cosmos";
2
2
  import { ProtoMsgsOrWithAminoMsgs } from "./types";
3
+ import { ChainInfo } from "@keplr-wallet/types";
3
4
 
4
5
  export function txEventsWithPreOnFulfill(
5
6
  onTxEvents:
@@ -78,16 +79,19 @@ export function txEventsWithPreOnFulfill(
78
79
  };
79
80
  }
80
81
 
81
- export const getEip712TypedDataBasedOnChainId = (
82
- chainId: string,
82
+ export const getEip712TypedDataBasedOnChainInfo = (
83
+ chainInfo: ChainInfo,
83
84
  msgs: ProtoMsgsOrWithAminoMsgs
84
85
  ): {
85
86
  types: Record<string, { name: string; type: string }[] | undefined>;
86
87
  domain: Record<string, any>;
87
88
  primaryType: string;
88
89
  } => {
90
+ const chainId = chainInfo.chainId;
89
91
  const chainIsInjective = chainId.startsWith("injective");
90
- const { ethChainId } = EthermintChainIdHelper.parse(chainId);
92
+ const signPlainJSON =
93
+ chainInfo.features &&
94
+ chainInfo.features.includes("evm-ledger-sign-plain-json");
91
95
 
92
96
  const types = {
93
97
  types: {
@@ -109,7 +113,7 @@ export const getEip712TypedDataBasedOnChainId = (
109
113
  { name: "sequence", type: "string" },
110
114
  ],
111
115
  Fee: [
112
- { name: "feePayer", type: "string" },
116
+ ...(signPlainJSON ? [] : [{ name: "feePayer", type: "string" }]),
113
117
  { name: "amount", type: "Coin[]" },
114
118
  { name: "gas", type: "string" },
115
119
  ],
@@ -126,7 +130,10 @@ export const getEip712TypedDataBasedOnChainId = (
126
130
  domain: {
127
131
  name: "Cosmos Web3",
128
132
  version: "1.0.0",
129
- chainId: ethChainId.toString(),
133
+ // signPlainJSON일때 밑의 값은 사실 사용되지 않으므로 대강 처리
134
+ chainId: signPlainJSON
135
+ ? 9999
136
+ : EthermintChainIdHelper.parse(chainId).ethChainId.toString(),
130
137
  verifyingContract: "cosmos",
131
138
  salt: "0",
132
139
  },
@@ -141,7 +148,8 @@ export const getEip712TypedDataBasedOnChainId = (
141
148
  { name: "timeout_height", type: "string" },
142
149
  ];
143
150
  types.domain.name = "Injective Web3";
144
- types.domain.chainId = "0x" + ethChainId.toString(16);
151
+ types.domain.chainId =
152
+ "0x" + EthermintChainIdHelper.parse(chainId).ethChainId.toString(16);
145
153
  types.types.Fee = [
146
154
  { name: "amount", type: "Coin[]" },
147
155
  { name: "gas", type: "string" },
@@ -1,25 +1,32 @@
1
1
  import { AppCurrency, Currency } from "@keplr-wallet/types";
2
2
  import { ChainStore } from "../chain";
3
3
  import { DenomHelper, KVStore } from "@keplr-wallet/common";
4
- import { autorun, makeObservable, observable, runInAction, toJS } from "mobx";
4
+ import { makeObservable, observable, runInAction } from "mobx";
5
5
  import { IQueriesStore } from "../query";
6
+ import { ChainIdHelper } from "@keplr-wallet/cosmos";
7
+
8
+ type Cache =
9
+ | {
10
+ notFound: undefined;
11
+ currency: Currency;
12
+ timestamp: number;
13
+ }
14
+ | {
15
+ notFound: true;
16
+ timestamp: number;
17
+ };
6
18
 
7
19
  export class TokenFactoryCurrencyRegistrar {
8
20
  @observable
9
21
  public _isInitialized = false;
10
22
 
11
- @observable.shallow
12
- protected cache: Map<
13
- string,
14
- {
15
- currency: Currency;
16
- timestamp: number;
17
- }
18
- > = new Map();
23
+ protected cache: Map<string, Cache> = new Map();
24
+ protected staledCache: Map<string, Cache> = new Map();
19
25
 
20
26
  constructor(
21
27
  protected readonly kvStore: KVStore,
22
28
  protected readonly cacheDuration: number = 24 * 3600 * 1000, // 1 days
29
+ protected readonly failedCacheDuration: number = 1 * 3600 * 1000, // 1 hours
23
30
  protected readonly baseURL: string,
24
31
  protected readonly uri: string,
25
32
  protected readonly chainStore: ChainStore,
@@ -35,40 +42,14 @@ export class TokenFactoryCurrencyRegistrar {
35
42
  }
36
43
 
37
44
  async init(): Promise<void> {
38
- const key = `cache-token-factory-registrar`;
39
- const saved = await this.kvStore.get<
40
- Record<
41
- string,
42
- {
43
- currency: Currency;
44
- timestamp: number;
45
- }
46
- >
47
- >(key);
45
+ const dbKey = `cache-token-factory-registrar`;
46
+ const saved = await this.kvStore.get<Record<string, Cache>>(dbKey);
48
47
  if (saved) {
49
- runInAction(() => {
50
- for (const [key, value] of Object.entries(saved)) {
51
- if (Date.now() - value.timestamp < this.cacheDuration) {
52
- this.cache.set(key, value);
53
- }
54
- }
55
- });
48
+ for (const [key, value] of Object.entries(saved)) {
49
+ this.cache.set(key, value);
50
+ }
56
51
  }
57
52
 
58
- autorun(() => {
59
- const js = toJS(this.cache);
60
- const obj = Object.fromEntries(js);
61
- this.kvStore.set<
62
- Record<
63
- string,
64
- {
65
- currency: Currency;
66
- timestamp: number;
67
- }
68
- >
69
- >(key, obj);
70
- });
71
-
72
53
  runInAction(() => {
73
54
  this._isInitialized = true;
74
55
  });
@@ -103,20 +84,77 @@ export class TokenFactoryCurrencyRegistrar {
103
84
  return;
104
85
  }
105
86
 
106
- const cached = this.cache.get(coinMinimalDenom);
87
+ if (!this.isInitialized) {
88
+ return {
89
+ value: undefined,
90
+ done: false,
91
+ };
92
+ }
93
+
94
+ let isGlobalFetching = false;
95
+ const res = this.getCurrency(chainId, coinMinimalDenom);
96
+ if (res.isFetching) {
97
+ isGlobalFetching = true;
98
+ }
99
+ const currency = res.res;
100
+ if (!res.isFetching && !res.fromCache) {
101
+ if (currency) {
102
+ this.setCache(chainId, coinMinimalDenom, {
103
+ notFound: undefined,
104
+ currency,
105
+ timestamp: Date.now(),
106
+ });
107
+ } else if (res.notFound) {
108
+ this.setCache(chainId, coinMinimalDenom, {
109
+ notFound: true,
110
+ timestamp: Date.now(),
111
+ });
112
+ }
113
+ }
114
+ if (currency) {
115
+ return {
116
+ value: {
117
+ ...currency,
118
+ },
119
+ done: !isGlobalFetching,
120
+ };
121
+ } else {
122
+ return {
123
+ value: undefined,
124
+ done: !isGlobalFetching,
125
+ };
126
+ }
127
+ }
128
+
129
+ protected getCurrency(
130
+ chainId: string,
131
+ coinMinimalDenom: string
132
+ ): {
133
+ res: Currency | undefined;
134
+ isFetching: boolean;
135
+ fromCache: boolean;
136
+ notFound: boolean;
137
+ } {
138
+ const { res: cached, staled } = this.getCacheCurrency(
139
+ chainId,
140
+ coinMinimalDenom
141
+ );
107
142
  if (cached) {
108
- if (Date.now() - cached.timestamp < this.cacheDuration) {
143
+ if (cached.notFound) {
109
144
  return {
110
- value: {
111
- ...cached.currency,
112
- coinMinimalDenom: denomHelper.denom,
113
- },
114
- done: true,
145
+ res: undefined,
146
+ isFetching: false,
147
+ fromCache: true,
148
+ notFound: true,
149
+ };
150
+ }
151
+ if (!staled) {
152
+ return {
153
+ res: cached.currency,
154
+ isFetching: false,
155
+ fromCache: true,
156
+ notFound: false,
115
157
  };
116
- } else {
117
- runInAction(() => {
118
- this.cache.delete(coinMinimalDenom);
119
- });
120
158
  }
121
159
  }
122
160
 
@@ -126,44 +164,105 @@ export class TokenFactoryCurrencyRegistrar {
126
164
  .replace("{chainId}", chainId)
127
165
  .replace("{denom}", encodeURIComponent(coinMinimalDenom))
128
166
  );
167
+
168
+ let isGlobalFetching = false;
169
+ const cahedRes: Currency | undefined = cached ? cached.currency : undefined;
170
+ if (queryCurrency.isFetching) {
171
+ isGlobalFetching = true;
172
+ }
173
+
129
174
  if (queryCurrency.response) {
130
175
  if (queryCurrency.response.data.coinMinimalDenom !== coinMinimalDenom) {
131
176
  return {
132
- value: undefined,
133
- done: true,
177
+ res: undefined,
178
+ isFetching: isGlobalFetching,
179
+ fromCache: false,
180
+ notFound: true,
134
181
  };
135
182
  }
136
183
 
137
- if (!queryCurrency.isFetching) {
138
- runInAction(() => {
139
- if (queryCurrency.response) {
140
- this.cache.set(coinMinimalDenom, {
141
- currency: queryCurrency.response.data,
142
- timestamp: Date.now(),
143
- });
144
- }
145
- });
146
- }
147
-
148
184
  return {
149
- value: {
150
- ...queryCurrency.response.data,
151
- coinMinimalDenom: denomHelper.denom,
152
- },
153
- done: !queryCurrency.isFetching,
185
+ res: queryCurrency.response.data,
186
+ isFetching: isGlobalFetching,
187
+ fromCache: false,
188
+ notFound: false,
154
189
  };
155
- }
156
-
157
- if (queryCurrency.isFetching) {
190
+ } else {
191
+ const notFound = queryCurrency.error?.status === 404;
158
192
  return {
159
- value: undefined,
160
- done: false,
193
+ res: notFound ? undefined : cahedRes,
194
+ isFetching: isGlobalFetching,
195
+ fromCache: false,
196
+ notFound,
161
197
  };
162
198
  }
199
+ }
200
+
201
+ protected getCacheCurrency(
202
+ chainId: string,
203
+ coinMinimalDenom: string
204
+ ): { res: Cache | undefined; staled: boolean } {
205
+ const key = `${
206
+ ChainIdHelper.parse(chainId).identifier
207
+ }/${coinMinimalDenom}`;
208
+
209
+ let res = this.cache.get(key) || this.staledCache.get(key);
210
+ let staled = false;
211
+
212
+ if (res) {
213
+ if (res.notFound) {
214
+ if (Date.now() - res.timestamp > this.failedCacheDuration) {
215
+ this.cache.delete(key);
216
+ {
217
+ const dbKey = `cache-token-factory-registrar`;
218
+ const obj = Object.fromEntries(this.cache);
219
+ this.kvStore.set<Record<string, Cache>>(dbKey, obj);
220
+ }
221
+ res = undefined;
222
+ staled = false;
223
+ }
224
+ } else if (Date.now() - res.timestamp > this.cacheDuration) {
225
+ this.cache.delete(key);
226
+
227
+ const savedStaled = this.staledCache.has(key);
228
+ if (!savedStaled) {
229
+ {
230
+ const dbKey = `cache-token-factory-registrar`;
231
+ const obj = Object.fromEntries(this.cache);
232
+ this.kvStore.set<Record<string, Cache>>(dbKey, obj);
233
+ }
234
+
235
+ this.staledCache.set(key, res);
236
+ }
237
+
238
+ staled = true;
239
+ }
240
+ }
163
241
 
164
242
  return {
165
- value: undefined,
166
- done: true,
243
+ res,
244
+ staled,
167
245
  };
168
246
  }
247
+
248
+ protected setCache(
249
+ chainId: string,
250
+ coinMinimalDenom: string,
251
+ cache: Cache
252
+ ): void {
253
+ const key = `${
254
+ ChainIdHelper.parse(chainId).identifier
255
+ }/${coinMinimalDenom}`;
256
+
257
+ this.cache.set(key, cache);
258
+ {
259
+ const dbKey = `cache-token-factory-registrar`;
260
+ const obj = Object.fromEntries(this.cache);
261
+ this.kvStore.set<Record<string, Cache>>(dbKey, obj);
262
+ }
263
+
264
+ if (this.staledCache.has(key)) {
265
+ this.staledCache.set(key, cache);
266
+ }
267
+ }
169
268
  }