@metamask/snaps-controllers 17.2.0 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/dist/multichain/MultichainRouter.cjs +33 -10
  3. package/dist/multichain/MultichainRouter.cjs.map +1 -1
  4. package/dist/multichain/MultichainRouter.d.cts +5 -7
  5. package/dist/multichain/MultichainRouter.d.cts.map +1 -1
  6. package/dist/multichain/MultichainRouter.d.mts +5 -7
  7. package/dist/multichain/MultichainRouter.d.mts.map +1 -1
  8. package/dist/multichain/MultichainRouter.mjs +34 -11
  9. package/dist/multichain/MultichainRouter.mjs.map +1 -1
  10. package/dist/services/AbstractExecutionService.cjs +5 -7
  11. package/dist/services/AbstractExecutionService.cjs.map +1 -1
  12. package/dist/services/AbstractExecutionService.d.cts +3 -2
  13. package/dist/services/AbstractExecutionService.d.cts.map +1 -1
  14. package/dist/services/AbstractExecutionService.d.mts +3 -2
  15. package/dist/services/AbstractExecutionService.d.mts.map +1 -1
  16. package/dist/services/AbstractExecutionService.mjs +5 -7
  17. package/dist/services/AbstractExecutionService.mjs.map +1 -1
  18. package/dist/services/iframe/IframeExecutionService.cjs +12 -2
  19. package/dist/services/iframe/IframeExecutionService.cjs.map +1 -1
  20. package/dist/services/iframe/IframeExecutionService.d.cts +1 -1
  21. package/dist/services/iframe/IframeExecutionService.d.cts.map +1 -1
  22. package/dist/services/iframe/IframeExecutionService.d.mts +1 -1
  23. package/dist/services/iframe/IframeExecutionService.d.mts.map +1 -1
  24. package/dist/services/iframe/IframeExecutionService.mjs +12 -2
  25. package/dist/services/iframe/IframeExecutionService.mjs.map +1 -1
  26. package/dist/services/node-js/NodeProcessExecutionService.cjs +1 -1
  27. package/dist/services/node-js/NodeProcessExecutionService.cjs.map +1 -1
  28. package/dist/services/node-js/NodeProcessExecutionService.d.cts +1 -1
  29. package/dist/services/node-js/NodeProcessExecutionService.d.cts.map +1 -1
  30. package/dist/services/node-js/NodeProcessExecutionService.d.mts +1 -1
  31. package/dist/services/node-js/NodeProcessExecutionService.d.mts.map +1 -1
  32. package/dist/services/node-js/NodeProcessExecutionService.mjs +1 -1
  33. package/dist/services/node-js/NodeProcessExecutionService.mjs.map +1 -1
  34. package/dist/services/webview/WebViewExecutionService.cjs +1 -1
  35. package/dist/services/webview/WebViewExecutionService.cjs.map +1 -1
  36. package/dist/services/webview/WebViewExecutionService.d.cts +1 -1
  37. package/dist/services/webview/WebViewExecutionService.d.cts.map +1 -1
  38. package/dist/services/webview/WebViewExecutionService.d.mts +1 -1
  39. package/dist/services/webview/WebViewExecutionService.d.mts.map +1 -1
  40. package/dist/services/webview/WebViewExecutionService.mjs +1 -1
  41. package/dist/services/webview/WebViewExecutionService.mjs.map +1 -1
  42. package/dist/snaps/SnapController.cjs +111 -26
  43. package/dist/snaps/SnapController.cjs.map +1 -1
  44. package/dist/snaps/SnapController.d.cts +10 -17
  45. package/dist/snaps/SnapController.d.cts.map +1 -1
  46. package/dist/snaps/SnapController.d.mts +10 -17
  47. package/dist/snaps/SnapController.d.mts.map +1 -1
  48. package/dist/snaps/SnapController.mjs +111 -26
  49. package/dist/snaps/SnapController.mjs.map +1 -1
  50. package/dist/utils.d.cts +1 -0
  51. package/dist/utils.d.cts.map +1 -1
  52. package/dist/utils.d.mts +1 -0
  53. package/dist/utils.d.mts.map +1 -1
  54. package/package.json +12 -11
@@ -9,12 +9,13 @@ import type { RequestSnapsParams, RequestSnapsResult, SnapId } from "@metamask/s
9
9
  import { AuxiliaryFileEncoding } from "@metamask/snaps-sdk";
10
10
  import type { PersistedSnap, Snap, SnapManifest, SnapRpcHookArgs, StatusContext, StatusEvents, StatusStates, TruncatedSnap } from "@metamask/snaps-utils";
11
11
  import { SnapStatusEvents } from "@metamask/snaps-utils";
12
+ import type { StorageServiceGetItemAction, StorageServiceSetItemAction, StorageServiceRemoveItemAction, StorageServiceClearAction } from "@metamask/storage-service";
12
13
  import type { Json, NonEmptyArray, SemVerVersion } from "@metamask/utils";
13
14
  import type { StateMachine } from "@xstate/fsm";
14
15
  import { Mutex } from "async-mutex";
15
16
  import type { Patch } from "immer";
16
17
  import { detectSnapLocation } from "./location/index.cjs";
17
- import type { GetMetadata, GetResult, ResolveVersion, Update } from "./registry/index.cjs";
18
+ import type { GetMetadata, GetResult, ResolveVersion, SnapsRegistryStateChangeEvent, Update } from "./registry/index.cjs";
18
19
  import { Timer } from "./Timer.cjs";
19
20
  import type { CreateInterface, GetInterface } from "../interface/index.cjs";
20
21
  import type { ExecuteSnapAction, ExecutionServiceEvents, HandleRpcRequestAction, SnapErrorJson, TerminateSnapAction } from "../services/index.cjs";
@@ -111,7 +112,6 @@ export type SnapError = {
111
112
  code: number;
112
113
  data?: Json;
113
114
  };
114
- type CloseAllConnectionsFunction = (origin: string) => void;
115
115
  type StoredSnaps = Record<SnapId, Snap>;
116
116
  export type SnapControllerState = {
117
117
  snaps: StoredSnaps;
@@ -120,7 +120,7 @@ export type SnapControllerState = {
120
120
  isReady: boolean;
121
121
  };
122
122
  export type PersistedSnapControllerState = SnapControllerState & {
123
- snaps: Record<SnapId, PersistedSnap>;
123
+ snaps: Record<SnapId, Snap>;
124
124
  snapStates: Record<SnapId, string>;
125
125
  };
126
126
  /**
@@ -340,8 +340,8 @@ type KeyringControllerLock = {
340
340
  payload: [];
341
341
  };
342
342
  export type SnapControllerEvents = SnapBlocked | SnapInstalled | SnapUninstalled | SnapInstallStarted | SnapInstallFailed | SnapStateChange | SnapUnblocked | SnapUpdated | SnapRolledback | SnapTerminated | SnapEnabled | SnapDisabled | SnapControllerStateChangeEvent;
343
- export type AllowedActions = GetEndowments | GetPermissions | GetSubjects | GetSubjectMetadata | AddSubjectMetadata | HasPermission | HasPermissions | RevokePermissions | RevokeAllPermissions | RevokePermissionForAllSubjects | GrantPermissions | AddApprovalRequest | HandleRpcRequestAction | ExecuteSnapAction | TerminateSnapAction | UpdateCaveat | UpdateRequestState | GetResult | GetMetadata | Update | ResolveVersion | CreateInterface | GetInterface;
344
- export type AllowedEvents = ExecutionServiceEvents | SnapInstalled | SnapUpdated | KeyringControllerLock;
343
+ export type AllowedActions = GetEndowments | GetPermissions | GetSubjects | GetSubjectMetadata | AddSubjectMetadata | HasPermission | HasPermissions | RevokePermissions | RevokeAllPermissions | RevokePermissionForAllSubjects | GrantPermissions | AddApprovalRequest | HandleRpcRequestAction | ExecuteSnapAction | TerminateSnapAction | UpdateCaveat | UpdateRequestState | GetResult | GetMetadata | Update | ResolveVersion | CreateInterface | GetInterface | StorageServiceSetItemAction | StorageServiceGetItemAction | StorageServiceRemoveItemAction | StorageServiceClearAction;
344
+ export type AllowedEvents = ExecutionServiceEvents | SnapInstalled | SnapUpdated | KeyringControllerLock | SnapsRegistryStateChangeEvent;
345
345
  type SnapControllerMessenger = Messenger<typeof controllerName, SnapControllerActions | AllowedActions, SnapControllerEvents | AllowedEvents>;
346
346
  type FeatureFlags = {
347
347
  requireAllowlist?: boolean;
@@ -365,11 +365,6 @@ type DynamicFeatureFlags = {
365
365
  disableSnaps?: boolean;
366
366
  };
367
367
  type SnapControllerArgs = {
368
- /**
369
- * A teardown function that allows the host to clean up its instrumentation
370
- * for a running snap.
371
- */
372
- closeAllConnections?: CloseAllConnectionsFunction;
373
368
  /**
374
369
  * A list of permissions that are allowed to be dynamic, meaning they can be revoked from the snap whenever.
375
370
  */
@@ -469,20 +464,18 @@ type TrackEventHook = (event: TrackingEventPayload) => void;
469
464
  export declare class SnapController extends BaseController<typeof controllerName, SnapControllerState, SnapControllerMessenger> {
470
465
  #private;
471
466
  private readonly maxRequestTime;
472
- constructor({ closeAllConnections, messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography, trackEvent, ensureOnboardingComplete, }: SnapControllerArgs);
467
+ constructor({ messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography, trackEvent, ensureOnboardingComplete, }: SnapControllerArgs);
473
468
  /**
474
469
  * Initialise the SnapController.
475
470
  *
476
- * Currently this method calls the `onStart` lifecycle hook for all
471
+ * Currently this method sets up the controller and calls the `onStart` lifecycle hook for all
477
472
  * runnable Snaps.
478
473
  */
479
- init(): void;
474
+ init(): Promise<void>;
480
475
  /**
481
- * Checks all installed snaps against the block list and
482
- * blocks/unblocks snaps as appropriate. See {@link SnapController.blockSnap}
483
- * for more information.
476
+ * Trigger an update of the registry.
484
477
  *
485
- * Also updates any preinstalled Snaps to the latest allowlisted version.
478
+ * As a side-effect of this, preinstalled Snaps may be updated and Snaps may be blocked/unblocked.
486
479
  */
487
480
  updateRegistry(): Promise<void>;
488
481
  _onUnhandledSnapError(snapId: string, error: SnapErrorJson): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SnapController.d.cts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SnapController.d.cts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,13 @@ import type { RequestSnapsParams, RequestSnapsResult, SnapId } from "@metamask/s
9
9
  import { AuxiliaryFileEncoding } from "@metamask/snaps-sdk";
10
10
  import type { PersistedSnap, Snap, SnapManifest, SnapRpcHookArgs, StatusContext, StatusEvents, StatusStates, TruncatedSnap } from "@metamask/snaps-utils";
11
11
  import { SnapStatusEvents } from "@metamask/snaps-utils";
12
+ import type { StorageServiceGetItemAction, StorageServiceSetItemAction, StorageServiceRemoveItemAction, StorageServiceClearAction } from "@metamask/storage-service";
12
13
  import type { Json, NonEmptyArray, SemVerVersion } from "@metamask/utils";
13
14
  import type { StateMachine } from "@xstate/fsm";
14
15
  import { Mutex } from "async-mutex";
15
16
  import type { Patch } from "immer";
16
17
  import { detectSnapLocation } from "./location/index.mjs";
17
- import type { GetMetadata, GetResult, ResolveVersion, Update } from "./registry/index.mjs";
18
+ import type { GetMetadata, GetResult, ResolveVersion, SnapsRegistryStateChangeEvent, Update } from "./registry/index.mjs";
18
19
  import { Timer } from "./Timer.mjs";
19
20
  import type { CreateInterface, GetInterface } from "../interface/index.mjs";
20
21
  import type { ExecuteSnapAction, ExecutionServiceEvents, HandleRpcRequestAction, SnapErrorJson, TerminateSnapAction } from "../services/index.mjs";
@@ -111,7 +112,6 @@ export type SnapError = {
111
112
  code: number;
112
113
  data?: Json;
113
114
  };
114
- type CloseAllConnectionsFunction = (origin: string) => void;
115
115
  type StoredSnaps = Record<SnapId, Snap>;
116
116
  export type SnapControllerState = {
117
117
  snaps: StoredSnaps;
@@ -120,7 +120,7 @@ export type SnapControllerState = {
120
120
  isReady: boolean;
121
121
  };
122
122
  export type PersistedSnapControllerState = SnapControllerState & {
123
- snaps: Record<SnapId, PersistedSnap>;
123
+ snaps: Record<SnapId, Snap>;
124
124
  snapStates: Record<SnapId, string>;
125
125
  };
126
126
  /**
@@ -340,8 +340,8 @@ type KeyringControllerLock = {
340
340
  payload: [];
341
341
  };
342
342
  export type SnapControllerEvents = SnapBlocked | SnapInstalled | SnapUninstalled | SnapInstallStarted | SnapInstallFailed | SnapStateChange | SnapUnblocked | SnapUpdated | SnapRolledback | SnapTerminated | SnapEnabled | SnapDisabled | SnapControllerStateChangeEvent;
343
- export type AllowedActions = GetEndowments | GetPermissions | GetSubjects | GetSubjectMetadata | AddSubjectMetadata | HasPermission | HasPermissions | RevokePermissions | RevokeAllPermissions | RevokePermissionForAllSubjects | GrantPermissions | AddApprovalRequest | HandleRpcRequestAction | ExecuteSnapAction | TerminateSnapAction | UpdateCaveat | UpdateRequestState | GetResult | GetMetadata | Update | ResolveVersion | CreateInterface | GetInterface;
344
- export type AllowedEvents = ExecutionServiceEvents | SnapInstalled | SnapUpdated | KeyringControllerLock;
343
+ export type AllowedActions = GetEndowments | GetPermissions | GetSubjects | GetSubjectMetadata | AddSubjectMetadata | HasPermission | HasPermissions | RevokePermissions | RevokeAllPermissions | RevokePermissionForAllSubjects | GrantPermissions | AddApprovalRequest | HandleRpcRequestAction | ExecuteSnapAction | TerminateSnapAction | UpdateCaveat | UpdateRequestState | GetResult | GetMetadata | Update | ResolveVersion | CreateInterface | GetInterface | StorageServiceSetItemAction | StorageServiceGetItemAction | StorageServiceRemoveItemAction | StorageServiceClearAction;
344
+ export type AllowedEvents = ExecutionServiceEvents | SnapInstalled | SnapUpdated | KeyringControllerLock | SnapsRegistryStateChangeEvent;
345
345
  type SnapControllerMessenger = Messenger<typeof controllerName, SnapControllerActions | AllowedActions, SnapControllerEvents | AllowedEvents>;
346
346
  type FeatureFlags = {
347
347
  requireAllowlist?: boolean;
@@ -365,11 +365,6 @@ type DynamicFeatureFlags = {
365
365
  disableSnaps?: boolean;
366
366
  };
367
367
  type SnapControllerArgs = {
368
- /**
369
- * A teardown function that allows the host to clean up its instrumentation
370
- * for a running snap.
371
- */
372
- closeAllConnections?: CloseAllConnectionsFunction;
373
368
  /**
374
369
  * A list of permissions that are allowed to be dynamic, meaning they can be revoked from the snap whenever.
375
370
  */
@@ -469,20 +464,18 @@ type TrackEventHook = (event: TrackingEventPayload) => void;
469
464
  export declare class SnapController extends BaseController<typeof controllerName, SnapControllerState, SnapControllerMessenger> {
470
465
  #private;
471
466
  private readonly maxRequestTime;
472
- constructor({ closeAllConnections, messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography, trackEvent, ensureOnboardingComplete, }: SnapControllerArgs);
467
+ constructor({ messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography, trackEvent, ensureOnboardingComplete, }: SnapControllerArgs);
473
468
  /**
474
469
  * Initialise the SnapController.
475
470
  *
476
- * Currently this method calls the `onStart` lifecycle hook for all
471
+ * Currently this method sets up the controller and calls the `onStart` lifecycle hook for all
477
472
  * runnable Snaps.
478
473
  */
479
- init(): void;
474
+ init(): Promise<void>;
480
475
  /**
481
- * Checks all installed snaps against the block list and
482
- * blocks/unblocks snaps as appropriate. See {@link SnapController.blockSnap}
483
- * for more information.
476
+ * Trigger an update of the registry.
484
477
  *
485
- * Also updates any preinstalled Snaps to the latest allowlisted version.
478
+ * As a side-effect of this, preinstalled Snaps may be updated and Snaps may be blocked/unblocked.
486
479
  */
487
480
  updateRegistry(): Promise<void>;
488
481
  _onUnhandledSnapError(snapId: string, error: SnapErrorJson): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SnapController.d.mts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SnapController.d.mts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,6 @@ function truncateSnap(snap) {
58
58
  * - Start: Initializes the snap in its SES realm with the authorized permissions.
59
59
  */
60
60
  export class SnapController extends BaseController {
61
- #closeAllConnections;
62
61
  #dynamicPermissions;
63
62
  #environmentEndowmentPermissions;
64
63
  #excludedPermissions;
@@ -82,7 +81,12 @@ export class SnapController extends BaseController {
82
81
  #trackEvent;
83
82
  #trackSnapExport;
84
83
  #ensureOnboardingComplete;
85
- constructor({ closeAllConnections, messenger, state, dynamicPermissions = ['endowment:caip25', 'wallet_snap'], environmentEndowmentPermissions = [], excludedPermissions = {}, idleTimeCheckInterval = inMilliseconds(5, Duration.Second), maxIdleTime = inMilliseconds(30, Duration.Second), maxRequestTime = inMilliseconds(60, Duration.Second), fetchFunction = globalThis.fetch.bind(undefined), featureFlags = {}, detectSnapLocation: detectSnapLocationFunction = detectSnapLocation, preinstalledSnaps = null, encryptor, getMnemonicSeed, getFeatureFlags = () => ({}), clientCryptography, trackEvent, ensureOnboardingComplete, }) {
84
+ // A promise that resolves when the controller has finished setting up.
85
+ // This is used to ensure that the controller is ready to be used.
86
+ // It is resolved when the controller has finished setting up and the platform is ready.
87
+ // It is rejected if there is an error during setup.
88
+ #controllerSetup = createDeferredPromise();
89
+ constructor({ messenger, state, dynamicPermissions = ['endowment:caip25', 'wallet_snap'], environmentEndowmentPermissions = [], excludedPermissions = {}, idleTimeCheckInterval = inMilliseconds(5, Duration.Second), maxIdleTime = inMilliseconds(30, Duration.Second), maxRequestTime = inMilliseconds(60, Duration.Second), fetchFunction = globalThis.fetch.bind(undefined), featureFlags = {}, detectSnapLocation: detectSnapLocationFunction = detectSnapLocation, preinstalledSnaps = null, encryptor, getMnemonicSeed, getFeatureFlags = () => ({}), clientCryptography, trackEvent, ensureOnboardingComplete, }) {
86
90
  super({
87
91
  messenger,
88
92
  metadata: {
@@ -109,7 +113,6 @@ export class SnapController extends BaseController {
109
113
  // Delete larger snap properties
110
114
  return Object.values(snaps).reduce((acc, snap) => {
111
115
  const snapCopy = { ...snap };
112
- delete snapCopy.sourceCode;
113
116
  delete snapCopy.auxiliaryFiles;
114
117
  acc[snap.id] = snapCopy;
115
118
  return acc;
@@ -144,7 +147,6 @@ export class SnapController extends BaseController {
144
147
  ...state,
145
148
  },
146
149
  });
147
- this.#closeAllConnections = closeAllConnections;
148
150
  this.#dynamicPermissions = dynamicPermissions;
149
151
  this.#environmentEndowmentPermissions = environmentEndowmentPermissions;
150
152
  this.#excludedPermissions = excludedPermissions;
@@ -183,12 +185,14 @@ export class SnapController extends BaseController {
183
185
  });
184
186
  });
185
187
  this.messenger.subscribe('KeyringController:lock', this.#handleLock.bind(this));
188
+ this.messenger.subscribe('SnapsRegistry:stateChange', () => {
189
+ this.#handleRegistryUpdate().catch((error) => {
190
+ logError(`Error when processing Snaps registry update: ${getErrorMessage(error)}`);
191
+ });
192
+ }, ({ database }) => database);
186
193
  this.#initializeStateMachine();
187
194
  this.#registerMessageHandlers();
188
195
  Object.values(this.state?.snaps ?? {}).forEach((snap) => this.#setupRuntime(snap.id));
189
- if (this.#preinstalledSnaps) {
190
- this.#handlePreinstalledSnaps(this.#preinstalledSnaps);
191
- }
192
196
  this.#trackSnapExport = throttleTracking((snapId, handler, success, origin) => {
193
197
  const snapMetadata = this.messenger.call('SnapsRegistry:getMetadata', snapId);
194
198
  this.#trackEvent({
@@ -273,7 +277,7 @@ export class SnapController extends BaseController {
273
277
  * actions.
274
278
  */
275
279
  #registerMessageHandlers() {
276
- this.messenger.registerActionHandler(`${controllerName}:init`, (...args) => this.init(...args));
280
+ this.messenger.registerActionHandler(`${controllerName}:init`, async (...args) => this.init(...args));
277
281
  this.messenger.registerActionHandler(`${controllerName}:clearSnapState`, (...args) => this.clearSnapState(...args));
278
282
  this.messenger.registerActionHandler(`${controllerName}:get`, (...args) => this.get(...args));
279
283
  this.messenger.registerActionHandler(`${controllerName}:getSnapState`, async (...args) => this.getSnapState(...args));
@@ -300,15 +304,25 @@ export class SnapController extends BaseController {
300
304
  /**
301
305
  * Initialise the SnapController.
302
306
  *
303
- * Currently this method calls the `onStart` lifecycle hook for all
307
+ * Currently this method sets up the controller and calls the `onStart` lifecycle hook for all
304
308
  * runnable Snaps.
305
309
  */
306
- init() {
307
- // Lazily populate the `isReady` state.
308
- this.#ensureCanUsePlatform().catch(logWarning);
309
- this.#callLifecycleHooks(METAMASK_ORIGIN, HandlerType.OnStart);
310
+ async init() {
311
+ try {
312
+ if (this.#preinstalledSnaps) {
313
+ await this.#handlePreinstalledSnaps(this.#preinstalledSnaps);
314
+ }
315
+ this.#controllerSetup.resolve();
316
+ // Populate the `isReady` state.
317
+ await this.#ensureCanUsePlatform();
318
+ this.#callLifecycleHooks(METAMASK_ORIGIN, HandlerType.OnStart);
319
+ }
320
+ catch (error) {
321
+ this.#controllerSetup.reject(error);
322
+ logWarning('Error during SnapController initialization.', error);
323
+ }
310
324
  }
311
- #handlePreinstalledSnaps(preinstalledSnaps) {
325
+ async #handlePreinstalledSnaps(preinstalledSnaps) {
312
326
  for (const { snapId, manifest, files, removable, hidden, hideSnapBranding, } of preinstalledSnaps) {
313
327
  const existingSnap = this.get(snapId);
314
328
  const isAlreadyInstalled = existingSnap !== undefined;
@@ -343,7 +357,7 @@ export class SnapController extends BaseController {
343
357
  localizationFiles: validatedLocalizationFiles,
344
358
  };
345
359
  // Add snap to the SnapController state
346
- this.#set({
360
+ await this.#set({
347
361
  id: snapId,
348
362
  origin: METAMASK_ORIGIN,
349
363
  files: filesObject,
@@ -416,15 +430,22 @@ export class SnapController extends BaseController {
416
430
  }, this.#idleTimeCheckInterval);
417
431
  }
418
432
  /**
419
- * Checks all installed snaps against the block list and
420
- * blocks/unblocks snaps as appropriate. See {@link SnapController.blockSnap}
421
- * for more information.
433
+ * Trigger an update of the registry.
422
434
  *
423
- * Also updates any preinstalled Snaps to the latest allowlisted version.
435
+ * As a side-effect of this, preinstalled Snaps may be updated and Snaps may be blocked/unblocked.
424
436
  */
425
437
  async updateRegistry() {
426
438
  await this.#ensureCanUsePlatform();
427
439
  await this.messenger.call('SnapsRegistry:update');
440
+ }
441
+ /**
442
+ * Checks all installed Snaps against the blocklist and
443
+ * blocks/unblocks Snaps as appropriate. See {@link SnapController.blockSnap}
444
+ * for more information.
445
+ *
446
+ * Also updates any preinstalled Snaps to the latest allowlisted version.
447
+ */
448
+ async #handleRegistryUpdate() {
428
449
  const blockedSnaps = await this.messenger.call('SnapsRegistry:get', Object.values(this.state.snaps).reduce((blockListArg, snap) => {
429
450
  blockListArg[snap.id] = {
430
451
  version: snap.version,
@@ -532,6 +553,8 @@ export class SnapController extends BaseController {
532
553
  * Waits for onboarding and then asserts whether the Snaps platform is allowed to run.
533
554
  */
534
555
  async #ensureCanUsePlatform() {
556
+ // Ensure the controller has finished setting up.
557
+ await this.#controllerSetup.promise;
535
558
  // Ensure the user has onboarded before allowing access to Snaps.
536
559
  await this.#ensureOnboardingComplete();
537
560
  const flags = this.#getFeatureFlags();
@@ -613,9 +636,10 @@ export class SnapController extends BaseController {
613
636
  if (!snap.enabled) {
614
637
  throw new Error(`Snap "${snapId}" is disabled.`);
615
638
  }
639
+ const sourceCode = await this.#getSourceCode(snapId);
616
640
  await this.#startSnap({
617
641
  snapId,
618
- sourceCode: snap.sourceCode,
642
+ sourceCode,
619
643
  });
620
644
  }
621
645
  /**
@@ -676,7 +700,6 @@ export class SnapController extends BaseController {
676
700
  runtime.stopPromise = promise;
677
701
  try {
678
702
  if (this.isRunning(snapId)) {
679
- this.#closeAllConnections?.(snapId);
680
703
  await this.#terminateSnap(snapId);
681
704
  }
682
705
  }
@@ -1060,9 +1083,10 @@ export class SnapController extends BaseController {
1060
1083
  });
1061
1084
  this.#snapsRuntimeData.clear();
1062
1085
  this.#rollbackSnapshots.clear();
1086
+ await this.#clearStorageService();
1063
1087
  // We want to remove all snaps & permissions, except for preinstalled snaps
1064
1088
  if (this.#preinstalledSnaps) {
1065
- this.#handlePreinstalledSnaps(this.#preinstalledSnaps);
1089
+ await this.#handlePreinstalledSnaps(this.#preinstalledSnaps);
1066
1090
  }
1067
1091
  }
1068
1092
  /**
@@ -1104,6 +1128,7 @@ export class SnapController extends BaseController {
1104
1128
  delete state.snapStates[snapId];
1105
1129
  delete state.unencryptedSnapStates[snapId];
1106
1130
  });
1131
+ await this.#removeSourceCode(snapId);
1107
1132
  // If the snap has been fully installed before, also emit snapUninstalled.
1108
1133
  if (snap.status !== SnapStatus.Installing) {
1109
1134
  this.messenger.publish(`SnapController:snapUninstalled`, truncated);
@@ -1529,7 +1554,7 @@ export class SnapController extends BaseController {
1529
1554
  await this.stopSnap(snapId, SnapStatusEvents.Stop);
1530
1555
  }
1531
1556
  this.#transition(snapId, SnapStatusEvents.Update);
1532
- this.#set({
1557
+ await this.#set({
1533
1558
  origin,
1534
1559
  id: snapId,
1535
1560
  files: newSnap,
@@ -1716,7 +1741,7 @@ export class SnapController extends BaseController {
1716
1741
  * @param args - The add snap args.
1717
1742
  * @returns The resulting snap object.
1718
1743
  */
1719
- #set(args) {
1744
+ async #set(args) {
1720
1745
  const { id: snapId, origin, files, isUpdate = false, removable, preinstalled, hidden, hideSnapBranding, } = args;
1721
1746
  const { manifest, sourceCode: sourceCodeFile, svgIcon, auxiliaryFiles: rawAuxiliaryFiles, localizationFiles, } = files;
1722
1747
  assertIsSnapManifest(manifest.result);
@@ -1758,7 +1783,6 @@ export class SnapController extends BaseController {
1758
1783
  initialPermissions: manifest.result.initialPermissions,
1759
1784
  manifest: manifest.result,
1760
1785
  status: this.#statusMachine.config.initial,
1761
- sourceCode,
1762
1786
  version,
1763
1787
  versionHistory,
1764
1788
  auxiliaryFiles,
@@ -1775,9 +1799,14 @@ export class SnapController extends BaseController {
1775
1799
  if (isUpdate) {
1776
1800
  const rollbackSnapshot = this.#getRollbackSnapshot(snapId);
1777
1801
  if (rollbackSnapshot !== undefined) {
1802
+ // Save statePatches first, before any async operations that might throw.
1803
+ // This ensures rollback can revert state changes even if subsequent operations fail.
1778
1804
  rollbackSnapshot.statePatches = inversePatches;
1805
+ const previousSourceCode = await this.#getSourceCode(snapId);
1806
+ rollbackSnapshot.previousSourceCode = previousSourceCode;
1779
1807
  }
1780
1808
  }
1809
+ await this.#setSourceCode(snapId, sourceCode);
1781
1810
  // In case the Snap uses a localized manifest, we need to get the
1782
1811
  // proposed name from the localized manifest.
1783
1812
  const { proposedName } = getLocalizedSnapManifest(manifest.result, 'en', localizedFiles);
@@ -2288,10 +2317,15 @@ export class SnapController extends BaseController {
2288
2317
  if (this.get(snapId)?.status !== SnapStatus.Stopped) {
2289
2318
  this.#transition(snapId, SnapStatusEvents.Stop);
2290
2319
  }
2291
- const { statePatches, permissions, previousInitialConnections, newInitialConnections, } = rollbackSnapshot;
2320
+ const { statePatches, permissions, previousInitialConnections, newInitialConnections, previousSourceCode, } = rollbackSnapshot;
2292
2321
  if (statePatches?.length) {
2293
2322
  this.applyPatches(statePatches);
2294
2323
  }
2324
+ // If the snap has a previous source code, set it back to the previous source code.
2325
+ // If it doesn't, we don't need to set it back to the previous source code because it means we haven't updated the source code.
2326
+ if (previousSourceCode) {
2327
+ await this.#setSourceCode(snapId, previousSourceCode);
2328
+ }
2295
2329
  // Reset snap status, as we may have been in another state when we stored state patches
2296
2330
  // But now we are 100% in a stopped state
2297
2331
  if (this.get(snapId)?.status !== SnapStatus.Stopped) {
@@ -2528,5 +2562,56 @@ export class SnapController extends BaseController {
2528
2562
  runtime.state = undefined;
2529
2563
  }
2530
2564
  }
2565
+ /**
2566
+ * Retrieve the source code for a Snap from storage.
2567
+ *
2568
+ * @param snapId - The Snap ID.
2569
+ * @returns The source code for the Snap.
2570
+ */
2571
+ async #getSourceCode(snapId) {
2572
+ const storage = await this.#getStorage(snapId);
2573
+ assert(storage?.sourceCode, `Source code for Snap "${snapId}" not found.`);
2574
+ return storage.sourceCode;
2575
+ }
2576
+ /**
2577
+ * Retrieve the storage for a Snap from the StorageService.
2578
+ *
2579
+ * @param snapId - The Snap ID.
2580
+ * @returns The storage for the Snap.
2581
+ */
2582
+ async #getStorage(snapId) {
2583
+ const { result, error } = await this.messenger.call('StorageService:getItem', this.name, snapId);
2584
+ assert(!error, `Error retrieving storage for snap "${snapId}": ${error}`);
2585
+ return result;
2586
+ }
2587
+ /**
2588
+ * Store the source code for a Snap in storage.
2589
+ * For now we call the StorageService with just the source code
2590
+ * since that's all we store.
2591
+ *
2592
+ * @param snapId - The Snap ID.
2593
+ * @param sourceCode - The source code for the Snap.
2594
+ */
2595
+ async #setSourceCode(snapId, sourceCode) {
2596
+ await this.messenger.call('StorageService:setItem', this.name, snapId, {
2597
+ sourceCode,
2598
+ });
2599
+ }
2600
+ /**
2601
+ * Remove the source code for a Snap from storage.
2602
+ * Since we only store source code, this effectively
2603
+ * removes all data for the Snap for now.
2604
+ *
2605
+ * @param snapId - The Snap ID.
2606
+ */
2607
+ async #removeSourceCode(snapId) {
2608
+ await this.messenger.call('StorageService:removeItem', this.name, snapId);
2609
+ }
2610
+ /**
2611
+ * Clear all Snap data from the StorageService.
2612
+ */
2613
+ async #clearStorageService() {
2614
+ await this.messenger.call('StorageService:clear', this.name);
2615
+ }
2531
2616
  }
2532
2617
  //# sourceMappingURL=SnapController.mjs.map