@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,64 @@
1
+ import { Router, MessageRequester } from "@keplr-wallet/router";
2
+ import { InteractionForegroundHandler, InteractionWaitingData } from "@keplr-wallet/background";
3
+ export declare class InteractionStore implements InteractionForegroundHandler {
4
+ protected readonly router: Router;
5
+ protected readonly msgRequester: MessageRequester;
6
+ protected data: InteractionWaitingData[];
7
+ protected obsoleteData: Map<string, boolean>;
8
+ constructor(router: Router, msgRequester: MessageRequester);
9
+ getAllData: <T = unknown>(type: string) => InteractionWaitingData<T>[];
10
+ getData: <T = unknown>(id: string) => InteractionWaitingData<T> | undefined;
11
+ onInteractionDataReceived(data: InteractionWaitingData): void;
12
+ onEventDataReceived(): void;
13
+ /**
14
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
15
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
16
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
17
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
18
+ * @param type
19
+ * @param id
20
+ * @param result
21
+ * @param afterFn
22
+ */
23
+ approveWithProceedNext(id: string, result: unknown, afterFn: (proceedNext: boolean) => void | Promise<void>): Generator<void | Promise<void>, void, unknown>;
24
+ /**
25
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
26
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
27
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
28
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
29
+ * @param type
30
+ * @param id
31
+ * @param result
32
+ * @param afterFn
33
+ */
34
+ approveWithProceedNextV2(ids: string | string[], result: unknown, afterFn: (proceedNext: boolean) => void | Promise<void>, options?: {
35
+ preDelay?: number;
36
+ postDelay?: number;
37
+ }): Generator<void | Promise<unknown>, void, unknown>;
38
+ /**
39
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
40
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
41
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
42
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
43
+ * @param type
44
+ * @param id
45
+ * @param afterFn
46
+ */
47
+ rejectWithProceedNext(id: string, afterFn: (proceedNext: boolean) => void | Promise<void>): Generator<void | Promise<void>, void, unknown>;
48
+ /**
49
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
50
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
51
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
52
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
53
+ * @param type
54
+ * @param id
55
+ * @param afterFn
56
+ */
57
+ rejectWithProceedNextV2(ids: string | string[], afterFn: (proceedNext: boolean) => void | Promise<void>): Generator<void | Promise<void> | Promise<unknown[]>, void, unknown>;
58
+ protected delay(ms: number): Promise<void>;
59
+ rejectAll(type: string): Generator<Promise<void>, void, unknown>;
60
+ isObsoleteInteraction(id: string | undefined): boolean;
61
+ protected removeData(ids: string | string[]): void;
62
+ protected markAsObsolete(id: string): void;
63
+ protected hasOtherData(ids: string | string[]): boolean;
64
+ }
@@ -0,0 +1,232 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InteractionStore = void 0;
10
+ const router_1 = require("@keplr-wallet/router");
11
+ const background_1 = require("@keplr-wallet/background");
12
+ const mobx_1 = require("mobx");
13
+ const mobx_utils_1 = require("mobx-utils");
14
+ class InteractionStore {
15
+ constructor(router, msgRequester) {
16
+ this.router = router;
17
+ this.msgRequester = msgRequester;
18
+ this.data = [];
19
+ // 원래 obsolete에 대한 정보를 data 밑의 field에 포함시켰는데
20
+ // obsolete 처리가 추가되기 전에는 data는 한번 받으면 그 이후에 변화되지 않는다는 가정으로 다른 로직이 짜여졌었다.
21
+ // ref도 변하면 안됐기 때문에 obsolete가 data 밑에 있으면 이러한 요구사항을 이루면서 처리할 수가 없다.
22
+ // (특히 서명 페이지에서 문제가 될 수 있음)
23
+ // 기존의 로직과의 호환성을 위해서 아예 분리되었음.
24
+ this.obsoleteData = new Map();
25
+ this.getAllData = (0, mobx_utils_1.computedFn)((type) => {
26
+ return (0, mobx_1.toJS)(this.data.filter((d) => d.type === type));
27
+ });
28
+ this.getData = (0, mobx_utils_1.computedFn)((id) => {
29
+ return this.data.find((d) => d.id === id);
30
+ });
31
+ (0, mobx_1.makeObservable)(this);
32
+ const service = new background_1.InteractionForegroundService(this);
33
+ (0, background_1.interactionForegroundInit)(router, service);
34
+ }
35
+ onInteractionDataReceived(data) {
36
+ this.data.push(data);
37
+ }
38
+ onEventDataReceived() {
39
+ // noop
40
+ }
41
+ /**
42
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
43
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
44
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
45
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
46
+ * @param type
47
+ * @param id
48
+ * @param result
49
+ * @param afterFn
50
+ */
51
+ *approveWithProceedNext(id, result, afterFn) {
52
+ const d = this.getData(id);
53
+ if (!d || this.isObsoleteInteraction(id)) {
54
+ return;
55
+ }
56
+ this.markAsObsolete(id);
57
+ yield this.msgRequester.sendMessage(router_1.BACKGROUND_PORT, new background_1.ApproveInteractionMsg(id, result));
58
+ yield this.delay(100);
59
+ yield afterFn(this.hasOtherData(id));
60
+ this.removeData(id);
61
+ }
62
+ /**
63
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
64
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
65
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
66
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
67
+ * @param type
68
+ * @param id
69
+ * @param result
70
+ * @param afterFn
71
+ */
72
+ *approveWithProceedNextV2(ids, result, afterFn, options = {}) {
73
+ var _a;
74
+ if (typeof ids === "string") {
75
+ ids = [ids];
76
+ }
77
+ const fresh = [];
78
+ for (const id of ids) {
79
+ const d = this.getData(id);
80
+ if (!d || this.isObsoleteInteraction(id)) {
81
+ continue;
82
+ }
83
+ this.markAsObsolete(id);
84
+ fresh.push(id);
85
+ }
86
+ if (options.preDelay && options.preDelay > 0) {
87
+ yield new Promise((resolve) => setTimeout(resolve, options.preDelay));
88
+ }
89
+ const promises = [];
90
+ for (const id of fresh) {
91
+ promises.push(this.msgRequester.sendMessage(router_1.BACKGROUND_PORT, new background_1.ApproveInteractionV2Msg(id, result)));
92
+ }
93
+ yield Promise.all(promises);
94
+ if (options.postDelay == null || options.postDelay > 0) {
95
+ yield this.delay((_a = options.postDelay) !== null && _a !== void 0 ? _a : 50);
96
+ }
97
+ yield afterFn(this.hasOtherData(ids));
98
+ this.removeData(ids);
99
+ }
100
+ /**
101
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
102
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
103
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
104
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
105
+ * @param type
106
+ * @param id
107
+ * @param afterFn
108
+ */
109
+ *rejectWithProceedNext(id, afterFn) {
110
+ const d = this.getData(id);
111
+ if (!d || this.isObsoleteInteraction(id)) {
112
+ return;
113
+ }
114
+ this.markAsObsolete(id);
115
+ yield this.msgRequester.sendMessage(router_1.BACKGROUND_PORT, new background_1.RejectInteractionMsg(id));
116
+ yield this.delay(100);
117
+ yield afterFn(this.hasOtherData(id));
118
+ this.removeData(id);
119
+ }
120
+ /**
121
+ * 웹페이지에서 어떤 API를 요청해서 extension이 켜졌을때
122
+ * extension에서 요청을 처리하고 바로 팝업을 닫으면
123
+ * 이후에 연속적인 api 요청의 경우 다시 페이지가 열려야하는데 이게 은근히 어색한 UX를 만들기 때문에
124
+ * 이를 대충 해결하기 위해서 approve 이후에 대충 조금 기다리고 남은 interaction이 있느냐 아니냐에 따라 다른 처리를 한다.
125
+ * @param type
126
+ * @param id
127
+ * @param afterFn
128
+ */
129
+ *rejectWithProceedNextV2(ids, afterFn) {
130
+ if (typeof ids === "string") {
131
+ ids = [ids];
132
+ }
133
+ const fresh = [];
134
+ for (const id of ids) {
135
+ const d = this.getData(id);
136
+ if (!d || this.isObsoleteInteraction(id)) {
137
+ continue;
138
+ }
139
+ this.markAsObsolete(id);
140
+ fresh.push(id);
141
+ }
142
+ const promises = [];
143
+ for (const id of fresh) {
144
+ promises.push(this.msgRequester.sendMessage(router_1.BACKGROUND_PORT, new background_1.RejectInteractionV2Msg(id)));
145
+ }
146
+ yield Promise.all(promises);
147
+ yield this.delay(50);
148
+ yield afterFn(this.hasOtherData(ids));
149
+ this.removeData(ids);
150
+ }
151
+ delay(ms) {
152
+ return new Promise((resolve) => {
153
+ setTimeout(resolve, ms);
154
+ });
155
+ }
156
+ *rejectAll(type) {
157
+ const data = this.getAllData(type);
158
+ for (const d of data) {
159
+ if (this.isObsoleteInteraction(d.id)) {
160
+ continue;
161
+ }
162
+ yield this.msgRequester.sendMessage(router_1.BACKGROUND_PORT, new background_1.RejectInteractionMsg(d.id));
163
+ this.removeData(d.id);
164
+ }
165
+ }
166
+ // UI에서 좀 더 편하게 쓸 수 있게 하려고 undefined도 파라미터로 허용함.
167
+ isObsoleteInteraction(id) {
168
+ var _a;
169
+ if (!id) {
170
+ return false;
171
+ }
172
+ return (_a = this.obsoleteData.get(id)) !== null && _a !== void 0 ? _a : false;
173
+ }
174
+ removeData(ids) {
175
+ if (typeof ids === "string") {
176
+ ids = [ids];
177
+ }
178
+ for (const id of ids) {
179
+ this.data = this.data.filter((d) => d.id !== id);
180
+ this.obsoleteData.delete(id);
181
+ }
182
+ }
183
+ markAsObsolete(id) {
184
+ if (this.getData(id)) {
185
+ this.obsoleteData.set(id, true);
186
+ }
187
+ }
188
+ hasOtherData(ids) {
189
+ if (typeof ids === "string") {
190
+ ids = [ids];
191
+ }
192
+ const find = this.data.find((data) => {
193
+ return !ids.includes(data.id);
194
+ });
195
+ return !!find;
196
+ }
197
+ }
198
+ __decorate([
199
+ mobx_1.observable.shallow
200
+ ], InteractionStore.prototype, "data", void 0);
201
+ __decorate([
202
+ mobx_1.observable.shallow
203
+ ], InteractionStore.prototype, "obsoleteData", void 0);
204
+ __decorate([
205
+ mobx_1.action
206
+ ], InteractionStore.prototype, "onInteractionDataReceived", null);
207
+ __decorate([
208
+ mobx_1.action
209
+ ], InteractionStore.prototype, "onEventDataReceived", null);
210
+ __decorate([
211
+ mobx_1.flow
212
+ ], InteractionStore.prototype, "approveWithProceedNext", null);
213
+ __decorate([
214
+ mobx_1.flow
215
+ ], InteractionStore.prototype, "approveWithProceedNextV2", null);
216
+ __decorate([
217
+ mobx_1.flow
218
+ ], InteractionStore.prototype, "rejectWithProceedNext", null);
219
+ __decorate([
220
+ mobx_1.flow
221
+ ], InteractionStore.prototype, "rejectWithProceedNextV2", null);
222
+ __decorate([
223
+ mobx_1.flow
224
+ ], InteractionStore.prototype, "rejectAll", null);
225
+ __decorate([
226
+ mobx_1.action
227
+ ], InteractionStore.prototype, "removeData", null);
228
+ __decorate([
229
+ mobx_1.action
230
+ ], InteractionStore.prototype, "markAsObsolete", null);
231
+ exports.InteractionStore = InteractionStore;
232
+ //# sourceMappingURL=interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/core/interaction/interaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { InteractionStore } from "./interaction";
2
+ import { GlobalPermissionData, PermissionData } from "@keplr-wallet/background";
3
+ import { MessageRequester } from "@keplr-wallet/router";
4
+ export declare class PermissionStore {
5
+ protected readonly interactionStore: InteractionStore;
6
+ protected readonly requester: MessageRequester;
7
+ constructor(interactionStore: InteractionStore, requester: MessageRequester);
8
+ get waitingPermissionData(): import("@keplr-wallet/background").InteractionWaitingData<PermissionData> | undefined;
9
+ get waitingPermissionDatas(): import("@keplr-wallet/background").InteractionWaitingData<PermissionData>[];
10
+ get waitingPermissionMergedData(): ({
11
+ ids: string[];
12
+ } & PermissionData) | undefined;
13
+ get waitingGlobalPermissionData(): import("@keplr-wallet/background").InteractionWaitingData<GlobalPermissionData> | undefined;
14
+ get waitingGlobalPermissionDatas(): import("@keplr-wallet/background").InteractionWaitingData<GlobalPermissionData>[];
15
+ approvePermissionWithProceedNext(id: string | string[], afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
16
+ rejectPermissionWithProceedNext(id: string | string[], afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
17
+ rejectPermissionAll(): Promise<void>;
18
+ approveGlobalPermissionWithProceedNext(id: string, afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
19
+ rejectGlobalPermissionWithProceedNext(id: string, afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
20
+ rejectGlobalPermissionAll(): Promise<void>;
21
+ isObsoleteInteraction(id: string | undefined): boolean;
22
+ }
@@ -0,0 +1,108 @@
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.PermissionStore = void 0;
19
+ const background_1 = require("@keplr-wallet/background");
20
+ const mobx_1 = require("mobx");
21
+ class PermissionStore {
22
+ constructor(interactionStore, requester) {
23
+ this.interactionStore = interactionStore;
24
+ this.requester = requester;
25
+ (0, mobx_1.makeObservable)(this);
26
+ }
27
+ get waitingPermissionData() {
28
+ if (this.waitingPermissionDatas.length > 0) {
29
+ return this.waitingPermissionDatas[0];
30
+ }
31
+ }
32
+ get waitingPermissionDatas() {
33
+ return this.interactionStore.getAllData(background_1.INTERACTION_TYPE_PERMISSION);
34
+ }
35
+ get waitingPermissionMergedData() {
36
+ const data = this.waitingPermissionDatas;
37
+ if (data.length === 0) {
38
+ return;
39
+ }
40
+ const first = data[0];
41
+ const res = {
42
+ ids: [first.id],
43
+ chainIds: first.data.chainIds,
44
+ type: first.data.type,
45
+ origins: first.data.origins,
46
+ };
47
+ for (let i = 1; i < data.length; i++) {
48
+ const d = data[i];
49
+ if (d.data.type !== first.data.type) {
50
+ break;
51
+ }
52
+ if (d.data.origins.join(",") !== first.data.origins.join(",")) {
53
+ break;
54
+ }
55
+ res.ids.push(d.id);
56
+ res.chainIds.push(...d.data.chainIds);
57
+ }
58
+ // Remove duplicated chain ids.
59
+ res.chainIds = [...new Set(res.chainIds)];
60
+ return res;
61
+ }
62
+ get waitingGlobalPermissionData() {
63
+ if (this.waitingGlobalPermissionDatas.length > 0) {
64
+ return this.waitingGlobalPermissionDatas[0];
65
+ }
66
+ }
67
+ get waitingGlobalPermissionDatas() {
68
+ return this.interactionStore.getAllData(background_1.INTERACTION_TYPE_GLOBAL_PERMISSION);
69
+ }
70
+ approvePermissionWithProceedNext(id, afterFn) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ yield this.interactionStore.approveWithProceedNextV2(id, {}, afterFn);
73
+ });
74
+ }
75
+ rejectPermissionWithProceedNext(id, afterFn) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ yield this.interactionStore.rejectWithProceedNextV2(id, afterFn);
78
+ });
79
+ }
80
+ rejectPermissionAll() {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ yield this.interactionStore.rejectAll(background_1.INTERACTION_TYPE_PERMISSION);
83
+ });
84
+ }
85
+ approveGlobalPermissionWithProceedNext(id, afterFn) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ yield this.interactionStore.approveWithProceedNextV2(id, {}, afterFn);
88
+ });
89
+ }
90
+ rejectGlobalPermissionWithProceedNext(id, afterFn) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ yield this.interactionStore.rejectWithProceedNextV2(id, afterFn);
93
+ });
94
+ }
95
+ rejectGlobalPermissionAll() {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ yield this.interactionStore.rejectAll(background_1.INTERACTION_TYPE_GLOBAL_PERMISSION);
98
+ });
99
+ }
100
+ isObsoleteInteraction(id) {
101
+ return this.interactionStore.isObsoleteInteraction(id);
102
+ }
103
+ }
104
+ __decorate([
105
+ mobx_1.computed
106
+ ], PermissionStore.prototype, "waitingPermissionMergedData", null);
107
+ exports.PermissionStore = PermissionStore;
108
+ //# sourceMappingURL=permission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/core/interaction/permission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { InteractionStore } from "./interaction";
2
+ import { SignDocWrapper } from "@keplr-wallet/cosmos";
3
+ import { KeplrSignOptions, StdSignDoc } from "@keplr-wallet/types";
4
+ import { InteractionWaitingData, PlainObject } from "@keplr-wallet/background";
5
+ export type SignInteractionData = {
6
+ origin: string;
7
+ chainId: string;
8
+ mode: "amino";
9
+ signer: string;
10
+ pubKey: Uint8Array;
11
+ signDoc: StdSignDoc;
12
+ signOptions: KeplrSignOptions & {
13
+ isADR36WithString?: boolean;
14
+ };
15
+ keyType: string;
16
+ keyInsensitive: PlainObject;
17
+ eip712?: {
18
+ types: Record<string, {
19
+ name: string;
20
+ type: string;
21
+ }[] | undefined>;
22
+ domain: Record<string, any>;
23
+ primaryType: string;
24
+ };
25
+ } | {
26
+ origin: string;
27
+ chainId: string;
28
+ mode: "direct";
29
+ signer: string;
30
+ pubKey: Uint8Array;
31
+ signDocBytes: Uint8Array;
32
+ signOptions: KeplrSignOptions;
33
+ keyType: string;
34
+ keyInsensitive: PlainObject;
35
+ };
36
+ export declare class SignInteractionStore {
37
+ protected readonly interactionStore: InteractionStore;
38
+ constructor(interactionStore: InteractionStore);
39
+ get waitingDatas(): InteractionWaitingData<SignInteractionData>[];
40
+ get waitingData(): InteractionWaitingData<SignInteractionData & {
41
+ signDocWrapper: SignDocWrapper;
42
+ }> | undefined;
43
+ approveWithProceedNext(id: string, newSignDocWrapper: SignDocWrapper, signature: Uint8Array | undefined, afterFn: (proceedNext: boolean) => void | Promise<void>, options?: {
44
+ preDelay?: number;
45
+ }): Promise<void>;
46
+ rejectWithProceedNext(id: string, afterFn: (proceedNext: boolean) => void | Promise<void>): Promise<void>;
47
+ rejectAll(): Promise<void>;
48
+ isObsoleteInteraction(id: string | undefined): boolean;
49
+ }
@@ -0,0 +1,78 @@
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.SignInteractionStore = void 0;
19
+ const mobx_1 = require("mobx");
20
+ const cosmos_1 = require("@keplr-wallet/cosmos");
21
+ class SignInteractionStore {
22
+ constructor(interactionStore) {
23
+ this.interactionStore = interactionStore;
24
+ (0, mobx_1.makeObservable)(this);
25
+ }
26
+ get waitingDatas() {
27
+ return this.interactionStore.getAllData("request-sign-cosmos");
28
+ }
29
+ get waitingData() {
30
+ const datas = this.waitingDatas;
31
+ if (datas.length === 0) {
32
+ return undefined;
33
+ }
34
+ const data = datas[0];
35
+ const wrapper = data.data.mode === "amino"
36
+ ? cosmos_1.SignDocWrapper.fromAminoSignDoc(data.data.signDoc)
37
+ : cosmos_1.SignDocWrapper.fromDirectSignDocBytes(data.data.signDocBytes);
38
+ return {
39
+ id: data.id,
40
+ type: data.type,
41
+ isInternal: data.isInternal,
42
+ data: Object.assign(Object.assign({}, data.data), { signDocWrapper: wrapper }),
43
+ };
44
+ }
45
+ approveWithProceedNext(id, newSignDocWrapper, signature, afterFn, options = {}) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const res = (() => {
48
+ if (newSignDocWrapper.mode === "amino") {
49
+ return {
50
+ newSignDoc: newSignDocWrapper.aminoSignDoc,
51
+ };
52
+ }
53
+ return {
54
+ newSignDocBytes: newSignDocWrapper.protoSignDoc.toBytes(),
55
+ };
56
+ })();
57
+ yield this.interactionStore.approveWithProceedNextV2(id, Object.assign(Object.assign({}, res), { signature }), afterFn, options);
58
+ });
59
+ }
60
+ rejectWithProceedNext(id, afterFn) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ yield this.interactionStore.rejectWithProceedNext(id, afterFn);
63
+ });
64
+ }
65
+ rejectAll() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ yield this.interactionStore.rejectAll("request-sign-cosmos");
68
+ });
69
+ }
70
+ isObsoleteInteraction(id) {
71
+ return this.interactionStore.isObsoleteInteraction(id);
72
+ }
73
+ }
74
+ __decorate([
75
+ mobx_1.computed
76
+ ], SignInteractionStore.prototype, "waitingData", null);
77
+ exports.SignInteractionStore = SignInteractionStore;
78
+ //# sourceMappingURL=sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/core/interaction/sign.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,+BAAgD;AAChD,iDAAsD;AAoCtD,MAAa,oBAAoB;IAC/B,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,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAGD,IAAI,WAAW;QAKb,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;YACxB,CAAC,CAAC,uBAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACpD,CAAC,CAAC,uBAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEpE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,cAAc,EAAE,OAAO,GACxB;SACF,CAAC;IACJ,CAAC;IAEK,sBAAsB,CAC1B,EAAU,EACV,iBAAiC,EACjC,SAAiC,EACjC,OAAuD,EACvD,UAEI,EAAE;;YAEN,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;gBAChB,IAAI,iBAAiB,CAAC,IAAI,KAAK,OAAO,EAAE;oBACtC,OAAO;wBACL,UAAU,EAAE,iBAAiB,CAAC,YAAY;qBAC3C,CAAC;iBACH;gBACD,OAAO;oBACL,eAAe,EAAE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE;iBAC1D,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;YAEL,MAAM,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAClD,EAAE,kCAEG,GAAG,KACN,SAAS,KAEX,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,qBAAqB,CAAC,CAAC;QAC/D,CAAC;KAAA;IAED,qBAAqB,CAAC,EAAsB;QAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAzEC;IADC,eAAQ;uDA2BR;AAtCH,oDAqFC"}