@metamask/snaps-controllers 0.30.0 → 0.32.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 (44) hide show
  1. package/dist/cronjob/CronjobController.js +11 -8
  2. package/dist/cronjob/CronjobController.js.map +1 -1
  3. package/dist/fsm.js +5 -5
  4. package/dist/fsm.js.map +1 -1
  5. package/dist/multichain/MultiChainController.js +12 -20
  6. package/dist/multichain/MultiChainController.js.map +1 -1
  7. package/dist/multichain/matching.js +3 -4
  8. package/dist/multichain/matching.js.map +1 -1
  9. package/dist/services/iframe/IframeExecutionService.js +1 -2
  10. package/dist/services/iframe/IframeExecutionService.js.map +1 -1
  11. package/dist/services/node/NodeProcessExecutionService.js +1 -1
  12. package/dist/services/node/NodeProcessExecutionService.js.map +1 -1
  13. package/dist/services/node/NodeThreadExecutionService.js +1 -1
  14. package/dist/services/node/NodeThreadExecutionService.js.map +1 -1
  15. package/dist/snaps/RequestQueue.js +3 -6
  16. package/dist/snaps/RequestQueue.js.map +1 -1
  17. package/dist/snaps/SnapController.d.ts +9 -11
  18. package/dist/snaps/SnapController.js +285 -188
  19. package/dist/snaps/SnapController.js.map +1 -1
  20. package/dist/snaps/endowments/cronjob.js +2 -3
  21. package/dist/snaps/endowments/cronjob.js.map +1 -1
  22. package/dist/snaps/endowments/index.js +6 -1
  23. package/dist/snaps/endowments/index.js.map +1 -1
  24. package/dist/snaps/endowments/keyring.js +3 -4
  25. package/dist/snaps/endowments/keyring.js.map +1 -1
  26. package/dist/snaps/endowments/rpc.js +2 -2
  27. package/dist/snaps/endowments/rpc.js.map +1 -1
  28. package/dist/snaps/endowments/transaction-insight.js +4 -5
  29. package/dist/snaps/endowments/transaction-insight.js.map +1 -1
  30. package/dist/snaps/location/http.js +9 -3
  31. package/dist/snaps/location/http.js.map +1 -1
  32. package/dist/snaps/location/local.js +1 -1
  33. package/dist/snaps/location/local.js.map +1 -1
  34. package/dist/snaps/location/location.js +2 -3
  35. package/dist/snaps/location/location.js.map +1 -1
  36. package/dist/snaps/location/npm.js +11 -8
  37. package/dist/snaps/location/npm.js.map +1 -1
  38. package/dist/snaps/registry/json.d.ts +33 -14
  39. package/dist/snaps/registry/json.js +119 -44
  40. package/dist/snaps/registry/json.js.map +1 -1
  41. package/package.json +33 -13
  42. package/dist/services/iframe/test/fixJSDOMPostMessageEventSource.d.ts +0 -3
  43. package/dist/services/iframe/test/fixJSDOMPostMessageEventSource.js +0 -34
  44. package/dist/services/iframe/test/fixJSDOMPostMessageEventSource.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { AddApprovalRequest } from '@metamask/approval-controller';
1
+ import { AddApprovalRequest, UpdateRequestState } from '@metamask/approval-controller';
2
2
  import { BaseControllerV2 as BaseController, RestrictedControllerMessenger } from '@metamask/base-controller';
3
3
  import { GetEndowments, GetPermissions, GetSubjects, GrantPermissions, HasPermission, HasPermissions, RevokeAllPermissions, RevokePermissionForAllSubjects, RevokePermissions, UpdateCaveat } from '@metamask/permission-controller';
4
4
  import { BlockReason } from '@metamask/snaps-registry';
@@ -9,11 +9,12 @@ import { StateMachine } from '@xstate/fsm';
9
9
  import type { Patch } from 'immer';
10
10
  import { ExecuteSnapAction, ExecutionServiceEvents, HandleRpcRequestAction, SnapErrorJson, TerminateAllSnapsAction, TerminateSnapAction } from '../services';
11
11
  import { detectSnapLocation, SnapLocation } from './location';
12
- import { SnapsRegistry, SnapsRegistryMetadata } from './registry';
12
+ import { GetMetadata, GetResult, SnapsRegistryMetadata } from './registry';
13
13
  import { Timer } from './Timer';
14
14
  export declare const controllerName = "SnapController";
15
15
  export declare const SNAP_APPROVAL_INSTALL = "wallet_installSnap";
16
16
  export declare const SNAP_APPROVAL_UPDATE = "wallet_updateSnap";
17
+ export declare const SNAP_APPROVAL_RESULT = "wallet_installSnapResult";
17
18
  export declare type PendingRequest = {
18
19
  requestId: unknown;
19
20
  timer: Timer;
@@ -238,7 +239,7 @@ export declare type SnapTerminated = {
238
239
  payload: [snap: TruncatedSnap];
239
240
  };
240
241
  export declare type SnapControllerEvents = SnapAdded | SnapBlocked | SnapInstalled | SnapRemoved | SnapStateChange | SnapUnblocked | SnapUpdated | SnapRolledback | SnapTerminated;
241
- export declare type AllowedActions = GetEndowments | GetPermissions | GetSubjects | GetSubjectMetadata | HasPermission | HasPermissions | RevokePermissions | RevokeAllPermissions | RevokePermissionForAllSubjects | GrantPermissions | AddApprovalRequest | HandleRpcRequestAction | ExecuteSnapAction | TerminateAllSnapsAction | TerminateSnapAction | UpdateCaveat;
242
+ export declare type AllowedActions = GetEndowments | GetPermissions | GetSubjects | GetSubjectMetadata | HasPermission | HasPermissions | RevokePermissions | RevokeAllPermissions | RevokePermissionForAllSubjects | GrantPermissions | AddApprovalRequest | HandleRpcRequestAction | ExecuteSnapAction | TerminateAllSnapsAction | TerminateSnapAction | UpdateCaveat | UpdateRequestState | GetResult | GetMetadata;
242
243
  export declare type AllowedEvents = ExecutionServiceEvents;
243
244
  declare type SnapControllerMessenger = RestrictedControllerMessenger<typeof controllerName, SnapControllerActions | AllowedActions, SnapControllerEvents | AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
244
245
  declare type FeatureFlags = {
@@ -282,10 +283,6 @@ declare type SnapControllerArgs = {
282
283
  * How frequently to check whether a snap is idle.
283
284
  */
284
285
  idleTimeCheckInterval?: number;
285
- /**
286
- * A registry implementation used for checking for verified and blocked snaps.
287
- */
288
- registry: SnapsRegistry;
289
286
  /**
290
287
  * The maximum amount of time that a snap may be idle.
291
288
  */
@@ -318,7 +315,7 @@ export declare class SnapController extends BaseController<string, SnapControlle
318
315
  #private;
319
316
  private readonly maxRequestTime;
320
317
  private readonly snapsRuntimeData;
321
- constructor({ closeAllConnections, messenger, state, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, registry, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, }: SnapControllerArgs);
318
+ constructor({ closeAllConnections, messenger, state, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, }: SnapControllerArgs);
322
319
  /**
323
320
  * Checks all installed snaps against the block list and
324
321
  * blocks/unblocks snaps as appropriate. See {@link SnapController.blockSnap}
@@ -517,6 +514,7 @@ export declare class SnapController extends BaseController<string, SnapControlle
517
514
  *
518
515
  * @param origin - The origin requesting the snap.
519
516
  * @param snapId - The id of the snap.
517
+ * @param location - The location implementation of the snap.
520
518
  * @param versionRange - The semver range of the snap to install.
521
519
  * @returns The resulting snap object, or an error if something went wrong.
522
520
  */
@@ -535,11 +533,11 @@ export declare class SnapController extends BaseController<string, SnapControlle
535
533
  *
536
534
  * @param origin - The origin requesting the snap update.
537
535
  * @param snapId - The id of the Snap to be updated.
538
- * @param location - Optional location that was already used during installation flow.
536
+ * @param location - The location implementation of the snap.
539
537
  * @param newVersionRange - A semver version range in which the maximum version will be chosen.
540
538
  * @returns The snap metadata if updated, `null` otherwise.
541
539
  */
542
- updateSnap(origin: string, snapId: ValidatedSnapId, location: SnapLocation, newVersionRange?: string): Promise<TruncatedSnap | null>;
540
+ updateSnap(origin: string, snapId: ValidatedSnapId, location: SnapLocation, newVersionRange?: string): Promise<TruncatedSnap>;
543
541
  /**
544
542
  * Get metadata for the given snap ID.
545
543
  *
@@ -554,8 +552,8 @@ export declare class SnapController extends BaseController<string, SnapControlle
554
552
  *
555
553
  * This function is not hash private yet because of tests.
556
554
  *
557
- * @param origin - The origin of the install request.
558
555
  * @param snapId - The id of the Snap.
556
+ * @param pendingApproval - Pending approval to update.
559
557
  * @returns The snap's approvedPermissions.
560
558
  */
561
559
  private authorize;