Skip to content

Conversation

@ffmcgee725
Copy link
Member

@ffmcgee725 ffmcgee725 commented Aug 1, 2025

Explanation

While working on adding Multichain API to Flask on mobile, some code that is common to the browser extension repository was also created on the mobile codebase, namely these permissions utilities which are also present in the extension metamask-controller module:

  • getCaip25PermissionFromLegacyPermissions
  • requestPermittedChainsPermissionIncremental

The work proposed in this pull request migrates these common functionalities onto our @metamask/chain-agnostic-permissions package, so that they can be imported on both mobile and extension to be used.

References

Changelog

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed, highlighting breaking changes as necessary
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

@ffmcgee725 ffmcgee725 changed the title refactor: address tech debt on chain agnostic permission code repeated on extension and mobile codebases refactor: address tech debt for chain agnostic permission code repeated on extension and mobile codebases Aug 1, 2025
@ffmcgee725 ffmcgee725 marked this pull request as ready for review August 1, 2025 12:24
@ffmcgee725 ffmcgee725 requested review from a team as code owners August 1, 2025 12:24
cursor[bot]

This comment was marked as outdated.

@ffmcgee725
Copy link
Member Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Aug 4, 2025

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "0.7.0-preview-a811c5b7",
  "@metamask-previews/accounts-controller": "32.0.1-preview-a811c5b7",
  "@metamask-previews/address-book-controller": "6.1.1-preview-a811c5b7",
  "@metamask-previews/announcement-controller": "7.0.3-preview-a811c5b7",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-a811c5b7",
  "@metamask-previews/approval-controller": "7.1.3-preview-a811c5b7",
  "@metamask-previews/assets-controllers": "73.0.1-preview-a811c5b7",
  "@metamask-previews/base-controller": "8.0.1-preview-a811c5b7",
  "@metamask-previews/bridge-controller": "37.0.0-preview-a811c5b7",
  "@metamask-previews/bridge-status-controller": "37.0.0-preview-a811c5b7",
  "@metamask-previews/build-utils": "3.0.3-preview-a811c5b7",
  "@metamask-previews/chain-agnostic-permission": "1.0.0-preview-a811c5b7",
  "@metamask-previews/composable-controller": "11.0.0-preview-a811c5b7",
  "@metamask-previews/controller-utils": "11.11.0-preview-a811c5b7",
  "@metamask-previews/delegation-controller": "0.6.0-preview-a811c5b7",
  "@metamask-previews/earn-controller": "4.0.0-preview-a811c5b7",
  "@metamask-previews/eip1193-permission-middleware": "1.0.0-preview-a811c5b7",
  "@metamask-previews/ens-controller": "17.0.1-preview-a811c5b7",
  "@metamask-previews/error-reporting-service": "2.0.0-preview-a811c5b7",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-a811c5b7",
  "@metamask-previews/foundryup": "1.0.1-preview-a811c5b7",
  "@metamask-previews/gas-fee-controller": "24.0.0-preview-a811c5b7",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-a811c5b7",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-a811c5b7",
  "@metamask-previews/keyring-controller": "22.1.0-preview-a811c5b7",
  "@metamask-previews/logging-controller": "6.0.4-preview-a811c5b7",
  "@metamask-previews/message-manager": "12.0.2-preview-a811c5b7",
  "@metamask-previews/messenger": "0.0.0-preview-a811c5b7",
  "@metamask-previews/multichain-account-service": "0.3.0-preview-a811c5b7",
  "@metamask-previews/multichain-api-middleware": "1.0.0-preview-a811c5b7",
  "@metamask-previews/multichain-network-controller": "0.11.0-preview-a811c5b7",
  "@metamask-previews/multichain-transactions-controller": "4.0.0-preview-a811c5b7",
  "@metamask-previews/name-controller": "8.0.3-preview-a811c5b7",
  "@metamask-previews/network-controller": "24.0.1-preview-a811c5b7",
  "@metamask-previews/notification-services-controller": "16.0.0-preview-a811c5b7",
  "@metamask-previews/permission-controller": "11.0.6-preview-a811c5b7",
  "@metamask-previews/permission-log-controller": "4.0.0-preview-a811c5b7",
  "@metamask-previews/phishing-controller": "13.1.0-preview-a811c5b7",
  "@metamask-previews/polling-controller": "14.0.0-preview-a811c5b7",
  "@metamask-previews/preferences-controller": "18.4.1-preview-a811c5b7",
  "@metamask-previews/profile-sync-controller": "23.0.0-preview-a811c5b7",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-a811c5b7",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-a811c5b7",
  "@metamask-previews/sample-controllers": "1.0.0-preview-a811c5b7",
  "@metamask-previews/seedless-onboarding-controller": "2.5.0-preview-a811c5b7",
  "@metamask-previews/selected-network-controller": "23.0.0-preview-a811c5b7",
  "@metamask-previews/signature-controller": "32.0.0-preview-a811c5b7",
  "@metamask-previews/token-search-discovery-controller": "3.3.0-preview-a811c5b7",
  "@metamask-previews/transaction-controller": "59.0.0-preview-a811c5b7",
  "@metamask-previews/user-operation-controller": "38.0.0-preview-a811c5b7"
}

Comment on lines +571 to +572
* Requests user approval for the CAIP-25 permission
* and returns a granted permissions object.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not quite accurate

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we mean to change this ? It's what made it past the permission refactor review earlier (on both mobile and extension), and what currently lives in both codebases' documentation.

How would you suggest we update this ?

@ffmcgee725 ffmcgee725 enabled auto-merge (squash) August 5, 2025 08:35
@ffmcgee725 ffmcgee725 requested review from a team and removed request for a team August 5, 2025 08:39
@ffmcgee725 ffmcgee725 merged commit 2635adc into main Aug 5, 2025
308 of 431 checks passed
@ffmcgee725 ffmcgee725 deleted the jc/mmp-2899 branch August 5, 2025 13:31
@ffmcgee725 ffmcgee725 mentioned this pull request Aug 5, 2025
ffmcgee725 added a commit that referenced this pull request Aug 5, 2025
## @metamask/chain-agnostic-permission

## [1.1.0]

### Added

- Added `getCaip25PermissionFromLegacyPermissions` and
`requestPermittedChainsPermissionIncremental` misc functions.
([#6225](#6225))

### Changed

- Bump `@metamask/controller-utils` from `^11.10.0` to `^11.11.0`
([#6069](#6069))
- Bump `@metamask/network-controller` from `^24.0.0` to `^24.0.1`
([#6148](#6148))
- Bump `@metamask/utils` from `^11.2.0` to `^11.4.2`
([#6054](#6054))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants