Skip to content

Commit

Permalink
chore: Update accounts packages (#12555)
Browse files Browse the repository at this point in the history
## **Description**
All accounts-related packages have been moved to our new
[monorepo](https://github.com/MetaMask/accounts).

A new patch version has been released for each of them. Those new
versions have been used and released in all core controllers:
MetaMask/core#4734

This repository contains the following packages
[1](https://github.com/MetaMask/accounts#user-content-fn-fn1-2bb23fc02fdc197b87e0d6543909d37e):

-
[@metamask/eth-hd-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-hd):
✅ we are already using the latest version 9.0.0
-
[@metamask/eth-ledger-bridge-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-ledger-bridge):
We are using [version
6.0.0](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-ledger-bridge/CHANGELOG.md#600)
which is already pointing to the mono repo.
-
[@metamask/eth-simple-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-simple):
✅ Not used on mobile.

[@metamask/eth-snap-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap):
⚠️ Needs updating. Changes described below.
-
[@metamask/eth-trezor-keyring](https://github.com/MetaMask/accounts/blob/main/packages/keyring-eth-trezor):
✅ Not used on mobile.

[@metamask/keyring-api](https://github.com/MetaMask/accounts/blob/main/packages/keyring-api):
⚠️ Needs updating. Changes described below.

### Summary of the updates 
#### @metamask/accounts-controller 19.0.0 -> 20.0.1
- Breaking Changes:
    - Changed
- BREAKING: Bump peer dependency @metamask/keyring-controller from
^18.0.0 to ^19.0.0 (MetaMask/core#4956).
- BREAKING: Bump @metamask/keyring-api from ^8.1.3 to ^10.1.0
(MetaMask/core#4948)
- If you are depending on @metamask/providers directly, you will need to
upgrade to 18.1.0.
-
[changelog](https://github.com/MetaMask/core/blob/main/packages/accounts-controller/CHANGELOG.md#2001)

#### @metamask/keyring-controller 18.0.0 -> 19.0.1
Updated to support the latest version of the accounts controller.
- Breaking changes:
- BREAKING: Bump @metamask/keyring-api from ^8.1.3 to ^10.1.0
(MetaMask/core#4948)
If you are depending on @metamask/providers directly, you will need to
upgrade to 18.1.0.

#### @metamask/providers 16.1.0-> 18.1.0
This was changed largely to support the newest version of the accounts
controller and keyring controller.
- Breaking Changes:
    - Fixed
- BREAKING: Change webextension-polyfill from dependency to
peerDependency (MetaMask/providers#319)
- Users are now expected to have the polyfill in their environment
- BREAKING: Bump @metamask/json-rpc-engine from ^9.0.1 to ^10.0.0
(MetaMask/providers#378)
- BREAKING: Bump @metamask/rpc-errors from ^6.4.0 to ^7.0.0
(MetaMask/providers#373)
-
[Changelog](https://github.com/MetaMask/providers/blob/main/CHANGELOG.md#1810)

#### @metamask/keyring-api 8.1.0 -> 10.1.0
[Version
8.1.1](https://github.com/MetaMask/accounts/blob/main/packages/keyring-api/CHANGELOG.md#811)
onward is using the new mono repo. I updated to version 10.1.0 to
support the breaking changes in the accounts controller bump from
v19.0.0 to v20.0.1
- Breaking Changes:
- BREAKING: Rename btc_sendmany method to sendBitcoin
(MetaMask/accounts#73)
- BREAKING: Bump peer dependency @metamask/providers from ^17.2.0 to
^18.1.0 (MetaMask/accounts#76)

#### @metamask/eth-snap-keyring 4.3.3 -> 5.0.1
- [Version
4.3.4](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap-bridge/CHANGELOG.md#434)
an onward is using the new accounts mono repo.
- Breaking Changes:
- BREAKING: Bump @metamask/eth-sig-util dependency from ^7.0.3 to ^8.0.0
(MetaMask/accounts#79)
signTypedData no longer support number for addresses, see
[here](https://github.com/MetaMask/eth-sig-util/blob/main/CHANGELOG.md#800).
-
[changelog](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap-bridge/CHANGELOG.md#440)

#### @metamask/eth-sig-util 7.0.2 -> 8.0.0
Updated to support version 5 of the eth-snap-keyring. These breaking
changes do not effect the application.
- Breaking changes:
- BREAKING: Values of type number are not accepted as address parameter
anymore. Valid values are string and Uint8Array.
(MetaMask/eth-sig-util#391)
BREAKING: Drop support for Node.js versions 16, 21.
(MetaMask/eth-sig-util#390)

#### Added webextension-polyfill

[webextension-polyfill](https://github.com/mozilla/webextension-polyfill)
is required as a peer dependancy in newest updated of the
`@metamask/providers` package. The changelog states that `"Users are now
expected to have the polyfill in their environment"`. [Extension is
using version
0.8.0](https://github.com/MetaMask/metamask-extension/blob/95301f48f819080a7c5124601815cbee7dfdddce/package.json#L677)
of this package.

## **Related issues**

Fixes: MetaMask/accounts-planning#614

Related issues
Related to:

MetaMask/accounts#39
MetaMask/accounts#50
MetaMask/accounts#54
MetaMask/core#4713
MetaMask/core#4734

## **Manual testing steps**

1. Importing an account should work as expected
2. Snap accounts should work as expected
3. Hardware wallets should work as expected

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

Importing an account ✅ :


https://github.com/user-attachments/assets/77625167-8b05-4cd8-89fe-6903b8f414a1

Snap accounts ✅ :


https://github.com/user-attachments/assets/4ae1d7f7-f91a-4294-b0e6-6efeac3cea8a

Importing private key ✅ :


https://github.com/user-attachments/assets/891ba01e-b516-47f9-9fb7-e07d0e31ee24




## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
  • Loading branch information
owencraston authored Dec 5, 2024
1 parent d1b476c commit 011560f
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 37 deletions.
2 changes: 1 addition & 1 deletion app/core/Multichain/test/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ const mockBTCAccount: InternalAccount = {
},
},
options: {},
methods: [BtcMethod.SendMany],
methods: [BtcMethod.SendBitcoin],
type: BtcAccountType.P2wpkh,
};

Expand Down
13 changes: 7 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@
"@keystonehq/metamask-airgapped-keyring": "^0.13.1",
"@keystonehq/ur-decoder": "^0.12.2",
"@ledgerhq/react-native-hw-transport-ble": "^6.33.2",
"@metamask/accounts-controller": "^19.0.0",
"@metamask/accounts-controller": "^20.0.1",
"@metamask/address-book-controller": "^6.0.1",
"@metamask/approval-controller": "^7.1.0",
"@metamask/assets-controllers": "^44.1.0",
Expand All @@ -156,17 +156,17 @@
"@metamask/eth-json-rpc-middleware": "^11.0.2",
"@metamask/eth-ledger-bridge-keyring": "^6.0.0",
"@metamask/eth-query": "^4.0.0",
"@metamask/eth-sig-util": "^7.0.2",
"@metamask/eth-snap-keyring": "^4.3.3",
"@metamask/eth-sig-util": "^8.0.0",
"@metamask/eth-snap-keyring": "^5.0.1",
"@metamask/etherscan-link": "^2.0.0",
"@metamask/ethjs-contract": "^0.4.1",
"@metamask/ethjs-query": "^0.7.1",
"@metamask/ethjs-unit": "^0.3.0",
"@metamask/gas-fee-controller": "^21.0.0",
"@metamask/json-rpc-middleware-stream": "^8.0.2",
"@metamask/key-tree": "^9.0.0",
"@metamask/keyring-api": "^8.1.0",
"@metamask/keyring-controller": "^18.0.0",
"@metamask/keyring-api": "^10.1.0",
"@metamask/keyring-controller": "^19.0.1",
"@metamask/logging-controller": "^6.0.1",
"@metamask/message-signing-snap": "^0.3.3",
"@metamask/network-controller": "^21.0.0",
Expand Down Expand Up @@ -378,7 +378,7 @@
"@metamask/eslint-plugin-design-tokens": "^1.0.0",
"@metamask/mobile-provider": "^3.0.0",
"@metamask/object-multiplex": "^1.1.0",
"@metamask/providers": "^16.1.0",
"@metamask/providers": "^18.1.0",
"@metamask/test-dapp": "^8.9.0",
"@octokit/rest": "^21.0.0",
"@open-rpc/mock-server": "^1.7.5",
Expand Down Expand Up @@ -492,6 +492,7 @@
"simple-git": "^3.25.0",
"typescript": "~5.4.5",
"wdio-cucumberjs-json-reporter": "^4.4.3",
"webextension-polyfill": "^0.12.0",
"webpack": "^5.88.2",
"webpack-cli": "^5.1.4",
"xhr2": "^0.2.1",
Expand Down
97 changes: 67 additions & 30 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4080,17 +4080,17 @@
"@metamask/superstruct" "^3.1.0"
"@metamask/utils" "^9.0.0"

"@metamask/accounts-controller@^19.0.0":
version "19.0.0"
resolved "https://registry.yarnpkg.com/@metamask/accounts-controller/-/accounts-controller-19.0.0.tgz#33c01259c6a8009b8286f21ff92b49c041fb8f78"
integrity sha512-gAgrbW1OauEZw/aCX2W5lYjaoUP55/V/oNBYQC51WJr/J9ehpqxCmquJM3HgBvmVZfMp8koLNzKFwKm0E/jzlg==
"@metamask/accounts-controller@^20.0.1":
version "20.0.1"
resolved "https://registry.yarnpkg.com/@metamask/accounts-controller/-/accounts-controller-20.0.1.tgz#6f3dc905418ad75e44fce830b0363a585cce2ea8"
integrity sha512-zjAzkA3Okxy9aptBAHtFKCaTq5VNE8EHV48ETzxl8Jhdl8wpaTGWcacbqdkmOooC1lPLe2oXGglHSdBP73JDMQ==
dependencies:
"@ethereumjs/util" "^8.1.0"
"@metamask/base-controller" "^7.0.2"
"@metamask/eth-snap-keyring" "^4.3.6"
"@metamask/keyring-api" "^8.1.3"
"@metamask/snaps-sdk" "^6.5.0"
"@metamask/snaps-utils" "^8.1.1"
"@metamask/eth-snap-keyring" "^5.0.1"
"@metamask/keyring-api" "^10.1.0"
"@metamask/snaps-sdk" "^6.7.0"
"@metamask/snaps-utils" "^8.3.0"
"@metamask/utils" "^10.0.0"
deepmerge "^4.2.2"
ethereum-cryptography "^2.1.2"
Expand Down Expand Up @@ -4202,10 +4202,10 @@
resolved "https://registry.yarnpkg.com/@metamask/contract-metadata/-/contract-metadata-2.5.0.tgz#33921fa9c15eb1863f55dcd5f75467ae15614ebb"
integrity sha512-+j7jEcp0P1OUMEpa/OIwfJs/ahBC/akwgWxaRTSWX2SWABvlUKBVRMtslfL94Qj2wN2xw8xjaUy5nSHqrznqDA==

"@metamask/controller-utils@^11.0.0", "@metamask/controller-utils@^11.3.0", "@metamask/controller-utils@^11.4.1", "@metamask/controller-utils@^11.4.2", "@metamask/controller-utils@^11.4.3":
version "11.4.3"
resolved "https://registry.yarnpkg.com/@metamask/controller-utils/-/controller-utils-11.4.3.tgz#5763f0bbee2f3770c1ba42dd4869786afef849bd"
integrity sha512-shrVCHFwIbt8qVcKbxe/mp5tOxjz6905/7ZIAnwUJKHYv7iEqfjyO1ibPoOknrZCF2vbXtP21b435g3v9DBNTQ==
"@metamask/controller-utils@^11.0.0", "@metamask/controller-utils@^11.3.0", "@metamask/controller-utils@^11.4.1", "@metamask/controller-utils@^11.4.2", "@metamask/controller-utils@^11.4.3", "@metamask/controller-utils@^11.4.4":
version "11.4.4"
resolved "https://registry.yarnpkg.com/@metamask/controller-utils/-/controller-utils-11.4.4.tgz#6e43e4cf53d34dad225bab8aaf4e7efcb1fe7623"
integrity sha512-0/gKC6jxlj8KRzi0RjGDQnml6l4b46Da/AIqnGJMOC59zl4qD5UN1GM+mq7L5duw/m8sSHa7VbL1hL0l7Cw1pg==
dependencies:
"@ethereumjs/util" "^8.1.0"
"@metamask/eth-query" "^4.0.0"
Expand Down Expand Up @@ -4373,7 +4373,7 @@
tweetnacl "^1.0.3"
tweetnacl-util "^0.15.1"

"@metamask/eth-sig-util@^7.0.2", "@metamask/eth-sig-util@^7.0.3":
"@metamask/eth-sig-util@^7.0.3":
version "7.0.3"
resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-7.0.3.tgz#be9e444fe0b8474c04e2ff42fd983173767f6ac0"
integrity sha512-PAtGnOkYvh90k2lEZldq/FK7GTLF6WxE+2bV85PoA3pqlJnmJCAY62tuvxHSwnVngSKlc4mcNvjnUg2eYO6JGg==
Expand Down Expand Up @@ -4408,13 +4408,13 @@
ethereum-cryptography "^2.1.2"
randombytes "^2.1.0"

"@metamask/eth-snap-keyring@^4.3.3", "@metamask/eth-snap-keyring@^4.3.6":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@metamask/eth-snap-keyring/-/eth-snap-keyring-4.4.0.tgz#118f292523bc7717b2782776b6728bcd2b862730"
integrity sha512-N9+RMYrzwBvQER5aGc6kDjUNJi2m2A5LNUNC51v9oSvpQ2igooHQa+SHAdTpuh/OZ/oL3gvQ5dqz3ugS50kXmQ==
"@metamask/eth-snap-keyring@^5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@metamask/eth-snap-keyring/-/eth-snap-keyring-5.0.1.tgz#aa16a5d623a4c68b44afaa9cd47f45a409f922d1"
integrity sha512-XP/gmuLyI8jYItpFiqQUGB5/d+Qft6dCqs9vCcbMzTEvyatJtP0bkk2ZWmpfnrVGQIlepY/nhOD25NDE7mgwEg==
dependencies:
"@ethereumjs/tx" "^4.2.0"
"@metamask/eth-sig-util" "^7.0.3"
"@metamask/eth-sig-util" "^8.0.0"
"@metamask/snaps-controllers" "^9.10.0"
"@metamask/snaps-sdk" "^6.7.0"
"@metamask/snaps-utils" "^8.3.0"
Expand Down Expand Up @@ -4582,7 +4582,20 @@
"@noble/hashes" "^1.3.2"
"@scure/base" "^1.0.0"

"@metamask/keyring-api@^8.1.0", "@metamask/keyring-api@^8.1.3":
"@metamask/keyring-api@^10.1.0":
version "10.1.0"
resolved "https://registry.yarnpkg.com/@metamask/keyring-api/-/keyring-api-10.1.0.tgz#22bb96886b9dbf9a6d6f48e5975cb16499209959"
integrity sha512-T1/4oQKJ4+V8gsXusVF515B+kpHSMiSbCpxZunJDjvnXEheT2NjbdvjtoIK5AT+Fe6JBWDzeZGpt6gv2vHX2SA==
dependencies:
"@metamask/snaps-sdk" "^6.7.0"
"@metamask/superstruct" "^3.1.0"
"@metamask/utils" "^9.2.1"
"@types/uuid" "^9.0.8"
bech32 "^2.0.0"
uuid "^9.0.1"
webextension-polyfill "^0.12.0"

"@metamask/keyring-api@^8.1.3":
version "8.1.3"
resolved "https://registry.yarnpkg.com/@metamask/keyring-api/-/keyring-api-8.1.3.tgz#53e6a68236b88592db5bd43cf7e0d7e97dfad818"
integrity sha512-Ztm4G/U5hc+GKS/VOnqLWYVh2O26lFQ03bNpeufrfKq7regydIqYuHFcSowbQyj7xCZqKPsvl9jxhKdYIxvCXQ==
Expand Down Expand Up @@ -4613,6 +4626,25 @@
ethereumjs-wallet "^1.0.1"
immer "^9.0.6"

"@metamask/keyring-controller@^19.0.1":
version "19.0.1"
resolved "https://registry.yarnpkg.com/@metamask/keyring-controller/-/keyring-controller-19.0.1.tgz#6fee40a46a780a720f4c864ea779673569be06a7"
integrity sha512-6dNQBaJanAKEg7V0ksnWyqxHY1r3YCe910OF6DpnN97NZIPx3tba2zy32jbQWGPG6XaybfTG1xdUBtdYdeTpQA==
dependencies:
"@ethereumjs/util" "^8.1.0"
"@keystonehq/metamask-airgapped-keyring" "^0.14.1"
"@metamask/base-controller" "^7.0.2"
"@metamask/browser-passworder" "^4.3.0"
"@metamask/eth-hd-keyring" "^7.0.4"
"@metamask/eth-sig-util" "^8.0.0"
"@metamask/eth-simple-keyring" "^6.0.5"
"@metamask/keyring-api" "^10.1.0"
"@metamask/message-manager" "^11.0.2"
"@metamask/utils" "^10.0.0"
async-mutex "^0.5.0"
ethereumjs-wallet "^1.0.1"
immer "^9.0.6"

"@metamask/logging-controller@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/@metamask/logging-controller/-/logging-controller-6.0.1.tgz#cfe858e91ba6fa490ebcf4e50bebd5f6dee0417e"
Expand All @@ -4622,13 +4654,13 @@
"@metamask/controller-utils" "^11.3.0"
uuid "^8.3.2"

"@metamask/message-manager@^11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@metamask/message-manager/-/message-manager-11.0.1.tgz#7ffa6ea5a0daebb0ccb78dbd75774bf3aa0b9d69"
integrity sha512-dPkx6v14MyBPqdnKSlBPR97/BCx8KLuGudK9u0U3CmqI5dpO3mXvwXNspu5lnBrnjAoYqQVb+/e4vqkOx4/DlQ==
"@metamask/message-manager@^11.0.1", "@metamask/message-manager@^11.0.2":
version "11.0.2"
resolved "https://registry.yarnpkg.com/@metamask/message-manager/-/message-manager-11.0.2.tgz#805ac8d2184c56d973a787bdc7c9571024348ce6"
integrity sha512-j8DgWn7ACfwZtLFqeAYx4U/TquBEtcPYa81LjhoZYK39W/MQVr4ZKAmGEKxKRruMLz50GX7ciOEZU9SBtPBAog==
dependencies:
"@metamask/base-controller" "^7.0.2"
"@metamask/controller-utils" "^11.4.2"
"@metamask/controller-utils" "^11.4.4"
"@metamask/eth-sig-util" "^8.0.0"
"@metamask/utils" "^10.0.0"
"@types/uuid" "^8.3.0"
Expand Down Expand Up @@ -4867,7 +4899,7 @@
loglevel "^1.8.1"
siwe "^2.3.2"

"@metamask/providers@^16.0.0", "@metamask/providers@^16.1.0":
"@metamask/providers@^16.0.0":
version "16.1.0"
resolved "https://registry.yarnpkg.com/@metamask/providers/-/providers-16.1.0.tgz#7da593d17c541580fa3beab8d9d8a9b9ce19ea07"
integrity sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==
Expand All @@ -4885,10 +4917,10 @@
readable-stream "^3.6.2"
webextension-polyfill "^0.10.0"

"@metamask/providers@^18.1.1":
version "18.1.1"
resolved "https://registry.yarnpkg.com/@metamask/providers/-/providers-18.1.1.tgz#f43aa71d9d936f31fc1dc3b343b0d24867129678"
integrity sha512-q2i4hsE87LhoTe62Zz81roFgelcr+SpHJwqDzEf/xFdObGUYcZ/HS6PG/lNywohMflaIM1DQ5GCW7V6JlZoEqw==
"@metamask/providers@^18.1.0", "@metamask/providers@^18.1.1":
version "18.2.0"
resolved "https://registry.yarnpkg.com/@metamask/providers/-/providers-18.2.0.tgz#557ca488a58966e288e50d629f104b061f8a76d2"
integrity sha512-GYgweLy6N1/aNNAg4CLhtfu9XwNNG+MZNlPCAl6Ai92+GKCUFRp8RTTBN81EzTLJvJu7NKIrw99AApJACJ8KRA==
dependencies:
"@metamask/json-rpc-engine" "^10.0.1"
"@metamask/json-rpc-middleware-stream" "^8.0.5"
Expand Down Expand Up @@ -27635,7 +27667,12 @@ webdriverio@~7.16.13:
serialize-error "^8.0.0"
webdriver "7.16.16"

"webextension-polyfill@>=0.10.0 <1.0", webextension-polyfill@^0.10.0:
"webextension-polyfill@>=0.10.0 <1.0", webextension-polyfill@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.12.0.tgz#f62c57d2cd42524e9fbdcee494c034cae34a3d69"
integrity sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==

webextension-polyfill@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz#ccb28101c910ba8cf955f7e6a263e662d744dbb8"
integrity sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==
Expand Down

0 comments on commit 011560f

Please sign in to comment.