core
core copied to clipboard
This monorepo is a collection of packages used across multiple MetaMask clients
We should ensure that the [`noUncheckedIndexedAccess`](https://www.typescriptlang.org/tsconfig/#noUncheckedIndexedAccess) TypeScript flag is enabled in every `tsconfig` in the monorepo. For past work and more context, see #554 and https://github.com/MetaMask/metamask-module-template/pull/84.
## Motivation - Currently, we manually enumerate each individual `.subscribe()` call in messenger client constructors. We should have a DRY-er way of doing this. - A "data as code" paradigm...
It's still in Review state, but what do you think? > Before this EIP, when users sign transactions to spend their approved tokens, they trust the front-end code entirely to...
https://github.com/MetaMask/json-rpc-engine/blob/bece020a9d515e1714ffa3e6ac36c534e33ddfe5/src/JsonRpcEngine.ts#L344 This code will (at least sometimes) throw a `{ code: ..., message: ... }` object rather than an instance of `Error`. This means there is no stack trace and...
Once https://github.com/MetaMask/snaps/issues/1860 is closed, we should add a new package `@metamask/rpc-methods` to this repository. This is so that we can establish a home for client-agnostic RPC method implementations. This package...
Currently we only keep track of the network status and details of the current globally selected network. We should keep track of the network status and details of all active...
We now have tests that exercise most of the behavior that MetaMask provides around various RPC methods via middleware — these are the "network client tests" — but some of...
It is critical that if you list a package in `tsconfig.json`, then you also list it in `tsconfig.build.json`. This is easy to get wrong especially when creating a new package....
We should clarify the recommended workflow when core packages are updated. When teams make changes to core packages, they are sometimes unsure about whether they should release them right away,...
We have support for updating token prices in batches. This functionality is built-in to the `TokenRatesController`, and was separately implemented as the `fetchTokenContractExchangeRates` utility function (see #3657). We should migrate...