chore: Bump Snaps and related dependencies#28140
chore: Bump Snaps and related dependencies#28140Mrtenz merged 16 commits intotest/core-pr-8245-testdrivefrom
Conversation
|
Warning MetaMask internal reviewing guidelines:
|
- Removes GATOR_PERMISSIONS_ENABLED - Presently configured with hardcoded supportedPermissionTypes: []
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
app/core/Engine/messengers/multichain-assets-controller-messenger/types.ts
Outdated
Show resolved
Hide resolved
🔍 Smart E2E Test Selection⏭️ Smart E2E selection skipped - base branch is not main or a release branch (base: test/core-pr-8245-testdrive) All E2E tests pre-selected. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
| }, | ||
| messenger: controllerMessenger, | ||
| config: createGatorPermissionsConfig(), | ||
| state: persistedState.GatorPermissionsController, |
There was a problem hiding this comment.
Missing state migration for GatorPermissionsController schema change
Medium Severity
The GatorPermissionsController state schema changed completely (old: gatorPermissionsMapSerialized, gatorPermissionsProviderSnapId, isGatorPermissionsEnabled; new: grantedPermissions, lastSyncedTimestamp, pendingRevocations), but no migration was added to handle this. The old init code explicitly merged defaults with persisted state via generateDefaultGatorPermissionsControllerState(), but the new code passes persistedState.GatorPermissionsController directly to the constructor. On upgrade, existing users will have old-format state passed to the v3.0.0 controller. A migration was added for the SnapsRegistry → SnapRegistryController key rename, but the analogous GatorPermissionsController internal state shape change was not addressed.
Additional Locations (1)
|
✅ E2E Fixture Validation — Schema is up to date |
|





Description
Major bump of
@metamask/snaps-controllersand related packages. This mainly handles breaking changes, there shouldn't be any changes in functionality. Changes include:GetSnapis nowSnapControllerGetSnapAction).SnapController:getis nowSnapController:getSnap).JsonSnapsRegistryis now namedSnapRegistryControllerfor consistency with other Snap controllers.MultichainRouteris now namedMultichainRoutingService.snap_getCurrencyRateandsnap_experimentalProviderRequestwere removed. These were undocumented and deprecated, and shouldn't be used by any Snaps.Changelog
CHANGELOG entry: Remove deprecated Snap methods
snap_getCurrencyRateandsnap_experimentalProviderRequest.Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Medium Risk
Broad dependency upgrade with widespread renames of controller/messenger action strings and a persisted-state migration; main risk is runtime breakage if any call sites or stored state keys were missed.
Overview
Updates to
@metamask/snaps-controllers(and related packages) are wired through the app, including standardized action/event types and renamed RPC/messenger action strings (e.g.SnapController:get��SnapController:getSnap).Renames
JsonSnapsRegistry��SnapRegistryControllerandMultichainRouter��MultichainRoutingServiceacross Engine initialization, messengers, and Snap/multichain middleware, and adds migration129to move persistedSnapsRegistrystate underSnapRegistryController.Adjusts a few controller inits/tests to match updated upstream APIs (e.g.,
GatorPermissionsControllernow uses aconfigobject and no longer relies onisGatorPermissionsFeatureEnabled;BridgeStatusControllerinit stops passing transaction helper fns and instead expands its messenger delegation). Removes deprecated Snap permissionsnap_experimentalProviderRequestfrom the allowed method list.Written by Cursor Bugbot for commit da37ac3. This will update automatically on new commits. Configure here.