From 47935e0dae142ce831661ef2812185cf0c43a859 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:42:02 +1300 Subject: [PATCH 01/14] Add signEIP7702Authorization to KeyringController and corresponding tests --- package.json | 2 +- packages/accounts-controller/package.json | 2 +- packages/approval-controller/package.json | 2 +- packages/assets-controllers/package.json | 2 +- packages/base-controller/package.json | 2 +- packages/build-utils/package.json | 2 +- packages/controller-utils/package.json | 2 +- packages/ens-controller/package.json | 2 +- packages/eth-json-rpc-provider/package.json | 2 +- packages/gas-fee-controller/package.json | 2 +- .../json-rpc-middleware-stream/package.json | 2 +- packages/keyring-controller/package.json | 8 +- .../src/KeyringController.test.ts | 72 ++- .../src/KeyringController.ts | 54 +++ packages/keyring-controller/src/constants.ts | 1 + packages/message-manager/package.json | 4 +- packages/message-manager/src/types.ts | 6 + .../package.json | 2 +- packages/multichain/package.json | 2 +- packages/name-controller/package.json | 2 +- packages/network-controller/package.json | 2 +- .../package.json | 2 +- packages/permission-controller/package.json | 2 +- packages/polling-controller/package.json | 2 +- .../package.json | 2 +- packages/signature-controller/package.json | 2 +- packages/transaction-controller/package.json | 2 +- .../user-operation-controller/package.json | 2 +- yarn.lock | 447 ++++++++++++++++-- 29 files changed, 555 insertions(+), 81 deletions(-) diff --git a/package.json b/package.json index 48ebc122150..2bf68145c69 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@metamask/eth-block-tracker": "^11.0.3", "@metamask/eth-json-rpc-provider": "^4.1.8", "@metamask/json-rpc-engine": "^10.0.3", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@ts-bridge/cli": "^0.6.1", "@types/jest": "^27.4.1", "@types/lodash": "^4.14.191", diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 4cd97c0c651..bdad86385c4 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -54,7 +54,7 @@ "@metamask/keyring-internal-api": "^4.0.1", "@metamask/snaps-sdk": "^6.17.1", "@metamask/snaps-utils": "^8.10.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "deepmerge": "^4.2.2", "ethereum-cryptography": "^2.1.2", "immer": "^9.0.6", diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index d308df8ba67..a69ef76fb69 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/rpc-errors": "^7.0.2", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "nanoid": "^3.3.8" }, "devDependencies": { diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 594cbdd7354..1cd8d85c1de 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -63,7 +63,7 @@ "@metamask/polling-controller": "^12.0.3", "@metamask/rpc-errors": "^7.0.2", "@metamask/snaps-utils": "^8.10.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@types/bn.js": "^5.1.5", "@types/uuid": "^8.3.0", "async-mutex": "^0.5.0", diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index f3eb0e90e38..86f5b5a6d5c 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -46,7 +46,7 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "immer": "^9.0.6" }, "devDependencies": { diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index d7868a3daa4..c17163a48a7 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -47,7 +47,7 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@types/eslint": "^8.44.7" }, "devDependencies": { diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index f40c65dd1b5..ef290dee757 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -50,7 +50,7 @@ "@ethereumjs/util": "^8.1.0", "@metamask/eth-query": "^4.0.0", "@metamask/ethjs-unit": "^0.3.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@spruceid/siwe-parser": "2.1.0", "@types/bn.js": "^5.1.5", "bignumber.js": "^9.1.2", diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index 0d73de03b5b..93756a0270e 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -50,7 +50,7 @@ "@ethersproject/providers": "^5.7.0", "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "punycode": "^2.1.1" }, "devDependencies": { diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index a0849f70806..48402ea0ead 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -55,7 +55,7 @@ "@metamask/json-rpc-engine": "^10.0.3", "@metamask/rpc-errors": "^7.0.2", "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index af6f8a76847..eece3a0873c 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -52,7 +52,7 @@ "@metamask/eth-query": "^4.0.0", "@metamask/ethjs-unit": "^0.3.0", "@metamask/polling-controller": "^12.0.3", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@types/bn.js": "^5.1.5", "@types/uuid": "^8.3.0", "bn.js": "^5.2.1", diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index 67caa8ec429..09dbb570a55 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/json-rpc-engine": "^10.0.3", "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "readable-stream": "^3.6.2" }, "devDependencies": { diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index a40aa895ca3..787f0481a58 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -51,13 +51,13 @@ "@keystonehq/metamask-airgapped-keyring": "^0.14.1", "@metamask/base-controller": "^8.0.0", "@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/eth-hd-keyring": "^10.0.0", + "@metamask/eth-sig-util": "^8.2.0", + "@metamask/eth-simple-keyring": "^8.1.0", "@metamask/keyring-api": "^17.0.0", "@metamask/keyring-internal-api": "^4.0.1", "@metamask/message-manager": "^12.0.1", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "async-mutex": "^0.5.0", "ethereumjs-wallet": "^1.0.1", "immer": "^9.0.6" diff --git a/packages/keyring-controller/src/KeyringController.test.ts b/packages/keyring-controller/src/KeyringController.test.ts index b9fab0c14a0..a93673f4bec 100644 --- a/packages/keyring-controller/src/KeyringController.test.ts +++ b/packages/keyring-controller/src/KeyringController.test.ts @@ -10,8 +10,9 @@ import { recoverTypedSignature, SignTypedDataVersion, encrypt, + recoverEIP7702Authorization, } from '@metamask/eth-sig-util'; -import SimpleKeyring from '@metamask/eth-simple-keyring/dist/simple-keyring'; +import SimpleKeyring from '@metamask/eth-simple-keyring'; import type { EthKeyring } from '@metamask/keyring-internal-api'; import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english'; import type { KeyringClass } from '@metamask/utils'; @@ -104,7 +105,6 @@ describe('KeyringController', () => { it('allows overwriting the built-in Simple keyring builder', async () => { const mockSimpleKeyringBuilder = - // @ts-expect-error The simple keyring doesn't yet conform to the KeyringClass type buildKeyringBuilderWithSpy(SimpleKeyring); await withController( { keyringBuilders: [mockSimpleKeyringBuilder] }, @@ -1561,6 +1561,74 @@ describe('KeyringController', () => { }); }); + describe('signEip7702Authorization', () => { + const from = '0x5AC6D462f054690a373FABF8CC28e161003aEB19'; + stubKeyringClassWithAccount(MockKeyring, from); + const chainId = 1; + const contractAddress = '0x6B175474E89094C44Da98b954EedeAC495271d0F'; + const nonce = 1; + + describe('when the keyring for the given address supports signEip7702Authorization', () => { + it('should sign EIP-7702 authorization message', async () => { + await withController(async ({ controller, initialState }) => { + const account = initialState.keyrings[0].accounts[0]; + const signature = await controller.signEip7702Authorization({ + from: account, + chainId, + contractAddress, + nonce, + }); + + const recovered = recoverEIP7702Authorization({ + authorization: [chainId, contractAddress, nonce], + signature, + }); + + expect(recovered).toBe(account); + }); + }); + + it('should not sign EIP-7702 authorization message if from account is not passed', async () => { + await withController(async ({ controller }) => { + await expect( + controller.signEip7702Authorization({ + chainId, + contractAddress, + nonce, + from: '', + }), + ).rejects.toThrow( + 'KeyringController - No keyring found. Error info: There are keyrings, but none match the address', + ); + }); + }); + }); + + describe('when the keyring for the given address does not support signEip7702Authorization', () => { + it('should throw error', async () => { + stubKeyringClassWithAccount(MockKeyring, from); + + await withController( + { keyringBuilders: [keyringBuilderFactory(MockKeyring)] }, + async ({ controller }) => { + await controller.addNewKeyring(MockKeyring.type); + + await expect( + controller.signEip7702Authorization({ + from, + chainId, + contractAddress, + nonce, + }), + ).rejects.toThrow( + KeyringControllerError.UnsupportedSignEip7702Authorization, + ); + }, + ); + }); + }); + }); + describe('signTypedMessage', () => { describe('when the keyring for the given address supports signTypedMessage', () => { it('should throw when given invalid version', async () => { diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index b04582ee3ca..5da193284f6 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -21,6 +21,7 @@ import type { EthKeyring } from '@metamask/keyring-internal-api'; import type { PersonalMessageParams, TypedMessageParams, + Eip7702AuthorizationMessageParams, } from '@metamask/message-manager'; import type { Eip1024EncryptedData, @@ -116,6 +117,11 @@ export type KeyringControllerSignMessageAction = { handler: KeyringController['signMessage']; }; +export type KeyringControllerSignAuthorizationMessageAction = { + type: `${typeof name}:signEIP7702AuthorizationMessage`; + handler: KeyringController['signEip7702Authorization']; +}; + export type KeyringControllerSignPersonalMessageAction = { type: `${typeof name}:signPersonalMessage`; handler: KeyringController['signPersonalMessage']; @@ -204,6 +210,7 @@ export type KeyringControllerQRKeyringStateChangeEvent = { export type KeyringControllerActions = | KeyringControllerGetStateAction | KeyringControllerSignMessageAction + | KeyringControllerSignAuthorizationMessageAction | KeyringControllerSignPersonalMessageAction | KeyringControllerSignTypedMessageAction | KeyringControllerDecryptMessageAction @@ -1129,6 +1136,48 @@ export class KeyringController extends BaseController< return await keyring.signMessage(address, messageParams.data); } + /** + * Signs EIP-7702 Authorization message by calling down into a specific keyring. + * + * @param messageParams - EIP7702AuthorizationMessageParams object to sign. + * @returns Promise resolving to an EIP-7702 Authorization signature. + * @throws Will throw UnsupportedSignEIP7702Authorization if the keyring does not support signing EIP-7702 Authorization messages. + */ + async signEip7702Authorization( + messageParams: Eip7702AuthorizationMessageParams, + ): Promise { + const from = ethNormalize(messageParams.from) as Hex; + + const keyring = (await this.getKeyringForAccount(from)) as EthKeyring; + + if (!keyring.signEip7702Authorization) { + throw new Error( + KeyringControllerError.UnsupportedSignEip7702Authorization, + ); + } + + const { chainId, nonce } = messageParams; + const contractAddress = ethNormalize(messageParams.contractAddress) as + | Hex + | undefined; + + if (!contractAddress === undefined) { + throw new Error('Contract address must be a 20-byte hex string'); + } + if (typeof chainId !== 'number' || chainId < 0) { + throw new Error('Chain ID must be a non-negative number'); + } + if (typeof nonce !== 'number' || nonce < 0) { + throw new Error('Nonce must be a non-negativenumber'); + } + + return await keyring.signEip7702Authorization(from, [ + chainId, + contractAddress as Hex, + nonce, + ]); + } + /** * Signs personal message by calling down into a specific keyring. * @@ -1736,6 +1785,11 @@ export class KeyringController extends BaseController< this.signMessage.bind(this), ); + this.messagingSystem.registerActionHandler( + `${name}:signEIP7702AuthorizationMessage`, + this.signEip7702Authorization.bind(this), + ); + this.messagingSystem.registerActionHandler( `${name}:signPersonalMessage`, this.signPersonalMessage.bind(this), diff --git a/packages/keyring-controller/src/constants.ts b/packages/keyring-controller/src/constants.ts index 4da2115a417..78199013ecd 100644 --- a/packages/keyring-controller/src/constants.ts +++ b/packages/keyring-controller/src/constants.ts @@ -15,6 +15,7 @@ export enum KeyringControllerError { UnsupportedSignTransaction = 'KeyringController - The keyring for the current address does not support the method signTransaction.', UnsupportedSignMessage = 'KeyringController - The keyring for the current address does not support the method signMessage.', UnsupportedSignPersonalMessage = 'KeyringController - The keyring for the current address does not support the method signPersonalMessage.', + UnsupportedSignEip7702Authorization = 'KeyringController - The keyring for the current address does not support the method signEip7702Authorization.', UnsupportedGetEncryptionPublicKey = 'KeyringController - The keyring for the current address does not support the method getEncryptionPublicKey.', UnsupportedDecryptMessage = 'KeyringController - The keyring for the current address does not support the method decryptMessage.', UnsupportedSignTypedMessage = 'KeyringController - The keyring for the current address does not support the method signTypedMessage.', diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index e3837f8cc50..0f95754d3fc 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -49,8 +49,8 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/eth-sig-util": "^8.0.0", - "@metamask/utils": "^11.1.0", + "@metamask/eth-sig-util": "^8.2.0", + "@metamask/utils": "^11.2.0", "@types/uuid": "^8.3.0", "jsonschema": "^1.4.1", "uuid": "^8.3.2" diff --git a/packages/message-manager/src/types.ts b/packages/message-manager/src/types.ts index b9ee509dc41..caca81bfdfd 100644 --- a/packages/message-manager/src/types.ts +++ b/packages/message-manager/src/types.ts @@ -19,3 +19,9 @@ export type PersonalMessageParams = { export type TypedMessageParams = { data: Record[] | string | SignTypedDataMessageV3V4; } & AbstractMessageParams; + +export type Eip7702AuthorizationMessageParams = { + chainId: number; + contractAddress: string; + nonce: number; +} & AbstractMessageParams; diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index b62ac865df6..50c41742635 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -55,7 +55,7 @@ "@metamask/snaps-controllers": "^9.19.0", "@metamask/snaps-sdk": "^6.17.1", "@metamask/snaps-utils": "^8.10.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@types/uuid": "^8.3.0", "immer": "^9.0.6", "uuid": "^8.3.2" diff --git a/packages/multichain/package.json b/packages/multichain/package.json index 0264cb9ca40..b9e25914119 100644 --- a/packages/multichain/package.json +++ b/packages/multichain/package.json @@ -52,7 +52,7 @@ "@metamask/eth-json-rpc-filters": "^9.0.0", "@metamask/rpc-errors": "^7.0.2", "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@open-rpc/schema-utils-js": "^2.0.5", "jsonschema": "^1.4.1", "lodash": "^4.17.21" diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index 698f6217525..513b5c53190 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -50,7 +50,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "async-mutex": "^0.5.0" }, "devDependencies": { diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 6fd54838ce4..34f2013282f 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -57,7 +57,7 @@ "@metamask/json-rpc-engine": "^10.0.3", "@metamask/rpc-errors": "^7.0.2", "@metamask/swappable-obj-proxy": "^2.3.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "async-mutex": "^0.5.0", "fast-deep-equal": "^3.1.3", "immer": "^9.0.6", diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 1fb0a09080b..bdd0333ae00 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -102,7 +102,7 @@ "@contentful/rich-text-html-renderer": "^16.5.2", "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "bignumber.js": "^9.1.2", "firebase": "^11.2.0", "loglevel": "^1.8.1", diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index f4a09c245f3..4eb69a8c041 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -51,7 +51,7 @@ "@metamask/controller-utils": "^11.5.0", "@metamask/json-rpc-engine": "^10.0.3", "@metamask/rpc-errors": "^7.0.2", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@types/deep-freeze-strict": "^1.1.0", "deep-freeze-strict": "^1.1.1", "immer": "^9.0.6", diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index ebf794c0603..e108d36f94c 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@types/uuid": "^8.3.0", "fast-json-stable-stringify": "^2.1.0", "uuid": "^8.3.2" diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index 795df6d2d40..4f7150435d7 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index e32a9b4c631..f488679581b 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/eth-sig-util": "^8.0.0", + "@metamask/eth-sig-util": "^8.2.0", "@metamask/utils": "^11.1.0", "jsonschema": "^1.4.1", "lodash": "^4.17.21", diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 74b65af67ed..98126317a45 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -59,7 +59,7 @@ "@metamask/metamask-eth-abis": "^3.1.1", "@metamask/nonce-tracker": "^6.0.0", "@metamask/rpc-errors": "^7.0.2", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "async-mutex": "^0.5.0", "bn.js": "^5.2.1", "eth-method-registry": "^4.0.0", diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index a68ef61a585..7c008a8c8a1 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -54,7 +54,7 @@ "@metamask/polling-controller": "^12.0.3", "@metamask/rpc-errors": "^7.0.2", "@metamask/superstruct": "^3.1.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "bn.js": "^5.2.1", "immer": "^9.0.6", "lodash": "^4.17.21", diff --git a/yarn.lock b/yarn.lock index 9ca303c8fa9..55ec42c24fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -193,6 +193,23 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": "npm:^7.24.7" + picocolors: "npm:^1.0.0" + checksum: 10/4812e94885ba7e3213d49583a155fdffb05292330f0a9b2c41b49288da70cf3c746a3fda0bf1074041a6d741c33f8d7be24be5e96f41ef77395eeddc5c9ff624 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.25.2": + version: 7.25.4 + resolution: "@babel/compat-data@npm:7.25.4" + checksum: 10/d37a8936cc355a9ca3050102e03d179bdae26bd2e5c99a977637376c192b23637a039795f153c849437a086727628c9860e2c6af92d7151396e2362c09176337 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.25.9": version: 7.26.3 resolution: "@babel/compat-data@npm:7.26.3" @@ -200,7 +217,30 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.5, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.5, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-module-transforms": "npm:^7.25.2" + "@babel/helpers": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.2" + "@babel/types": "npm:^7.25.2" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10/0d6ec10ff430df66f654c089d6f7ef1d9bed0c318ac257ad5f0dfa0caa45666011828ae75f998bcdb279763e892b091b2925d0bc483299e61649d2c7a2245e33 + languageName: node + linkType: hard + +"@babel/core@npm:^7.11.6": version: 7.26.0 resolution: "@babel/core@npm:7.26.0" dependencies: @@ -223,6 +263,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.4": + version: 7.25.5 + resolution: "@babel/generator@npm:7.25.5" + dependencies: + "@babel/types": "npm:^7.25.4" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10/e6d046afe739cfa706c40c127b7436731acb2a3146d408a7d89dbf16448491b35bc09b7d285cc19c2c1f8980d74b5a99df200d67c859bb5260986614685b0770 + languageName: node + linkType: hard + "@babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.7.2": version: 7.26.3 resolution: "@babel/generator@npm:7.26.3" @@ -245,6 +297,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-compilation-targets@npm:7.25.2" + dependencies: + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-validator-option": "npm:^7.24.8" + browserslist: "npm:^4.23.1" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10/eccb2d75923d2d4d596f9ff64716e8664047c4192f1b44c7d5c07701d4a3498ac2587a72ddae1046e65a501bc630eb7df4557958b08ec2dcf5b4a264a052f111 + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-compilation-targets@npm:7.25.9" @@ -285,6 +350,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10/df8bfb2bb18413aa151ecd63b7d5deb0eec102f924f9de6bc08022ced7ed8ca7fed914562d2f6fa5b59b74a5d6e255dc35612b2bc3b8abf361e13f61b3704770 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" @@ -308,6 +383,20 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-module-transforms@npm:7.25.2" + dependencies: + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-simple-access": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.2" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/a3bcf7815f3e9d8b205e0af4a8d92603d685868e45d119b621357e274996bf916216bb95ab5c6a60fde3775b91941555bf129d608e3d025b04f8aac84589f300 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -357,6 +446,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 10/6d1bf8f27dd725ce02bdc6dffca3c95fb9ab8a06adc2edbd9c1c9d68500274230d1a609025833ed81981eff560045b6b38f7b4c6fb1ab19fc90e5004e3932535 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9" @@ -364,6 +460,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 10/86875063f57361471b531dbc2ea10bbf5406e12b06d249b03827d361db4cad2388c6f00936bcd9dc86479f7e2c69ea21412c2228d4b3672588b754b70a449d4b + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" @@ -378,6 +481,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-validator-option@npm:7.24.8" + checksum: 10/a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helpers@npm:7.25.0" + dependencies: + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10/4fcb8167eba9853e30b8b235b81b923ef7b707396b0e23d7a4fa3e811729506755576cb9ec736e8b92cf19e5a1ec61e83d182904d8e6a0953803c6bebc2e1592 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helpers@npm:7.26.0" @@ -388,6 +508,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.24.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/69b73f38cdd4f881b09b939a711e76646da34f4834f4ce141d7a49a6bb1926eab1c594148970a8aa9360398dff800f63aade4e81fafdd7c8d8a8489ea93bfec1 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3": version: 7.26.3 resolution: "@babel/parser@npm:7.26.3" @@ -399,6 +531,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/parser@npm:7.25.4" + dependencies: + "@babel/types": "npm:^7.25.4" + bin: + parser: ./bin/babel-parser.js + checksum: 10/343b8a76c43549e370fe96f4f6d564382a6cdff60e9c3b8a594c51e4cefd58ec9945e82e8c4dfbf15ac865a04e4b29806531440760748e28568e6aec21bc9cb5 + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -638,6 +781,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10/07ebecf6db8b28244b7397628e09c99e7a317b959b926d90455c7253c88df3677a5a32d1501d9749fe292a263ff51a4b6b5385bcabd5dadd3a48036f4d4949e0 + languageName: node + linkType: hard + "@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": version: 7.25.9 resolution: "@babel/template@npm:7.25.9" @@ -664,6 +818,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.25.2": + version: 7.25.4 + resolution: "@babel/traverse@npm:7.25.4" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.4" + "@babel/parser": "npm:^7.25.4" + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.4" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10/a85c16047ab8e454e2e758c75c31994cec328bd6d8b4b22e915fa7393a03b3ab96d1218f43dc7ef77c957cc488dc38100bdf504d08a80a131e89b2e49cfa2be5 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.3.3": version: 7.26.3 resolution: "@babel/types@npm:7.26.3" @@ -674,6 +843,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/types@npm:7.25.4" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10/d4a1194612d0a2a6ce9a0be325578b43d74e5f5278c67409468ba0a924341f0ad349ef0245ee8a36da3766efe5cc59cd6bb52547674150f97d8dc4c8cfa5d6b8 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -735,7 +915,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1": version: 4.4.1 resolution: "@eslint-community/eslint-utils@npm:4.4.1" dependencies: @@ -746,6 +926,17 @@ __metadata: languageName: node linkType: hard +"@eslint-community/eslint-utils@npm:^4.2.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: "npm:^3.3.0" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10/8d70bcdcd8cd279049183aca747d6c2ed7092a5cf0cf5916faac1ef37ffa74f0c245c2a3a3d3b9979d9dfdd4ca59257b4c5621db699d637b847a2c5e02f491c2 + languageName: node + linkType: hard + "@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.12.1": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" @@ -2355,7 +2546,7 @@ __metadata: "@metamask/snaps-controllers": "npm:^9.19.0" "@metamask/snaps-sdk": "npm:^6.17.1" "@metamask/snaps-utils": "npm:^8.10.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/readable-stream": "npm:^2.3.0" deepmerge: "npm:^4.2.2" @@ -2435,7 +2626,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -2482,7 +2673,7 @@ __metadata: "@metamask/snaps-controllers": "npm:^9.19.0" "@metamask/snaps-sdk": "npm:^6.17.1" "@metamask/snaps-utils": "npm:^8.10.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^27.4.1" "@types/lodash": "npm:^4.14.191" @@ -2566,7 +2757,7 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/json-rpc-engine": "npm:^10.0.3" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/sinon": "npm:^9.0.10" deepmerge: "npm:^4.2.2" @@ -2594,7 +2785,7 @@ __metadata: resolution: "@metamask/build-utils@workspace:packages/build-utils" dependencies: "@metamask/auto-changelog": "npm:^3.4.4" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/eslint": "npm:^8.44.7" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" @@ -2641,7 +2832,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/eth-query": "npm:^4.0.0" "@metamask/ethjs-unit": "npm:^0.3.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@spruceid/siwe-parser": "npm:2.1.0" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^27.4.1" @@ -2681,7 +2872,7 @@ __metadata: "@metamask/eth-block-tracker": "npm:^11.0.3" "@metamask/eth-json-rpc-provider": "npm:^4.1.8" "@metamask/json-rpc-engine": "npm:^10.0.3" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@ts-bridge/cli": "npm:^0.6.1" "@types/jest": "npm:^27.4.1" "@types/lodash": "npm:^4.14.191" @@ -2778,7 +2969,7 @@ __metadata: "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" "@metamask/network-controller": "npm:^22.2.1" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -2868,16 +3059,17 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-hd-keyring@npm:^7.0.4": - version: 7.0.4 - resolution: "@metamask/eth-hd-keyring@npm:7.0.4" +"@metamask/eth-hd-keyring@npm:^10.0.0": + version: 10.0.0 + resolution: "@metamask/eth-hd-keyring@npm:10.0.0" dependencies: "@ethereumjs/util": "npm:^8.1.0" - "@metamask/eth-sig-util": "npm:^7.0.3" + "@metamask/eth-sig-util": "npm:^8.2.0" + "@metamask/key-tree": "npm:^10.0.2" "@metamask/scure-bip39": "npm:^2.1.1" - "@metamask/utils": "npm:^9.2.1" + "@metamask/utils": "npm:^11.1.0" ethereum-cryptography: "npm:^2.1.2" - checksum: 10/493d06f55225b6f9da48ee001486e18898d6a4a3afd2cf40ff1dcae2ece42d5e96174f6a05b7c39419cb3531b530c8af294d9422195661788c5e0b687a328874 + checksum: 10/d80611745171042f6ae7e0545e51563ebd705eb74e2bf131454766872d7ca57a54766af2ab398520a8fe0f58e8733a92c1df71664a2ea0e92c462661ea8a12f1 languageName: node linkType: hard @@ -2936,7 +3128,7 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.0.3" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" ethers: "npm:^6.12.0" @@ -2973,7 +3165,7 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-sig-util@npm:^8.0.0, @metamask/eth-sig-util@npm:^8.2.0": +"@metamask/eth-sig-util@npm:^8.2.0": version: 8.2.0 resolution: "@metamask/eth-sig-util@npm:8.2.0" dependencies: @@ -2988,16 +3180,16 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-simple-keyring@npm:^6.0.5": - version: 6.0.5 - resolution: "@metamask/eth-simple-keyring@npm:6.0.5" +"@metamask/eth-simple-keyring@npm:^8.1.0": + version: 8.1.0 + resolution: "@metamask/eth-simple-keyring@npm:8.1.0" dependencies: "@ethereumjs/util": "npm:^8.1.0" - "@metamask/eth-sig-util": "npm:^7.0.3" - "@metamask/utils": "npm:^9.2.1" + "@metamask/eth-sig-util": "npm:^8.2.0" + "@metamask/utils": "npm:^11.1.0" ethereum-cryptography: "npm:^2.1.2" randombytes: "npm:^2.1.0" - checksum: 10/98b7bd00df25e7630324e2c762e3a03a7f199108a4dfe22e5a1938f1d01c9b2cd64ab4bb6fd242bf898624903d5a68a2e1f61c95f94a141266ab23dae8d97d21 + checksum: 10/bbcbf7eb95e664be6362744ed6c6c977ecc14a8169b04cafa06a0afe3f5ffc872ca5f7ff327eb06d758c2b2cc1ab17bd4a9c533f58e12e4ee04163eb58100053 languageName: node linkType: hard @@ -3197,7 +3389,7 @@ __metadata: "@metamask/ethjs-unit": "npm:^0.3.0" "@metamask/network-controller": "npm:^22.2.1" "@metamask/polling-controller": "npm:^12.0.3" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^27.4.1" "@types/jest-when": "npm:^2.7.3" @@ -3246,7 +3438,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/json-rpc-engine": "npm:^10.0.3" "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/readable-stream": "npm:^2.3.0" deepmerge: "npm:^4.2.2" @@ -3313,14 +3505,14 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/browser-passworder": "npm:^4.3.0" - "@metamask/eth-hd-keyring": "npm:^7.0.4" - "@metamask/eth-sig-util": "npm:^8.0.0" - "@metamask/eth-simple-keyring": "npm:^6.0.5" + "@metamask/eth-hd-keyring": "npm:^10.0.0" + "@metamask/eth-sig-util": "npm:^8.2.0" + "@metamask/eth-simple-keyring": "npm:^8.1.0" "@metamask/keyring-api": "npm:^17.0.0" "@metamask/keyring-internal-api": "npm:^4.0.1" "@metamask/message-manager": "npm:^12.0.1" "@metamask/scure-bip39": "npm:^2.1.1" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" @@ -3429,8 +3621,8 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" - "@metamask/eth-sig-util": "npm:^8.0.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/eth-sig-util": "npm:^8.2.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" @@ -3466,7 +3658,7 @@ __metadata: "@metamask/snaps-controllers": "npm:^9.19.0" "@metamask/snaps-sdk": "npm:^6.17.1" "@metamask/snaps-utils": "npm:^8.10.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" @@ -3496,7 +3688,7 @@ __metadata: "@metamask/permission-controller": "npm:^11.0.6" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@open-rpc/meta-schema": "npm:^1.14.6" "@open-rpc/schema-utils-js": "npm:^2.0.5" "@types/jest": "npm:^27.4.1" @@ -3521,7 +3713,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" @@ -3549,7 +3741,7 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.0.3" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/swappable-obj-proxy": "npm:^2.3.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/jest-when": "npm:^2.7.3" "@types/lodash": "npm:^4.14.191" @@ -3597,7 +3789,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.5.0" "@metamask/keyring-controller": "npm:^19.0.7" "@metamask/profile-sync-controller": "npm:^7.0.1" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/readable-stream": "npm:^2.3.0" bignumber.js: "npm:^9.1.2" @@ -3659,7 +3851,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.5.0" "@metamask/json-rpc-engine": "npm:^10.0.3" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^27.4.1" deep-freeze-strict: "npm:^1.1.1" @@ -3729,7 +3921,7 @@ __metadata: "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" "@metamask/network-controller": "npm:^22.2.1" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" @@ -3897,7 +4089,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -3973,7 +4165,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" - "@metamask/eth-sig-util": "npm:^8.0.0" + "@metamask/eth-sig-util": "npm:^8.2.0" "@metamask/keyring-controller": "npm:^19.0.7" "@metamask/logging-controller": "npm:^6.0.4" "@metamask/network-controller": "npm:^22.2.1" @@ -4181,7 +4373,7 @@ __metadata: "@metamask/network-controller": "npm:^22.2.1" "@metamask/nonce-tracker": "npm:^6.0.0" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^27.4.1" "@types/node": "npm:^16.18.54" @@ -4227,7 +4419,7 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^45.1.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" bn.js: "npm:^5.2.1" deepmerge: "npm:^4.2.2" @@ -4249,9 +4441,9 @@ __metadata: languageName: unknown linkType: soft -"@metamask/utils@npm:^11.0.1, @metamask/utils@npm:^11.1.0": - version: 11.1.0 - resolution: "@metamask/utils@npm:11.1.0" +"@metamask/utils@npm:^11.0.1, @metamask/utils@npm:^11.1.0, @metamask/utils@npm:^11.2.0": + version: 11.2.0 + resolution: "@metamask/utils@npm:11.2.0" dependencies: "@ethereumjs/tx": "npm:^4.2.0" "@metamask/superstruct": "npm:^3.1.0" @@ -4262,7 +4454,7 @@ __metadata: pony-cause: "npm:^2.1.10" semver: "npm:^7.5.4" uuid: "npm:^9.0.1" - checksum: 10/756f13987881fe26adaa0a54354bc5af20cedee4dd228a736d481697dc634adb9e6e54d8f1dcc1d487b2376ab4ba8c576ecbb24beab2fb63aff721d0d5c0f5fe + checksum: 10/9cc2cb6af4627085e72a310ba9b8921c69757d94e2992d4664627e5a0d99b1f2f7f8069c6f22262515135e1172bd66b82d00512d90ea2ec6da4e768f3d7d4ae2 languageName: node linkType: hard @@ -4283,7 +4475,7 @@ __metadata: languageName: node linkType: hard -"@metamask/utils@npm:^9.0.0, @metamask/utils@npm:^9.1.0, @metamask/utils@npm:^9.2.1": +"@metamask/utils@npm:^9.0.0, @metamask/utils@npm:^9.1.0": version: 9.3.0 resolution: "@metamask/utils@npm:9.3.0" dependencies: @@ -6018,7 +6210,16 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.2.4, acorn@npm:^8.4.1": +"acorn@npm:^8.11.0, acorn@npm:^8.2.4, acorn@npm:^8.4.1": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 + languageName: node + linkType: hard + +"acorn@npm:^8.14.0": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -6141,6 +6342,15 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -6627,6 +6837,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.1": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" + dependencies: + caniuse-lite: "npm:^1.0.30001646" + electron-to-chromium: "npm:^1.5.4" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: 10/e266d18c6c6c5becf9a1a7aa264477677b9796387972e8fce34854bb33dc1666194dc28389780e5dc6566e68a95e87ece2ce222e1c4ca93c2b75b61dfebd5f1c + languageName: node + linkType: hard + "browserslist@npm:^4.24.0": version: 4.24.4 resolution: "browserslist@npm:4.24.4" @@ -6796,6 +7020,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001653 + resolution: "caniuse-lite@npm:1.0.30001653" + checksum: 10/cd9b1c0fe03249e593789a11a9ef14f987b385e60441748945916b19e74e7bc5c82c40d4836496a647586651898741aed1598ae0792114a9f0d7d7fdb2b7deb0 + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001688": version: 1.0.30001690 resolution: "caniuse-lite@npm:1.0.30001690" @@ -6810,6 +7041,17 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 + languageName: node + linkType: hard + "chalk@npm:^3.0.0": version: 3.0.0 resolution: "chalk@npm:3.0.0" @@ -7022,6 +7264,15 @@ __metadata: languageName: node linkType: hard +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 + languageName: node + linkType: hard + "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -7031,6 +7282,13 @@ __metadata: languageName: node linkType: hard +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -7523,6 +7781,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.4": + version: 1.5.13 + resolution: "electron-to-chromium@npm:1.5.13" + checksum: 10/b3de6dbca66e399eacd4f7e2b7603394c8949c9e724d838a45e092725005ff435aabfbf00f738e45451eb23147684f7f9251a5ed75619a539642b2bccea20b45 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.5.73": version: 1.5.79 resolution: "electron-to-chromium@npm:1.5.79" @@ -7664,6 +7929,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 10/a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3 + languageName: node + linkType: hard + "escape-html@npm:^1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -7671,6 +7943,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + "escape-string-regexp@npm:^2.0.0": version: 2.0.0 resolution: "escape-string-regexp@npm:2.0.0" @@ -7895,7 +8174,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b @@ -8293,7 +8572,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.2, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.2, fast-glob@npm:^3.3.2": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -8306,6 +8585,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.0": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.4" + checksum: 10/222512e9315a0efca1276af9adb2127f02105d7288fa746145bf45e2716383fb79eb983c89601a72a399a56b7c18d38ce70457c5466218c5f13fad957cee16df + languageName: node + linkType: hard + "fast-json-patch@npm:^3.1.1": version: 3.1.1 resolution: "fast-json-patch@npm:3.1.1" @@ -8891,6 +9183,13 @@ __metadata: languageName: node linkType: hard +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -10329,6 +10628,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 10/d2096abdcdec56969764b40ffc91d4a23408aa2f351b4d1c13f736f25476643238c43fdbaf38a191c26b1b78fd856d965f5d4d0dde7b89459cd94025190cdf13 + languageName: node + linkType: hard + "jsesc@npm:^3.0.2": version: 3.1.0 resolution: "jsesc@npm:3.1.0" @@ -11070,6 +11378,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e + languageName: node + linkType: hard + "node-releases@npm:^2.0.19": version: 2.0.19 resolution: "node-releases@npm:2.0.19" @@ -12745,6 +13060,15 @@ __metadata: languageName: node linkType: hard +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b + languageName: node + linkType: hard + "supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -12923,6 +13247,13 @@ __metadata: languageName: node linkType: hard +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -13254,6 +13585,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" + dependencies: + escalade: "npm:^3.1.2" + picocolors: "npm:^1.0.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.1.1": version: 1.1.2 resolution: "update-browserslist-db@npm:1.1.2" From 276485e4767ef2930e6d2c650776aee0c22ab8b4 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Wed, 12 Feb 2025 14:36:46 +1300 Subject: [PATCH 02/14] Remove duplicated input validation --- packages/keyring-controller/src/KeyringController.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index 5da193284f6..b730895237d 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -1161,16 +1161,6 @@ export class KeyringController extends BaseController< | Hex | undefined; - if (!contractAddress === undefined) { - throw new Error('Contract address must be a 20-byte hex string'); - } - if (typeof chainId !== 'number' || chainId < 0) { - throw new Error('Chain ID must be a non-negative number'); - } - if (typeof nonce !== 'number' || nonce < 0) { - throw new Error('Nonce must be a non-negativenumber'); - } - return await keyring.signEip7702Authorization(from, [ chainId, contractAddress as Hex, From 5e46b8d8e5cf4fdf70e1d9f7cdd7dc49b891eecf Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Wed, 12 Feb 2025 14:42:28 +1300 Subject: [PATCH 03/14] Rename registered message name from ...EIP7702... to ...Eip7702... --- packages/keyring-controller/src/KeyringController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index b730895237d..d85310b67bf 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -118,7 +118,7 @@ export type KeyringControllerSignMessageAction = { }; export type KeyringControllerSignAuthorizationMessageAction = { - type: `${typeof name}:signEIP7702AuthorizationMessage`; + type: `${typeof name}:signEip7702AuthorizationMessage`; handler: KeyringController['signEip7702Authorization']; }; @@ -1776,7 +1776,7 @@ export class KeyringController extends BaseController< ); this.messagingSystem.registerActionHandler( - `${name}:signEIP7702AuthorizationMessage`, + `${name}:signEip7702AuthorizationMessage`, this.signEip7702Authorization.bind(this), ); From df91d05993414adae8b8610bbfd516eb5df85f1a Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Wed, 12 Feb 2025 19:18:14 +1300 Subject: [PATCH 04/14] Update references to @metamask/utils to be consistently 11.2.0 across all packages --- examples/example-controllers/package.json | 2 +- packages/address-book-controller/package.json | 2 +- packages/json-rpc-engine/package.json | 2 +- .../permission-log-controller/package.json | 2 +- .../queued-request-controller/package.json | 2 +- packages/rate-limit-controller/package.json | 2 +- .../selected-network-controller/package.json | 2 +- packages/signature-controller/package.json | 2 +- .../package.json | 2 +- yarn.lock | 18 +++++++++--------- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/example-controllers/package.json b/examples/example-controllers/package.json index da75b2b8f52..cc4ae5a364f 100644 --- a/examples/example-controllers/package.json +++ b/examples/example-controllers/package.json @@ -48,7 +48,7 @@ }, "dependencies": { "@metamask/base-controller": "^8.0.0", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index d83cb418d39..5b7dfc7fb45 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index 5cf01438c07..725b32e1ce2 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -58,7 +58,7 @@ "dependencies": { "@metamask/rpc-errors": "^7.0.2", "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index e59bec33ae1..1b893684b91 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/json-rpc-engine": "^10.0.3", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/packages/queued-request-controller/package.json b/packages/queued-request-controller/package.json index d1b526654ad..ef79cb20522 100644 --- a/packages/queued-request-controller/package.json +++ b/packages/queued-request-controller/package.json @@ -52,7 +52,7 @@ "@metamask/json-rpc-engine": "^10.0.3", "@metamask/rpc-errors": "^7.0.2", "@metamask/swappable-obj-proxy": "^2.3.0", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index 18c5512a8d7..875bb8992e6 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/rpc-errors": "^7.0.2", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index f86208c1cbc..2c9e0531002 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -50,7 +50,7 @@ "@metamask/base-controller": "^8.0.0", "@metamask/json-rpc-engine": "^10.0.3", "@metamask/swappable-obj-proxy": "^2.3.0", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index f488679581b..2014c399f4b 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -50,7 +50,7 @@ "@metamask/base-controller": "^8.0.0", "@metamask/controller-utils": "^11.5.0", "@metamask/eth-sig-util": "^8.2.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "jsonschema": "^1.4.1", "lodash": "^4.17.21", "uuid": "^8.3.2" diff --git a/packages/token-search-discovery-controller/package.json b/packages/token-search-discovery-controller/package.json index 620c031c16b..11df16f062d 100644 --- a/packages/token-search-discovery-controller/package.json +++ b/packages/token-search-discovery-controller/package.json @@ -48,7 +48,7 @@ }, "dependencies": { "@metamask/base-controller": "^8.0.0", - "@metamask/utils": "^11.1.0" + "@metamask/utils": "^11.2.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/yarn.lock b/yarn.lock index 55ec42c24fb..945ea231ee4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2585,7 +2585,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -3365,7 +3365,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/controller-utils": "npm:^11.5.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -3420,7 +3420,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -3875,7 +3875,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/json-rpc-engine": "npm:^10.0.3" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^27.4.1" deep-freeze-strict: "npm:^1.1.1" @@ -4045,7 +4045,7 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/selected-network-controller": "npm:^21.0.1" "@metamask/swappable-obj-proxy": "npm:^2.3.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" @@ -4070,7 +4070,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -4139,7 +4139,7 @@ __metadata: "@metamask/network-controller": "npm:^22.2.1" "@metamask/permission-controller": "npm:^11.0.6" "@metamask/swappable-obj-proxy": "npm:^2.3.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" @@ -4169,7 +4169,7 @@ __metadata: "@metamask/keyring-controller": "npm:^19.0.7" "@metamask/logging-controller": "npm:^6.0.4" "@metamask/network-controller": "npm:^22.2.1" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -4336,7 +4336,7 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.0.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" From 3f01228e0bf90a1bf41c1bffdb7dc23501d47b27 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Thu, 13 Feb 2025 08:14:39 +1300 Subject: [PATCH 05/14] Deduplicate dependencies with yarn dedupe --- yarn.lock | 354 +----------------------------------------------------- 1 file changed, 5 insertions(+), 349 deletions(-) diff --git a/yarn.lock b/yarn.lock index 945ea231ee4..770762a1bdd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -193,23 +193,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": "npm:^7.24.7" - picocolors: "npm:^1.0.0" - checksum: 10/4812e94885ba7e3213d49583a155fdffb05292330f0a9b2c41b49288da70cf3c746a3fda0bf1074041a6d741c33f8d7be24be5e96f41ef77395eeddc5c9ff624 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: 10/d37a8936cc355a9ca3050102e03d179bdae26bd2e5c99a977637376c192b23637a039795f153c849437a086727628c9860e2c6af92d7151396e2362c09176337 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.25.9": version: 7.26.3 resolution: "@babel/compat-data@npm:7.26.3" @@ -217,30 +200,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.5, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/helpers": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10/0d6ec10ff430df66f654c089d6f7ef1d9bed0c318ac257ad5f0dfa0caa45666011828ae75f998bcdb279763e892b091b2925d0bc483299e61649d2c7a2245e33 - languageName: node - linkType: hard - -"@babel/core@npm:^7.11.6": +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.5, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": version: 7.26.0 resolution: "@babel/core@npm:7.26.0" dependencies: @@ -263,18 +223,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.4": - version: 7.25.5 - resolution: "@babel/generator@npm:7.25.5" - dependencies: - "@babel/types": "npm:^7.25.4" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10/e6d046afe739cfa706c40c127b7436731acb2a3146d408a7d89dbf16448491b35bc09b7d285cc19c2c1f8980d74b5a99df200d67c859bb5260986614685b0770 - languageName: node - linkType: hard - "@babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.7.2": version: 7.26.3 resolution: "@babel/generator@npm:7.26.3" @@ -297,19 +245,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" - dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-validator-option": "npm:^7.24.8" - browserslist: "npm:^4.23.1" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10/eccb2d75923d2d4d596f9ff64716e8664047c4192f1b44c7d5c07701d4a3498ac2587a72ddae1046e65a501bc630eb7df4557958b08ec2dcf5b4a264a052f111 - languageName: node - linkType: hard - "@babel/helper-compilation-targets@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-compilation-targets@npm:7.25.9" @@ -350,16 +285,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/df8bfb2bb18413aa151ecd63b7d5deb0eec102f924f9de6bc08022ced7ed8ca7fed914562d2f6fa5b59b74a5d6e255dc35612b2bc3b8abf361e13f61b3704770 - languageName: node - linkType: hard - "@babel/helper-module-imports@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" @@ -383,20 +308,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.2" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/a3bcf7815f3e9d8b205e0af4a8d92603d685868e45d119b621357e274996bf916216bb95ab5c6a60fde3775b91941555bf129d608e3d025b04f8aac84589f300 - languageName: node - linkType: hard - "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -446,13 +357,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 10/6d1bf8f27dd725ce02bdc6dffca3c95fb9ab8a06adc2edbd9c1c9d68500274230d1a609025833ed81981eff560045b6b38f7b4c6fb1ab19fc90e5004e3932535 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9" @@ -460,13 +364,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 10/86875063f57361471b531dbc2ea10bbf5406e12b06d249b03827d361db4cad2388c6f00936bcd9dc86479f7e2c69ea21412c2228d4b3672588b754b70a449d4b - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" @@ -481,23 +378,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: 10/a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helpers@npm:7.25.0" - dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10/4fcb8167eba9853e30b8b235b81b923ef7b707396b0e23d7a4fa3e811729506755576cb9ec736e8b92cf19e5a1ec61e83d182904d8e6a0953803c6bebc2e1592 - languageName: node - linkType: hard - "@babel/helpers@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helpers@npm:7.26.0" @@ -508,18 +388,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10/69b73f38cdd4f881b09b939a711e76646da34f4834f4ce141d7a49a6bb1926eab1c594148970a8aa9360398dff800f63aade4e81fafdd7c8d8a8489ea93bfec1 - languageName: node - linkType: hard - "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3": version: 7.26.3 resolution: "@babel/parser@npm:7.26.3" @@ -531,17 +399,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/parser@npm:7.25.4" - dependencies: - "@babel/types": "npm:^7.25.4" - bin: - parser: ./bin/babel-parser.js - checksum: 10/343b8a76c43549e370fe96f4f6d564382a6cdff60e9c3b8a594c51e4cefd58ec9945e82e8c4dfbf15ac865a04e4b29806531440760748e28568e6aec21bc9cb5 - languageName: node - linkType: hard - "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -781,17 +638,6 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10/07ebecf6db8b28244b7397628e09c99e7a317b959b926d90455c7253c88df3677a5a32d1501d9749fe292a263ff51a4b6b5385bcabd5dadd3a48036f4d4949e0 - languageName: node - linkType: hard - "@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": version: 7.25.9 resolution: "@babel/template@npm:7.25.9" @@ -818,21 +664,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/traverse@npm:7.25.4" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.4" - "@babel/parser": "npm:^7.25.4" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.4" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10/a85c16047ab8e454e2e758c75c31994cec328bd6d8b4b22e915fa7393a03b3ab96d1218f43dc7ef77c957cc488dc38100bdf504d08a80a131e89b2e49cfa2be5 - languageName: node - linkType: hard - "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.3.3": version: 7.26.3 resolution: "@babel/types@npm:7.26.3" @@ -843,17 +674,6 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/types@npm:7.25.4" - dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10/d4a1194612d0a2a6ce9a0be325578b43d74e5f5278c67409468ba0a924341f0ad349ef0245ee8a36da3766efe5cc59cd6bb52547674150f97d8dc4c8cfa5d6b8 - languageName: node - linkType: hard - "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -915,7 +735,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1": version: 4.4.1 resolution: "@eslint-community/eslint-utils@npm:4.4.1" dependencies: @@ -926,17 +746,6 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: "npm:^3.3.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10/8d70bcdcd8cd279049183aca747d6c2ed7092a5cf0cf5916faac1ef37ffa74f0c245c2a3a3d3b9979d9dfdd4ca59257b4c5621db699d637b847a2c5e02f491c2 - languageName: node - linkType: hard - "@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.12.1": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" @@ -6210,16 +6019,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.0, acorn@npm:^8.2.4, acorn@npm:^8.4.1": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" - bin: - acorn: bin/acorn - checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 - languageName: node - linkType: hard - -"acorn@npm:^8.14.0": +"acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.2.4, acorn@npm:^8.4.1": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -6342,15 +6142,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -6837,20 +6628,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.23.1": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" - dependencies: - caniuse-lite: "npm:^1.0.30001646" - electron-to-chromium: "npm:^1.5.4" - node-releases: "npm:^2.0.18" - update-browserslist-db: "npm:^1.1.0" - bin: - browserslist: cli.js - checksum: 10/e266d18c6c6c5becf9a1a7aa264477677b9796387972e8fce34854bb33dc1666194dc28389780e5dc6566e68a95e87ece2ce222e1c4ca93c2b75b61dfebd5f1c - languageName: node - linkType: hard - "browserslist@npm:^4.24.0": version: 4.24.4 resolution: "browserslist@npm:4.24.4" @@ -7020,13 +6797,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001653 - resolution: "caniuse-lite@npm:1.0.30001653" - checksum: 10/cd9b1c0fe03249e593789a11a9ef14f987b385e60441748945916b19e74e7bc5c82c40d4836496a647586651898741aed1598ae0792114a9f0d7d7fdb2b7deb0 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001688": version: 1.0.30001690 resolution: "caniuse-lite@npm:1.0.30001690" @@ -7041,17 +6811,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 - languageName: node - linkType: hard - "chalk@npm:^3.0.0": version: 3.0.0 resolution: "chalk@npm:3.0.0" @@ -7264,15 +7023,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -7282,13 +7032,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -7781,13 +7524,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.4": - version: 1.5.13 - resolution: "electron-to-chromium@npm:1.5.13" - checksum: 10/b3de6dbca66e399eacd4f7e2b7603394c8949c9e724d838a45e092725005ff435aabfbf00f738e45451eb23147684f7f9251a5ed75619a539642b2bccea20b45 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.5.73": version: 1.5.79 resolution: "electron-to-chromium@npm:1.5.79" @@ -7929,13 +7665,6 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 10/a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3 - languageName: node - linkType: hard - "escape-html@npm:^1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -7943,13 +7672,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - "escape-string-regexp@npm:^2.0.0": version: 2.0.0 resolution: "escape-string-regexp@npm:2.0.0" @@ -8174,7 +7896,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b @@ -8572,7 +8294,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.2, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.2, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -8585,19 +8307,6 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.3.0": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10/222512e9315a0efca1276af9adb2127f02105d7288fa746145bf45e2716383fb79eb983c89601a72a399a56b7c18d38ce70457c5466218c5f13fad957cee16df - languageName: node - linkType: hard - "fast-json-patch@npm:^3.1.1": version: 3.1.1 resolution: "fast-json-patch@npm:3.1.1" @@ -9183,13 +8892,6 @@ __metadata: languageName: node linkType: hard -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -10628,15 +10330,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 10/d2096abdcdec56969764b40ffc91d4a23408aa2f351b4d1c13f736f25476643238c43fdbaf38a191c26b1b78fd856d965f5d4d0dde7b89459cd94025190cdf13 - languageName: node - linkType: hard - "jsesc@npm:^3.0.2": version: 3.1.0 resolution: "jsesc@npm:3.1.0" @@ -11378,13 +11071,6 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e - languageName: node - linkType: hard - "node-releases@npm:^2.0.19": version: 2.0.19 resolution: "node-releases@npm:2.0.19" @@ -13060,15 +12746,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b - languageName: node - linkType: hard - "supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -13247,13 +12924,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -13585,20 +13255,6 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" - dependencies: - escalade: "npm:^3.1.2" - picocolors: "npm:^1.0.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.1.1": version: 1.1.2 resolution: "update-browserslist-db@npm:1.1.2" From b5e21fdc4a9ce297d1d171af3f7d029b917ce3a5 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:01:43 +1300 Subject: [PATCH 06/14] Move message params to KeyringController/types.ts, remove 'Message' from Eip7702AuthorizationMessageParams --- .../src/KeyringController.ts | 20 ++--- packages/keyring-controller/src/index.ts | 1 + packages/keyring-controller/src/types.ts | 74 +++++++++++++++++++ packages/message-manager/src/types.ts | 8 +- 4 files changed, 86 insertions(+), 17 deletions(-) create mode 100644 packages/keyring-controller/src/types.ts diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index bb3614689be..1b0028c9c0c 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -18,11 +18,6 @@ import type { EthUserOperationPatch, } from '@metamask/keyring-api'; import type { EthKeyring } from '@metamask/keyring-internal-api'; -import type { - PersonalMessageParams, - TypedMessageParams, - Eip7702AuthorizationMessageParams, -} from '@metamask/message-manager'; import type { Eip1024EncryptedData, Hex, @@ -46,6 +41,11 @@ import Wallet, { thirdparty as importers } from 'ethereumjs-wallet'; import type { Patch } from 'immer'; import { KeyringControllerError } from './constants'; +import type { + Eip7702AuthorizationParams, + PersonalMessageParams, + TypedMessageParams, +} from './types'; const name = 'KeyringController'; @@ -1140,14 +1140,14 @@ export class KeyringController extends BaseController< /** * Signs EIP-7702 Authorization message by calling down into a specific keyring. * - * @param messageParams - EIP7702AuthorizationMessageParams object to sign. + * @param params - EIP7702AuthorizationParams object to sign. * @returns Promise resolving to an EIP-7702 Authorization signature. * @throws Will throw UnsupportedSignEIP7702Authorization if the keyring does not support signing EIP-7702 Authorization messages. */ async signEip7702Authorization( - messageParams: Eip7702AuthorizationMessageParams, + params: Eip7702AuthorizationParams, ): Promise { - const from = ethNormalize(messageParams.from) as Hex; + const from = ethNormalize(params.from) as Hex; const keyring = (await this.getKeyringForAccount(from)) as EthKeyring; @@ -1157,8 +1157,8 @@ export class KeyringController extends BaseController< ); } - const { chainId, nonce } = messageParams; - const contractAddress = ethNormalize(messageParams.contractAddress) as + const { chainId, nonce } = params; + const contractAddress = ethNormalize(params.contractAddress) as | Hex | undefined; diff --git a/packages/keyring-controller/src/index.ts b/packages/keyring-controller/src/index.ts index 9b98ad6fd7a..0176ac5c808 100644 --- a/packages/keyring-controller/src/index.ts +++ b/packages/keyring-controller/src/index.ts @@ -1 +1,2 @@ export * from './KeyringController'; +export type * from './types'; diff --git a/packages/keyring-controller/src/types.ts b/packages/keyring-controller/src/types.ts new file mode 100644 index 00000000000..f4595db90f6 --- /dev/null +++ b/packages/keyring-controller/src/types.ts @@ -0,0 +1,74 @@ +import type { SIWEMessage } from '@metamask/controller-utils'; + +/** + * AbstractMessageParams + * + * Represents the parameters to pass to the signing method once the signature request is approved. + * + * from - Address from which the message is processed + * origin? - Added for request origin identification + * requestId? - Original request id + * deferSetAsSigned? - Whether to defer setting the message as signed immediately after the keyring is told to sign it + */ +export type AbstractMessageParams = { + from: string; + origin?: string; + requestId?: number; + deferSetAsSigned?: boolean; +}; + +/** + * Eip7702AuthorizationParams + * + * Represents the parameters for EIP-7702 authorization signing requests. + * + * chainId - The chain ID + * contractAddress - The contract address + * nonce - The nonce + */ +export type Eip7702AuthorizationParams = { + chainId: number; + contractAddress: string; + nonce: number; +} & AbstractMessageParams; + +/** + * PersonalMessageParams + * + * Represents the parameters for personal signing messages. + * + * data - The data to sign + * siwe? - The SIWE message + */ +export type PersonalMessageParams = { + data: string; + siwe?: SIWEMessage; +} & AbstractMessageParams; + +/** + * SignTypedDataMessageV3V4 + * + * Represents the structure of a typed data message for EIP-712 signing requests. + * + * types - The types of the message + * domain - The domain of the message + * primaryType - The primary type of the message + * message - The message + */ +export type SignTypedDataMessageV3V4 = { + types: Record; + domain: Record; + primaryType: string; + message: unknown; +}; + +/** + * TypedMessageParams + * + * Represents the parameters for typed signing messages. + * + * data - The data to sign + */ +export type TypedMessageParams = { + data: Record[] | string | SignTypedDataMessageV3V4; +} & AbstractMessageParams; diff --git a/packages/message-manager/src/types.ts b/packages/message-manager/src/types.ts index caca81bfdfd..dc580bd61d5 100644 --- a/packages/message-manager/src/types.ts +++ b/packages/message-manager/src/types.ts @@ -2,7 +2,7 @@ import type { SIWEMessage } from '@metamask/controller-utils'; import type { AbstractMessageParams } from './AbstractMessageManager'; -// Below types are temporary as they are used by the KeyringController. +// Below types are have been moved into KeyringController, but are still exported here for backwards compatibility. export type SignTypedDataMessageV3V4 = { types: Record; @@ -19,9 +19,3 @@ export type PersonalMessageParams = { export type TypedMessageParams = { data: Record[] | string | SignTypedDataMessageV3V4; } & AbstractMessageParams; - -export type Eip7702AuthorizationMessageParams = { - chainId: number; - contractAddress: string; - nonce: number; -} & AbstractMessageParams; From b96c9f786fd86c068f40d2cccdbad46f12168bb0 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:07:30 +1300 Subject: [PATCH 07/14] Remove dependency on @metamask/message-manager from @metamask/keyring-controller --- packages/keyring-controller/package.json | 1 - yarn.lock | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index 325e1491303..48334d6cd15 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -56,7 +56,6 @@ "@metamask/eth-simple-keyring": "^8.1.0", "@metamask/keyring-api": "^17.0.0", "@metamask/keyring-internal-api": "^4.0.1", - "@metamask/message-manager": "^12.0.1", "@metamask/utils": "^11.2.0", "async-mutex": "^0.5.0", "ethereumjs-wallet": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index 8d092600d20..ca44a27e9ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3321,7 +3321,6 @@ __metadata: "@metamask/eth-simple-keyring": "npm:^8.1.0" "@metamask/keyring-api": "npm:^17.0.0" "@metamask/keyring-internal-api": "npm:^4.0.1" - "@metamask/message-manager": "npm:^12.0.1" "@metamask/scure-bip39": "npm:^2.1.1" "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" @@ -3425,7 +3424,7 @@ __metadata: languageName: unknown linkType: soft -"@metamask/message-manager@npm:^12.0.1, @metamask/message-manager@workspace:packages/message-manager": +"@metamask/message-manager@workspace:packages/message-manager": version: 0.0.0-use.local resolution: "@metamask/message-manager@workspace:packages/message-manager" dependencies: From d1c23460c1b5ab3a2eec7b54a993d3a7370724cf Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:58:03 +1300 Subject: [PATCH 08/14] Update @metamask/utils reference in multichain-network-controller --- packages/multichain-network-controller/package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index b22fb7a372e..ae0e8046ca2 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/base-controller": "^8.0.0", "@metamask/keyring-api": "^17.0.0", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "@solana/addresses": "^2.0.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index ca44a27e9ad..f1ad87fa66e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3461,7 +3461,7 @@ __metadata: "@metamask/base-controller": "npm:^8.0.0" "@metamask/keyring-api": "npm:^17.0.0" "@metamask/keyring-controller": "npm:^19.1.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@solana/addresses": "npm:^2.0.0" "@types/jest": "npm:^27.4.1" "@types/uuid": "npm:^8.3.0" From a50fd44953da2490c399328784c649a1c41cbc69 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Fri, 14 Feb 2025 06:58:28 +1300 Subject: [PATCH 09/14] Remove 'Message' from action name --- packages/keyring-controller/src/KeyringController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index 1b0028c9c0c..659c22b4493 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -119,7 +119,7 @@ export type KeyringControllerSignMessageAction = { }; export type KeyringControllerSignAuthorizationMessageAction = { - type: `${typeof name}:signEip7702AuthorizationMessage`; + type: `${typeof name}:signEip7702Authorization`; handler: KeyringController['signEip7702Authorization']; }; @@ -1777,7 +1777,7 @@ export class KeyringController extends BaseController< ); this.messagingSystem.registerActionHandler( - `${name}:signEip7702AuthorizationMessage`, + `${name}:signEip7702Authorization`, this.signEip7702Authorization.bind(this), ); From a348dcaf45ccf016c59faa7f2b42b2d3649c458e Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Fri, 14 Feb 2025 15:14:05 +1300 Subject: [PATCH 10/14] Update bridge-controller dependency on @metamask/utils to 11.2.0 --- packages/bridge-controller/package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index 7b4a0b7571a..a8dca9d13ce 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -51,7 +51,7 @@ "@metamask/controller-utils": "^11.5.0", "@metamask/metamask-eth-abis": "^3.1.1", "@metamask/polling-controller": "^12.0.3", - "@metamask/utils": "^11.1.0", + "@metamask/utils": "^11.2.0", "ethers": "^6.12.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index c041c315548..fff8d18372d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2596,7 +2596,7 @@ __metadata: "@metamask/network-controller": "npm:^22.2.1" "@metamask/polling-controller": "npm:^12.0.3" "@metamask/transaction-controller": "npm:^45.1.0" - "@metamask/utils": "npm:^11.1.0" + "@metamask/utils": "npm:^11.2.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" ethers: "npm:^6.12.0" From 332cb55acc8e6cc28bd9d8879734c848ad6b1888 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Fri, 14 Feb 2025 22:50:28 +1300 Subject: [PATCH 11/14] Remove 'Message' from action type _name_ --- packages/keyring-controller/src/KeyringController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index 659c22b4493..a10a9460961 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -118,7 +118,7 @@ export type KeyringControllerSignMessageAction = { handler: KeyringController['signMessage']; }; -export type KeyringControllerSignAuthorizationMessageAction = { +export type KeyringControllerSignAuthorizationAction = { type: `${typeof name}:signEip7702Authorization`; handler: KeyringController['signEip7702Authorization']; }; @@ -211,7 +211,7 @@ export type KeyringControllerQRKeyringStateChangeEvent = { export type KeyringControllerActions = | KeyringControllerGetStateAction | KeyringControllerSignMessageAction - | KeyringControllerSignAuthorizationMessageAction + | KeyringControllerSignAuthorizationAction | KeyringControllerSignPersonalMessageAction | KeyringControllerSignTypedMessageAction | KeyringControllerDecryptMessageAction From 2394767fd7122c7ba74e7a438b88bceff76706d4 Mon Sep 17 00:00:00 2001 From: jeffsmale90 <6363749+jeffsmale90@users.noreply.github.com> Date: Fri, 14 Feb 2025 22:58:22 +1300 Subject: [PATCH 12/14] Update message type name to include "Eip7702" Co-authored-by: Charly Chevalier --- packages/keyring-controller/src/KeyringController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index a10a9460961..13b4489079d 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -118,7 +118,7 @@ export type KeyringControllerSignMessageAction = { handler: KeyringController['signMessage']; }; -export type KeyringControllerSignAuthorizationAction = { +export type KeyringControllerSignEip7702AuthorizationAction = { type: `${typeof name}:signEip7702Authorization`; handler: KeyringController['signEip7702Authorization']; }; @@ -211,7 +211,7 @@ export type KeyringControllerQRKeyringStateChangeEvent = { export type KeyringControllerActions = | KeyringControllerGetStateAction | KeyringControllerSignMessageAction - | KeyringControllerSignAuthorizationAction + | KeyringControllerSignEip7702AuthorizationAction | KeyringControllerSignPersonalMessageAction | KeyringControllerSignTypedMessageAction | KeyringControllerDecryptMessageAction From a98db58a819449a3b99f026c004ceb74c5575229 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Fri, 14 Feb 2025 23:43:13 +1300 Subject: [PATCH 13/14] Remove obsolete keyring types definitions, add ts-expect-errors where keyring typings mismatch --- packages/keyring-controller/src/KeyringController.test.ts | 6 ++++++ packages/keyring-controller/src/KeyringController.ts | 3 +++ types/@metamask/eth-hd-keyring.d.ts | 1 - types/@metamask/eth-simple-keyring.d.ts | 1 - 4 files changed, 9 insertions(+), 2 deletions(-) delete mode 100644 types/@metamask/eth-hd-keyring.d.ts delete mode 100644 types/@metamask/eth-simple-keyring.d.ts diff --git a/packages/keyring-controller/src/KeyringController.test.ts b/packages/keyring-controller/src/KeyringController.test.ts index a93673f4bec..5fd321c5c63 100644 --- a/packages/keyring-controller/src/KeyringController.test.ts +++ b/packages/keyring-controller/src/KeyringController.test.ts @@ -105,6 +105,8 @@ describe('KeyringController', () => { it('allows overwriting the built-in Simple keyring builder', async () => { const mockSimpleKeyringBuilder = + // todo: keyring types are mismatched, this should be fixed in they keyrings themselves + // @ts-expect-error buildKeyringBuilderWithSpy(SimpleKeyring); await withController( { keyringBuilders: [mockSimpleKeyringBuilder] }, @@ -117,6 +119,8 @@ describe('KeyringController', () => { }); it('allows overwriting the built-in HD keyring builder', async () => { + // todo: keyring types are mismatched, this should be fixed in they keyrings themselves + // @ts-expect-error const mockHdKeyringBuilder = buildKeyringBuilderWithSpy(HDKeyring); await withController( { keyringBuilders: [mockHdKeyringBuilder] }, @@ -561,6 +565,8 @@ describe('KeyringController', () => { it('should throw error if the first account is not found on the keyring', async () => { jest .spyOn(HDKeyring.prototype, 'getAccounts') + // todo: keyring types are mismatched, this should be fixed in they keyrings themselves + // @ts-expect-error .mockResolvedValue([]); await withController( { cacheEncryptionKey, skipVaultCreation: true }, diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index 13b4489079d..67723a69bc6 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -430,7 +430,10 @@ export function keyringBuilderFactory(KeyringConstructor: KeyringClass) { } const defaultKeyringBuilders = [ + // todo: keyring types are mismatched, this should be fixed in they keyrings themselves + // @ts-expect-error keyringBuilderFactory(SimpleKeyring), + // @ts-expect-error keyringBuilderFactory(HDKeyring), ]; diff --git a/types/@metamask/eth-hd-keyring.d.ts b/types/@metamask/eth-hd-keyring.d.ts deleted file mode 100644 index 650803e985f..00000000000 --- a/types/@metamask/eth-hd-keyring.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module '@metamask/eth-hd-keyring'; diff --git a/types/@metamask/eth-simple-keyring.d.ts b/types/@metamask/eth-simple-keyring.d.ts deleted file mode 100644 index 3778872a782..00000000000 --- a/types/@metamask/eth-simple-keyring.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module '@metamask/eth-simple-keyring'; From c4f17a17582daf0de8d11b75a2359509d7438f90 Mon Sep 17 00:00:00 2001 From: Jeff Smale <6363749+jeffsmale90@users.noreply.github.com> Date: Fri, 14 Feb 2025 23:56:09 +1300 Subject: [PATCH 14/14] Fix linting issues introduced by ts-expect-error directives --- packages/keyring-controller/src/KeyringController.test.ts | 6 +++--- packages/keyring-controller/src/KeyringController.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/keyring-controller/src/KeyringController.test.ts b/packages/keyring-controller/src/KeyringController.test.ts index 5fd321c5c63..1a013285cd2 100644 --- a/packages/keyring-controller/src/KeyringController.test.ts +++ b/packages/keyring-controller/src/KeyringController.test.ts @@ -106,7 +106,7 @@ describe('KeyringController', () => { it('allows overwriting the built-in Simple keyring builder', async () => { const mockSimpleKeyringBuilder = // todo: keyring types are mismatched, this should be fixed in they keyrings themselves - // @ts-expect-error + // @ts-expect-error keyring types are mismatched buildKeyringBuilderWithSpy(SimpleKeyring); await withController( { keyringBuilders: [mockSimpleKeyringBuilder] }, @@ -120,7 +120,7 @@ describe('KeyringController', () => { it('allows overwriting the built-in HD keyring builder', async () => { // todo: keyring types are mismatched, this should be fixed in they keyrings themselves - // @ts-expect-error + // @ts-expect-error keyring types are mismatched const mockHdKeyringBuilder = buildKeyringBuilderWithSpy(HDKeyring); await withController( { keyringBuilders: [mockHdKeyringBuilder] }, @@ -566,7 +566,7 @@ describe('KeyringController', () => { jest .spyOn(HDKeyring.prototype, 'getAccounts') // todo: keyring types are mismatched, this should be fixed in they keyrings themselves - // @ts-expect-error + // @ts-expect-error keyring types are mismatched .mockResolvedValue([]); await withController( { cacheEncryptionKey, skipVaultCreation: true }, diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index 67723a69bc6..5a38f59cb94 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -431,9 +431,9 @@ export function keyringBuilderFactory(KeyringConstructor: KeyringClass) { const defaultKeyringBuilders = [ // todo: keyring types are mismatched, this should be fixed in they keyrings themselves - // @ts-expect-error + // @ts-expect-error keyring types are mismatched keyringBuilderFactory(SimpleKeyring), - // @ts-expect-error + // @ts-expect-error keyring types are mismatched keyringBuilderFactory(HDKeyring), ];