@keplr-wallet/stores-core 0.12.32-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.
Files changed (54) hide show
  1. package/.eslintignore +2 -0
  2. package/.prettierignore +2 -0
  3. package/LICENSE +209 -0
  4. package/build/core/index.d.ts +4 -0
  5. package/build/core/index.js +21 -0
  6. package/build/core/index.js.map +1 -0
  7. package/build/core/interaction/chain-suggest.d.ts +35 -0
  8. package/build/core/interaction/chain-suggest.js +106 -0
  9. package/build/core/interaction/chain-suggest.js.map +1 -0
  10. package/build/core/interaction/eth-sign.d.ts +25 -0
  11. package/build/core/interaction/eth-sign.js +60 -0
  12. package/build/core/interaction/eth-sign.js.map +1 -0
  13. package/build/core/interaction/icns.d.ts +32 -0
  14. package/build/core/interaction/icns.js +58 -0
  15. package/build/core/interaction/icns.js.map +1 -0
  16. package/build/core/interaction/index.d.ts +6 -0
  17. package/build/core/interaction/index.js +23 -0
  18. package/build/core/interaction/index.js.map +1 -0
  19. package/build/core/interaction/interaction.d.ts +64 -0
  20. package/build/core/interaction/interaction.js +232 -0
  21. package/build/core/interaction/interaction.js.map +1 -0
  22. package/build/core/interaction/permission.d.ts +22 -0
  23. package/build/core/interaction/permission.js +108 -0
  24. package/build/core/interaction/permission.js.map +1 -0
  25. package/build/core/interaction/sign.d.ts +49 -0
  26. package/build/core/interaction/sign.js +78 -0
  27. package/build/core/interaction/sign.js.map +1 -0
  28. package/build/core/keyring.d.ts +132 -0
  29. package/build/core/keyring.js +278 -0
  30. package/build/core/keyring.js.map +1 -0
  31. package/build/core/permission-manager.d.ts +15 -0
  32. package/build/core/permission-manager.js +122 -0
  33. package/build/core/permission-manager.js.map +1 -0
  34. package/build/core/tokens.d.ts +39 -0
  35. package/build/core/tokens.js +225 -0
  36. package/build/core/tokens.js.map +1 -0
  37. package/build/index.d.ts +1 -0
  38. package/build/index.js +18 -0
  39. package/build/index.js.map +1 -0
  40. package/jest.config.js +5 -0
  41. package/package.json +31 -0
  42. package/src/core/index.ts +4 -0
  43. package/src/core/interaction/chain-suggest.ts +136 -0
  44. package/src/core/interaction/eth-sign.ts +71 -0
  45. package/src/core/interaction/icns.ts +68 -0
  46. package/src/core/interaction/index.ts +6 -0
  47. package/src/core/interaction/interaction.ts +290 -0
  48. package/src/core/interaction/permission.ts +121 -0
  49. package/src/core/interaction/sign.ts +124 -0
  50. package/src/core/keyring.ts +354 -0
  51. package/src/core/permission-manager.ts +114 -0
  52. package/src/core/tokens.ts +275 -0
  53. package/src/index.ts +1 -0
  54. package/tsconfig.json +12 -0
@@ -0,0 +1,132 @@
1
+ import { MessageRequester } from "@keplr-wallet/router";
2
+ import { BIP44HDPath, KeyInfo, KeyRingStatus, PlainObject } from "@keplr-wallet/background";
3
+ import type { MultiAccounts } from "@keplr-wallet/background";
4
+ import { ChainInfo } from "@keplr-wallet/types";
5
+ export declare class KeyRingStore {
6
+ protected readonly eventDispatcher: {
7
+ dispatchEvent: (type: string) => void;
8
+ };
9
+ protected readonly requester: MessageRequester;
10
+ protected _isInitialized: boolean;
11
+ protected _status: KeyRingStatus | "not-loaded";
12
+ protected _needMigration: boolean;
13
+ protected _isMigrating: boolean;
14
+ protected _keyInfos: KeyInfo[];
15
+ constructor(eventDispatcher: {
16
+ dispatchEvent: (type: string) => void;
17
+ }, requester: MessageRequester);
18
+ init(): Promise<void>;
19
+ get needMigration(): boolean;
20
+ get isMigrating(): boolean;
21
+ get isInitialized(): boolean;
22
+ waitUntilInitialized(): Promise<void>;
23
+ get status(): KeyRingStatus | "not-loaded";
24
+ get keyInfos(): KeyInfo[];
25
+ fetchKeyRingStatus(): Promise<KeyRingStatus>;
26
+ get selectedKeyInfo(): KeyInfo | undefined;
27
+ get isEmpty(): boolean;
28
+ refreshKeyRingStatus(): Generator<Promise<{
29
+ status: KeyRingStatus;
30
+ keyInfos: KeyInfo[];
31
+ needMigration: boolean;
32
+ isMigrating: boolean;
33
+ }>, void, {
34
+ status: KeyRingStatus;
35
+ keyInfos: KeyInfo[];
36
+ needMigration: boolean;
37
+ isMigrating: boolean;
38
+ }>;
39
+ selectKeyRing(vaultId: string): Generator<Promise<{
40
+ status: KeyRingStatus;
41
+ keyInfos: KeyInfo[];
42
+ }>, void, {
43
+ status: KeyRingStatus;
44
+ keyInfos: KeyInfo[];
45
+ }>;
46
+ needKeyCoinTypeFinalize(vaultId: string, chainInfo: ChainInfo): boolean;
47
+ computeNotFinalizedKeyAddresses(vaultId: string, chainId: string): Promise<{
48
+ coinType: number;
49
+ bech32Address: string;
50
+ }[]>;
51
+ showKeyRing(vaultId: string, password: string): Promise<string>;
52
+ finalizeKeyCoinType(vaultId: string, chainId: string, coinType: number): Generator<Promise<{
53
+ status: KeyRingStatus;
54
+ keyInfos: KeyInfo[];
55
+ }>, void, {
56
+ status: KeyRingStatus;
57
+ keyInfos: KeyInfo[];
58
+ }>;
59
+ newMnemonicKey(mnemonic: string, bip44HDPath: BIP44HDPath, name: string, password: string | undefined): Generator<Promise<{
60
+ vaultId: string;
61
+ status: KeyRingStatus;
62
+ keyInfos: KeyInfo[];
63
+ }>, string, {
64
+ vaultId: string;
65
+ status: KeyRingStatus;
66
+ keyInfos: KeyInfo[];
67
+ }>;
68
+ newLedgerKey(pubKey: Uint8Array, app: string, bip44HDPath: BIP44HDPath, name: string, password: string | undefined): Generator<Promise<{
69
+ vaultId: string;
70
+ status: KeyRingStatus;
71
+ keyInfos: KeyInfo[];
72
+ }>, string, {
73
+ vaultId: string;
74
+ status: KeyRingStatus;
75
+ keyInfos: KeyInfo[];
76
+ }>;
77
+ appendLedgerKeyApp(vaultId: string, pubKey: Uint8Array, app: string): Generator<Promise<{
78
+ status: KeyRingStatus;
79
+ keyInfos: KeyInfo[];
80
+ }>, void, {
81
+ status: KeyRingStatus;
82
+ keyInfos: KeyInfo[];
83
+ }>;
84
+ newKeystoneKey(multiAccounts: MultiAccounts, name: string, password: string | undefined): Generator<Promise<{
85
+ vaultId: string;
86
+ status: KeyRingStatus;
87
+ keyInfos: KeyInfo[];
88
+ }>, string, {
89
+ vaultId: string;
90
+ status: KeyRingStatus;
91
+ keyInfos: KeyInfo[];
92
+ }>;
93
+ newPrivateKeyKey(privateKey: Uint8Array, meta: PlainObject, name: string, password: string | undefined): Generator<Promise<{
94
+ vaultId: string;
95
+ status: KeyRingStatus;
96
+ keyInfos: KeyInfo[];
97
+ }>, string, {
98
+ vaultId: string;
99
+ status: KeyRingStatus;
100
+ keyInfos: KeyInfo[];
101
+ }>;
102
+ lock(): Generator<Promise<{
103
+ status: KeyRingStatus;
104
+ }>, void, {
105
+ status: KeyRingStatus;
106
+ }>;
107
+ unlock(password: string): Generator<Promise<{
108
+ status: KeyRingStatus;
109
+ keyInfos: KeyInfo[];
110
+ }>, void, {
111
+ status: KeyRingStatus;
112
+ keyInfos: KeyInfo[];
113
+ }>;
114
+ changeKeyRingName(vaultId: string, name: string): Generator<Promise<{
115
+ status: KeyRingStatus;
116
+ keyInfos: KeyInfo[];
117
+ }>, void, {
118
+ status: KeyRingStatus;
119
+ keyInfos: KeyInfo[];
120
+ }>;
121
+ deleteKeyRing(vaultId: string, password: string): Generator<Promise<{
122
+ wasSelected: boolean;
123
+ status: KeyRingStatus;
124
+ keyInfos: KeyInfo[];
125
+ }>, void, {
126
+ wasSelected: boolean;
127
+ status: KeyRingStatus;
128
+ keyInfos: KeyInfo[];
129
+ }>;
130
+ changeUserPassword(prevUserPassword: string, newUserPassword: string): Promise<void>;
131
+ checkLegacyKeyRingPassword(password: string): Promise<void>;
132
+ }
@@ -0,0 +1,278 @@
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.KeyRingStore = void 0;
19
+ const router_1 = require("@keplr-wallet/router");
20
+ const mobx_1 = require("mobx");
21
+ const common_1 = require("@keplr-wallet/common");
22
+ const background_1 = require("@keplr-wallet/background");
23
+ const cosmos_1 = require("@keplr-wallet/cosmos");
24
+ class KeyRingStore {
25
+ constructor(eventDispatcher, requester) {
26
+ this.eventDispatcher = eventDispatcher;
27
+ this.requester = requester;
28
+ this._isInitialized = false;
29
+ this._status = "not-loaded";
30
+ this._needMigration = false;
31
+ this._isMigrating = false;
32
+ this._keyInfos = [];
33
+ (0, mobx_1.makeObservable)(this);
34
+ this.init();
35
+ }
36
+ init() {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ yield this.refreshKeyRingStatus();
39
+ (0, mobx_1.runInAction)(() => {
40
+ this._isInitialized = true;
41
+ });
42
+ });
43
+ }
44
+ get needMigration() {
45
+ return this._needMigration;
46
+ }
47
+ get isMigrating() {
48
+ return this._isMigrating;
49
+ }
50
+ get isInitialized() {
51
+ return this._isInitialized;
52
+ }
53
+ waitUntilInitialized() {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ if (this.isInitialized) {
56
+ return;
57
+ }
58
+ return new Promise((resolve) => {
59
+ const disposal = (0, mobx_1.autorun)(() => {
60
+ if (this.isInitialized) {
61
+ resolve();
62
+ if (disposal) {
63
+ disposal();
64
+ }
65
+ }
66
+ });
67
+ });
68
+ });
69
+ }
70
+ get status() {
71
+ return this._status;
72
+ }
73
+ get keyInfos() {
74
+ return this._keyInfos;
75
+ }
76
+ fetchKeyRingStatus() {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const msg = new background_1.GetKeyRingStatusOnlyMsg();
79
+ const result = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
80
+ return result.status;
81
+ });
82
+ }
83
+ get selectedKeyInfo() {
84
+ return this._keyInfos.find((keyInfo) => keyInfo.isSelected);
85
+ }
86
+ get isEmpty() {
87
+ return this._status === "empty";
88
+ }
89
+ *refreshKeyRingStatus() {
90
+ const msg = new background_1.GetKeyRingStatusMsg();
91
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
92
+ this._status = result.status;
93
+ this._keyInfos = result.keyInfos;
94
+ this._needMigration = result.needMigration;
95
+ this._isMigrating = result.isMigrating;
96
+ }
97
+ *selectKeyRing(vaultId) {
98
+ const msg = new background_1.SelectKeyRingMsg(vaultId);
99
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
100
+ this._status = result.status;
101
+ this._keyInfos = result.keyInfos;
102
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
103
+ }
104
+ needKeyCoinTypeFinalize(vaultId, chainInfo) {
105
+ const keyInfo = this.keyInfos.find((keyInfo) => keyInfo.id === vaultId);
106
+ if (!keyInfo) {
107
+ return false;
108
+ }
109
+ if (keyInfo.type !== "mnemonic" && keyInfo.type !== "keystone") {
110
+ return false;
111
+ }
112
+ const coinTypeTag = `keyRing-${cosmos_1.ChainIdHelper.parse(chainInfo.chainId).identifier}-coinType`;
113
+ return keyInfo.insensitive[coinTypeTag] == null;
114
+ }
115
+ computeNotFinalizedKeyAddresses(vaultId, chainId) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ const msg = new background_1.ComputeNotFinalizedKeyAddressesMsg(vaultId, chainId);
118
+ return yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
119
+ });
120
+ }
121
+ showKeyRing(vaultId, password) {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ const msg = new background_1.ShowSensitiveKeyRingDataMsg(vaultId, password);
124
+ return yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
125
+ });
126
+ }
127
+ *finalizeKeyCoinType(vaultId, chainId, coinType) {
128
+ const msg = new background_1.FinalizeKeyCoinTypeMsg(vaultId, chainId, coinType);
129
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
130
+ this._status = result.status;
131
+ this._keyInfos = result.keyInfos;
132
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
133
+ }
134
+ *newMnemonicKey(mnemonic, bip44HDPath, name, password) {
135
+ const msg = new background_1.NewMnemonicKeyMsg(mnemonic, bip44HDPath, name, password);
136
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
137
+ this._status = result.status;
138
+ this._keyInfos = result.keyInfos;
139
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
140
+ return result.vaultId;
141
+ }
142
+ *newLedgerKey(pubKey, app, bip44HDPath, name, password) {
143
+ const msg = new background_1.NewLedgerKeyMsg(pubKey, app, bip44HDPath, name, password);
144
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
145
+ this._status = result.status;
146
+ this._keyInfos = result.keyInfos;
147
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
148
+ return result.vaultId;
149
+ }
150
+ *appendLedgerKeyApp(vaultId, pubKey, app) {
151
+ const msg = new background_1.AppendLedgerKeyAppMsg(vaultId, pubKey, app);
152
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
153
+ this._status = result.status;
154
+ this._keyInfos = result.keyInfos;
155
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
156
+ }
157
+ *newKeystoneKey(multiAccounts, name, password) {
158
+ const msg = new background_1.NewKeystoneKeyMsg(multiAccounts, name, password);
159
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
160
+ this._status = result.status;
161
+ this._keyInfos = result.keyInfos;
162
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
163
+ return result.vaultId;
164
+ }
165
+ *newPrivateKeyKey(privateKey, meta, name, password) {
166
+ const msg = new background_1.NewPrivateKeyKeyMsg(privateKey, meta, name, password);
167
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
168
+ this._status = result.status;
169
+ this._keyInfos = result.keyInfos;
170
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
171
+ return result.vaultId;
172
+ }
173
+ *lock() {
174
+ const msg = new background_1.LockKeyRingMsg();
175
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
176
+ this._status = result.status;
177
+ }
178
+ *unlock(password) {
179
+ if (this._needMigration) {
180
+ this._isMigrating = true;
181
+ }
182
+ try {
183
+ const msg = new background_1.UnlockKeyRingMsg(password);
184
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
185
+ this._status = result.status;
186
+ this._keyInfos = result.keyInfos;
187
+ this._needMigration = false;
188
+ }
189
+ finally {
190
+ // Set the flag to false even if the migration is failed.
191
+ this._isMigrating = false;
192
+ }
193
+ }
194
+ *changeKeyRingName(vaultId, name) {
195
+ const msg = new background_1.ChangeKeyRingNameMsg(vaultId, name);
196
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
197
+ this._status = result.status;
198
+ this._keyInfos = result.keyInfos;
199
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
200
+ }
201
+ *deleteKeyRing(vaultId, password) {
202
+ const msg = new background_1.DeleteKeyRingMsg(vaultId, password);
203
+ const result = yield* (0, common_1.toGenerator)(this.requester.sendMessage(router_1.BACKGROUND_PORT, msg));
204
+ this._status = result.status;
205
+ this._keyInfos = result.keyInfos;
206
+ if (result.wasSelected && result.status === "unlocked") {
207
+ this.eventDispatcher.dispatchEvent("keplr_keystorechange");
208
+ }
209
+ }
210
+ changeUserPassword(prevUserPassword, newUserPassword) {
211
+ return __awaiter(this, void 0, void 0, function* () {
212
+ const msg = new background_1.ChangeUserPasswordMsg(prevUserPassword, newUserPassword);
213
+ return yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
214
+ });
215
+ }
216
+ checkLegacyKeyRingPassword(password) {
217
+ return __awaiter(this, void 0, void 0, function* () {
218
+ const msg = new background_1.CheckLegacyKeyRingPasswordMsg(password);
219
+ return yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
220
+ });
221
+ }
222
+ }
223
+ __decorate([
224
+ mobx_1.observable
225
+ ], KeyRingStore.prototype, "_isInitialized", void 0);
226
+ __decorate([
227
+ mobx_1.observable
228
+ ], KeyRingStore.prototype, "_status", void 0);
229
+ __decorate([
230
+ mobx_1.observable
231
+ ], KeyRingStore.prototype, "_needMigration", void 0);
232
+ __decorate([
233
+ mobx_1.observable
234
+ ], KeyRingStore.prototype, "_isMigrating", void 0);
235
+ __decorate([
236
+ mobx_1.observable.ref
237
+ ], KeyRingStore.prototype, "_keyInfos", void 0);
238
+ __decorate([
239
+ mobx_1.computed
240
+ ], KeyRingStore.prototype, "selectedKeyInfo", null);
241
+ __decorate([
242
+ mobx_1.flow
243
+ ], KeyRingStore.prototype, "refreshKeyRingStatus", null);
244
+ __decorate([
245
+ mobx_1.flow
246
+ ], KeyRingStore.prototype, "selectKeyRing", null);
247
+ __decorate([
248
+ mobx_1.flow
249
+ ], KeyRingStore.prototype, "finalizeKeyCoinType", null);
250
+ __decorate([
251
+ mobx_1.flow
252
+ ], KeyRingStore.prototype, "newMnemonicKey", null);
253
+ __decorate([
254
+ mobx_1.flow
255
+ ], KeyRingStore.prototype, "newLedgerKey", null);
256
+ __decorate([
257
+ mobx_1.flow
258
+ ], KeyRingStore.prototype, "appendLedgerKeyApp", null);
259
+ __decorate([
260
+ mobx_1.flow
261
+ ], KeyRingStore.prototype, "newKeystoneKey", null);
262
+ __decorate([
263
+ mobx_1.flow
264
+ ], KeyRingStore.prototype, "newPrivateKeyKey", null);
265
+ __decorate([
266
+ mobx_1.flow
267
+ ], KeyRingStore.prototype, "lock", null);
268
+ __decorate([
269
+ mobx_1.flow
270
+ ], KeyRingStore.prototype, "unlock", null);
271
+ __decorate([
272
+ mobx_1.flow
273
+ ], KeyRingStore.prototype, "changeKeyRingName", null);
274
+ __decorate([
275
+ mobx_1.flow
276
+ ], KeyRingStore.prototype, "deleteKeyRing", null);
277
+ exports.KeyRingStore = KeyRingStore;
278
+ //# sourceMappingURL=keyring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyring.js","sourceRoot":"","sources":["../../src/core/keyring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { MessageRequester } from "@keplr-wallet/router";
2
+ import { AllPermissionDataPerOrigin } from "@keplr-wallet/background";
3
+ export declare class PermissionManagerStore {
4
+ protected readonly requester: MessageRequester;
5
+ protected _isInitialized: boolean;
6
+ protected _permissionData: AllPermissionDataPerOrigin;
7
+ constructor(requester: MessageRequester);
8
+ protected init(): Promise<void>;
9
+ get isInitialized(): boolean;
10
+ get permissionData(): AllPermissionDataPerOrigin;
11
+ clearAllPermissions(): Promise<void>;
12
+ clearOrigin(origin: string): Promise<void>;
13
+ removePermission(origin: string, chainId: string, type: string): Promise<void>;
14
+ removeGlobalPermission(origin: string, type: string): Promise<void>;
15
+ }
@@ -0,0 +1,122 @@
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.PermissionManagerStore = void 0;
19
+ const router_1 = require("@keplr-wallet/router");
20
+ const mobx_1 = require("mobx");
21
+ const background_1 = require("@keplr-wallet/background");
22
+ const cosmos_1 = require("@keplr-wallet/cosmos");
23
+ class PermissionManagerStore {
24
+ constructor(requester) {
25
+ this.requester = requester;
26
+ this._isInitialized = false;
27
+ this._permissionData = {};
28
+ (0, mobx_1.makeObservable)(this);
29
+ this.init();
30
+ }
31
+ init() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const msg = new background_1.GetAllPermissionDataPerOriginMsg();
34
+ const result = yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
35
+ (0, mobx_1.runInAction)(() => {
36
+ this._permissionData = result;
37
+ });
38
+ (0, mobx_1.runInAction)(() => {
39
+ this._isInitialized = true;
40
+ });
41
+ });
42
+ }
43
+ get isInitialized() {
44
+ return this._isInitialized;
45
+ }
46
+ get permissionData() {
47
+ // Background has origin with empty permissions.
48
+ // However, it is not needed to show in the UI.
49
+ // So, trim the empty origins.
50
+ const trimmed = {};
51
+ for (const [origin, perms] of Object.entries(this._permissionData)) {
52
+ if (perms &&
53
+ (perms.permissions.length > 0 || perms.globalPermissions.length > 0)) {
54
+ trimmed[origin] = perms;
55
+ }
56
+ }
57
+ return trimmed;
58
+ }
59
+ clearAllPermissions() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ (0, mobx_1.runInAction)(() => {
62
+ this._permissionData = {};
63
+ });
64
+ const msg = new background_1.ClearAllPermissionsMsg();
65
+ yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
66
+ });
67
+ }
68
+ clearOrigin(origin) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const perms = this._permissionData[origin];
71
+ if (perms) {
72
+ (0, mobx_1.runInAction)(() => {
73
+ delete this._permissionData[origin];
74
+ });
75
+ const msg = new background_1.ClearOriginPermissionMsg(origin);
76
+ yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
77
+ }
78
+ });
79
+ }
80
+ removePermission(origin, chainId, type) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const chainIdentifier = cosmos_1.ChainIdHelper.parse(chainId).identifier;
83
+ const perms = this._permissionData[origin];
84
+ const i = perms
85
+ ? perms.permissions.findIndex((perm) => perm.chainIdentifier === chainIdentifier && perm.type === type)
86
+ : -1;
87
+ if (i >= 0 && perms) {
88
+ (0, mobx_1.runInAction)(() => {
89
+ perms.permissions.splice(i, 1);
90
+ });
91
+ const msg = new background_1.RemovePermissionOrigin(chainId, type, origin);
92
+ yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
93
+ }
94
+ });
95
+ }
96
+ removeGlobalPermission(origin, type) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ const perms = this._permissionData[origin];
99
+ const i = perms
100
+ ? perms.globalPermissions.findIndex((perm) => perm.type === type)
101
+ : -1;
102
+ if (i >= 0 && perms) {
103
+ (0, mobx_1.runInAction)(() => {
104
+ perms.globalPermissions.splice(i, 1);
105
+ });
106
+ const msg = new background_1.RemoveGlobalPermissionOriginMsg(type, origin);
107
+ yield this.requester.sendMessage(router_1.BACKGROUND_PORT, msg);
108
+ }
109
+ });
110
+ }
111
+ }
112
+ __decorate([
113
+ mobx_1.observable
114
+ ], PermissionManagerStore.prototype, "_isInitialized", void 0);
115
+ __decorate([
116
+ mobx_1.observable
117
+ ], PermissionManagerStore.prototype, "_permissionData", void 0);
118
+ __decorate([
119
+ mobx_1.computed
120
+ ], PermissionManagerStore.prototype, "permissionData", null);
121
+ exports.PermissionManagerStore = PermissionManagerStore;
122
+ //# sourceMappingURL=permission-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-manager.js","sourceRoot":"","sources":["../../src/core/permission-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { MessageRequester } from "@keplr-wallet/router";
2
+ import { TokenInfo } from "@keplr-wallet/background";
3
+ import { AppCurrency } from "@keplr-wallet/types";
4
+ import { IChainStore, IAccountStore } from "@keplr-wallet/stores";
5
+ import { InteractionStore } from "./interaction";
6
+ import { KeyRingStore } from "./keyring";
7
+ export declare class TokensStore {
8
+ protected readonly eventListener: {
9
+ addEventListener: (type: string, fn: () => unknown) => void;
10
+ };
11
+ protected readonly requester: MessageRequester;
12
+ protected readonly chainStore: IChainStore;
13
+ protected readonly accountStore: IAccountStore;
14
+ protected readonly keyRingStore: KeyRingStore;
15
+ protected readonly interactionStore: InteractionStore;
16
+ protected _isInitialized: boolean;
17
+ protected tokenMap: ReadonlyMap<string, ReadonlyArray<TokenInfo>>;
18
+ protected prevTokenMap: ReadonlyMap<string, ReadonlyArray<TokenInfo>>;
19
+ constructor(eventListener: {
20
+ addEventListener: (type: string, fn: () => unknown) => void;
21
+ }, requester: MessageRequester, chainStore: IChainStore, accountStore: IAccountStore, keyRingStore: KeyRingStore, interactionStore: InteractionStore);
22
+ init(): Promise<void>;
23
+ protected refreshTokens(): Promise<void>;
24
+ protected clearTokensFromChainInfos(): void;
25
+ protected updateChainInfos(): void;
26
+ get isInitialized(): boolean;
27
+ waitUntilInitialized(): Promise<void>;
28
+ getTokens(chainId: string): ReadonlyArray<TokenInfo>;
29
+ addToken(chainId: string, currency: AppCurrency): Promise<void>;
30
+ removeToken(chainId: string, tokenInfo: TokenInfo): Promise<void>;
31
+ get waitingSuggestedToken(): import("@keplr-wallet/background").InteractionWaitingData<{
32
+ chainId: string;
33
+ contractAddress: string;
34
+ viewingKey?: string | undefined;
35
+ }> | undefined;
36
+ approveSuggestedTokenWithProceedNext(id: string, appCurrency: AppCurrency, afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
37
+ rejectSuggestedToken(id: string, afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
38
+ rejectAllSuggestedTokens(): Promise<void>;
39
+ }