@metamask/snaps-controllers 0.33.1-flask.1 → 0.34.1-flask.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +78 -65
  2. package/dist/cronjob/CronjobController.d.ts +3 -3
  3. package/dist/cronjob/CronjobController.js.map +1 -1
  4. package/dist/multichain/MultiChainController.js +1 -1
  5. package/dist/multichain/MultiChainController.js.map +1 -1
  6. package/dist/snaps/SnapController.d.ts +22 -22
  7. package/dist/snaps/SnapController.js +8 -22
  8. package/dist/snaps/SnapController.js.map +1 -1
  9. package/dist/snaps/endowments/cronjob.d.ts +2 -2
  10. package/dist/snaps/endowments/cronjob.js +2 -2
  11. package/dist/snaps/endowments/cronjob.js.map +1 -1
  12. package/dist/snaps/endowments/ethereum-provider.d.ts +2 -2
  13. package/dist/snaps/endowments/ethereum-provider.js +2 -2
  14. package/dist/snaps/endowments/ethereum-provider.js.map +1 -1
  15. package/dist/snaps/endowments/index.d.ts +16 -16
  16. package/dist/snaps/endowments/index.js +16 -16
  17. package/dist/snaps/endowments/index.js.map +1 -1
  18. package/dist/snaps/endowments/keyring.d.ts +3 -3
  19. package/dist/snaps/endowments/keyring.js +5 -4
  20. package/dist/snaps/endowments/keyring.js.map +1 -1
  21. package/dist/snaps/endowments/long-running.d.ts +2 -2
  22. package/dist/snaps/endowments/long-running.js +2 -2
  23. package/dist/snaps/endowments/long-running.js.map +1 -1
  24. package/dist/snaps/endowments/network-access.d.ts +2 -2
  25. package/dist/snaps/endowments/network-access.js +2 -2
  26. package/dist/snaps/endowments/network-access.js.map +1 -1
  27. package/dist/snaps/endowments/rpc.d.ts +3 -3
  28. package/dist/snaps/endowments/rpc.js +5 -4
  29. package/dist/snaps/endowments/rpc.js.map +1 -1
  30. package/dist/snaps/endowments/transaction-insight.d.ts +2 -2
  31. package/dist/snaps/endowments/transaction-insight.js +2 -2
  32. package/dist/snaps/endowments/transaction-insight.js.map +1 -1
  33. package/dist/snaps/endowments/web-assembly.d.ts +2 -2
  34. package/dist/snaps/endowments/web-assembly.js +2 -2
  35. package/dist/snaps/endowments/web-assembly.js.map +1 -1
  36. package/dist/snaps/index.d.ts +2 -0
  37. package/dist/snaps/index.js +2 -0
  38. package/dist/snaps/index.js.map +1 -1
  39. package/dist/snaps/location/npm.d.ts +20 -0
  40. package/dist/snaps/location/npm.js +30 -14
  41. package/dist/snaps/location/npm.js.map +1 -1
  42. package/dist/snaps/permissions.d.ts +16 -0
  43. package/dist/snaps/permissions.js +54 -0
  44. package/dist/snaps/permissions.js.map +1 -0
  45. package/dist/snaps/registry/registry.d.ts +3 -3
  46. package/dist/snaps/registry/registry.js.map +1 -1
  47. package/package.json +17 -15
@@ -10,7 +10,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
11
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
12
  };
13
- var _SnapController_instances, _SnapController_closeAllConnections, _SnapController_environmentEndowmentPermissions, _SnapController_excludedPermissions, _SnapController_featureFlags, _SnapController_fetchFunction, _SnapController_idleTimeCheckInterval, _SnapController_maxIdleTime, _SnapController_detectSnapLocation, _SnapController_rollbackSnapshots, _SnapController_timeoutForLastRequestStatus, _SnapController_statusMachine, _SnapController_initializeStateMachine, _SnapController_registerMessageHandlers, _SnapController_pollForLastRequestStatus, _SnapController_blockSnap, _SnapController_unblockSnap, _SnapController_assertIsInstallAllowed, _SnapController_stopSnapsLastRequestPastMax, _SnapController_transition, _SnapController_terminateSnap, _SnapController_removeSnapFromSubjects, _SnapController_createApproval, _SnapController_updateApproval, _SnapController_add, _SnapController_startSnap, _SnapController_getEndowments, _SnapController_set, _SnapController_fetchSnap, _SnapController_processSnapPermissions, _SnapController_validateSnapPermissions, _SnapController_getRpcRequestHandler, _SnapController_executeWithTimeout, _SnapController_recordSnapRpcRequestStart, _SnapController_recordSnapRpcRequestFinish, _SnapController_getRollbackSnapshot, _SnapController_createRollbackSnapshot, _SnapController_rollbackSnap, _SnapController_rollbackSnaps, _SnapController_getRuntime, _SnapController_getRuntimeExpect, _SnapController_setupRuntime, _SnapController_calculatePermissionsChange, _SnapController_isValidUpdate;
13
+ var _SnapController_instances, _SnapController_closeAllConnections, _SnapController_environmentEndowmentPermissions, _SnapController_excludedPermissions, _SnapController_featureFlags, _SnapController_fetchFunction, _SnapController_idleTimeCheckInterval, _SnapController_maxIdleTime, _SnapController_detectSnapLocation, _SnapController_rollbackSnapshots, _SnapController_timeoutForLastRequestStatus, _SnapController_statusMachine, _SnapController_initializeStateMachine, _SnapController_registerMessageHandlers, _SnapController_pollForLastRequestStatus, _SnapController_blockSnap, _SnapController_unblockSnap, _SnapController_assertIsInstallAllowed, _SnapController_stopSnapsLastRequestPastMax, _SnapController_transition, _SnapController_terminateSnap, _SnapController_removeSnapFromSubjects, _SnapController_createApproval, _SnapController_updateApproval, _SnapController_add, _SnapController_startSnap, _SnapController_getEndowments, _SnapController_set, _SnapController_fetchSnap, _SnapController_validateSnapPermissions, _SnapController_getRpcRequestHandler, _SnapController_executeWithTimeout, _SnapController_recordSnapRpcRequestStart, _SnapController_recordSnapRpcRequestFinish, _SnapController_getRollbackSnapshot, _SnapController_createRollbackSnapshot, _SnapController_rollbackSnap, _SnapController_rollbackSnaps, _SnapController_getRuntime, _SnapController_getRuntimeExpect, _SnapController_setupRuntime, _SnapController_calculatePermissionsChange, _SnapController_isValidUpdate;
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,6 +27,7 @@ const utils_2 = require("../utils");
27
27
  const endowments_1 = require("./endowments");
28
28
  const rpc_1 = require("./endowments/rpc");
29
29
  const location_1 = require("./location");
30
+ const permissions_1 = require("./permissions");
30
31
  const registry_1 = require("./registry");
31
32
  const RequestQueue_1 = require("./RequestQueue");
32
33
  const Timer_1 = require("./Timer");
@@ -114,6 +115,9 @@ class SnapController extends base_controller_1.BaseControllerV2 {
114
115
  ...state,
115
116
  snaps: Object.values(state?.snaps ?? {}).reduce((memo, snap) => {
116
117
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
118
+ // sourceCode is stripped out to prevent piping to MetaMask UI,
119
+ // it is stored in the runtime while we're running a snap and then
120
+ // persisted to state when needed.
117
121
  const { sourceCode, ...rest } = snap;
118
122
  memo[snap.id] = rest;
119
123
  return memo;
@@ -723,7 +727,7 @@ class SnapController extends base_controller_1.BaseControllerV2 {
723
727
  version: newVersion,
724
728
  checksum: newSnap.manifest.result.source.shasum,
725
729
  });
726
- const processedPermissions = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_processSnapPermissions).call(this, newSnap.manifest.result.initialPermissions);
730
+ const processedPermissions = (0, permissions_1.processSnapPermissions)(newSnap.manifest.result.initialPermissions);
727
731
  __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_validateSnapPermissions).call(this, processedPermissions);
728
732
  const { newPermissions, unusedPermissions, approvedPermissions } = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_calculatePermissionsChange).call(this, snapId, processedPermissions);
729
733
  __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_updateApproval).call(this, pendingApproval.id, {
@@ -825,7 +829,7 @@ class SnapController extends base_controller_1.BaseControllerV2 {
825
829
  const snap = snapsState[snapId];
826
830
  const { initialPermissions } = snap;
827
831
  try {
828
- const processedPermissions = __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_processSnapPermissions).call(this, initialPermissions);
832
+ const processedPermissions = (0, permissions_1.processSnapPermissions)(initialPermissions);
829
833
  __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_validateSnapPermissions).call(this, processedPermissions);
830
834
  __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_updateApproval).call(this, pendingApproval.id, {
831
835
  loading: false,
@@ -1092,7 +1096,6 @@ async function _SnapController_add(args) {
1092
1096
  runtime.installPromise = (async () => {
1093
1097
  const fetchedSnap = await __classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_fetchSnap).call(this, snapId, location);
1094
1098
  const manifest = fetchedSnap.manifest.result;
1095
- (0, snaps_utils_1.assertIsSnapManifest)(manifest);
1096
1099
  if (!(0, utils_1.satisfiesVersionRange)(manifest.version, versionRange)) {
1097
1100
  throw new Error(`Version mismatch. Manifest for "${snapId}" specifies version "${manifest.version}" which doesn't satisfy requested version range "${versionRange}".`);
1098
1101
  }
@@ -1248,7 +1251,7 @@ async function _SnapController_fetchSnap(snapId, location) {
1248
1251
  if (svgIcon) {
1249
1252
  files.push(svgIcon);
1250
1253
  }
1251
- (0, snaps_utils_1.validateSnapShasum)({ manifest, sourceCode, svgIcon });
1254
+ (0, snaps_utils_1.validateFetchedSnap)({ manifest, sourceCode, svgIcon });
1252
1255
  return { manifest, files, location };
1253
1256
  }
1254
1257
  catch (error) {
@@ -1257,23 +1260,6 @@ async function _SnapController_fetchSnap(snapId, location) {
1257
1260
  const message = error instanceof Error ? error.message : error.toString();
1258
1261
  throw new Error(`Failed to fetch Snap "${snapId}": ${message}.`);
1259
1262
  }
1260
- }, _SnapController_processSnapPermissions = function _SnapController_processSnapPermissions(initialPermissions) {
1261
- return Object.fromEntries(Object.entries(initialPermissions).map(([initialPermission, value]) => {
1262
- if ((0, utils_1.hasProperty)(rpc_methods_1.caveatMappers, initialPermission)) {
1263
- return [initialPermission, rpc_methods_1.caveatMappers[initialPermission](value)];
1264
- }
1265
- else if ((0, utils_1.hasProperty)(endowments_1.endowmentCaveatMappers, initialPermission)) {
1266
- return [
1267
- initialPermission,
1268
- endowments_1.endowmentCaveatMappers[initialPermission](value),
1269
- ];
1270
- }
1271
- // If we have no mapping, this may be a non-snap permission, return as-is
1272
- return [
1273
- initialPermission,
1274
- value,
1275
- ];
1276
- }));
1277
1263
  }, _SnapController_validateSnapPermissions = function _SnapController_validateSnapPermissions(processedPermissions) {
1278
1264
  const permissionKeys = Object.keys(processedPermissions);
1279
1265
  const handlerPermissions = Object.values(endowments_1.handlerEndowments);