@keplr-wallet/stores-core 0.12.132 → 0.12.133-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.
@@ -4,3 +4,4 @@ export * from "./sign";
4
4
  export * from "./chain-suggest";
5
5
  export * from "./icns";
6
6
  export * from "./eth-sign";
7
+ export * from "./starknet-sign-tx";
@@ -20,4 +20,5 @@ __exportStar(require("./sign"), exports);
20
20
  __exportStar(require("./chain-suggest"), exports);
21
21
  __exportStar(require("./icns"), exports);
22
22
  __exportStar(require("./eth-sign"), exports);
23
+ __exportStar(require("./starknet-sign-tx"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/interaction/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,yCAAuB;AACvB,kDAAgC;AAChC,yCAAuB;AACvB,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/interaction/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,yCAAuB;AACvB,kDAAgC;AAChC,yCAAuB;AACvB,6CAA2B;AAC3B,qDAAmC"}
@@ -15,6 +15,9 @@ export declare class PermissionStore {
15
15
  get waitingPermissionMergedDataForEVM(): ({
16
16
  ids: string[];
17
17
  } & PermissionData) | undefined;
18
+ get waitingPermissionMergedDataForStarknet(): ({
19
+ ids: string[];
20
+ } & PermissionData) | undefined;
18
21
  get waitingGlobalPermissionData(): import("@keplr-wallet/background").InteractionWaitingData<GlobalPermissionData> | undefined;
19
22
  get waitingGlobalPermissionDatas(): import("@keplr-wallet/background").InteractionWaitingData<GlobalPermissionData>[];
20
23
  approvePermissionWithProceedNext(id: string | string[], afterFn: (proceedNext: boolean) => void | Promise<void>, result?: string): Promise<void>;
@@ -35,7 +35,7 @@ class PermissionStore {
35
35
  return this.interactionStore.getAllData(background_1.INTERACTION_TYPE_PERMISSION);
36
36
  }
37
37
  get waitingPermissionMergedData() {
38
- const data = this.waitingPermissionDatas.filter((data) => { var _a; return !((_a = data.data.options) === null || _a === void 0 ? void 0 : _a.isForEVM); });
38
+ const data = this.waitingPermissionDatas.filter((data) => { var _a, _b; return !((_a = data.data.options) === null || _a === void 0 ? void 0 : _a.isForEVM) && !((_b = data.data.options) === null || _b === void 0 ? void 0 : _b.isForStarknet); });
39
39
  if (data.length === 0) {
40
40
  return;
41
41
  }
@@ -90,6 +90,34 @@ class PermissionStore {
90
90
  res.chainIds = [...new Set(res.chainIds)];
91
91
  return res;
92
92
  }
93
+ get waitingPermissionMergedDataForStarknet() {
94
+ const data = this.waitingPermissionDatas.filter((data) => { var _a; return !!((_a = data.data.options) === null || _a === void 0 ? void 0 : _a.isForStarknet); });
95
+ if (data.length === 0) {
96
+ return;
97
+ }
98
+ const first = data[0];
99
+ const res = {
100
+ ids: [first.id],
101
+ chainIds: first.data.chainIds,
102
+ type: first.data.type,
103
+ origins: first.data.origins,
104
+ options: first.data.options,
105
+ };
106
+ for (let i = 1; i < data.length; i++) {
107
+ const d = data[i];
108
+ if (d.data.type !== first.data.type) {
109
+ break;
110
+ }
111
+ if (d.data.origins.join(",") !== first.data.origins.join(",")) {
112
+ break;
113
+ }
114
+ res.ids.push(d.id);
115
+ res.chainIds.push(...d.data.chainIds);
116
+ }
117
+ // Remove duplicated chain ids.
118
+ res.chainIds = [...new Set(res.chainIds)];
119
+ return res;
120
+ }
93
121
  get waitingGlobalPermissionData() {
94
122
  if (this.waitingGlobalPermissionDatas.length > 0) {
95
123
  return this.waitingGlobalPermissionDatas[0];
@@ -145,5 +173,8 @@ __decorate([
145
173
  __decorate([
146
174
  mobx_1.computed
147
175
  ], PermissionStore.prototype, "waitingPermissionMergedDataForEVM", null);
176
+ __decorate([
177
+ mobx_1.computed
178
+ ], PermissionStore.prototype, "waitingPermissionMergedDataForStarknet", null);
148
179
  exports.PermissionStore = PermissionStore;
149
180
  //# sourceMappingURL=permission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/core/interaction/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/core/interaction/permission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { InteractionStore } from "./interaction";
2
+ import { Call, InvocationsSignerDetails } from "starknet";
3
+ export type SignStarknetTxInteractionData = {
4
+ origin: string;
5
+ vaultId: string;
6
+ chainId: string;
7
+ signer: string;
8
+ transactions: Call[];
9
+ details: InvocationsSignerDetails;
10
+ noChangeTx: boolean;
11
+ };
12
+ export declare class SignStarknetTxInteractionStore {
13
+ protected readonly interactionStore: InteractionStore;
14
+ constructor(interactionStore: InteractionStore);
15
+ get waitingDatas(): import("@keplr-wallet/background").InteractionWaitingData<SignStarknetTxInteractionData>[];
16
+ get waitingData(): import("@keplr-wallet/background").InteractionWaitingData<SignStarknetTxInteractionData> | undefined;
17
+ approveWithProceedNext(id: string, transactions: Call[], details: InvocationsSignerDetails, afterFn: (proceedNext: boolean) => void | Promise<void>, options?: {
18
+ preDelay?: number;
19
+ }): Promise<void>;
20
+ rejectWithProceedNext(id: string, afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
21
+ rejectAll(): Promise<void>;
22
+ isObsoleteInteraction(id: string | undefined): boolean;
23
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SignStarknetTxInteractionStore = void 0;
19
+ const mobx_1 = require("mobx");
20
+ class SignStarknetTxInteractionStore {
21
+ constructor(interactionStore) {
22
+ this.interactionStore = interactionStore;
23
+ (0, mobx_1.makeObservable)(this);
24
+ }
25
+ get waitingDatas() {
26
+ return this.interactionStore.getAllData("request-sign-starknet-tx");
27
+ }
28
+ get waitingData() {
29
+ const datas = this.waitingDatas;
30
+ if (datas.length === 0) {
31
+ return undefined;
32
+ }
33
+ return datas[0];
34
+ }
35
+ approveWithProceedNext(id, transactions, details, afterFn, options = {}) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ yield this.interactionStore.approveWithProceedNextV2(id, {
38
+ transactions,
39
+ details,
40
+ }, afterFn, options);
41
+ });
42
+ }
43
+ rejectWithProceedNext(id, afterFn) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ yield this.interactionStore.rejectWithProceedNext(id, afterFn);
46
+ });
47
+ }
48
+ rejectAll() {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ yield this.interactionStore.rejectAll("request-sign-starknet-tx");
51
+ });
52
+ }
53
+ isObsoleteInteraction(id) {
54
+ return this.interactionStore.isObsoleteInteraction(id);
55
+ }
56
+ }
57
+ __decorate([
58
+ mobx_1.computed
59
+ ], SignStarknetTxInteractionStore.prototype, "waitingData", null);
60
+ exports.SignStarknetTxInteractionStore = SignStarknetTxInteractionStore;
61
+ //# sourceMappingURL=starknet-sign-tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starknet-sign-tx.js","sourceRoot":"","sources":["../../../src/core/interaction/starknet-sign-tx.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,+BAAgD;AAahD,MAAa,8BAA8B;IACzC,YAA+B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC/D,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CACrC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAGD,IAAI,WAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAEK,sBAAsB,CAC1B,EAAU,EACV,YAAoB,EACpB,OAAiC,EACjC,OAAuD,EACvD,UAEI,EAAE;;YAEN,MAAM,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAClD,EAAE,EACF;gBACE,YAAY;gBACZ,OAAO;aACR,EACD,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC;KAAA;IAEK,qBAAqB,CACzB,EAAU,EACV,OAAuD;;YAEvD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;KAAA;IAEK,SAAS;;YACb,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACpE,CAAC;KAAA;IAED,qBAAqB,CAAC,EAAsB;QAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AA5CC;IADC,eAAQ;iEASR;AApBH,wEAwDC"}
@@ -72,7 +72,7 @@ class TokensStore {
72
72
  });
73
73
  }
74
74
  clearTokensFromChainInfos() {
75
- var _a;
75
+ var _a, _b;
76
76
  const chainInfos = this.chainStore.chainInfos;
77
77
  for (const chainInfo of chainInfos) {
78
78
  const chainIdentifier = cosmos_1.ChainIdHelper.parse(chainInfo.chainId);
@@ -82,9 +82,18 @@ class TokensStore {
82
82
  const prevTokens = (_a = this.prevTokenMap.get(chainIdentifier.identifier)) !== null && _a !== void 0 ? _a : [];
83
83
  chainInfo.removeCurrencies(...prevTokens.map((token) => token.currency.coinMinimalDenom));
84
84
  }
85
+ const modularChainInfoImpls = this.chainStore.modularChainInfoImpls;
86
+ for (const modularChainInfoImpl of modularChainInfoImpls) {
87
+ const chainIdentifier = cosmos_1.ChainIdHelper.parse(modularChainInfoImpl.chainId);
88
+ const prevTokens = (_b = this.prevTokenMap.get(chainIdentifier.identifier)) !== null && _b !== void 0 ? _b : [];
89
+ if ("starknet" in modularChainInfoImpl &&
90
+ modularChainInfoImpl.starknet != null) {
91
+ modularChainInfoImpl.removeCurrencies("starknet", ...prevTokens.map((token) => token.currency.coinMinimalDenom));
92
+ }
93
+ }
85
94
  }
86
95
  updateChainInfos() {
87
- var _a;
96
+ var _a, _b;
88
97
  const chainInfos = this.chainStore.chainInfos;
89
98
  for (const chainInfo of chainInfos) {
90
99
  const chainIdentifier = cosmos_1.ChainIdHelper.parse(chainInfo.chainId);
@@ -103,6 +112,19 @@ class TokensStore {
103
112
  }
104
113
  chainInfo.addCurrencies(...adds);
105
114
  }
115
+ const modularChainInfoImpls = this.chainStore.modularChainInfoImpls;
116
+ for (const modularChainInfoImpl of modularChainInfoImpls) {
117
+ const chainIdentifier = cosmos_1.ChainIdHelper.parse(modularChainInfoImpl.chainId);
118
+ const tokens = (_b = this.tokenMap.get(chainIdentifier.identifier)) !== null && _b !== void 0 ? _b : [];
119
+ const adds = [];
120
+ for (const token of tokens) {
121
+ adds.push(token.currency);
122
+ }
123
+ if ("starknet" in modularChainInfoImpl &&
124
+ modularChainInfoImpl.starknet != null) {
125
+ modularChainInfoImpl.addCurrencies("starknet", ...adds);
126
+ }
127
+ }
106
128
  this.prevTokenMap = this.tokenMap;
107
129
  }
108
130
  get isInitialized() {
@@ -126,48 +148,76 @@ class TokensStore {
126
148
  });
127
149
  }
128
150
  getTokens(chainId) {
129
- var _a;
151
+ var _a, _b;
130
152
  const bech32Address = this.accountStore.getAccount(chainId).bech32Address;
131
- const chainInfo = this.chainStore.getChain(chainId);
132
- const hasBech32Config = chainInfo.bech32Config != null;
133
- const associatedAccountAddress = hasBech32Config && bech32Address
134
- ? buffer_1.Buffer.from(cosmos_1.Bech32Address.fromBech32(bech32Address, chainInfo.bech32Config.bech32PrefixAccAddr).address).toString("hex")
135
- : undefined;
136
- const tokens = (_a = this.tokenMap.get(cosmos_1.ChainIdHelper.parse(chainId).identifier)) !== null && _a !== void 0 ? _a : [];
137
- return tokens.filter((token) => {
138
- if (token.associatedAccountAddress &&
139
- associatedAccountAddress &&
140
- token.associatedAccountAddress !== associatedAccountAddress) {
141
- return false;
142
- }
143
- return true;
144
- });
145
- }
146
- addToken(chainId, currency) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- const bech32Address = this.accountStore.getAccount(chainId).bech32Address;
149
- if (!bech32Address) {
150
- throw new Error("Account not initialized");
151
- }
153
+ const modularChainInfo = this.chainStore.getModularChain(chainId);
154
+ if ("cosmos" in modularChainInfo) {
152
155
  const chainInfo = this.chainStore.getChain(chainId);
153
- const isEvmChain = chainInfo.evm != null;
154
156
  const hasBech32Config = chainInfo.bech32Config != null;
155
- const associatedAccountAddress = hasBech32Config
157
+ const associatedAccountAddress = hasBech32Config && bech32Address
156
158
  ? buffer_1.Buffer.from(cosmos_1.Bech32Address.fromBech32(bech32Address, chainInfo.bech32Config.bech32PrefixAccAddr).address).toString("hex")
157
- : "";
158
- const msg = isEvmChain
159
- ? new background_1.AddERC20TokenMsg(chainId, currency)
160
- : new background_1.AddTokenMsg(chainId, associatedAccountAddress, currency);
161
- const res = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
162
- (0, mobx_1.runInAction)(() => {
163
- const newTokenMap = new Map(this.tokenMap);
164
- const chainIdentifier = cosmos_1.ChainIdHelper.parse(chainInfo.chainId);
165
- const newTokens = res[chainIdentifier.identifier];
166
- if (newTokens) {
167
- newTokenMap.set(chainIdentifier.identifier, newTokens);
159
+ : undefined;
160
+ const tokens = (_a = this.tokenMap.get(cosmos_1.ChainIdHelper.parse(chainId).identifier)) !== null && _a !== void 0 ? _a : [];
161
+ return tokens.filter((token) => {
162
+ if (token.associatedAccountAddress &&
163
+ associatedAccountAddress &&
164
+ token.associatedAccountAddress !== associatedAccountAddress) {
165
+ return false;
168
166
  }
169
- this.tokenMap = newTokenMap;
167
+ return true;
170
168
  });
169
+ }
170
+ else if ("starknet" in modularChainInfo) {
171
+ return (_b = this.tokenMap.get(chainId)) !== null && _b !== void 0 ? _b : [];
172
+ }
173
+ else {
174
+ throw new Error(`Unsupported chain: ${chainId}`);
175
+ }
176
+ }
177
+ addToken(chainId, currency) {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ const modularChainInfo = this.chainStore.getModularChain(chainId);
180
+ if ("cosmos" in modularChainInfo) {
181
+ const bech32Address = this.accountStore.getAccount(chainId).bech32Address;
182
+ if (!bech32Address) {
183
+ throw new Error("Account not initialized");
184
+ }
185
+ const chainInfo = this.chainStore.getChain(chainId);
186
+ const isEvmChain = chainInfo.evm != null;
187
+ const hasBech32Config = chainInfo.bech32Config != null;
188
+ const associatedAccountAddress = hasBech32Config
189
+ ? buffer_1.Buffer.from(cosmos_1.Bech32Address.fromBech32(bech32Address, chainInfo.bech32Config.bech32PrefixAccAddr).address).toString("hex")
190
+ : "";
191
+ const msg = isEvmChain
192
+ ? new background_1.AddERC20TokenMsg(chainId, currency)
193
+ : new background_1.AddTokenMsg(chainId, associatedAccountAddress, currency);
194
+ const res = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
195
+ (0, mobx_1.runInAction)(() => {
196
+ const newTokenMap = new Map(this.tokenMap);
197
+ const chainIdentifier = cosmos_1.ChainIdHelper.parse(chainInfo.chainId);
198
+ const newTokens = res[chainIdentifier.identifier];
199
+ if (newTokens) {
200
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
201
+ }
202
+ this.tokenMap = newTokenMap;
203
+ });
204
+ }
205
+ else if ("starknet" in modularChainInfo) {
206
+ const msg = new background_1.AddERC20TokenMsg(chainId, currency);
207
+ const res = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
208
+ (0, mobx_1.runInAction)(() => {
209
+ const newTokenMap = new Map(this.tokenMap);
210
+ const chainIdentifier = cosmos_1.ChainIdHelper.parse(modularChainInfo.chainId);
211
+ const newTokens = res[chainIdentifier.identifier];
212
+ if (newTokens) {
213
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
214
+ }
215
+ this.tokenMap = newTokenMap;
216
+ });
217
+ }
218
+ else {
219
+ throw new Error(`Unsupported chain: ${chainId}`);
220
+ }
171
221
  });
172
222
  }
173
223
  removeToken(chainId, tokenInfo) {
@@ -179,24 +229,46 @@ class TokensStore {
179
229
  }
180
230
  throw new Error("Token info is not for contract");
181
231
  })();
182
- const chainInfo = this.chainStore.getChain(chainId);
183
- const isEvmChain = chainInfo.evm !== undefined;
184
- const msg = isEvmChain
185
- ? new background_1.RemoveERC20TokenMsg(chainId, contractAddress)
186
- : new background_1.RemoveTokenMsg(chainId, (_a = tokenInfo.associatedAccountAddress) !== null && _a !== void 0 ? _a : "", contractAddress);
187
- const res = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
188
- (0, mobx_1.runInAction)(() => {
189
- // Remove 이후에는 지워진 토큰에 대한 싱크를 맞추기 위해서 clearTokensFromChainInfos를 호출한다.
190
- // 그냥 지우고 다시 다 설정하는 방식임.
191
- this.clearTokensFromChainInfos();
192
- const newTokenMap = new Map(this.tokenMap);
193
- const chainIdentifier = cosmos_1.ChainIdHelper.parse(chainInfo.chainId);
194
- const newTokens = res[chainIdentifier.identifier];
195
- if (newTokens) {
196
- newTokenMap.set(chainIdentifier.identifier, newTokens);
197
- }
198
- this.tokenMap = newTokenMap;
199
- });
232
+ const modularChainInfo = this.chainStore.getModularChain(chainId);
233
+ if ("cosmos" in modularChainInfo) {
234
+ const chainInfo = this.chainStore.getChain(chainId);
235
+ const isEvmChain = chainInfo.evm !== undefined;
236
+ const msg = isEvmChain
237
+ ? new background_1.RemoveERC20TokenMsg(chainId, contractAddress)
238
+ : new background_1.RemoveTokenMsg(chainId, (_a = tokenInfo.associatedAccountAddress) !== null && _a !== void 0 ? _a : "", contractAddress);
239
+ const res = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
240
+ (0, mobx_1.runInAction)(() => {
241
+ // Remove 이후에는 지워진 토큰에 대한 싱크를 맞추기 위해서 clearTokensFromChainInfos를 호출한다.
242
+ // 그냥 지우고 다시 다 설정하는 방식임.
243
+ this.clearTokensFromChainInfos();
244
+ const newTokenMap = new Map(this.tokenMap);
245
+ const chainIdentifier = cosmos_1.ChainIdHelper.parse(chainInfo.chainId);
246
+ const newTokens = res[chainIdentifier.identifier];
247
+ if (newTokens) {
248
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
249
+ }
250
+ this.tokenMap = newTokenMap;
251
+ });
252
+ }
253
+ else if ("starknet" in modularChainInfo) {
254
+ const msg = new background_1.RemoveERC20TokenMsg(chainId, contractAddress);
255
+ const res = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
256
+ (0, mobx_1.runInAction)(() => {
257
+ // Remove 이후에는 지워진 토큰에 대한 싱크를 맞추기 위해서 clearTokensFromChainInfos를 호출한다.
258
+ // 그냥 다 지우고 다시 다 설정하는 방식임.
259
+ this.clearTokensFromChainInfos();
260
+ const newTokenMap = new Map(this.tokenMap);
261
+ const chainIdentifier = cosmos_1.ChainIdHelper.parse(modularChainInfo.chainId);
262
+ const newTokens = res[chainIdentifier.identifier];
263
+ if (newTokens) {
264
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
265
+ }
266
+ this.tokenMap = newTokenMap;
267
+ });
268
+ }
269
+ else {
270
+ throw new Error(`Unsupported chain: ${chainId}`);
271
+ }
200
272
  });
201
273
  }
202
274
  get waitingSuggestedToken() {
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/core/tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/core/tokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,iDAAyE;AACzE,yDASkC;AAClC,+BAAgF;AAIhF,iDAAoE;AACpE,oCAAiC;AAGjC,MAAa,WAAW;IAUtB,YACqB,aAElB,EACkB,SAA2B,EAC3B,UAAuB,EACvB,YAA2B,EAC3B,YAA0B,EAC1B,gBAAkC;QAPlC,kBAAa,GAAb,aAAa,CAE/B;QACkB,cAAS,GAAT,SAAS,CAAkB;QAC3B,eAAU,GAAV,UAAU,CAAa;QACvB,iBAAY,GAAZ,YAAY,CAAe;QAC3B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAhB7C,mBAAc,GAAY,KAAK,CAAC;QAGhC,aAAQ,GAAkD,IAAI,GAAG,EAAE,CAAC;QAC9E,4BAA4B;QAClB,iBAAY,GACpB,IAAI,GAAG,EAAE,CAAC;QAYV,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEK,IAAI;;YACR,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAE3B,iFAAiF;YACjF,qFAAqF;YACrF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,GAAG,EAAE;gBAC/D,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,IAAA,cAAO,EAAC,GAAG,EAAE;gBACX,+DAA+D;gBAC/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAA,kBAAW,EAAC,GAAG,EAAE;gBACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEe,aAAa;;YAC3B,MAAM,oBAAoB,GAAG,IAAI,gCAAmB,EAAE,CAAC;YACvD,MAAM,qBAAqB,GAAG,IAAI,qCAAwB,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CACjD,wBAAe,EACf,oBAAoB,CACrB,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAClD,wBAAe,EACf,qBAAqB,CACtB,CAAC;YACF,IAAA,kBAAW,EAAC,GAAG,EAAE;gBACf,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;gBAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAC1D,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAC5B,EAAE;oBACD,IAAI,KAAK,EAAE;wBACT,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;qBACrB;iBACF;gBACD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAGS,yBAAyB;;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE/D,yDAAyD;YACzD,2DAA2D;YAC3D,sEAAsE;YACtE,MAAM,UAAU,GACd,MAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;YAC1D,SAAS,CAAC,gBAAgB,CACxB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC9D,CAAC;SACH;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACpE,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE;YACxD,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAE1E,MAAM,UAAU,GACd,MAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;YAE1D,IACE,UAAU,IAAI,oBAAoB;gBAClC,oBAAoB,CAAC,QAAQ,IAAI,IAAI,EACrC;gBACA,oBAAoB,CAAC,gBAAgB,CACnC,UAAU,EACV,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC9D,CAAC;aACH;SACF;IACH,CAAC;IAES,gBAAgB;;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;YAEnE,MAAM,IAAI,GAAkB,EAAE,CAAC;YAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE;oBACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAC3B;qBAAM,IACL,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,UAAU;oBACvC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,EAC7D;oBACA,IACE,eAAM,CAAC,IAAI,CACT,sBAAa,CAAC,UAAU,CACtB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAC9D,CAAC,OAAO,CACV,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,wBAAwB,EACpD;wBACA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;qBAC3B;iBACF;aACF;YAED,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;SAClC;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACpE,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE;YACxD,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAE1E,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;YAEnE,MAAM,IAAI,GAAkB,EAAE,CAAC;YAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC3B;YAED,IACE,UAAU,IAAI,oBAAoB;gBAClC,oBAAoB,CAAC,QAAQ,IAAI,IAAI,EACrC;gBACA,oBAAoB,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;aACzD;SACF;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEK,oBAAoB;;YACxB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,OAAO;aACR;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,GAAG,EAAE;oBAC5B,IAAI,IAAI,CAAC,aAAa,EAAE;wBACtB,OAAO,EAAE,CAAC;wBAEV,IAAI,QAAQ,EAAE;4BACZ,QAAQ,EAAE,CAAC;yBACZ;qBACF;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,SAAS,CAAC,OAAe;;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;QAC1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,QAAQ,IAAI,gBAAgB,EAAE;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEpD,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,IAAI,IAAI,CAAC;YACvD,MAAM,wBAAwB,GAC5B,eAAe,IAAI,aAAa;gBAC9B,CAAC,CAAC,eAAM,CAAC,IAAI,CACT,sBAAa,CAAC,UAAU,CACtB,aAAa,EACb,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAC3C,CAAC,OAAO,CACV,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,SAAS,CAAC;YAEhB,MAAM,MAAM,GACV,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;YAEnE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7B,IACE,KAAK,CAAC,wBAAwB;oBAC9B,wBAAwB;oBACxB,KAAK,CAAC,wBAAwB,KAAK,wBAAwB,EAC3D;oBACA,OAAO,KAAK,CAAC;iBACd;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,UAAU,IAAI,gBAAgB,EAAE;YACzC,OAAO,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;SACzC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;SAClD;IACH,CAAC;IAEK,QAAQ,CAAC,OAAe,EAAE,QAAqB;;YACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,QAAQ,IAAI,gBAAgB,EAAE;gBAChC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;gBAC1E,IAAI,CAAC,aAAa,EAAE;oBAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;iBAC5C;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC;gBACzC,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,IAAI,IAAI,CAAC;gBACvD,MAAM,wBAAwB,GAAG,eAAe;oBAC9C,CAAC,CAAC,eAAM,CAAC,IAAI,CACT,sBAAa,CAAC,UAAU,CACtB,aAAa,EACb,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAC3C,CAAC,OAAO,CACV,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACnB,CAAC,CAAC,EAAE,CAAC;gBAEP,MAAM,GAAG,GAAG,UAAU;oBACpB,CAAC,CAAC,IAAI,6BAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACzC,CAAC,CAAC,IAAI,wBAAW,CAAC,OAAO,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;gBACjE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAe,EAAE,GAAG,CAAC,CAAC;gBACnE,IAAA,kBAAW,EAAC,GAAG,EAAE;oBACf,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,SAAS,EAAE;wBACb,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;qBACxD;oBAED,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,UAAU,IAAI,gBAAgB,EAAE;gBACzC,MAAM,GAAG,GAAG,IAAI,6BAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAe,EAAE,GAAG,CAAC,CAAC;gBACnE,IAAA,kBAAW,EAAC,GAAG,EAAE;oBACf,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACtE,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,SAAS,EAAE;wBACb,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;qBACxD;oBAED,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;aAClD;QACH,CAAC;KAAA;IAEK,WAAW,CAAC,OAAe,EAAE,SAAoB;;;YACrD,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;gBAC5B,IAAI,iBAAiB,IAAI,SAAS,CAAC,QAAQ,EAAE;oBAC3C,OAAO,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;iBAC3C;gBAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC,CAAC,EAAE,CAAC;YAEL,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,QAAQ,IAAI,gBAAgB,EAAE;gBAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC;gBAE/C,MAAM,GAAG,GAAG,UAAU;oBACpB,CAAC,CAAC,IAAI,gCAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;oBACnD,CAAC,CAAC,IAAI,2BAAc,CAChB,OAAO,EACP,MAAA,SAAS,CAAC,wBAAwB,mCAAI,EAAE,EACxC,eAAe,CAChB,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAe,EAAE,GAAG,CAAC,CAAC;gBACnE,IAAA,kBAAW,EAAC,GAAG,EAAE;oBACf,sEAAsE;oBACtE,0BAA0B;oBAC1B,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBAEjC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,SAAS,EAAE;wBACb,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;qBACxD;oBAED,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,UAAU,IAAI,gBAAgB,EAAE;gBACzC,MAAM,GAAG,GAAG,IAAI,gCAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBAE9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAe,EAAE,GAAG,CAAC,CAAC;gBACnE,IAAA,kBAAW,EAAC,GAAG,EAAE;oBACf,sEAAsE;oBACtE,0BAA0B;oBAC1B,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBAEjC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACtE,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,SAAS,EAAE;wBACb,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;qBACxD;oBAED,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;aAClD;;KACF;IAED,IAAI,qBAAqB;QAOvB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAI/C,oBAAoB,CAAC,CAAC;QAEzB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;SACrB;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAGhD,qBAAqB,CAAC,CAAC;QAE1B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;SACtB;IACH,CAAC;IAEK,oCAAoC,CACxC,EAAU,EACV,WAAwB,EACxB,OAAuD;;YAEvD,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAIpC,EAAE,CAAC,CAAC;YACP,IAAI,CAAC,CAAC,EAAE;gBACN,OAAO;aACR;YAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAChD,EAAE,EACF,WAAW,EACX,OAAO,CACR,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;KAAA;IAEK,oBAAoB,CACxB,EAAU,EACV,OAAuD;;YAEvD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;KAAA;IAEK,wBAAwB;;YAC5B,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/D,CAAC;KAAA;CACF;AAnYW;IADT,iBAAU;mDAC+B;AAGhC;IADT,iBAAU,CAAC,GAAG;6CAC+D;AAiEpE;IADT,aAAM;4DAiCN;AAtGH,kCAqYC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/stores-core",
3
- "version": "0.12.132",
3
+ "version": "0.12.133-rc.0",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -16,18 +16,19 @@
16
16
  "lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
17
17
  },
18
18
  "dependencies": {
19
- "@keplr-wallet/background": "0.12.132",
20
- "@keplr-wallet/common": "0.12.132",
21
- "@keplr-wallet/cosmos": "0.12.132",
22
- "@keplr-wallet/router": "0.12.132",
23
- "@keplr-wallet/simple-fetch": "0.12.132",
24
- "@keplr-wallet/stores": "0.12.132",
25
- "@keplr-wallet/types": "0.12.132",
19
+ "@keplr-wallet/background": "0.12.133-rc.0",
20
+ "@keplr-wallet/common": "0.12.133-rc.0",
21
+ "@keplr-wallet/cosmos": "0.12.133-rc.0",
22
+ "@keplr-wallet/router": "0.12.133-rc.0",
23
+ "@keplr-wallet/simple-fetch": "0.12.133-rc.0",
24
+ "@keplr-wallet/stores": "0.12.133-rc.0",
25
+ "@keplr-wallet/types": "0.12.133-rc.0",
26
26
  "buffer": "^6.0.3"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "mobx": "^6",
30
- "mobx-utils": "^6"
30
+ "mobx-utils": "^6",
31
+ "starknet": "^6"
31
32
  },
32
- "gitHead": "c2d43ec60a80e023faee97ded00f582b7605307c"
33
+ "gitHead": "6496cf28fc619e718b4e2e9e347755730292745b"
33
34
  }
@@ -4,3 +4,4 @@ export * from "./sign";
4
4
  export * from "./chain-suggest";
5
5
  export * from "./icns";
6
6
  export * from "./eth-sign";
7
+ export * from "./starknet-sign-tx";
@@ -38,7 +38,8 @@ export class PermissionStore {
38
38
  } & PermissionData)
39
39
  | undefined {
40
40
  const data = this.waitingPermissionDatas.filter(
41
- (data) => !data.data.options?.isForEVM
41
+ (data) =>
42
+ !data.data.options?.isForEVM && !data.data.options?.isForStarknet
42
43
  );
43
44
  if (data.length === 0) {
44
45
  return;
@@ -119,6 +120,50 @@ export class PermissionStore {
119
120
  return res;
120
121
  }
121
122
 
123
+ @computed
124
+ get waitingPermissionMergedDataForStarknet():
125
+ | ({
126
+ ids: string[];
127
+ } & PermissionData)
128
+ | undefined {
129
+ const data = this.waitingPermissionDatas.filter(
130
+ (data) => !!data.data.options?.isForStarknet
131
+ );
132
+ if (data.length === 0) {
133
+ return;
134
+ }
135
+
136
+ const first = data[0];
137
+
138
+ const res: {
139
+ ids: string[];
140
+ } & PermissionData = {
141
+ ids: [first.id],
142
+ chainIds: first.data.chainIds,
143
+ type: first.data.type,
144
+ origins: first.data.origins,
145
+ options: first.data.options,
146
+ };
147
+
148
+ for (let i = 1; i < data.length; i++) {
149
+ const d = data[i];
150
+ if (d.data.type !== first.data.type) {
151
+ break;
152
+ }
153
+ if (d.data.origins.join(",") !== first.data.origins.join(",")) {
154
+ break;
155
+ }
156
+
157
+ res.ids.push(d.id);
158
+ res.chainIds.push(...d.data.chainIds);
159
+ }
160
+
161
+ // Remove duplicated chain ids.
162
+ res.chainIds = [...new Set(res.chainIds)];
163
+
164
+ return res;
165
+ }
166
+
122
167
  get waitingGlobalPermissionData() {
123
168
  if (this.waitingGlobalPermissionDatas.length > 0) {
124
169
  return this.waitingGlobalPermissionDatas[0];
@@ -0,0 +1,71 @@
1
+ import { InteractionStore } from "./interaction";
2
+ import { computed, makeObservable } from "mobx";
3
+ import { Call, InvocationsSignerDetails } from "starknet";
4
+
5
+ export type SignStarknetTxInteractionData = {
6
+ origin: string;
7
+ vaultId: string;
8
+ chainId: string;
9
+ signer: string;
10
+ transactions: Call[];
11
+ details: InvocationsSignerDetails;
12
+ noChangeTx: boolean;
13
+ };
14
+
15
+ export class SignStarknetTxInteractionStore {
16
+ constructor(protected readonly interactionStore: InteractionStore) {
17
+ makeObservable(this);
18
+ }
19
+
20
+ get waitingDatas() {
21
+ return this.interactionStore.getAllData<SignStarknetTxInteractionData>(
22
+ "request-sign-starknet-tx"
23
+ );
24
+ }
25
+
26
+ @computed
27
+ get waitingData() {
28
+ const datas = this.waitingDatas;
29
+
30
+ if (datas.length === 0) {
31
+ return undefined;
32
+ }
33
+
34
+ return datas[0];
35
+ }
36
+
37
+ async approveWithProceedNext(
38
+ id: string,
39
+ transactions: Call[],
40
+ details: InvocationsSignerDetails,
41
+ afterFn: (proceedNext: boolean) => void | Promise<void>,
42
+ options: {
43
+ preDelay?: number;
44
+ } = {}
45
+ ) {
46
+ await this.interactionStore.approveWithProceedNextV2(
47
+ id,
48
+ {
49
+ transactions,
50
+ details,
51
+ },
52
+ afterFn,
53
+ options
54
+ );
55
+ }
56
+
57
+ async rejectWithProceedNext(
58
+ id: string,
59
+ afterFn: (proceedNext: boolean) => void | Promise<void>
60
+ ) {
61
+ await this.interactionStore.rejectWithProceedNext(id, afterFn);
62
+ }
63
+
64
+ async rejectAll() {
65
+ await this.interactionStore.rejectAll("request-sign-starknet-tx");
66
+ }
67
+
68
+ isObsoleteInteraction(id: string | undefined): boolean {
69
+ return this.interactionStore.isObsoleteInteraction(id);
70
+ }
71
+ }
@@ -101,6 +101,24 @@ export class TokensStore {
101
101
  ...prevTokens.map((token) => token.currency.coinMinimalDenom)
102
102
  );
103
103
  }
104
+
105
+ const modularChainInfoImpls = this.chainStore.modularChainInfoImpls;
106
+ for (const modularChainInfoImpl of modularChainInfoImpls) {
107
+ const chainIdentifier = ChainIdHelper.parse(modularChainInfoImpl.chainId);
108
+
109
+ const prevTokens =
110
+ this.prevTokenMap.get(chainIdentifier.identifier) ?? [];
111
+
112
+ if (
113
+ "starknet" in modularChainInfoImpl &&
114
+ modularChainInfoImpl.starknet != null
115
+ ) {
116
+ modularChainInfoImpl.removeCurrencies(
117
+ "starknet",
118
+ ...prevTokens.map((token) => token.currency.coinMinimalDenom)
119
+ );
120
+ }
121
+ }
104
122
  }
105
123
 
106
124
  protected updateChainInfos() {
@@ -134,6 +152,26 @@ export class TokensStore {
134
152
  chainInfo.addCurrencies(...adds);
135
153
  }
136
154
 
155
+ const modularChainInfoImpls = this.chainStore.modularChainInfoImpls;
156
+ for (const modularChainInfoImpl of modularChainInfoImpls) {
157
+ const chainIdentifier = ChainIdHelper.parse(modularChainInfoImpl.chainId);
158
+
159
+ const tokens = this.tokenMap.get(chainIdentifier.identifier) ?? [];
160
+
161
+ const adds: AppCurrency[] = [];
162
+
163
+ for (const token of tokens) {
164
+ adds.push(token.currency);
165
+ }
166
+
167
+ if (
168
+ "starknet" in modularChainInfoImpl &&
169
+ modularChainInfoImpl.starknet != null
170
+ ) {
171
+ modularChainInfoImpl.addCurrencies("starknet", ...adds);
172
+ }
173
+ }
174
+
137
175
  this.prevTokenMap = this.tokenMap;
138
176
  }
139
177
 
@@ -161,66 +199,92 @@ export class TokensStore {
161
199
 
162
200
  getTokens(chainId: string): ReadonlyArray<TokenInfo> {
163
201
  const bech32Address = this.accountStore.getAccount(chainId).bech32Address;
164
- const chainInfo = this.chainStore.getChain(chainId);
202
+ const modularChainInfo = this.chainStore.getModularChain(chainId);
203
+ if ("cosmos" in modularChainInfo) {
204
+ const chainInfo = this.chainStore.getChain(chainId);
205
+
206
+ const hasBech32Config = chainInfo.bech32Config != null;
207
+ const associatedAccountAddress =
208
+ hasBech32Config && bech32Address
209
+ ? Buffer.from(
210
+ Bech32Address.fromBech32(
211
+ bech32Address,
212
+ chainInfo.bech32Config.bech32PrefixAccAddr
213
+ ).address
214
+ ).toString("hex")
215
+ : undefined;
216
+
217
+ const tokens =
218
+ this.tokenMap.get(ChainIdHelper.parse(chainId).identifier) ?? [];
219
+
220
+ return tokens.filter((token) => {
221
+ if (
222
+ token.associatedAccountAddress &&
223
+ associatedAccountAddress &&
224
+ token.associatedAccountAddress !== associatedAccountAddress
225
+ ) {
226
+ return false;
227
+ }
228
+
229
+ return true;
230
+ });
231
+ } else if ("starknet" in modularChainInfo) {
232
+ return this.tokenMap.get(chainId) ?? [];
233
+ } else {
234
+ throw new Error(`Unsupported chain: ${chainId}`);
235
+ }
236
+ }
165
237
 
166
- const hasBech32Config = chainInfo.bech32Config != null;
167
- const associatedAccountAddress =
168
- hasBech32Config && bech32Address
238
+ async addToken(chainId: string, currency: AppCurrency): Promise<void> {
239
+ const modularChainInfo = this.chainStore.getModularChain(chainId);
240
+ if ("cosmos" in modularChainInfo) {
241
+ const bech32Address = this.accountStore.getAccount(chainId).bech32Address;
242
+ if (!bech32Address) {
243
+ throw new Error("Account not initialized");
244
+ }
245
+
246
+ const chainInfo = this.chainStore.getChain(chainId);
247
+ const isEvmChain = chainInfo.evm != null;
248
+ const hasBech32Config = chainInfo.bech32Config != null;
249
+ const associatedAccountAddress = hasBech32Config
169
250
  ? Buffer.from(
170
251
  Bech32Address.fromBech32(
171
252
  bech32Address,
172
253
  chainInfo.bech32Config.bech32PrefixAccAddr
173
254
  ).address
174
255
  ).toString("hex")
175
- : undefined;
176
-
177
- const tokens =
178
- this.tokenMap.get(ChainIdHelper.parse(chainId).identifier) ?? [];
179
-
180
- return tokens.filter((token) => {
181
- if (
182
- token.associatedAccountAddress &&
183
- associatedAccountAddress &&
184
- token.associatedAccountAddress !== associatedAccountAddress
185
- ) {
186
- return false;
187
- }
256
+ : "";
257
+
258
+ const msg = isEvmChain
259
+ ? new AddERC20TokenMsg(chainId, currency)
260
+ : new AddTokenMsg(chainId, associatedAccountAddress, currency);
261
+ const res = await this.requester.sendMessage(BACKGROUND_PORT, msg);
262
+ runInAction(() => {
263
+ const newTokenMap = new Map(this.tokenMap);
264
+ const chainIdentifier = ChainIdHelper.parse(chainInfo.chainId);
265
+ const newTokens = res[chainIdentifier.identifier];
266
+ if (newTokens) {
267
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
268
+ }
188
269
 
189
- return true;
190
- });
191
- }
270
+ this.tokenMap = newTokenMap;
271
+ });
272
+ } else if ("starknet" in modularChainInfo) {
273
+ const msg = new AddERC20TokenMsg(chainId, currency);
274
+ const res = await this.requester.sendMessage(BACKGROUND_PORT, msg);
275
+ runInAction(() => {
276
+ const newTokenMap = new Map(this.tokenMap);
277
+ const chainIdentifier = ChainIdHelper.parse(modularChainInfo.chainId);
278
+ const newTokens = res[chainIdentifier.identifier];
279
+ if (newTokens) {
280
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
281
+ }
192
282
 
193
- async addToken(chainId: string, currency: AppCurrency): Promise<void> {
194
- const bech32Address = this.accountStore.getAccount(chainId).bech32Address;
195
- if (!bech32Address) {
196
- throw new Error("Account not initialized");
283
+ this.tokenMap = newTokenMap;
284
+ });
285
+ } else {
286
+ throw new Error(`Unsupported chain: ${chainId}`);
197
287
  }
198
- const chainInfo = this.chainStore.getChain(chainId);
199
- const isEvmChain = chainInfo.evm != null;
200
- const hasBech32Config = chainInfo.bech32Config != null;
201
- const associatedAccountAddress = hasBech32Config
202
- ? Buffer.from(
203
- Bech32Address.fromBech32(
204
- bech32Address,
205
- chainInfo.bech32Config.bech32PrefixAccAddr
206
- ).address
207
- ).toString("hex")
208
- : "";
209
-
210
- const msg = isEvmChain
211
- ? new AddERC20TokenMsg(chainId, currency)
212
- : new AddTokenMsg(chainId, associatedAccountAddress, currency);
213
- const res = await this.requester.sendMessage(BACKGROUND_PORT, msg);
214
- runInAction(() => {
215
- const newTokenMap = new Map(this.tokenMap);
216
- const chainIdentifier = ChainIdHelper.parse(chainInfo.chainId);
217
- const newTokens = res[chainIdentifier.identifier];
218
- if (newTokens) {
219
- newTokenMap.set(chainIdentifier.identifier, newTokens);
220
- }
221
-
222
- this.tokenMap = newTokenMap;
223
- });
224
288
  }
225
289
 
226
290
  async removeToken(chainId: string, tokenInfo: TokenInfo): Promise<void> {
@@ -232,31 +296,54 @@ export class TokensStore {
232
296
  throw new Error("Token info is not for contract");
233
297
  })();
234
298
 
235
- const chainInfo = this.chainStore.getChain(chainId);
236
- const isEvmChain = chainInfo.evm !== undefined;
237
-
238
- const msg = isEvmChain
239
- ? new RemoveERC20TokenMsg(chainId, contractAddress)
240
- : new RemoveTokenMsg(
241
- chainId,
242
- tokenInfo.associatedAccountAddress ?? "",
243
- contractAddress
244
- );
245
- const res = await this.requester.sendMessage(BACKGROUND_PORT, msg);
246
- runInAction(() => {
247
- // Remove 이후에는 지워진 토큰에 대한 싱크를 맞추기 위해서 clearTokensFromChainInfos를 호출한다.
248
- // 그냥 다 지우고 다시 다 설정하는 방식임.
249
- this.clearTokensFromChainInfos();
299
+ const modularChainInfo = this.chainStore.getModularChain(chainId);
300
+ if ("cosmos" in modularChainInfo) {
301
+ const chainInfo = this.chainStore.getChain(chainId);
302
+ const isEvmChain = chainInfo.evm !== undefined;
303
+
304
+ const msg = isEvmChain
305
+ ? new RemoveERC20TokenMsg(chainId, contractAddress)
306
+ : new RemoveTokenMsg(
307
+ chainId,
308
+ tokenInfo.associatedAccountAddress ?? "",
309
+ contractAddress
310
+ );
311
+ const res = await this.requester.sendMessage(BACKGROUND_PORT, msg);
312
+ runInAction(() => {
313
+ // Remove 이후에는 지워진 토큰에 대한 싱크를 맞추기 위해서 clearTokensFromChainInfos를 호출한다.
314
+ // 그냥 다 지우고 다시 다 설정하는 방식임.
315
+ this.clearTokensFromChainInfos();
316
+
317
+ const newTokenMap = new Map(this.tokenMap);
318
+ const chainIdentifier = ChainIdHelper.parse(chainInfo.chainId);
319
+ const newTokens = res[chainIdentifier.identifier];
320
+ if (newTokens) {
321
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
322
+ }
250
323
 
251
- const newTokenMap = new Map(this.tokenMap);
252
- const chainIdentifier = ChainIdHelper.parse(chainInfo.chainId);
253
- const newTokens = res[chainIdentifier.identifier];
254
- if (newTokens) {
255
- newTokenMap.set(chainIdentifier.identifier, newTokens);
256
- }
324
+ this.tokenMap = newTokenMap;
325
+ });
326
+ } else if ("starknet" in modularChainInfo) {
327
+ const msg = new RemoveERC20TokenMsg(chainId, contractAddress);
328
+
329
+ const res = await this.requester.sendMessage(BACKGROUND_PORT, msg);
330
+ runInAction(() => {
331
+ // Remove 이후에는 지워진 토큰에 대한 싱크를 맞추기 위해서 clearTokensFromChainInfos를 호출한다.
332
+ // 그냥 다 지우고 다시 다 설정하는 방식임.
333
+ this.clearTokensFromChainInfos();
334
+
335
+ const newTokenMap = new Map(this.tokenMap);
336
+ const chainIdentifier = ChainIdHelper.parse(modularChainInfo.chainId);
337
+ const newTokens = res[chainIdentifier.identifier];
338
+ if (newTokens) {
339
+ newTokenMap.set(chainIdentifier.identifier, newTokens);
340
+ }
257
341
 
258
- this.tokenMap = newTokenMap;
259
- });
342
+ this.tokenMap = newTokenMap;
343
+ });
344
+ } else {
345
+ throw new Error(`Unsupported chain: ${chainId}`);
346
+ }
260
347
  }
261
348
 
262
349
  get waitingSuggestedToken():