core icon indicating copy to clipboard operation
core copied to clipboard

feat: remove global network from signature controller

Open matthewwalsh0 opened this issue 1 year ago • 6 comments

Explanation

Remove all global network usage from the signature controller to support multi-chain in the clients.

Specifically:

  • Remove getCurrentChainId constructor callback from SignatureController.
  • Determine chainId using networkClientId from request argument and NetworkController messenger action.
  • Persist chainId and networkClientId in state.

References

Fixes #3498

Changelog

@metamask/signature-controller

  • ADDED: Add chainId and networkClientId to SignatureRequest and LegacyMessage types.
  • CHANGED: Throw if no networkClientId provided or if chainId cannot be determined.
  • REMOVED: Remove getCurrentChainId callback from constructor options.

Checklist

  • [x] I've updated the test suite for new or updated code as appropriate
  • [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • [x] I've highlighted breaking changes using the "BREAKING" category above as appropriate
  • [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

matthewwalsh0 avatar Oct 15 '24 20:10 matthewwalsh0

@metamaskbot publish-preview

matthewwalsh0 avatar Oct 15 '24 20:10 matthewwalsh0

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "18.2.2-preview-2c5a4f93",
  "@metamask-previews/address-book-controller": "6.0.1-preview-2c5a4f93",
  "@metamask-previews/announcement-controller": "7.0.1-preview-2c5a4f93",
  "@metamask-previews/approval-controller": "7.1.0-preview-2c5a4f93",
  "@metamask-previews/assets-controllers": "38.3.0-preview-2c5a4f93",
  "@metamask-previews/base-controller": "7.0.1-preview-2c5a4f93",
  "@metamask-previews/build-utils": "3.0.1-preview-2c5a4f93",
  "@metamask-previews/chain-controller": "0.1.3-preview-2c5a4f93",
  "@metamask-previews/composable-controller": "9.0.1-preview-2c5a4f93",
  "@metamask-previews/controller-utils": "11.3.0-preview-2c5a4f93",
  "@metamask-previews/ens-controller": "14.0.1-preview-2c5a4f93",
  "@metamask-previews/eth-json-rpc-provider": "4.1.4-preview-2c5a4f93",
  "@metamask-previews/gas-fee-controller": "20.0.1-preview-2c5a4f93",
  "@metamask-previews/json-rpc-engine": "9.0.3-preview-2c5a4f93",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.3-preview-2c5a4f93",
  "@metamask-previews/keyring-controller": "17.2.2-preview-2c5a4f93",
  "@metamask-previews/logging-controller": "6.0.1-preview-2c5a4f93",
  "@metamask-previews/message-manager": "10.1.1-preview-2c5a4f93",
  "@metamask-previews/name-controller": "8.0.1-preview-2c5a4f93",
  "@metamask-previews/network-controller": "21.0.1-preview-2c5a4f93",
  "@metamask-previews/notification-controller": "7.0.0-preview-2c5a4f93",
  "@metamask-previews/notification-services-controller": "0.9.0-preview-2c5a4f93",
  "@metamask-previews/permission-controller": "11.0.2-preview-2c5a4f93",
  "@metamask-previews/permission-log-controller": "3.0.1-preview-2c5a4f93",
  "@metamask-previews/phishing-controller": "12.0.3-preview-2c5a4f93",
  "@metamask-previews/polling-controller": "10.0.1-preview-2c5a4f93",
  "@metamask-previews/preferences-controller": "13.0.3-preview-2c5a4f93",
  "@metamask-previews/profile-sync-controller": "0.9.7-preview-2c5a4f93",
  "@metamask-previews/queued-request-controller": "5.1.0-preview-2c5a4f93",
  "@metamask-previews/rate-limit-controller": "6.0.1-preview-2c5a4f93",
  "@metamask-previews/selected-network-controller": "18.0.1-preview-2c5a4f93",
  "@metamask-previews/signature-controller": "19.1.0-preview-2c5a4f93",
  "@metamask-previews/transaction-controller": "37.2.0-preview-2c5a4f93",
  "@metamask-previews/user-operation-controller": "15.0.1-preview-2c5a4f93"
}

github-actions[bot] avatar Oct 15 '24 20:10 github-actions[bot]

@metamaskbot publish-preview

matthewwalsh0 avatar Oct 23 '24 09:10 matthewwalsh0

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "18.2.2-preview-1800a170",
  "@metamask-previews/address-book-controller": "6.0.1-preview-1800a170",
  "@metamask-previews/announcement-controller": "7.0.1-preview-1800a170",
  "@metamask-previews/approval-controller": "7.1.0-preview-1800a170",
  "@metamask-previews/assets-controllers": "39.0.0-preview-1800a170",
  "@metamask-previews/base-controller": "7.0.1-preview-1800a170",
  "@metamask-previews/build-utils": "3.0.1-preview-1800a170",
  "@metamask-previews/chain-controller": "0.1.3-preview-1800a170",
  "@metamask-previews/composable-controller": "9.0.1-preview-1800a170",
  "@metamask-previews/controller-utils": "11.3.0-preview-1800a170",
  "@metamask-previews/ens-controller": "14.0.1-preview-1800a170",
  "@metamask-previews/eth-json-rpc-provider": "4.1.5-preview-1800a170",
  "@metamask-previews/gas-fee-controller": "21.0.0-preview-1800a170",
  "@metamask-previews/json-rpc-engine": "10.0.0-preview-1800a170",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.4-preview-1800a170",
  "@metamask-previews/keyring-controller": "17.3.0-preview-1800a170",
  "@metamask-previews/logging-controller": "6.0.1-preview-1800a170",
  "@metamask-previews/message-manager": "11.0.0-preview-1800a170",
  "@metamask-previews/multichain": "0.0.0-preview-1800a170",
  "@metamask-previews/name-controller": "8.0.1-preview-1800a170",
  "@metamask-previews/network-controller": "21.1.0-preview-1800a170",
  "@metamask-previews/notification-controller": "7.0.0-preview-1800a170",
  "@metamask-previews/notification-services-controller": "0.11.0-preview-1800a170",
  "@metamask-previews/permission-controller": "11.0.2-preview-1800a170",
  "@metamask-previews/permission-log-controller": "3.0.1-preview-1800a170",
  "@metamask-previews/phishing-controller": "12.0.3-preview-1800a170",
  "@metamask-previews/polling-controller": "11.0.0-preview-1800a170",
  "@metamask-previews/preferences-controller": "13.1.0-preview-1800a170",
  "@metamask-previews/profile-sync-controller": "0.9.7-preview-1800a170",
  "@metamask-previews/queued-request-controller": "5.1.0-preview-1800a170",
  "@metamask-previews/rate-limit-controller": "6.0.1-preview-1800a170",
  "@metamask-previews/selected-network-controller": "18.0.2-preview-1800a170",
  "@metamask-previews/signature-controller": "20.1.0-preview-1800a170",
  "@metamask-previews/transaction-controller": "37.3.0-preview-1800a170",
  "@metamask-previews/user-operation-controller": "16.0.0-preview-1800a170"
}

github-actions[bot] avatar Oct 23 '24 09:10 github-actions[bot]

@metamaskbot publish-preview

matthewwalsh0 avatar Oct 24 '24 06:10 matthewwalsh0

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "18.2.2-preview-c77aebdb",
  "@metamask-previews/address-book-controller": "6.0.1-preview-c77aebdb",
  "@metamask-previews/announcement-controller": "7.0.1-preview-c77aebdb",
  "@metamask-previews/approval-controller": "7.1.0-preview-c77aebdb",
  "@metamask-previews/assets-controllers": "39.0.0-preview-c77aebdb",
  "@metamask-previews/base-controller": "7.0.1-preview-c77aebdb",
  "@metamask-previews/build-utils": "3.0.1-preview-c77aebdb",
  "@metamask-previews/chain-controller": "0.1.3-preview-c77aebdb",
  "@metamask-previews/composable-controller": "9.0.1-preview-c77aebdb",
  "@metamask-previews/controller-utils": "11.3.0-preview-c77aebdb",
  "@metamask-previews/ens-controller": "14.0.1-preview-c77aebdb",
  "@metamask-previews/eth-json-rpc-provider": "4.1.5-preview-c77aebdb",
  "@metamask-previews/gas-fee-controller": "21.0.0-preview-c77aebdb",
  "@metamask-previews/json-rpc-engine": "10.0.0-preview-c77aebdb",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.4-preview-c77aebdb",
  "@metamask-previews/keyring-controller": "17.3.0-preview-c77aebdb",
  "@metamask-previews/logging-controller": "6.0.1-preview-c77aebdb",
  "@metamask-previews/message-manager": "11.0.0-preview-c77aebdb",
  "@metamask-previews/multichain": "0.0.0-preview-c77aebdb",
  "@metamask-previews/name-controller": "8.0.1-preview-c77aebdb",
  "@metamask-previews/network-controller": "21.1.0-preview-c77aebdb",
  "@metamask-previews/notification-controller": "7.0.0-preview-c77aebdb",
  "@metamask-previews/notification-services-controller": "0.11.0-preview-c77aebdb",
  "@metamask-previews/permission-controller": "11.0.2-preview-c77aebdb",
  "@metamask-previews/permission-log-controller": "3.0.1-preview-c77aebdb",
  "@metamask-previews/phishing-controller": "12.0.3-preview-c77aebdb",
  "@metamask-previews/polling-controller": "11.0.0-preview-c77aebdb",
  "@metamask-previews/preferences-controller": "13.1.0-preview-c77aebdb",
  "@metamask-previews/profile-sync-controller": "0.9.7-preview-c77aebdb",
  "@metamask-previews/queued-request-controller": "5.1.0-preview-c77aebdb",
  "@metamask-previews/rate-limit-controller": "6.0.1-preview-c77aebdb",
  "@metamask-previews/selected-network-controller": "18.0.2-preview-c77aebdb",
  "@metamask-previews/signature-controller": "20.1.0-preview-c77aebdb",
  "@metamask-previews/transaction-controller": "37.3.0-preview-c77aebdb",
  "@metamask-previews/user-operation-controller": "16.0.0-preview-c77aebdb"
}

github-actions[bot] avatar Oct 24 '24 06:10 github-actions[bot]