Skip to content

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

@legobeat

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