@metamask/snaps-controllers 11.2.3 → 12.0.1
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 +30 -1
- package/dist/cronjob/CronjobController.cjs +6 -9
- package/dist/cronjob/CronjobController.cjs.map +1 -1
- package/dist/cronjob/CronjobController.d.cts +1 -1
- package/dist/cronjob/CronjobController.d.cts.map +1 -1
- package/dist/cronjob/CronjobController.d.mts +1 -1
- package/dist/cronjob/CronjobController.d.mts.map +1 -1
- package/dist/cronjob/CronjobController.mjs +6 -9
- package/dist/cronjob/CronjobController.mjs.map +1 -1
- package/dist/multichain/MultichainRouter.cjs +1 -1
- package/dist/multichain/MultichainRouter.cjs.map +1 -1
- package/dist/multichain/MultichainRouter.mjs +1 -1
- package/dist/multichain/MultichainRouter.mjs.map +1 -1
- package/dist/services/browser.cjs +0 -3
- package/dist/services/browser.cjs.map +1 -1
- package/dist/services/browser.d.cts +0 -1
- package/dist/services/browser.d.cts.map +1 -1
- package/dist/services/browser.d.mts +0 -1
- package/dist/services/browser.d.mts.map +1 -1
- package/dist/services/browser.mjs +0 -1
- package/dist/services/browser.mjs.map +1 -1
- package/dist/services/index.cjs +0 -3
- package/dist/services/index.cjs.map +1 -1
- package/dist/services/index.d.cts +0 -1
- package/dist/services/index.d.cts.map +1 -1
- package/dist/services/index.d.mts +0 -1
- package/dist/services/index.d.mts.map +1 -1
- package/dist/services/index.mjs +0 -1
- package/dist/services/index.mjs.map +1 -1
- package/dist/services/node-js/NodeProcessExecutionService.cjs +3 -3
- package/dist/services/node-js/NodeProcessExecutionService.cjs.map +1 -1
- package/dist/services/node-js/NodeProcessExecutionService.d.cts.map +1 -1
- package/dist/services/node-js/NodeProcessExecutionService.d.mts.map +1 -1
- package/dist/services/node-js/NodeProcessExecutionService.mjs +2 -2
- package/dist/services/node-js/NodeProcessExecutionService.mjs.map +1 -1
- package/dist/services/node-js/NodeThreadExecutionService.cjs +3 -3
- package/dist/services/node-js/NodeThreadExecutionService.cjs.map +1 -1
- package/dist/services/node-js/NodeThreadExecutionService.d.cts.map +1 -1
- package/dist/services/node-js/NodeThreadExecutionService.d.mts.map +1 -1
- package/dist/services/node-js/NodeThreadExecutionService.mjs +2 -2
- package/dist/services/node-js/NodeThreadExecutionService.mjs.map +1 -1
- package/dist/services/webview/WebViewMessageStream.cjs +4 -5
- package/dist/services/webview/WebViewMessageStream.cjs.map +1 -1
- package/dist/services/webview/WebViewMessageStream.d.cts.map +1 -1
- package/dist/services/webview/WebViewMessageStream.d.mts.map +1 -1
- package/dist/services/webview/WebViewMessageStream.mjs +1 -2
- package/dist/services/webview/WebViewMessageStream.mjs.map +1 -1
- package/dist/snaps/SnapController.cjs +36 -18
- package/dist/snaps/SnapController.cjs.map +1 -1
- package/dist/snaps/SnapController.d.cts +13 -15
- package/dist/snaps/SnapController.d.cts.map +1 -1
- package/dist/snaps/SnapController.d.mts +13 -15
- package/dist/snaps/SnapController.d.mts.map +1 -1
- package/dist/snaps/SnapController.mjs +37 -19
- package/dist/snaps/SnapController.mjs.map +1 -1
- package/dist/snaps/registry/json.cjs +3 -12
- package/dist/snaps/registry/json.cjs.map +1 -1
- package/dist/snaps/registry/json.d.cts.map +1 -1
- package/dist/snaps/registry/json.d.mts.map +1 -1
- package/dist/snaps/registry/json.mjs +3 -12
- package/dist/snaps/registry/json.mjs.map +1 -1
- package/dist/snaps/registry/registry.cjs.map +1 -1
- package/dist/snaps/registry/registry.d.cts +1 -1
- package/dist/snaps/registry/registry.d.cts.map +1 -1
- package/dist/snaps/registry/registry.d.mts +1 -1
- package/dist/snaps/registry/registry.d.mts.map +1 -1
- package/dist/snaps/registry/registry.mjs.map +1 -1
- package/dist/utils.cjs +63 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +24 -0
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +24 -0
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +61 -1
- package/dist/utils.mjs.map +1 -1
- package/package.json +10 -10
- package/dist/services/webworker/WebWorkerExecutionService.cjs +0 -112
- package/dist/services/webworker/WebWorkerExecutionService.cjs.map +0 -1
- package/dist/services/webworker/WebWorkerExecutionService.d.cts +0 -47
- package/dist/services/webworker/WebWorkerExecutionService.d.cts.map +0 -1
- package/dist/services/webworker/WebWorkerExecutionService.d.mts +0 -47
- package/dist/services/webworker/WebWorkerExecutionService.d.mts.map +0 -1
- package/dist/services/webworker/WebWorkerExecutionService.mjs +0 -108
- package/dist/services/webworker/WebWorkerExecutionService.mjs.map +0 -1
- package/dist/services/webworker/index.cjs +0 -18
- package/dist/services/webworker/index.cjs.map +0 -1
- package/dist/services/webworker/index.d.cts +0 -2
- package/dist/services/webworker/index.d.cts.map +0 -1
- package/dist/services/webworker/index.d.mts +0 -2
- package/dist/services/webworker/index.d.mts.map +0 -1
- package/dist/services/webworker/index.mjs +0 -2
- package/dist/services/webworker/index.mjs.map +0 -1
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _SnapController_instances, _SnapController_closeAllConnections, _SnapController_dynamicPermissions, _SnapController_environmentEndowmentPermissions, _SnapController_excludedPermissions, _SnapController_featureFlags, _SnapController_fetchFunction, _SnapController_idleTimeCheckInterval, _SnapController_maxIdleTime, _SnapController_encryptor, _SnapController_getMnemonicSeed, _SnapController_getFeatureFlags, _SnapController_clientCryptography, _SnapController_detectSnapLocation, _SnapController_snapsRuntimeData, _SnapController_rollbackSnapshots, _SnapController_timeoutForLastRequestStatus, _SnapController_statusMachine, _SnapController_preinstalledSnaps, _SnapController_initializeStateMachine, _SnapController_registerMessageHandlers, _SnapController_handlePreinstalledSnaps, _SnapController_pollForLastRequestStatus, _SnapController_blockSnap, _SnapController_unblockSnap, _SnapController_assertIsInstallAllowed, _SnapController_assertCanInstallSnaps, _SnapController_assertCanUsePlatform, _SnapController_stopSnapsLastRequestPastMax, _SnapController_transition, _SnapController_terminateSnap, _SnapController_hasCachedEncryptionKey, _SnapController_getSnapEncryptionKey, _SnapController_decryptSnapState, _SnapController_encryptSnapState, _SnapController_getStateToPersist, _SnapController_persistSnapState, _SnapController_handleInitialConnections, _SnapController_addSnapToSubject, _SnapController_removeSnapFromSubjects, _SnapController_revokeAllSnapPermissions, _SnapController_createApproval, _SnapController_updateApproval, _SnapController_resolveAllowlistVersion, _SnapController_add, _SnapController_startSnap, _SnapController_getEndowments, _SnapController_set, _SnapController_validateSnapPermissions, _SnapController_validatePlatformVersion, _SnapController_getExecutionTimeout, _SnapController_getRpcRequestHandler, _SnapController_createInterface, _SnapController_assertInterfaceExists, _SnapController_transformSnapRpcResponse, _SnapController_transformOnAssetsLookupResult, _SnapController_transformOnAssetsConversionResult, _SnapController_transformSnapRpcRequest, _SnapController_assertSnapRpcResponse, _SnapController_recordSnapRpcRequestStart, _SnapController_recordSnapRpcRequestFinish, _SnapController_getRollbackSnapshot, _SnapController_createRollbackSnapshot, _SnapController_rollbackSnap, _SnapController_rollbackSnaps, _SnapController_getRuntime, _SnapController_getRuntimeExpect, _SnapController_setupRuntime, _SnapController_calculatePermissionsChange, _SnapController_isSubjectConnectedToSnap, _SnapController_calculateConnectionsChange, _SnapController_updatePermissions, _SnapController_isValidUpdate, _SnapController_callLifecycleHook, _SnapController_handleLock;
|
|
13
|
+
var _SnapController_instances, _SnapController_closeAllConnections, _SnapController_dynamicPermissions, _SnapController_environmentEndowmentPermissions, _SnapController_excludedPermissions, _SnapController_featureFlags, _SnapController_fetchFunction, _SnapController_idleTimeCheckInterval, _SnapController_maxIdleTime, _SnapController_encryptor, _SnapController_getMnemonicSeed, _SnapController_getFeatureFlags, _SnapController_clientCryptography, _SnapController_detectSnapLocation, _SnapController_snapsRuntimeData, _SnapController_rollbackSnapshots, _SnapController_timeoutForLastRequestStatus, _SnapController_statusMachine, _SnapController_preinstalledSnaps, _SnapController_trackEvent, _SnapController_trackSnapExport, _SnapController_initializeStateMachine, _SnapController_registerMessageHandlers, _SnapController_handlePreinstalledSnaps, _SnapController_pollForLastRequestStatus, _SnapController_blockSnap, _SnapController_unblockSnap, _SnapController_assertIsInstallAllowed, _SnapController_assertCanInstallSnaps, _SnapController_assertCanUsePlatform, _SnapController_stopSnapsLastRequestPastMax, _SnapController_transition, _SnapController_terminateSnap, _SnapController_hasCachedEncryptionKey, _SnapController_getSnapEncryptionKey, _SnapController_decryptSnapState, _SnapController_encryptSnapState, _SnapController_getStateToPersist, _SnapController_persistSnapState, _SnapController_handleInitialConnections, _SnapController_addSnapToSubject, _SnapController_removeSnapFromSubjects, _SnapController_revokeAllSnapPermissions, _SnapController_createApproval, _SnapController_updateApproval, _SnapController_resolveAllowlistVersion, _SnapController_add, _SnapController_startSnap, _SnapController_getEndowments, _SnapController_set, _SnapController_validateSnapPermissions, _SnapController_validatePlatformVersion, _SnapController_getExecutionTimeout, _SnapController_getRpcRequestHandler, _SnapController_createInterface, _SnapController_assertInterfaceExists, _SnapController_transformSnapRpcResponse, _SnapController_transformOnAssetsLookupResult, _SnapController_transformOnAssetsConversionResult, _SnapController_transformSnapRpcRequest, _SnapController_assertSnapRpcResponse, _SnapController_recordSnapRpcRequestStart, _SnapController_recordSnapRpcRequestFinish, _SnapController_getRollbackSnapshot, _SnapController_createRollbackSnapshot, _SnapController_rollbackSnap, _SnapController_rollbackSnaps, _SnapController_getRuntime, _SnapController_getRuntimeExpect, _SnapController_setupRuntime, _SnapController_calculatePermissionsChange, _SnapController_isSubjectConnectedToSnap, _SnapController_calculateConnectionsChange, _SnapController_updatePermissions, _SnapController_isValidUpdate, _SnapController_callLifecycleHook, _SnapController_handleLock;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SnapController = exports.SNAP_APPROVAL_RESULT = exports.SNAP_APPROVAL_UPDATE = exports.SNAP_APPROVAL_INSTALL = exports.controllerName = void 0;
|
|
16
16
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -72,7 +72,7 @@ function truncateSnap(snap) {
|
|
|
72
72
|
* - Start: Initializes the snap in its SES realm with the authorized permissions.
|
|
73
73
|
*/
|
|
74
74
|
class SnapController extends base_controller_1.BaseController {
|
|
75
|
-
constructor({ closeAllConnections, messenger, state, dynamicPermissions = ['eth_accounts'], environmentEndowmentPermissions = [], excludedPermissions = {}, idleTimeCheckInterval = (0, utils_1.inMilliseconds)(5, utils_1.Duration.Second), maxIdleTime = (0, utils_1.inMilliseconds)(30, utils_1.Duration.Second), maxRequestTime = (0, utils_1.inMilliseconds)(60, utils_1.Duration.Second), fetchFunction = globalThis.fetch.bind(undefined), featureFlags = {}, detectSnapLocation: detectSnapLocationFunction = location_1.detectSnapLocation, preinstalledSnaps = null, encryptor, getMnemonicSeed, getFeatureFlags = () => ({}), clientCryptography, }) {
|
|
75
|
+
constructor({ closeAllConnections, messenger, state, dynamicPermissions = ['eth_accounts'], environmentEndowmentPermissions = [], excludedPermissions = {}, idleTimeCheckInterval = (0, utils_1.inMilliseconds)(5, utils_1.Duration.Second), maxIdleTime = (0, utils_1.inMilliseconds)(30, utils_1.Duration.Second), maxRequestTime = (0, utils_1.inMilliseconds)(60, utils_1.Duration.Second), fetchFunction = globalThis.fetch.bind(undefined), featureFlags = {}, detectSnapLocation: detectSnapLocationFunction = location_1.detectSnapLocation, preinstalledSnaps = null, encryptor, getMnemonicSeed, getFeatureFlags = () => ({}), clientCryptography, trackEvent, }) {
|
|
76
76
|
super({
|
|
77
77
|
messenger,
|
|
78
78
|
metadata: {
|
|
@@ -130,6 +130,8 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
130
130
|
_SnapController_timeoutForLastRequestStatus.set(this, void 0);
|
|
131
131
|
_SnapController_statusMachine.set(this, void 0);
|
|
132
132
|
_SnapController_preinstalledSnaps.set(this, void 0);
|
|
133
|
+
_SnapController_trackEvent.set(this, void 0);
|
|
134
|
+
_SnapController_trackSnapExport.set(this, void 0);
|
|
133
135
|
/**
|
|
134
136
|
* Persist the state of a Snap.
|
|
135
137
|
*
|
|
@@ -179,6 +181,7 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
179
181
|
this._onOutboundResponse = this._onOutboundResponse.bind(this);
|
|
180
182
|
__classPrivateFieldSet(this, _SnapController_rollbackSnapshots, new Map(), "f");
|
|
181
183
|
__classPrivateFieldSet(this, _SnapController_snapsRuntimeData, new Map(), "f");
|
|
184
|
+
__classPrivateFieldSet(this, _SnapController_trackEvent, trackEvent, "f");
|
|
182
185
|
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_pollForLastRequestStatus).call(this);
|
|
183
186
|
/* eslint-disable @typescript-eslint/unbound-method */
|
|
184
187
|
this.messagingSystem.subscribe('ExecutionService:unhandledError', this._onUnhandledSnapError);
|
|
@@ -202,6 +205,22 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
202
205
|
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_handlePreinstalledSnaps).call(this, __classPrivateFieldGet(this, _SnapController_preinstalledSnaps, "f"));
|
|
203
206
|
}
|
|
204
207
|
Object.values(this.state?.snaps ?? {}).forEach((snap) => __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_setupRuntime).call(this, snap.id));
|
|
208
|
+
__classPrivateFieldSet(this, _SnapController_trackSnapExport, (0, utils_2.throttleTracking)((snapId, handler, success, origin) => {
|
|
209
|
+
const snapMetadata = this.messagingSystem.call('SnapsRegistry:getMetadata', snapId);
|
|
210
|
+
__classPrivateFieldGet(this, _SnapController_trackEvent, "f").call(this, {
|
|
211
|
+
event: 'Snap Export Used',
|
|
212
|
+
category: 'Snaps',
|
|
213
|
+
properties: {
|
|
214
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
215
|
+
snap_id: snapId,
|
|
216
|
+
export: handler,
|
|
217
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
218
|
+
snap_category: snapMetadata?.category,
|
|
219
|
+
success,
|
|
220
|
+
origin,
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
}), "f");
|
|
205
224
|
}
|
|
206
225
|
/**
|
|
207
226
|
* Checks all installed snaps against the block list and
|
|
@@ -523,8 +542,10 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
523
542
|
this.update((state) => {
|
|
524
543
|
state.snaps = {};
|
|
525
544
|
state.snapStates = {};
|
|
545
|
+
state.unencryptedSnapStates = {};
|
|
526
546
|
});
|
|
527
547
|
__classPrivateFieldGet(this, _SnapController_snapsRuntimeData, "f").clear();
|
|
548
|
+
__classPrivateFieldGet(this, _SnapController_rollbackSnapshots, "f").clear();
|
|
528
549
|
// We want to remove all snaps & permissions, except for preinstalled snaps
|
|
529
550
|
if (__classPrivateFieldGet(this, _SnapController_preinstalledSnaps, "f")) {
|
|
530
551
|
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_handlePreinstalledSnaps).call(this, __classPrivateFieldGet(this, _SnapController_preinstalledSnaps, "f"));
|
|
@@ -946,17 +967,6 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
946
967
|
throw error;
|
|
947
968
|
}
|
|
948
969
|
}
|
|
949
|
-
/**
|
|
950
|
-
* Get metadata for the given snap ID.
|
|
951
|
-
*
|
|
952
|
-
* @param snapId - The ID of the snap to get metadata for.
|
|
953
|
-
* @returns The metadata for the given snap ID, or `null` if the snap is not
|
|
954
|
-
* verified.
|
|
955
|
-
*/
|
|
956
|
-
async getRegistryMetadata(snapId) {
|
|
957
|
-
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_assertCanUsePlatform).call(this);
|
|
958
|
-
return await this.messagingSystem.call('SnapsRegistry:getMetadata', snapId);
|
|
959
|
-
}
|
|
960
970
|
/**
|
|
961
971
|
* Initiates a request for the given snap's initial permissions.
|
|
962
972
|
* Must be called in order. See processRequestedSnap.
|
|
@@ -1060,7 +1070,7 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
1060
1070
|
}
|
|
1061
1071
|
}
|
|
1062
1072
|
exports.SnapController = SnapController;
|
|
1063
|
-
_SnapController_closeAllConnections = new WeakMap(), _SnapController_dynamicPermissions = new WeakMap(), _SnapController_environmentEndowmentPermissions = new WeakMap(), _SnapController_excludedPermissions = new WeakMap(), _SnapController_featureFlags = new WeakMap(), _SnapController_fetchFunction = new WeakMap(), _SnapController_idleTimeCheckInterval = new WeakMap(), _SnapController_maxIdleTime = new WeakMap(), _SnapController_encryptor = new WeakMap(), _SnapController_getMnemonicSeed = new WeakMap(), _SnapController_getFeatureFlags = new WeakMap(), _SnapController_clientCryptography = new WeakMap(), _SnapController_detectSnapLocation = new WeakMap(), _SnapController_snapsRuntimeData = new WeakMap(), _SnapController_rollbackSnapshots = new WeakMap(), _SnapController_timeoutForLastRequestStatus = new WeakMap(), _SnapController_statusMachine = new WeakMap(), _SnapController_preinstalledSnaps = new WeakMap(), _SnapController_persistSnapState = new WeakMap(), _SnapController_instances = new WeakSet(), _SnapController_initializeStateMachine = function _SnapController_initializeStateMachine() {
|
|
1073
|
+
_SnapController_closeAllConnections = new WeakMap(), _SnapController_dynamicPermissions = new WeakMap(), _SnapController_environmentEndowmentPermissions = new WeakMap(), _SnapController_excludedPermissions = new WeakMap(), _SnapController_featureFlags = new WeakMap(), _SnapController_fetchFunction = new WeakMap(), _SnapController_idleTimeCheckInterval = new WeakMap(), _SnapController_maxIdleTime = new WeakMap(), _SnapController_encryptor = new WeakMap(), _SnapController_getMnemonicSeed = new WeakMap(), _SnapController_getFeatureFlags = new WeakMap(), _SnapController_clientCryptography = new WeakMap(), _SnapController_detectSnapLocation = new WeakMap(), _SnapController_snapsRuntimeData = new WeakMap(), _SnapController_rollbackSnapshots = new WeakMap(), _SnapController_timeoutForLastRequestStatus = new WeakMap(), _SnapController_statusMachine = new WeakMap(), _SnapController_preinstalledSnaps = new WeakMap(), _SnapController_trackEvent = new WeakMap(), _SnapController_trackSnapExport = new WeakMap(), _SnapController_persistSnapState = new WeakMap(), _SnapController_instances = new WeakSet(), _SnapController_initializeStateMachine = function _SnapController_initializeStateMachine() {
|
|
1064
1074
|
const disableGuard = ({ snapId }) => {
|
|
1065
1075
|
return this.getExpect(snapId).enabled;
|
|
1066
1076
|
};
|
|
@@ -1129,7 +1139,6 @@ _SnapController_closeAllConnections = new WeakMap(), _SnapController_dynamicPerm
|
|
|
1129
1139
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:getRunnableSnaps`, (...args) => this.getRunnableSnaps(...args));
|
|
1130
1140
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:incrementActiveReferences`, (...args) => this.incrementActiveReferences(...args));
|
|
1131
1141
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:decrementActiveReferences`, (...args) => this.decrementActiveReferences(...args));
|
|
1132
|
-
this.messagingSystem.registerActionHandler(`${exports.controllerName}:getRegistryMetadata`, async (...args) => this.getRegistryMetadata(...args));
|
|
1133
1142
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:disconnectOrigin`, (...args) => this.removeSnapFromSubject(...args));
|
|
1134
1143
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:revokeDynamicPermissions`, (...args) => this.revokeDynamicSnapPermissions(...args));
|
|
1135
1144
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:getFile`, async (...args) => this.getSnapFile(...args));
|
|
@@ -1734,12 +1743,12 @@ async function _SnapController_getEndowments(snapId) {
|
|
|
1734
1743
|
}
|
|
1735
1744
|
await __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_assertSnapRpcResponse).call(this, snapId, handlerType, result);
|
|
1736
1745
|
const transformedResult = await __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_transformSnapRpcResponse).call(this, snapId, handlerType, transformedRequest, result);
|
|
1737
|
-
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id);
|
|
1746
|
+
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id, handlerType, origin, true);
|
|
1738
1747
|
return transformedResult;
|
|
1739
1748
|
}
|
|
1740
1749
|
catch (error) {
|
|
1741
1750
|
// We flag the RPC request as finished early since termination may affect pending requests
|
|
1742
|
-
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id);
|
|
1751
|
+
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id, handlerType, origin, false);
|
|
1743
1752
|
const [jsonRpcError, handled] = (0, snaps_utils_1.unwrapError)(error);
|
|
1744
1753
|
if (!handled) {
|
|
1745
1754
|
await this.stopSnap(snapId, snaps_utils_1.SnapStatusEvents.Crash);
|
|
@@ -1902,12 +1911,21 @@ async function _SnapController_assertSnapRpcResponse(snapId, handlerType, result
|
|
|
1902
1911
|
const runtime = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_getRuntimeExpect).call(this, snapId);
|
|
1903
1912
|
runtime.pendingInboundRequests.push({ requestId, timer });
|
|
1904
1913
|
runtime.lastRequest = null;
|
|
1905
|
-
}, _SnapController_recordSnapRpcRequestFinish = function _SnapController_recordSnapRpcRequestFinish(snapId, requestId) {
|
|
1914
|
+
}, _SnapController_recordSnapRpcRequestFinish = function _SnapController_recordSnapRpcRequestFinish(snapId, requestId, handlerType, origin, success) {
|
|
1906
1915
|
const runtime = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_getRuntimeExpect).call(this, snapId);
|
|
1907
1916
|
runtime.pendingInboundRequests = runtime.pendingInboundRequests.filter((request) => request.requestId !== requestId);
|
|
1908
1917
|
if (runtime.pendingInboundRequests.length === 0) {
|
|
1909
1918
|
runtime.lastRequest = Date.now();
|
|
1910
1919
|
}
|
|
1920
|
+
const snap = this.get(snapId);
|
|
1921
|
+
if ((0, utils_2.isTrackableHandler)(handlerType) && !snap?.preinstalled) {
|
|
1922
|
+
try {
|
|
1923
|
+
__classPrivateFieldGet(this, _SnapController_trackSnapExport, "f").call(this, snapId, handlerType, success, origin);
|
|
1924
|
+
}
|
|
1925
|
+
catch (error) {
|
|
1926
|
+
(0, snaps_utils_1.logError)(`Error when calling MetaMetrics hook for snap "${snap?.id}": ${(0, snaps_sdk_1.getErrorMessage)(error)}`);
|
|
1927
|
+
}
|
|
1928
|
+
}
|
|
1911
1929
|
}, _SnapController_getRollbackSnapshot = function _SnapController_getRollbackSnapshot(snapId) {
|
|
1912
1930
|
return __classPrivateFieldGet(this, _SnapController_rollbackSnapshots, "f").get(snapId);
|
|
1913
1931
|
}, _SnapController_createRollbackSnapshot = function _SnapController_createRollbackSnapshot(snapId) {
|