@metamask-previews/signature-controller 19.1.0-preview-ada451da → 19.1.0-preview-00a41cb8

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 (50) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/SignatureController.cjs +319 -297
  3. package/dist/SignatureController.cjs.map +1 -1
  4. package/dist/SignatureController.d.cts +89 -48
  5. package/dist/SignatureController.d.cts.map +1 -1
  6. package/dist/SignatureController.d.mts +89 -48
  7. package/dist/SignatureController.d.mts.map +1 -1
  8. package/dist/SignatureController.mjs +321 -300
  9. package/dist/SignatureController.mjs.map +1 -1
  10. package/dist/index.cjs +1 -0
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +1 -0
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.mts +1 -0
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +1 -0
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/logger.cjs +8 -0
  19. package/dist/logger.cjs.map +1 -0
  20. package/dist/logger.d.cts +5 -0
  21. package/dist/logger.d.cts.map +1 -0
  22. package/dist/logger.d.mts +5 -0
  23. package/dist/logger.d.mts.map +1 -0
  24. package/dist/logger.mjs +5 -0
  25. package/dist/logger.mjs.map +1 -0
  26. package/dist/types.cjs +20 -0
  27. package/dist/types.cjs.map +1 -0
  28. package/dist/types.d.cts +104 -0
  29. package/dist/types.d.cts.map +1 -0
  30. package/dist/types.d.mts +104 -0
  31. package/dist/types.d.mts.map +1 -0
  32. package/dist/types.mjs +17 -0
  33. package/dist/types.mjs.map +1 -0
  34. package/dist/utils/normalize.cjs +52 -0
  35. package/dist/utils/normalize.cjs.map +1 -0
  36. package/dist/utils/normalize.d.cts +16 -0
  37. package/dist/utils/normalize.d.cts.map +1 -0
  38. package/dist/utils/normalize.d.mts +16 -0
  39. package/dist/utils/normalize.d.mts.map +1 -0
  40. package/dist/utils/normalize.mjs +47 -0
  41. package/dist/utils/normalize.mjs.map +1 -0
  42. package/dist/utils/validation.cjs +113 -0
  43. package/dist/utils/validation.cjs.map +1 -0
  44. package/dist/utils/validation.d.cts +16 -0
  45. package/dist/utils/validation.d.cts.map +1 -0
  46. package/dist/utils/validation.d.mts +16 -0
  47. package/dist/utils/validation.d.mts.map +1 -0
  48. package/dist/utils/validation.mjs +109 -0
  49. package/dist/utils/validation.mjs.map +1 -0
  50. package/package.json +5 -3
@@ -13,28 +13,40 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
- var _SignatureController_instances, _SignatureController_getAllState, _SignatureController_personalMessageManager, _SignatureController_typedMessageManager, _SignatureController_trace, _SignatureController_newUnsignedAbstractMessage, _SignatureController_signPersonalMessage, _SignatureController_signTypedMessage, _SignatureController_tryForEachMessageManager, _SignatureController_trySetDeferredSignSuccess, _SignatureController_trySetMessageMetadata, _SignatureController_trySetDeferredSignError, _SignatureController_rejectUnapproved, _SignatureController_clearUnapproved, _SignatureController_signAbstractMessage, _SignatureController_errorMessage, _SignatureController_cancelAbstractMessage, _SignatureController_handleMessageManagerEvents, _SignatureController_subscribeToMessageState, _SignatureController_migrateMessages, _SignatureController_migrateMessage, _SignatureController_getMessage, _SignatureController_requestApproval, _SignatureController_removeJsonData, _SignatureController_addLog, _SignatureController_getSignTypeForLogger;
16
+ var _SignatureController_instances, _SignatureController_getCurrentChainId, _SignatureController_trace, _SignatureController_parseTypedData, _SignatureController_processSignatureRequest, _SignatureController_addMetadata, _SignatureController_processApproval, _SignatureController_approveAndSignRequest, _SignatureController_signRequest, _SignatureController_errorSignatureRequest, _SignatureController_rejectSignatureRequest, _SignatureController_waitForFinished, _SignatureController_requestApproval, _SignatureController_updateMetadata, _SignatureController_updateState, _SignatureController_generateLegacyState, _SignatureController_addLog, _SignatureController_getSignTypeForLogger;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.SignatureController = void 0;
19
19
  const base_controller_1 = require("@metamask/base-controller");
20
20
  const controller_utils_1 = require("@metamask/controller-utils");
21
+ const keyring_controller_1 = require("@metamask/keyring-controller");
21
22
  const logging_controller_1 = require("@metamask/logging-controller");
22
- const message_manager_1 = require("@metamask/message-manager");
23
23
  const events_1 = __importDefault(require("events"));
24
- const lodash_1 = require("lodash");
24
+ const uuid_1 = require("uuid");
25
+ const logger_1 = require("./logger.cjs");
26
+ const types_1 = require("./types.cjs");
27
+ const normalize_1 = require("./utils/normalize.cjs");
28
+ const validation_1 = require("./utils/validation.cjs");
25
29
  const controllerName = 'SignatureController';
26
30
  const stateMetadata = {
31
+ signatureRequests: { persist: false, anonymous: false },
27
32
  unapprovedPersonalMsgs: { persist: false, anonymous: false },
28
33
  unapprovedTypedMessages: { persist: false, anonymous: false },
29
34
  unapprovedPersonalMsgCount: { persist: false, anonymous: false },
30
35
  unapprovedTypedMessagesCount: { persist: false, anonymous: false },
31
36
  };
32
37
  const getDefaultState = () => ({
38
+ signatureRequests: {},
33
39
  unapprovedPersonalMsgs: {},
34
40
  unapprovedTypedMessages: {},
35
41
  unapprovedPersonalMsgCount: 0,
36
42
  unapprovedTypedMessagesCount: 0,
37
43
  });
44
+ /** List of statuses that will not be updated and trigger the finished event. */
45
+ const FINAL_STATUSES = [
46
+ types_1.SignatureRequestStatus.Signed,
47
+ types_1.SignatureRequestStatus.Rejected,
48
+ types_1.SignatureRequestStatus.Errored,
49
+ ];
38
50
  /**
39
51
  * Controller for creating signing requests requiring user approval.
40
52
  */
@@ -43,79 +55,59 @@ class SignatureController extends base_controller_1.BaseController {
43
55
  * Construct a Sign controller.
44
56
  *
45
57
  * @param options - The controller options.
58
+ * @param options.getCurrentChainId - A function that returns the current chain ID.
46
59
  * @param options.messenger - The restricted controller messenger for the sign controller.
47
- * @param options.getAllState - Callback to retrieve all user state.
48
- * @param options.securityProviderRequest - A function for verifying a message, whether it is malicious or not.
49
- * @param options.getCurrentChainId - A function for retrieving the current chainId.
60
+ * @param options.state - Initial state to set on this controller.
50
61
  * @param options.trace - Callback to generate trace information.
51
62
  */
52
- constructor({ getAllState, getCurrentChainId, messenger, securityProviderRequest, trace, }) {
63
+ constructor({ getCurrentChainId, messenger, state, trace, }) {
53
64
  super({
54
65
  name: controllerName,
55
66
  metadata: stateMetadata,
56
67
  messenger,
57
- state: getDefaultState(),
68
+ state: {
69
+ ...getDefaultState(),
70
+ ...state,
71
+ },
58
72
  });
59
73
  _SignatureController_instances.add(this);
60
- // TODO: Replace `any` with type
61
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
- _SignatureController_getAllState.set(this, void 0);
63
- _SignatureController_personalMessageManager.set(this, void 0);
64
- _SignatureController_typedMessageManager.set(this, void 0);
74
+ _SignatureController_getCurrentChainId.set(this, void 0);
65
75
  _SignatureController_trace.set(this, void 0);
66
- __classPrivateFieldSet(this, _SignatureController_getAllState, getAllState, "f");
67
76
  this.hub = new events_1.default();
68
- __classPrivateFieldSet(this, _SignatureController_personalMessageManager, new message_manager_1.PersonalMessageManager(undefined, undefined, securityProviderRequest), "f");
69
- __classPrivateFieldSet(this, _SignatureController_typedMessageManager, new message_manager_1.TypedMessageManager(undefined, undefined, securityProviderRequest, undefined, getCurrentChainId), "f");
77
+ __classPrivateFieldSet(this, _SignatureController_getCurrentChainId, getCurrentChainId, "f");
70
78
  __classPrivateFieldSet(this, _SignatureController_trace, trace ?? ((_request, fn) => fn?.()), "f");
71
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_handleMessageManagerEvents).call(this, __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f"), 'unapprovedPersonalMessage');
72
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_handleMessageManagerEvents).call(this, __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f"), 'unapprovedTypedMessage');
73
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_subscribeToMessageState).call(this, __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f"), (state, newMessages, messageCount) => {
74
- state.unapprovedPersonalMsgs = newMessages;
75
- state.unapprovedPersonalMsgCount = messageCount;
76
- });
77
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_subscribeToMessageState).call(this, __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f"), (state, newMessages, messageCount) => {
78
- state.unapprovedTypedMessages = newMessages;
79
- state.unapprovedTypedMessagesCount = messageCount;
80
- });
81
79
  }
82
80
  /**
83
81
  * A getter for the number of 'unapproved' PersonalMessages in this.messages.
84
- *
82
+ * @deprecated Use `signatureRequests` state instead.
85
83
  * @returns The number of 'unapproved' PersonalMessages in this.messages
86
84
  */
87
85
  get unapprovedPersonalMessagesCount() {
88
- return __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f").getUnapprovedMessagesCount();
86
+ return this.state.unapprovedPersonalMsgCount;
89
87
  }
90
88
  /**
91
89
  * A getter for the number of 'unapproved' TypedMessages in this.messages.
92
- *
90
+ * @deprecated Use `signatureRequests` state instead.
93
91
  * @returns The number of 'unapproved' TypedMessages in this.messages
94
92
  */
95
93
  get unapprovedTypedMessagesCount() {
96
- return __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f").getUnapprovedMessagesCount();
94
+ return this.state.unapprovedTypedMessagesCount;
97
95
  }
98
96
  /**
99
97
  * A getter for returning all messages.
100
- *
98
+ * @deprecated Use `signatureRequests` state instead.
101
99
  * @returns The object containing all messages.
102
100
  */
103
101
  get messages() {
104
- const messages = [
105
- ...__classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f").getAllMessages(),
106
- ...__classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f").getAllMessages(),
107
- ];
108
- const messagesObject = messages.reduce((acc, message) => {
109
- acc[message.id] = message;
110
- return acc;
111
- }, {});
112
- return messagesObject;
102
+ return this.state.signatureRequests;
113
103
  }
114
104
  /**
115
105
  * Reset the controller state to the initial state.
116
106
  */
117
107
  resetState() {
118
- this.update(() => getDefaultState());
108
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateState).call(this, (state) => {
109
+ Object.assign(state, getDefaultState());
110
+ });
119
111
  }
120
112
  /**
121
113
  * Reject all unapproved messages of any type.
@@ -123,303 +115,295 @@ class SignatureController extends base_controller_1.BaseController {
123
115
  * @param reason - A message to indicate why.
124
116
  */
125
117
  rejectUnapproved(reason) {
126
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_rejectUnapproved).call(this, __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f"), reason);
127
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_rejectUnapproved).call(this, __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f"), reason);
118
+ const unapprovedSignatureRequests = Object.values(this.state.signatureRequests).filter((metadata) => metadata.status === types_1.SignatureRequestStatus.Unapproved);
119
+ for (const metadata of unapprovedSignatureRequests) {
120
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_rejectSignatureRequest).call(this, metadata.id, reason);
121
+ }
128
122
  }
129
123
  /**
130
124
  * Clears all unapproved messages from memory.
131
125
  */
132
126
  clearUnapproved() {
133
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_clearUnapproved).call(this, __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f"));
134
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_clearUnapproved).call(this, __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f"));
127
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateState).call(this, (state) => {
128
+ Object.values(state.signatureRequests)
129
+ .filter((metadata) => metadata.status === types_1.SignatureRequestStatus.Unapproved)
130
+ .forEach((metadata) => delete state.signatureRequests[metadata.id]);
131
+ });
135
132
  }
136
133
  /**
137
- * Called when a dapp uses the personal_sign method.
134
+ * Called when a dApp uses the personal_sign method.
135
+ * We currently provide personal_sign mostly for legacy dApps.
138
136
  *
139
- * We currently define personal_sign mostly for legacy Dapps.
140
- *
141
- * @param messageParams - The params of the message to sign & return to the Dapp.
142
- * @param req - The original request, containing the origin.
137
+ * @param messageParams - The params of the message to sign and return to the dApp.
138
+ * @param request - The original request, containing the origin.
143
139
  * @param options - An options bag for the method.
144
140
  * @param options.traceContext - The parent context for any new traces.
145
- * @returns Promise resolving to the raw data of the signature request.
141
+ * @returns Promise resolving to the raw signature hash generated from the signature request.
146
142
  */
147
- async newUnsignedPersonalMessage(messageParams, req, options = {}) {
148
- return __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_newUnsignedAbstractMessage).call(this, __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f"), controller_utils_1.ApprovalType.PersonalSign, logging_controller_1.SigningMethod.PersonalSign, 'Personal Message',
149
- // TODO: Either fix this lint violation or explain why it's necessary to ignore.
150
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
151
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_signPersonalMessage).bind(this), messageParams, req, undefined, undefined, options.traceContext);
143
+ async newUnsignedPersonalMessage(messageParams, request, options = {}) {
144
+ (0, validation_1.validatePersonalSignatureRequest)(messageParams);
145
+ const normalizedMessageParams = (0, normalize_1.normalizePersonalMessageParams)(messageParams);
146
+ normalizedMessageParams.siwe = (0, controller_utils_1.detectSIWE)(messageParams);
147
+ return __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_processSignatureRequest).call(this, {
148
+ messageParams: normalizedMessageParams,
149
+ request,
150
+ type: types_1.SignatureRequestType.PersonalSign,
151
+ approvalType: controller_utils_1.ApprovalType.PersonalSign,
152
+ traceContext: options.traceContext,
153
+ });
152
154
  }
153
155
  /**
154
- * Called when a dapp uses the eth_signTypedData method, per EIP 712.
156
+ * Called when a dapp uses the eth_signTypedData method, per EIP-712.
155
157
  *
156
- * @param messageParams - The params passed to eth_signTypedData.
157
- * @param req - The original request, containing the origin.
158
- * @param version - The version indicating the format of the typed data.
159
- * @param signingOpts - An options bag for signing.
160
- * @param signingOpts.parseJsonData - Whether to parse the JSON before signing.
158
+ * @param messageParams - The params of the message to sign and return to the dApp.
159
+ * @param request - The original request, containing the origin.
160
+ * @param version - The version of the signTypedData request.
161
+ * @param signingOptions - Options for signing the typed message.
161
162
  * @param options - An options bag for the method.
162
163
  * @param options.traceContext - The parent context for any new traces.
163
- * @returns Promise resolving to the raw data of the signature request.
164
+ * @returns Promise resolving to the raw signature hash generated from the signature request.
164
165
  */
165
- async newUnsignedTypedMessage(messageParams, req, version, signingOpts, options = {}) {
166
- const signTypeForLogger = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_getSignTypeForLogger).call(this, version);
167
- return __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_newUnsignedAbstractMessage).call(this, __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f"), controller_utils_1.ApprovalType.EthSignTypedData, signTypeForLogger, 'Typed Message',
168
- // TODO: Either fix this lint violation or explain why it's necessary to ignore.
169
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
170
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_signTypedMessage).bind(this), messageParams, req, version, signingOpts, options.traceContext);
166
+ async newUnsignedTypedMessage(messageParams, request, version, signingOptions, options = {}) {
167
+ (0, validation_1.validateTypedSignatureRequest)(messageParams, version, __classPrivateFieldGet(this, _SignatureController_getCurrentChainId, "f").call(this));
168
+ const normalizedMessageParams = (0, normalize_1.normalizeTypedMessageParams)(messageParams, version);
169
+ return __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_processSignatureRequest).call(this, {
170
+ messageParams: normalizedMessageParams,
171
+ request,
172
+ type: types_1.SignatureRequestType.TypedSign,
173
+ approvalType: controller_utils_1.ApprovalType.EthSignTypedData,
174
+ version: version,
175
+ signingOptions,
176
+ traceContext: options.traceContext,
177
+ });
171
178
  }
172
179
  /**
173
- * Called to update the message status as signed.
180
+ * Provide a signature for a pending signature request that used `deferSetAsSigned`.
181
+ * Changes the status of the signature request to `signed`.
174
182
  *
175
- * @param messageId - The id of the Message to update.
176
- * @param signature - The data to update the message with.
183
+ * @param signatureRequestId - The ID of the signature request.
184
+ * @param signature - The signature to provide.
177
185
  */
178
- // TODO: Replace `any` with type
179
186
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
180
- setDeferredSignSuccess(messageId, signature) {
181
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_tryForEachMessageManager).call(this, __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_trySetDeferredSignSuccess), messageId, signature);
187
+ setDeferredSignSuccess(signatureRequestId, signature) {
188
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, signatureRequestId, (draftMetadata) => {
189
+ draftMetadata.rawSig = signature;
190
+ draftMetadata.status = types_1.SignatureRequestStatus.Signed;
191
+ });
182
192
  }
183
193
  /**
184
- * Called when the message metadata needs to be updated.
185
- *
186
- * @param messageId - The id of the message to update.
187
- * @param metadata - The data to update the metadata property in the message.
194
+ * Set custom metadata on a signature request.
195
+ * @param signatureRequestId - The ID of the signature request.
196
+ * @param metadata - The custom metadata to set.
188
197
  */
189
- setMessageMetadata(messageId, metadata) {
190
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_tryForEachMessageManager).call(this, __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_trySetMessageMetadata), messageId, metadata);
198
+ setMessageMetadata(signatureRequestId, metadata) {
199
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, signatureRequestId, (draftMetadata) => {
200
+ draftMetadata.metadata = metadata;
201
+ });
191
202
  }
192
203
  /**
193
- * Called to cancel a signing message.
204
+ * Reject a pending signature request that used `deferSetAsSigned`.
205
+ * Changes the status of the signature request to `rejected`.
194
206
  *
195
- * @param messageId - The id of the Message to update.
207
+ * @param signatureRequestId - The ID of the signature request.
196
208
  */
197
- setDeferredSignError(messageId) {
198
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_tryForEachMessageManager).call(this, __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_trySetDeferredSignError), messageId);
209
+ setDeferredSignError(signatureRequestId) {
210
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, signatureRequestId, (draftMetadata) => {
211
+ draftMetadata.status = types_1.SignatureRequestStatus.Rejected;
212
+ });
199
213
  }
200
- setTypedMessageInProgress(messageId) {
201
- __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f").setMessageStatusInProgress(messageId);
214
+ /**
215
+ * Set the status of a signature request to 'inProgress'.
216
+ *
217
+ * @param signatureRequestId - The ID of the signature request.
218
+ */
219
+ setTypedMessageInProgress(signatureRequestId) {
220
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, signatureRequestId, (draftMetadata) => {
221
+ draftMetadata.status = types_1.SignatureRequestStatus.InProgress;
222
+ });
202
223
  }
203
- setPersonalMessageInProgress(messageId) {
204
- __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f").setMessageStatusInProgress(messageId);
224
+ /**
225
+ * Set the status of a signature request to 'inProgress'.
226
+ *
227
+ * @param signatureRequestId - The ID of the signature request.
228
+ */
229
+ setPersonalMessageInProgress(signatureRequestId) {
230
+ this.setTypedMessageInProgress(signatureRequestId);
205
231
  }
206
232
  }
207
233
  exports.SignatureController = SignatureController;
208
- _SignatureController_getAllState = new WeakMap(), _SignatureController_personalMessageManager = new WeakMap(), _SignatureController_typedMessageManager = new WeakMap(), _SignatureController_trace = new WeakMap(), _SignatureController_instances = new WeakSet(), _SignatureController_newUnsignedAbstractMessage = async function _SignatureController_newUnsignedAbstractMessage(messageManager, approvalType, signTypeForLogger, messageName, signMessage, messageParams, req, version, signingOpts, traceContext) {
209
- let resultCallbacks;
210
- try {
211
- const messageId = await messageManager.addUnapprovedMessage(messageParams, req, version);
212
- const messageParamsWithId = {
213
- ...messageParams,
214
- metamaskId: messageId,
215
- ...(version && { version }),
216
- };
217
- const signaturePromise = messageManager.waitForFinishStatus(messageParamsWithId, messageName);
218
- try {
219
- // Signature request is proposed to the user
220
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_addLog).call(this, signTypeForLogger, logging_controller_1.SigningStage.Proposed, messageParamsWithId);
221
- const acceptResult = await __classPrivateFieldGet(this, _SignatureController_trace, "f").call(this, { name: 'Await Approval', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_requestApproval).call(this, messageParamsWithId, approvalType, {
222
- traceContext: context,
223
- actionId: req?.id?.toString(),
224
- }));
225
- resultCallbacks = acceptResult.resultCallbacks;
226
- }
227
- catch (error) {
228
- // User rejected the signature request
229
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_addLog).call(this, signTypeForLogger, logging_controller_1.SigningStage.Rejected, messageParamsWithId);
230
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_cancelAbstractMessage).call(this, messageManager, messageId);
231
- throw error;
232
- }
233
- // TODO: Either fix this lint violation or explain why it's necessary to ignore.
234
- // eslint-disable-next-line @typescript-eslint/await-thenable
235
- await __classPrivateFieldGet(this, _SignatureController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => signMessage(messageParamsWithId, signingOpts));
236
- const signatureResult = await signaturePromise;
237
- // Signature operation is completed
238
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_addLog).call(this, signTypeForLogger, logging_controller_1.SigningStage.Signed, messageParamsWithId);
239
- /* istanbul ignore next */
240
- resultCallbacks?.success(signatureResult);
241
- return signatureResult;
242
- }
243
- catch (error) {
244
- resultCallbacks?.error(error);
245
- throw error;
234
+ _SignatureController_getCurrentChainId = new WeakMap(), _SignatureController_trace = new WeakMap(), _SignatureController_instances = new WeakSet(), _SignatureController_parseTypedData = function _SignatureController_parseTypedData(messageParams, version) {
235
+ if (![keyring_controller_1.SignTypedDataVersion.V3, keyring_controller_1.SignTypedDataVersion.V4].includes(version) ||
236
+ typeof messageParams.data !== 'string') {
237
+ return messageParams;
246
238
  }
247
- }, _SignatureController_signPersonalMessage =
248
- /**
249
- * Signifies a user's approval to sign a personal_sign message in queue.
250
- * Triggers signing, and the callback function from newUnsignedPersonalMessage.
251
- *
252
- * @param msgParams - The params of the message to sign & return to the Dapp.
253
- * @returns Signature result from signing.
254
- */
255
- async function _SignatureController_signPersonalMessage(msgParams) {
256
- return await __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_signAbstractMessage).call(this, __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f"), controller_utils_1.ApprovalType.PersonalSign, msgParams, async (cleanMsgParams) => await this.messagingSystem.call('KeyringController:signPersonalMessage', cleanMsgParams));
257
- }, _SignatureController_signTypedMessage =
258
- /**
259
- * The method for a user approving a call to eth_signTypedData, per EIP 712.
260
- * Triggers the callback in newUnsignedTypedMessage.
261
- *
262
- * @param msgParams - The params passed to eth_signTypedData.
263
- * @param opts - The options for the method.
264
- * @param opts.parseJsonData - Whether to parse JSON data before calling the KeyringController.
265
- * @returns Signature result from signing.
266
- */
267
- async function _SignatureController_signTypedMessage(msgParams,
268
- /* istanbul ignore next */
269
- opts = { parseJsonData: true }) {
270
- const { version } = msgParams;
271
- return await __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_signAbstractMessage).call(this, __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f"), controller_utils_1.ApprovalType.EthSignTypedData, msgParams, async (cleanMsgParams) => {
272
- const finalMessageParams = opts.parseJsonData
273
- ? __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_removeJsonData).call(this, cleanMsgParams, version)
274
- : cleanMsgParams;
275
- return await this.messagingSystem.call('KeyringController:signTypedMessage', finalMessageParams, version);
239
+ return {
240
+ ...messageParams,
241
+ data: JSON.parse(messageParams.data),
242
+ };
243
+ }, _SignatureController_processSignatureRequest = async function _SignatureController_processSignatureRequest({ messageParams, request, type, approvalType, version, signingOptions, traceContext, }) {
244
+ (0, logger_1.projectLogger)('Processing signature request', {
245
+ messageParams,
246
+ request,
247
+ type,
248
+ version,
276
249
  });
277
- }, _SignatureController_tryForEachMessageManager = function _SignatureController_tryForEachMessageManager(callbackFn,
278
- // TODO: Replace `any` with type
279
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
280
- ...args) {
281
- const messageManagers = [
282
- __classPrivateFieldGet(this, _SignatureController_personalMessageManager, "f"),
283
- __classPrivateFieldGet(this, _SignatureController_typedMessageManager, "f"),
284
- ];
285
- for (const manager of messageManagers) {
286
- if (callbackFn(manager, ...args)) {
287
- return true;
288
- }
289
- }
290
- throw new Error('Message not found');
291
- }, _SignatureController_trySetDeferredSignSuccess = function _SignatureController_trySetDeferredSignSuccess(
292
- // TODO: Replace `any` with type
293
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
294
- messageManager, messageId,
295
- // TODO: Replace `any` with type
296
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
297
- signature) {
298
- try {
299
- messageManager.setMessageStatusSigned(messageId, signature);
300
- return true;
301
- }
302
- catch (error) {
303
- return false;
304
- }
305
- }, _SignatureController_trySetMessageMetadata = function _SignatureController_trySetMessageMetadata(
306
- // TODO: Replace `any` with type
307
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
308
- messageManager, messageId, metadata) {
250
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_addLog).call(this, type, version, logging_controller_1.SigningStage.Proposed, messageParams);
251
+ const metadata = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_addMetadata).call(this, {
252
+ messageParams,
253
+ request,
254
+ signingOptions,
255
+ type,
256
+ version,
257
+ });
258
+ let resultCallbacks;
259
+ let approveOrSignError;
260
+ const finalMetadataPromise = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_waitForFinished).call(this, metadata.id);
309
261
  try {
310
- messageManager.setMetadata(messageId, metadata);
311
- return true;
262
+ resultCallbacks = await __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_processApproval).call(this, {
263
+ approvalType,
264
+ metadata,
265
+ request,
266
+ traceContext,
267
+ });
268
+ await __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_approveAndSignRequest).call(this, metadata, traceContext);
312
269
  }
313
270
  catch (error) {
314
- return false;
271
+ (0, logger_1.projectLogger)('Signature request failed', error);
272
+ approveOrSignError = error;
273
+ }
274
+ const finalMetadata = await finalMetadataPromise;
275
+ const { error, id, messageParams: finalMessageParams, rawSig: signature, } = finalMetadata;
276
+ switch (finalMetadata.status) {
277
+ case types_1.SignatureRequestStatus.Signed:
278
+ (0, logger_1.projectLogger)('Signature request finished', { id, signature });
279
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_addLog).call(this, type, version, logging_controller_1.SigningStage.Signed, finalMessageParams);
280
+ resultCallbacks?.success(signature);
281
+ return finalMetadata.rawSig;
282
+ case types_1.SignatureRequestStatus.Rejected:
283
+ /* istanbul ignore next */
284
+ const rejectedError = (approveOrSignError ??
285
+ new Error(`MetaMask ${type} Signature: User denied message signature.`));
286
+ resultCallbacks?.error(rejectedError);
287
+ throw rejectedError;
288
+ case types_1.SignatureRequestStatus.Errored:
289
+ /* istanbul ignore next */
290
+ const erroredError = (approveOrSignError ??
291
+ new Error(`MetaMask ${type} Signature: ${error}`));
292
+ resultCallbacks?.error(erroredError);
293
+ throw erroredError;
294
+ /* istanbul ignore next */
295
+ default:
296
+ throw new Error(`MetaMask ${type} Signature: Unknown problem: ${JSON.stringify(finalMessageParams)}`);
315
297
  }
316
- }, _SignatureController_trySetDeferredSignError = function _SignatureController_trySetDeferredSignError(
317
- // TODO: Replace `any` with type
318
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
319
- messageManager, messageId) {
298
+ }, _SignatureController_addMetadata = function _SignatureController_addMetadata({ messageParams, request, signingOptions, type, version, }) {
299
+ const finalMessageParams = {
300
+ ...messageParams,
301
+ origin: request.origin,
302
+ requestId: request.id,
303
+ };
304
+ const { securityAlertResponse } = request;
305
+ const metadata = {
306
+ id: (0, uuid_1.v1)(),
307
+ messageParams: finalMessageParams,
308
+ securityAlertResponse,
309
+ signingOptions,
310
+ status: types_1.SignatureRequestStatus.Unapproved,
311
+ time: Date.now(),
312
+ type,
313
+ version,
314
+ };
315
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateState).call(this, (state) => {
316
+ state.signatureRequests[metadata.id] = metadata;
317
+ });
318
+ this.hub.emit('unapprovedMessage', {
319
+ messageParams,
320
+ metamaskId: metadata.id,
321
+ });
322
+ return metadata;
323
+ }, _SignatureController_processApproval = async function _SignatureController_processApproval({ approvalType, metadata, request, traceContext, }) {
324
+ const { id, messageParams, type, version } = metadata;
320
325
  try {
321
- messageManager.rejectMessage(messageId);
322
- return true;
326
+ const acceptResult = await __classPrivateFieldGet(this, _SignatureController_trace, "f").call(this, { name: 'Await Approval', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_requestApproval).call(this, metadata, approvalType, {
327
+ traceContext: context,
328
+ actionId: request?.id?.toString(),
329
+ }));
330
+ return acceptResult.resultCallbacks;
323
331
  }
324
332
  catch (error) {
325
- return false;
333
+ (0, logger_1.projectLogger)('User rejected request', { id, error });
334
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_addLog).call(this, type, version, logging_controller_1.SigningStage.Rejected, messageParams);
335
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_rejectSignatureRequest).call(this, id);
336
+ throw error;
326
337
  }
327
- }, _SignatureController_rejectUnapproved = function _SignatureController_rejectUnapproved(messageManager, reason) {
328
- Object.keys(messageManager.getUnapprovedMessages()).forEach((messageId) => {
329
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_cancelAbstractMessage).call(this, messageManager, messageId, reason);
330
- });
331
- }, _SignatureController_clearUnapproved = function _SignatureController_clearUnapproved(messageManager) {
332
- messageManager.update({
333
- unapprovedMessages: {},
334
- unapprovedMessagesCount: 0,
338
+ }, _SignatureController_approveAndSignRequest = async function _SignatureController_approveAndSignRequest(metadata, traceContext) {
339
+ const { id } = metadata;
340
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, id, (draftMetadata) => {
341
+ draftMetadata.status = types_1.SignatureRequestStatus.Approved;
335
342
  });
336
- }, _SignatureController_signAbstractMessage = async function _SignatureController_signAbstractMessage(messageManager, methodName, msgParams,
337
- // TODO: Replace `any` with type
338
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
339
- getSignature) {
340
- console.info(`MetaMaskController - ${methodName}`);
341
- const messageId = msgParams.metamaskId;
343
+ await __classPrivateFieldGet(this, _SignatureController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_signRequest).call(this, metadata));
344
+ }, _SignatureController_signRequest = async function _SignatureController_signRequest(metadata) {
345
+ const { id, messageParams, signingOptions, type } = metadata;
342
346
  try {
343
- const cleanMessageParams = await messageManager.approveMessage(msgParams);
344
- try {
345
- const signature = await getSignature(cleanMessageParams);
346
- this.hub.emit(`${methodName}:signed`, { signature, messageId });
347
- if (!cleanMessageParams.deferSetAsSigned) {
348
- messageManager.setMessageStatusSigned(messageId, signature);
349
- }
350
- return signature;
347
+ let signature;
348
+ switch (type) {
349
+ case types_1.SignatureRequestType.PersonalSign:
350
+ signature = await this.messagingSystem.call('KeyringController:signPersonalMessage',
351
+ // Keyring controller temporarily using message manager types.
352
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
353
+ messageParams);
354
+ break;
355
+ case types_1.SignatureRequestType.TypedSign:
356
+ const finalRequest = signingOptions?.parseJsonData
357
+ ? __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_parseTypedData).call(this, messageParams, metadata.version)
358
+ : messageParams;
359
+ signature = await this.messagingSystem.call('KeyringController:signTypedMessage', finalRequest, metadata.version);
360
+ break;
361
+ /* istanbul ignore next */
362
+ default:
363
+ throw new Error(`Unknown signature request type: ${type}`);
351
364
  }
352
- catch (error) {
353
- this.hub.emit(`${messageId}:signError`, { error });
354
- throw error;
365
+ this.hub.emit(`${type}:signed`, { signature, messageId: id });
366
+ if (messageParams.deferSetAsSigned) {
367
+ return;
355
368
  }
356
- // TODO: Replace `any` with type
369
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, id, (draftMetadata) => {
370
+ draftMetadata.rawSig = signature;
371
+ draftMetadata.status = types_1.SignatureRequestStatus.Signed;
372
+ });
357
373
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
358
374
  }
359
375
  catch (error) {
360
- console.info(`MetaMaskController - ${methodName} failed.`, error);
361
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_errorMessage).call(this, messageManager, messageId, error.message);
376
+ if (type === types_1.SignatureRequestType.TypedSign) {
377
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_errorSignatureRequest).call(this, id, error.message);
378
+ }
379
+ else {
380
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_rejectSignatureRequest).call(this, id);
381
+ }
382
+ this.hub.emit(`${id}:signError`, { error });
362
383
  throw error;
363
384
  }
364
- }, _SignatureController_errorMessage = function _SignatureController_errorMessage(messageManager, messageId, error) {
365
- if (messageManager instanceof message_manager_1.TypedMessageManager) {
366
- messageManager.setMessageStatusErrored(messageId, error);
367
- }
368
- else {
369
- __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_cancelAbstractMessage).call(this, messageManager, messageId);
370
- }
371
- }, _SignatureController_cancelAbstractMessage = function _SignatureController_cancelAbstractMessage(messageManager, messageId, reason) {
385
+ }, _SignatureController_errorSignatureRequest = function _SignatureController_errorSignatureRequest(id, error) {
386
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, id, (draftMetadata) => {
387
+ draftMetadata.status = types_1.SignatureRequestStatus.Errored;
388
+ draftMetadata.error = error;
389
+ });
390
+ }, _SignatureController_rejectSignatureRequest = function _SignatureController_rejectSignatureRequest(signatureRequestId, reason) {
372
391
  if (reason) {
373
- const message = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_getMessage).call(this, messageId);
374
- this.hub.emit('cancelWithReason', { message, reason });
392
+ const metadata = this.state.signatureRequests[signatureRequestId];
393
+ this.hub.emit('cancelWithReason', { metadata, reason });
375
394
  }
376
- messageManager.rejectMessage(messageId);
377
- }, _SignatureController_handleMessageManagerEvents = function _SignatureController_handleMessageManagerEvents(messageManager, eventName) {
378
- messageManager.hub.on('updateBadge', () => {
379
- this.hub.emit('updateBadge');
395
+ __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateMetadata).call(this, signatureRequestId, (draftMetadata) => {
396
+ draftMetadata.status = types_1.SignatureRequestStatus.Rejected;
380
397
  });
381
- messageManager.hub.on('unapprovedMessage', (msgParams) => {
382
- this.hub.emit(eventName, msgParams);
383
- });
384
- }, _SignatureController_subscribeToMessageState = function _SignatureController_subscribeToMessageState(messageManager, updateState) {
385
- messageManager.subscribe((state) => {
386
- const newMessages = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_migrateMessages).call(this,
387
- // TODO: Replace `any` with type
388
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
389
- state.unapprovedMessages);
390
- this.update(() => {
391
- const newState = { ...this.state };
392
- updateState(newState, newMessages, state.unapprovedMessagesCount);
393
- return newState;
398
+ }, _SignatureController_waitForFinished = async function _SignatureController_waitForFinished(id) {
399
+ return new Promise((resolve) => {
400
+ this.hub.once(`${id}:finished`, (metadata) => {
401
+ resolve(metadata);
394
402
  });
395
403
  });
396
- }, _SignatureController_migrateMessages = function _SignatureController_migrateMessages(coreMessages) {
397
- const stateMessages = {};
398
- for (const messageId of Object.keys(coreMessages)) {
399
- const coreMessage = coreMessages[messageId];
400
- const stateMessage = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_migrateMessage).call(this, coreMessage);
401
- stateMessages[messageId] = stateMessage;
402
- }
403
- return stateMessages;
404
- }, _SignatureController_migrateMessage = function _SignatureController_migrateMessage(coreMessage) {
405
- const { messageParams, ...coreMessageData } = coreMessage;
406
- // Core message managers use messageParams but frontend uses msgParams with lots of references
407
- const stateMessage = {
408
- ...coreMessageData,
409
- msgParams: messageParams,
410
- };
411
- return stateMessage;
412
- }, _SignatureController_getMessage = function _SignatureController_getMessage(messageId) {
413
- return {
414
- ...this.state.unapprovedPersonalMsgs,
415
- ...this.state.unapprovedTypedMessages,
416
- }[messageId];
417
- }, _SignatureController_requestApproval = async function _SignatureController_requestApproval(msgParams, type, { traceContext, actionId, }) {
418
- const id = msgParams.metamaskId;
419
- const origin = msgParams.origin || controller_utils_1.ORIGIN_METAMASK;
420
- // We are explicitly cloning the message params here to prevent the mutation errors on development mode
421
- // Because sending it through the messaging system will make the object read only
422
- const clonedMsgParams = (0, lodash_1.cloneDeep)(msgParams);
404
+ }, _SignatureController_requestApproval = async function _SignatureController_requestApproval(metadata, type, { traceContext, actionId, }) {
405
+ const { id, messageParams } = metadata;
406
+ const origin = messageParams.origin || controller_utils_1.ORIGIN_METAMASK;
423
407
  await __classPrivateFieldGet(this, _SignatureController_trace, "f").call(this, {
424
408
  name: 'Notification Display',
425
409
  id: actionId,
@@ -429,18 +413,52 @@ getSignature) {
429
413
  id,
430
414
  origin,
431
415
  type,
432
- requestData: clonedMsgParams,
416
+ requestData: { ...messageParams },
433
417
  expectsResult: true,
434
418
  }, true));
435
- }, _SignatureController_removeJsonData = function _SignatureController_removeJsonData(messageParams, version) {
436
- if (version === 'V1' || typeof messageParams.data !== 'string') {
437
- return messageParams;
438
- }
439
- return {
440
- ...messageParams,
441
- data: JSON.parse(messageParams.data),
442
- };
443
- }, _SignatureController_addLog = function _SignatureController_addLog(signingMethod, stage, signingData) {
419
+ }, _SignatureController_updateMetadata = function _SignatureController_updateMetadata(id, callback) {
420
+ let statusChanged = false;
421
+ const { nextState } = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_updateState).call(this, (state) => {
422
+ const metadata = state.signatureRequests[id];
423
+ if (!metadata) {
424
+ throw new Error(`Signature request with id ${id} not found`);
425
+ }
426
+ const originalStatus = metadata.status;
427
+ // eslint-disable-next-line n/callback-return
428
+ callback(metadata);
429
+ statusChanged = metadata.status !== originalStatus;
430
+ });
431
+ const updatedMetadata = nextState.signatureRequests[id];
432
+ if (statusChanged &&
433
+ FINAL_STATUSES.includes(updatedMetadata.status)) {
434
+ this.hub.emit(`${id}:finished`, updatedMetadata);
435
+ }
436
+ return updatedMetadata;
437
+ }, _SignatureController_updateState = function _SignatureController_updateState(callback) {
438
+ return this.update((state) => {
439
+ // eslint-disable-next-line n/callback-return, n/no-callback-literal
440
+ callback(state);
441
+ const unapprovedRequests = Object.values(state.signatureRequests).filter((request) => request.status === types_1.SignatureRequestStatus.Unapproved);
442
+ const personalSignMessages = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_generateLegacyState).call(this, unapprovedRequests, types_1.SignatureRequestType.PersonalSign);
443
+ const typedSignMessages = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_generateLegacyState).call(this, unapprovedRequests, types_1.SignatureRequestType.TypedSign);
444
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
445
+ state.unapprovedPersonalMsgs = personalSignMessages;
446
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
447
+ state.unapprovedTypedMessages = typedSignMessages;
448
+ state.unapprovedPersonalMsgCount =
449
+ Object.values(personalSignMessages).length;
450
+ state.unapprovedTypedMessagesCount =
451
+ Object.values(typedSignMessages).length;
452
+ });
453
+ }, _SignatureController_generateLegacyState = function _SignatureController_generateLegacyState(signatureRequests, type) {
454
+ return signatureRequests
455
+ .filter((request) => request.type === type)
456
+ .reduce((acc, request) => ({
457
+ ...acc,
458
+ [request.id]: { ...request, msgParams: request.messageParams },
459
+ }), {});
460
+ }, _SignatureController_addLog = function _SignatureController_addLog(signatureRequestType, version, stage, signingData) {
461
+ const signingMethod = __classPrivateFieldGet(this, _SignatureController_instances, "m", _SignatureController_getSignTypeForLogger).call(this, signatureRequestType, version);
444
462
  this.messagingSystem.call('LoggingController:add', {
445
463
  type: logging_controller_1.LogType.EthSignLog,
446
464
  data: {
@@ -449,14 +467,18 @@ getSignature) {
449
467
  signingData,
450
468
  },
451
469
  });
452
- }, _SignatureController_getSignTypeForLogger = function _SignatureController_getSignTypeForLogger(version) {
453
- let signTypeForLogger = logging_controller_1.SigningMethod.EthSignTypedData;
454
- if (version === 'V3') {
455
- signTypeForLogger = logging_controller_1.SigningMethod.EthSignTypedDataV3;
470
+ }, _SignatureController_getSignTypeForLogger = function _SignatureController_getSignTypeForLogger(requestType, version) {
471
+ if (requestType === types_1.SignatureRequestType.PersonalSign) {
472
+ return logging_controller_1.SigningMethod.PersonalSign;
473
+ }
474
+ if (requestType === types_1.SignatureRequestType.TypedSign &&
475
+ version === keyring_controller_1.SignTypedDataVersion.V3) {
476
+ return logging_controller_1.SigningMethod.EthSignTypedDataV3;
456
477
  }
457
- else if (version === 'V4') {
458
- signTypeForLogger = logging_controller_1.SigningMethod.EthSignTypedDataV4;
478
+ if (requestType === types_1.SignatureRequestType.TypedSign &&
479
+ version === keyring_controller_1.SignTypedDataVersion.V4) {
480
+ return logging_controller_1.SigningMethod.EthSignTypedDataV4;
459
481
  }
460
- return signTypeForLogger;
482
+ return logging_controller_1.SigningMethod.EthSignTypedData;
461
483
  };
462
484
  //# sourceMappingURL=SignatureController.cjs.map