Closed Gudahtt closed 6 months ago
The accounts team has implemented a new controller for Identity State management which is the AccountsController and are in the process of migrating the clients to use that. That should cover this issue so closing this one.
Our "identity" related state is spread out amongst many different places:
eth-keyring-controller
) holds references to the keyrings, and is responsible for the global lock/unlock and certain keyring interactionsKeyringController.ts
, which is a wrapper aroundeth-keyring-controller
) exposes methods for interacting with the underlying KeyringController, and for performing actions that affect identity-related state throughout many controllersmetamask-controller.js
At each of these layers, methods are exposed to directly interact with this data from anywhere else in our codebase, providing few protections against making changes that result in contradictions between these pieces of state.
So my questions are: