Skip to content

[pull] main from MetaMask:main#537

Merged
pull[bot] merged 2 commits intoReality2byte:mainfrom
MetaMask:main
Apr 24, 2026
Merged

[pull] main from MetaMask:main#537
pull[bot] merged 2 commits intoReality2byte:mainfrom
MetaMask:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 24, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

hmalik88 and others added 2 commits April 24, 2026 14:14
## Explanation

This is needed to handle keyring controller locked scenarios when
account creation is mid-flight in the multichain account service.
Alternative was to do `KeyringController:getState`, but I'd rather not
pull in the whole state to do a boolean check.

## References

N/A

## Checklist

- [x] I've updated the test suite for new or updated code as appropriate
- [x] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [x] I've communicated my changes to consumers by [updating changelogs
for packages I've
changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md)
- [x] I've introduced [breaking
changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md)
in this PR and have prepared draft pull requests for clients and
consumer packages to resolve them

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds a new read-only messenger action that returns the
existing `state.isUnlocked` boolean, with no changes to unlock/lock
behavior or vault persistence.
> 
> **Overview**
> Adds a new `KeyringController:isUnlocked` messenger action so
consumers can query vault lock status without fetching full controller
state or holding a controller reference.
> 
> This updates the allowed action types/exports and exposes `isUnlocked`
via `MESSENGER_EXPOSED_METHODS`, with a changelog entry documenting the
new capability.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
83fffcb. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
…cted method hooks (#8551)

## Explanation

Adds a `messenger` option to permission specification builders as an
alternative to `methodHooks`, aligning spec builders with the
messenger-based method middleware introduced in #8506. Restricted-method
specs can now declare the root-messenger actions they need via
`actionNames` and consume a minimally-scoped `Messenger`.

Incidentally, also removes the `factoryHooks` and `validatorHooks`
fields from the spec builder surface. Both of these were unused in
practice.

## References

- Related to #8506
- Preview build PRs:
  - MetaMask/metamask-extension#42128
- Extension CI failing as of merge due to unrelated problems, but
succeeds when testing manually.
  - MetaMask/metamask-mobile#29343
  - MetaMask/snaps#3969

## Checklist

- [x] I've updated the test suite for new or updated code as appropriate
- [x] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [x] I've communicated my changes to consumers by [updating changelogs
for packages I've
changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md)
- [x] I've introduced [breaking
changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md)
in this PR and have prepared draft pull requests for clients and
consumer packages to resolve them

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Breaking type-surface changes to permission specification builders
(removing `factoryHooks`/`validatorHooks` and adding optional scoped
`messenger`) may require downstream updates; new messenger delegation
logic could impact how restricted-method specs invoke host actions.
> 
> **Overview**
> Restricted-method permission specification builders can now receive an
optional scoped `messenger` (constructed from spec-declared
`actionNames`) as an alternative to relying on `methodHooks`, enabling
specs to call only explicitly-delegated host actions.
> 
> Introduces `createRestrictedMethodMessenger` (exported from the
package) to create a child `Messenger` with a minimal delegated action
surface, and adds tests covering delegation behavior and the new builder
option. **BREAKING:** removes `factoryHooks`, `validatorHooks`, and
related export fields from the permission specification builder API
surface.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
1e2fe74. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Apr 24, 2026
@pull pull Bot added the ⤵️ pull label Apr 24, 2026
@pull pull Bot merged commit bd5249d into Reality2byte:main Apr 24, 2026
0 of 4 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants