@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.
- package/CHANGELOG.md +32 -0
- package/dist/SignatureController.cjs +319 -297
- package/dist/SignatureController.cjs.map +1 -1
- package/dist/SignatureController.d.cts +89 -48
- package/dist/SignatureController.d.cts.map +1 -1
- package/dist/SignatureController.d.mts +89 -48
- package/dist/SignatureController.d.mts.map +1 -1
- package/dist/SignatureController.mjs +321 -300
- package/dist/SignatureController.mjs.map +1 -1
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/logger.cjs +8 -0
- package/dist/logger.cjs.map +1 -0
- package/dist/logger.d.cts +5 -0
- package/dist/logger.d.cts.map +1 -0
- package/dist/logger.d.mts +5 -0
- package/dist/logger.d.mts.map +1 -0
- package/dist/logger.mjs +5 -0
- package/dist/logger.mjs.map +1 -0
- package/dist/types.cjs +20 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +104 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +104 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +17 -0
- package/dist/types.mjs.map +1 -0
- package/dist/utils/normalize.cjs +52 -0
- package/dist/utils/normalize.cjs.map +1 -0
- package/dist/utils/normalize.d.cts +16 -0
- package/dist/utils/normalize.d.cts.map +1 -0
- package/dist/utils/normalize.d.mts +16 -0
- package/dist/utils/normalize.d.mts.map +1 -0
- package/dist/utils/normalize.mjs +47 -0
- package/dist/utils/normalize.mjs.map +1 -0
- package/dist/utils/validation.cjs +113 -0
- package/dist/utils/validation.cjs.map +1 -0
- package/dist/utils/validation.d.cts +16 -0
- package/dist/utils/validation.d.cts.map +1 -0
- package/dist/utils/validation.d.mts +16 -0
- package/dist/utils/validation.d.mts.map +1 -0
- package/dist/utils/validation.mjs +109 -0
- package/dist/utils/validation.mjs.map +1 -0
- 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,
|
|
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
|
|
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.
|
|
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({
|
|
63
|
+
constructor({ getCurrentChainId, messenger, state, trace, }) {
|
|
53
64
|
super({
|
|
54
65
|
name: controllerName,
|
|
55
66
|
metadata: stateMetadata,
|
|
56
67
|
messenger,
|
|
57
|
-
state:
|
|
68
|
+
state: {
|
|
69
|
+
...getDefaultState(),
|
|
70
|
+
...state,
|
|
71
|
+
},
|
|
58
72
|
});
|
|
59
73
|
_SignatureController_instances.add(this);
|
|
60
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
127
|
-
|
|
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",
|
|
134
|
-
|
|
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
|
|
134
|
+
* Called when a dApp uses the personal_sign method.
|
|
135
|
+
* We currently provide personal_sign mostly for legacy dApps.
|
|
138
136
|
*
|
|
139
|
-
*
|
|
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
|
|
141
|
+
* @returns Promise resolving to the raw signature hash generated from the signature request.
|
|
146
142
|
*/
|
|
147
|
-
async newUnsignedPersonalMessage(messageParams,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
__classPrivateFieldGet(this, _SignatureController_instances, "m",
|
|
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
|
|
156
|
+
* Called when a dapp uses the eth_signTypedData method, per EIP-712.
|
|
155
157
|
*
|
|
156
|
-
* @param messageParams - The params
|
|
157
|
-
* @param
|
|
158
|
-
* @param version - The version
|
|
159
|
-
* @param
|
|
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
|
|
164
|
+
* @returns Promise resolving to the raw signature hash generated from the signature request.
|
|
164
165
|
*/
|
|
165
|
-
async newUnsignedTypedMessage(messageParams,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
-
*
|
|
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
|
|
176
|
-
* @param signature - The
|
|
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(
|
|
181
|
-
__classPrivateFieldGet(this, _SignatureController_instances, "m",
|
|
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
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* @param
|
|
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(
|
|
190
|
-
__classPrivateFieldGet(this, _SignatureController_instances, "m",
|
|
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
|
-
*
|
|
204
|
+
* Reject a pending signature request that used `deferSetAsSigned`.
|
|
205
|
+
* Changes the status of the signature request to `rejected`.
|
|
194
206
|
*
|
|
195
|
-
* @param
|
|
207
|
+
* @param signatureRequestId - The ID of the signature request.
|
|
196
208
|
*/
|
|
197
|
-
setDeferredSignError(
|
|
198
|
-
__classPrivateFieldGet(this, _SignatureController_instances, "m",
|
|
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
|
-
|
|
201
|
-
|
|
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
|
-
|
|
204
|
-
|
|
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
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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
|
-
|
|
311
|
-
|
|
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
|
-
|
|
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
|
-
},
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
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
|
-
|
|
322
|
-
|
|
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
|
-
|
|
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
|
-
},
|
|
328
|
-
|
|
329
|
-
|
|
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
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
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
|
-
|
|
353
|
-
|
|
354
|
-
|
|
365
|
+
this.hub.emit(`${type}:signed`, { signature, messageId: id });
|
|
366
|
+
if (messageParams.deferSetAsSigned) {
|
|
367
|
+
return;
|
|
355
368
|
}
|
|
356
|
-
|
|
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
|
-
|
|
361
|
-
|
|
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
|
-
},
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
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
|
|
374
|
-
this.hub.emit('cancelWithReason', {
|
|
392
|
+
const metadata = this.state.signatureRequests[signatureRequestId];
|
|
393
|
+
this.hub.emit('cancelWithReason', { metadata, reason });
|
|
375
394
|
}
|
|
376
|
-
|
|
377
|
-
|
|
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
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
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
|
-
},
|
|
397
|
-
const
|
|
398
|
-
|
|
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:
|
|
416
|
+
requestData: { ...messageParams },
|
|
433
417
|
expectsResult: true,
|
|
434
418
|
}, true));
|
|
435
|
-
},
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
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
|
-
|
|
454
|
-
|
|
455
|
-
|
|
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
|
-
|
|
458
|
-
|
|
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
|
|
482
|
+
return logging_controller_1.SigningMethod.EthSignTypedData;
|
|
461
483
|
};
|
|
462
484
|
//# sourceMappingURL=SignatureController.cjs.map
|