@metamask/snaps-controllers 12.1.0 → 12.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -1
- package/dist/cronjob/CronjobController.cjs +13 -4
- package/dist/cronjob/CronjobController.cjs.map +1 -1
- package/dist/cronjob/CronjobController.d.cts.map +1 -1
- package/dist/cronjob/CronjobController.d.mts.map +1 -1
- package/dist/cronjob/CronjobController.mjs +15 -6
- package/dist/cronjob/CronjobController.mjs.map +1 -1
- package/dist/interface/SnapInterfaceController.cjs +15 -1
- package/dist/interface/SnapInterfaceController.cjs.map +1 -1
- package/dist/interface/SnapInterfaceController.d.cts +10 -2
- package/dist/interface/SnapInterfaceController.d.cts.map +1 -1
- package/dist/interface/SnapInterfaceController.d.mts +10 -2
- package/dist/interface/SnapInterfaceController.d.mts.map +1 -1
- package/dist/interface/SnapInterfaceController.mjs +17 -3
- package/dist/interface/SnapInterfaceController.mjs.map +1 -1
- package/dist/interface/utils.cjs +104 -4
- package/dist/interface/utils.cjs.map +1 -1
- package/dist/interface/utils.d.cts +71 -2
- package/dist/interface/utils.d.cts.map +1 -1
- package/dist/interface/utils.d.mts +71 -2
- package/dist/interface/utils.d.mts.map +1 -1
- package/dist/interface/utils.mjs +101 -5
- package/dist/interface/utils.mjs.map +1 -1
- package/dist/multichain/MultichainRouter.cjs +1 -0
- package/dist/multichain/MultichainRouter.cjs.map +1 -1
- package/dist/multichain/MultichainRouter.d.cts +1 -0
- package/dist/multichain/MultichainRouter.d.cts.map +1 -1
- package/dist/multichain/MultichainRouter.d.mts +1 -0
- package/dist/multichain/MultichainRouter.d.mts.map +1 -1
- package/dist/multichain/MultichainRouter.mjs +1 -0
- package/dist/multichain/MultichainRouter.mjs.map +1 -1
- package/dist/services/AbstractExecutionService.cjs +127 -202
- package/dist/services/AbstractExecutionService.cjs.map +1 -1
- package/dist/services/AbstractExecutionService.d.cts +8 -53
- package/dist/services/AbstractExecutionService.d.cts.map +1 -1
- package/dist/services/AbstractExecutionService.d.mts +8 -53
- package/dist/services/AbstractExecutionService.d.mts.map +1 -1
- package/dist/services/AbstractExecutionService.mjs +127 -202
- package/dist/services/AbstractExecutionService.mjs.map +1 -1
- package/dist/services/iframe/IframeExecutionService.cjs +2 -2
- package/dist/services/iframe/IframeExecutionService.cjs.map +1 -1
- package/dist/services/iframe/IframeExecutionService.d.cts +1 -1
- package/dist/services/iframe/IframeExecutionService.d.cts.map +1 -1
- package/dist/services/iframe/IframeExecutionService.d.mts +1 -1
- package/dist/services/iframe/IframeExecutionService.d.mts.map +1 -1
- package/dist/services/iframe/IframeExecutionService.mjs +2 -2
- package/dist/services/iframe/IframeExecutionService.mjs.map +1 -1
- package/dist/services/offscreen/OffscreenExecutionService.cjs +5 -5
- package/dist/services/offscreen/OffscreenExecutionService.cjs.map +1 -1
- package/dist/services/offscreen/OffscreenExecutionService.d.cts +4 -4
- package/dist/services/offscreen/OffscreenExecutionService.d.cts.map +1 -1
- package/dist/services/offscreen/OffscreenExecutionService.d.mts +4 -4
- package/dist/services/offscreen/OffscreenExecutionService.d.mts.map +1 -1
- package/dist/services/offscreen/OffscreenExecutionService.mjs +5 -5
- package/dist/services/offscreen/OffscreenExecutionService.mjs.map +1 -1
- package/dist/services/proxy/ProxyExecutionService.cjs +6 -6
- package/dist/services/proxy/ProxyExecutionService.cjs.map +1 -1
- package/dist/services/proxy/ProxyExecutionService.d.cts +4 -4
- package/dist/services/proxy/ProxyExecutionService.d.cts.map +1 -1
- package/dist/services/proxy/ProxyExecutionService.d.mts +4 -4
- package/dist/services/proxy/ProxyExecutionService.d.mts.map +1 -1
- package/dist/services/proxy/ProxyExecutionService.mjs +6 -6
- package/dist/services/proxy/ProxyExecutionService.mjs.map +1 -1
- package/dist/services/webview/WebViewExecutionService.cjs +6 -6
- package/dist/services/webview/WebViewExecutionService.cjs.map +1 -1
- package/dist/services/webview/WebViewExecutionService.d.cts +5 -5
- package/dist/services/webview/WebViewExecutionService.d.cts.map +1 -1
- package/dist/services/webview/WebViewExecutionService.d.mts +5 -5
- package/dist/services/webview/WebViewExecutionService.d.mts.map +1 -1
- package/dist/services/webview/WebViewExecutionService.mjs +6 -6
- package/dist/services/webview/WebViewExecutionService.mjs.map +1 -1
- package/dist/snaps/SnapController.cjs +60 -72
- package/dist/snaps/SnapController.cjs.map +1 -1
- package/dist/snaps/SnapController.d.cts +19 -10
- package/dist/snaps/SnapController.d.cts.map +1 -1
- package/dist/snaps/SnapController.d.mts +19 -10
- package/dist/snaps/SnapController.d.mts.map +1 -1
- package/dist/snaps/SnapController.mjs +61 -73
- package/dist/snaps/SnapController.mjs.map +1 -1
- package/dist/snaps/registry/json.cjs +4 -2
- 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 +4 -2
- package/dist/snaps/registry/json.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/snaps/RequestQueue.cjs +0 -44
- package/dist/snaps/RequestQueue.cjs.map +0 -1
- package/dist/snaps/RequestQueue.d.cts +0 -25
- package/dist/snaps/RequestQueue.d.cts.map +0 -1
- package/dist/snaps/RequestQueue.d.mts +0 -25
- package/dist/snaps/RequestQueue.d.mts.map +0 -1
- package/dist/snaps/RequestQueue.mjs +0 -40
- package/dist/snaps/RequestQueue.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_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,
|
|
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_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_getPermissionsToGrant, _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");
|
|
@@ -27,7 +27,6 @@ const semver_1 = require("semver");
|
|
|
27
27
|
const constants_1 = require("./constants.cjs");
|
|
28
28
|
const location_1 = require("./location/index.cjs");
|
|
29
29
|
const registry_1 = require("./registry/index.cjs");
|
|
30
|
-
const RequestQueue_1 = require("./RequestQueue.cjs");
|
|
31
30
|
const selectors_1 = require("./selectors.cjs");
|
|
32
31
|
const Timer_1 = require("./Timer.cjs");
|
|
33
32
|
const fsm_2 = require("../fsm.cjs");
|
|
@@ -526,6 +525,22 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
526
525
|
(0, utils_1.assert)(encoded.length < snaps_utils_1.MAX_FILE_SIZE, `Failed to encode static file to "${encoding}": Static files must be less than 64 MB when encoded.`);
|
|
527
526
|
return encoded;
|
|
528
527
|
}
|
|
528
|
+
/**
|
|
529
|
+
* Determine if a given Snap ID supports a given minimum version of the Snaps platform
|
|
530
|
+
* by inspecting the platformVersion in the Snap manifest.
|
|
531
|
+
*
|
|
532
|
+
* @param snapId - The Snap ID.
|
|
533
|
+
* @param version - The version.
|
|
534
|
+
* @returns True if the platform version is equal or greater to the passed version, false otherwise.
|
|
535
|
+
*/
|
|
536
|
+
isMinimumPlatformVersion(snapId, version) {
|
|
537
|
+
const snap = this.getExpect(snapId);
|
|
538
|
+
const { platformVersion } = snap.manifest;
|
|
539
|
+
if (!platformVersion) {
|
|
540
|
+
return false;
|
|
541
|
+
}
|
|
542
|
+
return (0, semver_1.gte)(platformVersion, version);
|
|
543
|
+
}
|
|
529
544
|
/**
|
|
530
545
|
* Completely clear the controller's state: delete all associated data,
|
|
531
546
|
* handlers, event listeners, and permissions; tear down all snap providers.
|
|
@@ -1065,12 +1080,49 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
1065
1080
|
constants_1.CLIENT_ONLY_HANDLERS.includes(handlerType)) {
|
|
1066
1081
|
throw new Error(`"${handlerType}" can only be invoked by MetaMask.`);
|
|
1067
1082
|
}
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1083
|
+
if (!this.state.snaps[snapId].enabled) {
|
|
1084
|
+
throw new Error(`Snap "${snapId}" is disabled.`);
|
|
1085
|
+
}
|
|
1086
|
+
if (this.state.snaps[snapId].status === snaps_utils_1.SnapStatus.Installing) {
|
|
1087
|
+
throw new Error(`Snap "${snapId}" is currently being installed. Please try again later.`);
|
|
1071
1088
|
}
|
|
1072
1089
|
const timeout = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_getExecutionTimeout).call(this, handlerPermissions);
|
|
1073
|
-
|
|
1090
|
+
if (!this.isRunning(snapId)) {
|
|
1091
|
+
const runtime = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_getRuntimeExpect).call(this, snapId);
|
|
1092
|
+
if (!runtime.startPromise) {
|
|
1093
|
+
runtime.startPromise = this.startSnap(snapId);
|
|
1094
|
+
}
|
|
1095
|
+
try {
|
|
1096
|
+
await runtime.startPromise;
|
|
1097
|
+
}
|
|
1098
|
+
finally {
|
|
1099
|
+
runtime.startPromise = null;
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
const transformedRequest = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_transformSnapRpcRequest).call(this, snapId, handlerType, request);
|
|
1103
|
+
const timer = new Timer_1.Timer(timeout);
|
|
1104
|
+
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestStart).call(this, snapId, transformedRequest.id, timer);
|
|
1105
|
+
const handleRpcRequestPromise = this.messagingSystem.call('ExecutionService:handleRpcRequest', snapId, { origin, handler: handlerType, request: transformedRequest });
|
|
1106
|
+
// This will either get the result or reject due to the timeout.
|
|
1107
|
+
try {
|
|
1108
|
+
const result = await (0, utils_2.withTimeout)(handleRpcRequestPromise, timer);
|
|
1109
|
+
if (result === utils_2.hasTimedOut) {
|
|
1110
|
+
throw new Error(`${snapId} failed to respond to the request in time.`);
|
|
1111
|
+
}
|
|
1112
|
+
await __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_assertSnapRpcResponse).call(this, snapId, handlerType, result);
|
|
1113
|
+
const transformedResult = await __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_transformSnapRpcResponse).call(this, snapId, handlerType, transformedRequest, result);
|
|
1114
|
+
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id, handlerType, origin, true);
|
|
1115
|
+
return transformedResult;
|
|
1116
|
+
}
|
|
1117
|
+
catch (error) {
|
|
1118
|
+
// We flag the RPC request as finished early since termination may affect pending requests
|
|
1119
|
+
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id, handlerType, origin, false);
|
|
1120
|
+
const [jsonRpcError, handled] = (0, snaps_utils_1.unwrapError)(error);
|
|
1121
|
+
if (!handled) {
|
|
1122
|
+
await this.stopSnap(snapId, snaps_utils_1.SnapStatusEvents.Crash);
|
|
1123
|
+
}
|
|
1124
|
+
throw jsonRpcError;
|
|
1125
|
+
}
|
|
1074
1126
|
}
|
|
1075
1127
|
}
|
|
1076
1128
|
exports.SnapController = SnapController;
|
|
@@ -1147,6 +1199,7 @@ _SnapController_closeAllConnections = new WeakMap(), _SnapController_dynamicPerm
|
|
|
1147
1199
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:revokeDynamicPermissions`, (...args) => this.revokeDynamicSnapPermissions(...args));
|
|
1148
1200
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:getFile`, async (...args) => this.getSnapFile(...args));
|
|
1149
1201
|
this.messagingSystem.registerActionHandler(`${exports.controllerName}:stopAllSnaps`, async (...args) => this.stopAllSnaps(...args));
|
|
1202
|
+
this.messagingSystem.registerActionHandler(`${exports.controllerName}:isMinimumPlatformVersion`, (...args) => this.isMinimumPlatformVersion(...args));
|
|
1150
1203
|
}, _SnapController_handlePreinstalledSnaps = function _SnapController_handlePreinstalledSnaps(preinstalledSnaps) {
|
|
1151
1204
|
for (const { snapId, manifest, files, removable, hidden, hideSnapBranding, } of preinstalledSnaps) {
|
|
1152
1205
|
const existingSnap = this.get(snapId);
|
|
@@ -1697,71 +1750,6 @@ async function _SnapController_getEndowments(snapId) {
|
|
|
1697
1750
|
}
|
|
1698
1751
|
}, _SnapController_getExecutionTimeout = function _SnapController_getExecutionTimeout(permission) {
|
|
1699
1752
|
return (0, snaps_rpc_methods_1.getMaxRequestTimeCaveat)(permission) ?? this.maxRequestTime;
|
|
1700
|
-
}, _SnapController_getRpcRequestHandler = function _SnapController_getRpcRequestHandler(snapId) {
|
|
1701
|
-
const runtime = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_getRuntimeExpect).call(this, snapId);
|
|
1702
|
-
const existingHandler = runtime.rpcHandler;
|
|
1703
|
-
if (existingHandler) {
|
|
1704
|
-
return existingHandler;
|
|
1705
|
-
}
|
|
1706
|
-
const requestQueue = new RequestQueue_1.RequestQueue(100);
|
|
1707
|
-
// We need to set up this promise map to map snapIds to their respective startPromises,
|
|
1708
|
-
// because otherwise we would lose context on the correct startPromise.
|
|
1709
|
-
const startPromises = new Map();
|
|
1710
|
-
const rpcHandler = async ({ origin, handler: handlerType, request, timeout, }) => {
|
|
1711
|
-
if (!this.state.snaps[snapId].enabled) {
|
|
1712
|
-
throw new Error(`Snap "${snapId}" is disabled.`);
|
|
1713
|
-
}
|
|
1714
|
-
if (this.state.snaps[snapId].status === snaps_utils_1.SnapStatus.Installing) {
|
|
1715
|
-
throw new Error(`Snap "${snapId}" is currently being installed. Please try again later.`);
|
|
1716
|
-
}
|
|
1717
|
-
if (!this.isRunning(snapId)) {
|
|
1718
|
-
let localStartPromise = startPromises.get(snapId);
|
|
1719
|
-
if (!localStartPromise) {
|
|
1720
|
-
localStartPromise = this.startSnap(snapId);
|
|
1721
|
-
startPromises.set(snapId, localStartPromise);
|
|
1722
|
-
}
|
|
1723
|
-
else if (requestQueue.get(origin) >= requestQueue.maxQueueSize) {
|
|
1724
|
-
throw new Error('Exceeds maximum number of requests waiting to be resolved, please try again.');
|
|
1725
|
-
}
|
|
1726
|
-
requestQueue.increment(origin);
|
|
1727
|
-
try {
|
|
1728
|
-
await localStartPromise;
|
|
1729
|
-
}
|
|
1730
|
-
finally {
|
|
1731
|
-
requestQueue.decrement(origin);
|
|
1732
|
-
// Only delete startPromise for a snap if its value hasn't changed
|
|
1733
|
-
if (startPromises.get(snapId) === localStartPromise) {
|
|
1734
|
-
startPromises.delete(snapId);
|
|
1735
|
-
}
|
|
1736
|
-
}
|
|
1737
|
-
}
|
|
1738
|
-
const transformedRequest = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_transformSnapRpcRequest).call(this, snapId, handlerType, request);
|
|
1739
|
-
const timer = new Timer_1.Timer(timeout);
|
|
1740
|
-
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestStart).call(this, snapId, transformedRequest.id, timer);
|
|
1741
|
-
const handleRpcRequestPromise = this.messagingSystem.call('ExecutionService:handleRpcRequest', snapId, { origin, handler: handlerType, request: transformedRequest });
|
|
1742
|
-
// This will either get the result or reject due to the timeout.
|
|
1743
|
-
try {
|
|
1744
|
-
const result = await (0, utils_2.withTimeout)(handleRpcRequestPromise, timer);
|
|
1745
|
-
if (result === utils_2.hasTimedOut) {
|
|
1746
|
-
throw new Error(`${snapId} failed to respond to the request in time.`);
|
|
1747
|
-
}
|
|
1748
|
-
await __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_assertSnapRpcResponse).call(this, snapId, handlerType, result);
|
|
1749
|
-
const transformedResult = await __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_transformSnapRpcResponse).call(this, snapId, handlerType, transformedRequest, result);
|
|
1750
|
-
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id, handlerType, origin, true);
|
|
1751
|
-
return transformedResult;
|
|
1752
|
-
}
|
|
1753
|
-
catch (error) {
|
|
1754
|
-
// We flag the RPC request as finished early since termination may affect pending requests
|
|
1755
|
-
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_recordSnapRpcRequestFinish).call(this, snapId, transformedRequest.id, handlerType, origin, false);
|
|
1756
|
-
const [jsonRpcError, handled] = (0, snaps_utils_1.unwrapError)(error);
|
|
1757
|
-
if (!handled) {
|
|
1758
|
-
await this.stopSnap(snapId, snaps_utils_1.SnapStatusEvents.Crash);
|
|
1759
|
-
}
|
|
1760
|
-
throw jsonRpcError;
|
|
1761
|
-
}
|
|
1762
|
-
};
|
|
1763
|
-
runtime.rpcHandler = rpcHandler;
|
|
1764
|
-
return rpcHandler;
|
|
1765
1753
|
}, _SnapController_createInterface =
|
|
1766
1754
|
/**
|
|
1767
1755
|
* Create a dynamic interface in the SnapInterfaceController.
|
|
@@ -2015,7 +2003,7 @@ async function _SnapController_rollbackSnaps(snapIds) {
|
|
|
2015
2003
|
(0, fsm_2.forceStrict)(interpreter);
|
|
2016
2004
|
__classPrivateFieldGet(this, _SnapController_snapsRuntimeData, "f").set(snapId, {
|
|
2017
2005
|
lastRequest: null,
|
|
2018
|
-
|
|
2006
|
+
startPromise: null,
|
|
2019
2007
|
installPromise: null,
|
|
2020
2008
|
encryptionKey: null,
|
|
2021
2009
|
encryptionSalt: null,
|