core
core copied to clipboard
This monorepo is a collection of packages used across multiple MetaMask clients
## Explanation The `#assertIsUnlocked` assertion is placed in all controller method as first line. Though for methods that mutate the controller state and update the vault (through `#persistOrRollback`) or that...
## Explanation ## References ## Changelog ## Checklist - [ ] I've updated the test suite for new or updated code as appropriate - [ ] I've updated documentation (JSDoc,...
## Overview Designs: [Figma Link](https://www.figma.com/design/CvBEDNwQqfW4Wbil40Bhr1/Substitute-Global-Network-selector?node-id=740-38494&t=nHAwq1kuxmf7OOcB-4) As we scale to support more networks, we're transitioning toward a **native multichain experience** — removing the Global Network Selector (GNS) and allowing users to...
We have some missing controller guidelines: - State should be coherent at all times. If properties are intended to be used in conjunction with each other they should be consistent,...
It is good that we have guidelines for writing controllers, but they are very succinct. Engineers that have not worked with the `core` repo and are unfamiliar with the concept...
For the services piece of this we should do this after the RPC service work. The messenger system should come after the ADR for messenger delegation related - https://github.com/MetaMask/core/issues/4986 -...
If you merge a release PR that bumps the version of a package that has dependents such as `@metamask/base-controller`, but you do not approve the release yet (i.e., the new...
Each package has a `build` script, but this scripts currently fail with the error `command not found: ts-bridge`. The top-level build command still works, but on a per-package level the...
The `create-update-issues` workflow assumes that each package has at least one tag. It fails when we publish a package for the first time. Example: https://github.com/MetaMask/core/actions/runs/11961716257/job/33349064511