Skip to content

Migrate accounts-controller to github.com/MetaMask/accounts #1699

Description

@legobeat

@metamask/accounts-controller (#1637) has started pulling in dependencies from https://github.com/MetaMask/snaps, which in their turn go back for packages from this repo.

To avoid dependency cycles and release churn arising from this dynamic, I propose migrating the package to the snaps monorepo - at least as long as the relationships look like they currently do.

Hand-drawn ASCII art is the dependency tree limited to packages in MetaMask core and snaps monorepos:

@metamask/accounts-controller(core) -> @metamask/keyring-api ----------> @metamask/rpc-methods(snaps) ---------> @metamask/key-tree
| | |-> @metamask/permission-controller(core)*
| | |-> @metamask/snaps-ui(snaps)*
| | |-> @metamask/snaps-utils(snaps)*
| |
| |-> @metamask/snaps-controllers(snaps) ---> @metamask/approval-controller(core) ------------> @metamask/base-controller(core)*
| | |-> @metamask/base-controller(core)*
| | |-> @metamask/permission-controller(core)*
| | |-> @metamask/rpc-methods(snaps) -------------------> @metamask/key-tree*
| | | |-> @metamask/permission-controller(core)*
| | | |-> @metamask/snaps-ui(snaps)*
| | | |-> @metamask/snaps-utils(snaps)*
| | |
| | |-> @metamask/snaps-execution-environments(snaps) --> @metamask/rpc-methods(snaps)*
| | | |-> @metamask/snaps-utils(snaps)*
| | |-> @metamask/snaps-utils(snaps)*
| |-> @metamask/snaps-utils(snaps)*
|
|-> @metamask/eth-snap-keyring -----> @metamask/keyring-api*
| |-> @metamask/snaps-controllers(snaps)*
|
|
|-> @metamask/snaps-utils (snaps) --> @metamask/base-controller(core)
|-> @metamask/key-tree
|-> @metamask/permission-controller(core) --> @metamask/approval-controller(core) --> @metamask/base-controller(core)
| |-> @metamask/base-controller(core)
| |-> @metamask/controller-utils(core)
|-> @metamask/snaps-ui(snaps)

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions